summaryrefslogtreecommitdiffstats
path: root/LayoutTests/storage/read-and-write-transactions-dont-run-together.html
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/storage/read-and-write-transactions-dont-run-together.html')
-rw-r--r--LayoutTests/storage/read-and-write-transactions-dont-run-together.html103
1 files changed, 6 insertions, 97 deletions
diff --git a/LayoutTests/storage/read-and-write-transactions-dont-run-together.html b/LayoutTests/storage/read-and-write-transactions-dont-run-together.html
index a7565b5..11da356 100644
--- a/LayoutTests/storage/read-and-write-transactions-dont-run-together.html
+++ b/LayoutTests/storage/read-and-write-transactions-dont-run-together.html
@@ -1,103 +1,12 @@
<html>
<head>
-<script>
-
-function log(message)
-{
- document.body.innerHTML += message + "<br>";
-}
-
-function terminateTest()
-{
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function openTestDatabase()
-{
- return openDatabase("ReadAndWriteTransactionsDontRunTogetherTest",
- "1.0",
- "Test to make sure that read and write transactions on different DB handles to the same DB don't run at the same time.",
- 32768);
-}
-
-var readTransactionsInProgress = 0;
-var writeTransactionsInProgress = 0;
-var totalTransactions = 0;
-var finishedTransactions = 0;
-
-function runTransaction(db, readOnly)
-{
- var transactionFunction = (readOnly ? db.readTransaction : db.transaction);
- transactionFunction.call(db, function(tx) {
- if (readOnly) {
- if (writeTransactionsInProgress != 0) {
- log("Read transaction starting while write transaction in progress.");
- terminateTest();
- }
- readTransactionsInProgress++;
- } else {
- if ((readTransactionsInProgress != 0) || (writeTransactionsInProgress != 0)) {
- log("Write transaction starting while another transaction in progress.");
- terminateTest();
- }
- writeTransactionsInProgress++;
- }
- tx.executeSql("SELECT * FROM Test;");
- }, function(error) {
- log((readOnly ? "Read" : "Write") + " transaction failed: " + error.message);
- terminateTest();
- }, function() {
- finishedTransactions++;
- if (readOnly)
- readTransactionsInProgress--;
- else
- writeTransactionsInProgress--;
- log("Transaction successful.");
- if ((finishedTransactions == totalTransactions) && (readTransactionsInProgress == 0) && (writeTransactionsInProgress == 0))
- terminateTest();
- });
-}
-
-function runReadAndWriteTransactions(db1, db2, db3)
-{
- totalTransactions = 10;
- finishedTransactions = 0;
- runTransaction(db1, true);
- runTransaction(db2, true);
- runTransaction(db1, false);
- runTransaction(db1, true);
- runTransaction(db2, true);
- runTransaction(db3, true);
- runTransaction(db1, false);
- runTransaction(db2, false);
- runTransaction(db1, true);
- runTransaction(db3, true);
-}
-
-function runTest() {
- if (window.layoutTestController) {
- layoutTestController.dumpAsText();
- layoutTestController.waitUntilDone();
- }
-
- try {
- var db1 = openTestDatabase();
- var db2 = openTestDatabase();
- var db3 = openTestDatabase();
- db1.transaction(function(tx) {
- tx.executeSql("CREATE TABLE IF NOT EXISTS Test (Foo int);");
- }, function(error) {
- log("Cannot create the Test table: " + error.message);
- terminateTest();
- }, function() {
- runReadAndWriteTransactions(db1, db2, db3);
- });
- } catch(err) {}
-}
-</script>
+<script src="resources/database-common.js"></script>
+<script src="read-and-write-transactions-dont-run-together.js"></script>
</head>
-<body onload="runTest();">
+<body onload="setupAndRunTest();">
This test tests that read and write transactions on different handles to the same database don't run together.<br>
+<pre id="console">
+FAILURE: test didn't run.
+</pre>
</body>
</html>