Title: [201940] trunk/LayoutTests
- Revision
- 201940
- Author
- [email protected]
- Date
- 2016-06-10 14:01:55 -0700 (Fri, 10 Jun 2016)
Log Message
Add an IDB leak test.
https://bugs.webkit.org/show_bug.cgi?id=158632
Reviewed by Alex Christensen.
* storage/indexeddb/modern/leak-1-expected.txt: Added.
* storage/indexeddb/modern/leak-1.html: Added.
* storage/indexeddb/modern/resources/leak-1.js: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (201939 => 201940)
--- trunk/LayoutTests/ChangeLog 2016-06-10 20:59:38 UTC (rev 201939)
+++ trunk/LayoutTests/ChangeLog 2016-06-10 21:01:55 UTC (rev 201940)
@@ -1,3 +1,14 @@
+2016-06-10 Brady Eidson <[email protected]>
+
+ Add an IDB leak test.
+ https://bugs.webkit.org/show_bug.cgi?id=158632
+
+ Reviewed by Alex Christensen.
+
+ * storage/indexeddb/modern/leak-1-expected.txt: Added.
+ * storage/indexeddb/modern/leak-1.html: Added.
+ * storage/indexeddb/modern/resources/leak-1.js: Added.
+
2016-06-10 Carlos Alberto Lopez Perez <[email protected]>
[GTK] Unreviewed gardening.
Added: trunk/LayoutTests/storage/indexeddb/modern/leak-1-expected.txt (0 => 201940)
--- trunk/LayoutTests/storage/indexeddb/modern/leak-1-expected.txt (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/leak-1-expected.txt 2016-06-10 21:01:55 UTC (rev 201940)
@@ -0,0 +1,18 @@
+This tests that certain IDB object relationships don't cause leaks.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+Initial upgrade needed: Old version - 0 New version - 1
+Issuing a simple request to the object store
+Observing GC on the transaction and request.
+PASS txObserver.wasCollected is true
+PASS reqObserver.wasCollected is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/storage/indexeddb/modern/leak-1.html (0 => 201940)
--- trunk/LayoutTests/storage/indexeddb/modern/leak-1.html (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/leak-1.html 2016-06-10 21:01:55 UTC (rev 201940)
@@ -0,0 +1,10 @@
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+
+<script src=""
+</body>
+</html>
Added: trunk/LayoutTests/storage/indexeddb/modern/resources/leak-1.js (0 => 201940)
--- trunk/LayoutTests/storage/indexeddb/modern/resources/leak-1.js (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/resources/leak-1.js 2016-06-10 21:01:55 UTC (rev 201940)
@@ -0,0 +1,66 @@
+description("This tests that certain IDB object relationships don't cause leaks.");
+
+indexedDBTest(prepareDatabase);
+
+function log(message)
+{
+ debug(message);
+}
+
+var testGenerator;
+function next()
+{
+ testGenerator.next();
+}
+
+function asyncNext()
+{
+ setTimeout("testGenerator.next();", 0);
+}
+
+var db;
+
+function prepareDatabase(event)
+{
+ debug("Initial upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion);
+
+ db = event.target.result;
+ db.createObjectStore("foo");
+ event.target._onsuccess_ = function() {
+ testGenerator = testSteps();
+ testGenerator.next();
+ };
+}
+
+function* testSteps()
+{
+ log("Issuing a simple request to the object store");
+
+ tx = db.transaction("foo");
+ tx._oncomplete_ = next;
+ req = tx.objectStore("foo").get("foo");
+ req._onsuccess_ = next;
+
+ yield; // For the request success.
+ yield; // For the transaction's completion.
+
+ log("Observing GC on the transaction and request. ");
+
+ txObserver = internals.observeGC(tx);
+ reqObserver = internals.observeGC(req);
+
+ tx = null;
+ req = null;
+
+ // Make sure we are no longer handling any IDB events.
+ asyncNext();
+ yield;
+
+ gc();
+
+ shouldBeTrue("txObserver.wasCollected");
+ shouldBeTrue("reqObserver.wasCollected");
+
+ finishJSTest();
+ }
+
\ No newline at end of file
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes