diff options
Diffstat (limited to 'toolkit/components/aboutmemory/tests/test_sqliteMultiReporter.xhtml')
-rw-r--r-- | toolkit/components/aboutmemory/tests/test_sqliteMultiReporter.xhtml | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/toolkit/components/aboutmemory/tests/test_sqliteMultiReporter.xhtml b/toolkit/components/aboutmemory/tests/test_sqliteMultiReporter.xhtml new file mode 100644 index 0000000000..206cee5434 --- /dev/null +++ b/toolkit/components/aboutmemory/tests/test_sqliteMultiReporter.xhtml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<?xml-stylesheet type="text/css" href="chrome://global/skin"?> +<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?> +<window title="about:memory" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> + <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> + + <!-- test results are displayed in the html:body --> + <body xmlns="http://www.w3.org/1999/xhtml"></body> + + <!-- test code goes here --> + <script type="application/javascript"> + <![CDATA[ + + // Test for bug 708248, where the SQLite memory multi-reporter was + // crashing when a DB was closed. + + // Nb: this test is all JS and chould be done with an xpcshell test, + // but all the other memory reporter tests are mochitests, so it's easier + // if this one is too. + + SimpleTest.waitForExplicitFinish(); + + // Make a fake DB file. + let file = SpecialPowers.Services.dirsvc.get("ProfD", Ci.nsIFile); + file.append("test_sqliteMultiReporter-fake-DB-tmp.sqlite"); + + // Open and close the DB. + let db = SpecialPowers.Services.storage.openDatabase(file); + db.close(); + + // Invoke all the reporters. The SQLite multi-reporter is among + // them. It shouldn't crash. + let mgr = Cc["@mozilla.org/memory-reporter-manager;1"]. + getService(Ci.nsIMemoryReporterManager); + mgr.getReports(function(){}, null, + () => { + ok(true, "didn't crash"); + SimpleTest.finish(); + }, null, + /* anonymize = */ false); + + ]]> + </script> +</window> |