[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

dumi at chromium.org dumi at chromium.org
Wed Dec 22 14:33:00 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 96f5be40598560b38f347a9b82e453487cd3bc4c
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 13 01:23:17 2010 +0000

    Adding a test that makes sure the same database can be simultaneously accessed from workers and the page.
    
    Reviewed by David Levin.
    
    * fast/workers/storage/resources/use-same-database-in-page-and-workers.js: Added.
    * fast/workers/storage/use-same-database-in-page-and-workers-expected.txt: Added.
    * fast/workers/storage/use-same-database-in-page-and-workers.html: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 5d785ed..46260c8 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-09-30  Dumitru Daniliuc  <dumi at chromium.org>
+
+        Reviewed by David Levin.
+
+        Adding a test that makes sure the same database can be simultaneously accessed from workers and the page.
+
+        * fast/workers/storage/resources/use-same-database-in-page-and-workers.js: Added.
+        * fast/workers/storage/use-same-database-in-page-and-workers-expected.txt: Added.
+        * fast/workers/storage/use-same-database-in-page-and-workers.html: Added.
+
 2010-10-12  Martin Robinson  <mrobinson at igalia.com>
 
         Unskip a test which is now passing.
diff --git a/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js b/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js
new file mode 100644
index 0000000..e73f280
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js
@@ -0,0 +1,8 @@
+var db = openDatabase("UseSameDatabaseInPageAndWorkers", "", "", 1);
+for (var i = 0; i < 100; i++) {
+    db.transaction(function(tx) {
+        tx.executeSql("INSERT INTO Test VALUES (?)", [i], null,
+                      function(tx, error) { postMessage(error.message); });
+      }, function(error) { postMessage(error.message); },
+      function() { postMessage("transactionSuccessful"); });
+}
diff --git a/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt
new file mode 100644
index 0000000..0e4c7db
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt
@@ -0,0 +1,3 @@
+Test that we can successfully use the same database in the page and in multiple workers at the same time.
+PASS
+
diff --git a/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html
new file mode 100644
index 0000000..384aaa6
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<script>
+function finishTest()
+{
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+function log(message)
+{
+    document.getElementById("console").innerHTML += message + "<br>";
+}
+
+function runTest()
+{
+    if (window.layoutTestController) {
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+    }
+
+    var db = openDatabase("UseSameDatabaseInPageAndWorkers", "", "", 1);
+    db.transaction(function(tx) {
+        tx.executeSql("CREATE TABLE IF NOT EXISTS Test(Foo INT)", [],
+                      function(tx, data) {
+                          startWorkers();
+                          insertData(db);
+                      }, function(tx, error) {
+                          log("Creating table Test failed: " + error.message);
+                          finishTest();
+                      });
+    });
+}
+
+var successfulTransactions = 0
+var WORKER_COUNT = 3;
+function startWorkers()
+{
+    var databaseWorkers = new Array(WORKER_COUNT);
+    for (var i = 0; i < WORKER_COUNT; i++) {
+        databaseWorkers[i] = new Worker('resources/use-same-database-in-page-and-workers.js');
+        databaseWorkers[i].onerror = function(event) {
+            log("Caught an error from a worker: " + event.data);
+            finishTest();
+        }
+        databaseWorkers[i].onmessage = function(event) {
+            if (event.data == "transactionSuccessful")
+                successCallback();
+            else
+                log("Unexpected worker message: " + event.data);
+        }
+    }
+}
+
+function successCallback()
+{
+    successfulTransactions++;
+    if (successfulTransactions == 100 * (WORKER_COUNT + 1)) {
+        log("PASS");
+        finishTest();
+    }
+}
+
+function errorCallback(error)
+{
+    log("executeSql failed: " + error.message);
+    finishTest();
+}
+
+function insertData(db)
+{
+    for (var i = 0; i < 100; i++) {
+        db.transaction(function(tx) {
+            tx.executeSql("INSERT INTO Test VALUES (?)", [i], null,
+                          function(tx, error) { errorCallback(error); });
+        }, errorCallback, successCallback);
+    }
+}
+</script>
+</head>
+
+<body onload="runTest()">
+Test that we can successfully use the same database in the page and in multiple workers at the same time.
+<pre id="console">
+</pre>
+</body>
+
+</html>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list