<?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 type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> <script type="text/javascript" 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. const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; SimpleTest.waitForExplicitFinish(); // Make a fake DB file. let file = Cc["@mozilla.org/file/directory_service;1"]. getService(Ci.nsIProperties). get("ProfD", Ci.nsIFile); file.append("test_sqliteMultiReporter-fake-DB-tmp.sqlite"); // Open and close the DB. let storage = Cc["@mozilla.org/storage/service;1"]. getService(Ci.mozIStorageService); let db = 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>