You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2015/12/12 17:01:27 UTC

[06/35] couchdb commit: updated refs/heads/2876-js-tests-merged to 6d9b2eb

wip-continued: port tests to random databases


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/aa1731d9
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/aa1731d9
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/aa1731d9

Branch: refs/heads/2876-js-tests-merged
Commit: aa1731d944d40cc10881798758ca404abd67ccc5
Parents: b2bb3b8
Author: Jan Lehnardt <ja...@apache.org>
Authored: Wed Oct 7 15:04:16 2015 +0200
Committer: Jan Lehnardt <ja...@apache.org>
Committed: Sat Dec 12 15:23:44 2015 +0100

----------------------------------------------------------------------
 test/javascript/tests/attachment_ranges.js     | 28 +++----
 test/javascript/tests/attachment_views.js      |  4 +-
 test/javascript/tests/attachments.js           | 64 +++++++--------
 test/javascript/tests/attachments_multipart.js | 28 +++----
 test/javascript/tests/basics.js                | 42 +++++-----
 test/javascript/tests/batch_save.js            |  4 +-
 test/javascript/tests/bulk_docs.js             |  8 +-
 test/javascript/tests/changes.js               | 87 +++++++++++----------
 test/javascript/tests/coffee.js                |  4 +-
 test/javascript/tests/compact.js               |  6 +-
 test/javascript/tests/config.js                |  4 +-
 test/javascript/tests/conflicts.js             | 12 +--
 test/javascript/tests/cookie_auth.js           | 15 ++--
 test/javascript/tests/copy_doc.js              | 16 ++--
 test/javascript/tests/delayed_commits.js       |  4 +
 test/javascript/tests/design_docs.js           | 42 +++++-----
 16 files changed, 188 insertions(+), 180 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/attachment_ranges.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/attachment_ranges.js b/test/javascript/tests/attachment_ranges.js
index 7d9afb5..0b8184b 100644
--- a/test/javascript/tests/attachment_ranges.js
+++ b/test/javascript/tests/attachment_ranges.js
@@ -15,10 +15,10 @@ function cacheBust() {
 };
 
 couchTests.attachment_ranges = function(debug) {
-    var db = new CouchDB("test_suite_db", {
+    var db_name = get_random_db_name();
+    var db = new CouchDB(db_name, {
         "X-Couch-Full-Commit": "false"
     });
-    db.deleteDb();
     db.createDb();
 
     if (debug) debugger;
@@ -42,7 +42,7 @@ couchTests.attachment_ranges = function(debug) {
     T(save_response.ok);
 
     // Fetching the whole entity is a 206.
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=0-28"
         }
@@ -53,7 +53,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("29", xhr.getResponseHeader("Content-Length"));
 
     // Fetch the whole entity without an end offset is a 200.
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=0-"
         }
@@ -64,7 +64,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("29", xhr.getResponseHeader("Content-Length"));
 
     // Even if you ask multiple times.
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=0-,0-,0-"
         }
@@ -72,7 +72,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals(200, xhr.status, "multiple 0-'s");
 
     // Badly formed range header is a 200.
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes:0-"
         }
@@ -80,7 +80,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals(200, xhr.status, "fetch with bad range header");
 
     // Fetch the end of an entity without an end offset is a 206.
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt"  + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt"  + cacheBust(), {
         headers: {
             "Range": "bytes=2-"
         }
@@ -91,7 +91,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("27", xhr.getResponseHeader("Content-Length"));
 
     // Fetch past the end of the entity is a 206
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt"  + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt"  + cacheBust(), {
         headers: {
             "Range": "bytes=0-29"
         }
@@ -101,7 +101,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("29", xhr.getResponseHeader("Content-Length"));
 
     // Fetch first part of entity is a 206
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=0-3"
         }
@@ -112,7 +112,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("bytes 0-3/29", xhr.getResponseHeader("Content-Range"));
 
     // Fetch middle of entity is also a 206
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=10-15"
         }
@@ -123,7 +123,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("bytes 10-15/29", xhr.getResponseHeader("Content-Range"));
 
     // Fetch end of entity is also a 206
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=-3"
         }
@@ -134,7 +134,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals("bytes 26-28/29", xhr.getResponseHeader("Content-Range"));
     
     // backward range is 416
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
        headers: {
            "Range": "bytes=5-3"
        }
@@ -142,7 +142,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals(416, xhr.status, "fetch 5-3");
 
     // range completely outside of entity is 416
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=300-310"
         }
@@ -150,7 +150,7 @@ couchTests.attachment_ranges = function(debug) {
     TEquals(416, xhr.status, "fetch 300-310");
 
     // We ignore a Range header with too many ranges
-    var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt" + cacheBust(), {
+    var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt" + cacheBust(), {
         headers: {
             "Range": "bytes=0-1,0-1,0-1,0-1,0-1,0-1,0-1,0-1,0-1,0-1"
         }

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/attachment_views.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/attachment_views.js b/test/javascript/tests/attachment_views.js
index b55aabe..ebe2535 100644
--- a/test/javascript/tests/attachment_views.js
+++ b/test/javascript/tests/attachment_views.js
@@ -12,8 +12,8 @@
 
 couchTests.attachment_views= function(debug) {
 
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name()
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/attachments.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/attachments.js b/test/javascript/tests/attachments.js
index 41a826a..9a83842 100644
--- a/test/javascript/tests/attachments.js
+++ b/test/javascript/tests/attachments.js
@@ -11,8 +11,8 @@
 // the License.
 
 couchTests.attachments= function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 
@@ -33,7 +33,7 @@ couchTests.attachments= function(debug) {
   var save_response = db.save(binAttDoc);
   T(save_response.ok);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt");
   T(xhr.responseText == "This is a base64 encoded text");
   T(xhr.getResponseHeader("Content-Type") == "application/octet-stream");
   TEquals("\"aEI7pOYCRBLTRQvvqYrrJQ==\"", xhr.getResponseHeader("Etag"));
@@ -51,13 +51,13 @@ couchTests.attachments= function(debug) {
 
   T(db.save(binAttDoc2).ok);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc2/foo.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc2/foo.txt");
   T(xhr.responseText.length == 0);
   T(xhr.getResponseHeader("Content-Type") == "text/plain");
 
   // test RESTful doc API
 
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc2/foo2.txt?rev=" + binAttDoc2._rev, {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc2/foo2.txt?rev=" + binAttDoc2._rev, {
     body:"This is no base64 encoded text",
     headers:{"Content-Type": "text/plain;charset=utf-8"}
   });
@@ -75,23 +75,23 @@ couchTests.attachments= function(debug) {
   TEqualsIgnoreCase("text/plain;charset=utf-8", binAttDoc2._attachments["foo2.txt"].content_type);
   T(binAttDoc2._attachments["foo2.txt"].length == 30);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc2/foo2.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc2/foo2.txt");
   T(xhr.responseText == "This is no base64 encoded text");
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
   // test without rev, should fail
-  var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc2/foo2.txt");
+  var xhr = CouchDB.request("DELETE", "/" + db_name + "/bin_doc2/foo2.txt");
   T(xhr.status == 409);
 
   // test with rev, should not fail
-  var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc2/foo2.txt?rev=" + rev);
+  var xhr = CouchDB.request("DELETE", "/" + db_name + "/bin_doc2/foo2.txt?rev=" + rev);
   T(xhr.status == 200);
   TEquals(null, xhr.getResponseHeader("Location"),
     "should not return Location header on DELETE request");
 
   // test binary data
   var bin_data = "JHAPDO*AU£PN ){(3u[d 93DQ9¡€])}    ææøo'∂ƒæ≤çæππ•¥∫¶®#†π¶®¥π€ª®˙π8np";
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc3/attachment.txt", {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:bin_data
   });
@@ -99,26 +99,26 @@ couchTests.attachments= function(debug) {
   var rev = JSON.parse(xhr.responseText).rev;
   TEquals('"' + rev + '"', xhr.getResponseHeader("Etag"));
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc3/attachment.txt");
   T(xhr.responseText == bin_data);
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
   // without rev
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc3/attachment.txt", {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:bin_data
   });
   T(xhr.status == 409);
 
   // with nonexistent rev
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt"  + "?rev=1-adae8575ecea588919bd08eb020c708e", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc3/attachment.txt"  + "?rev=1-adae8575ecea588919bd08eb020c708e", {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:bin_data
   });
   T(xhr.status == 409);
 
   // with current rev
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev, {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc3/attachment.txt?rev=" + rev, {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:bin_data
   });
@@ -126,46 +126,46 @@ couchTests.attachments= function(debug) {
   var rev = JSON.parse(xhr.responseText).rev;
   TEquals('"' + rev + '"', xhr.getResponseHeader("Etag"));
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc3/attachment.txt");
   T(xhr.responseText == bin_data);
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev);
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc3/attachment.txt?rev=" + rev);
   T(xhr.responseText == bin_data);
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
-  var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev);
+  var xhr = CouchDB.request("DELETE", "/" + db_name + "/bin_doc3/attachment.txt?rev=" + rev);
   T(xhr.status == 200);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc3/attachment.txt");
   T(xhr.status == 404);
 
   // deleted attachment is still accessible with revision
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev);
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc3/attachment.txt?rev=" + rev);
   T(xhr.status == 200);
   T(xhr.responseText == bin_data);
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
   // empty attachments
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc4/attachment.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc4/attachment.txt", {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:""
   });
   T(xhr.status == 201);
   var rev = JSON.parse(xhr.responseText).rev;
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc4/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc4/attachment.txt");
   T(xhr.status == 200);
   T(xhr.responseText.length == 0);
 
   // overwrite previsously empty attachment
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc4/attachment.txt?rev=" + rev, {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc4/attachment.txt?rev=" + rev, {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:"This is a string"
   });
   T(xhr.status == 201);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc4/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc4/attachment.txt");
   T(xhr.status == 200);
   T(xhr.responseText == "This is a string");
 
@@ -219,14 +219,14 @@ couchTests.attachments= function(debug) {
   console.log(lorem);
   console.log('end lorem');
   
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc5/lorem.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc5/lorem.txt", {
     headers:{"Content-Type":"text/plain;charset=utf-8"},
     body:lorem
   });
   T(xhr.status == 201);
   var rev = JSON.parse(xhr.responseText).rev;
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc5/lorem.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc5/lorem.txt");
   T(xhr.responseText == lorem);
   TEqualsIgnoreCase("text/plain;charset=utf-8", xhr.getResponseHeader("Content-Type"));
 
@@ -240,28 +240,28 @@ couchTests.attachments= function(debug) {
   TEquals(lorem_b64, doc._attachments["lorem.txt"].data, 'binary attachment data should match');
 
   // test etags for attachments.
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc5/lorem.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc5/lorem.txt");
   T(xhr.status == 200);
   var etag = xhr.getResponseHeader("etag");
-  xhr = CouchDB.request("GET", "/test_suite_db/bin_doc5/lorem.txt", {
+  xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc5/lorem.txt", {
     headers: {"if-none-match": etag}
   });
   T(xhr.status == 304);
 
   // test COUCHDB-497 - empty attachments
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc5/empty.txt?rev="+rev, {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc5/empty.txt?rev="+rev, {
     headers:{"Content-Type":"text/plain;charset=utf-8", "Content-Length": "0"},
     body:""
   });
   TEquals(201, xhr.status, "should send 201 Accepted");
   var rev = JSON.parse(xhr.responseText).rev;
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc5/empty.txt?rev="+rev, {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc5/empty.txt?rev="+rev, {
     headers:{"Content-Type":"text/plain;charset=utf-8"}
   });
   TEquals(201, xhr.status, "should send 201 Accepted");
 
   // implicit doc creation allows creating docs with a reserved id. COUCHDB-565
-  var xhr = CouchDB.request("PUT", "/test_suite_db/_nonexistant/attachment.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/_nonexistant/attachment.txt", {
     headers: {"Content-Type":"text/plain;charset=utf-8"},
     body: "THIS IS AN ATTACHMENT. BOOYA!"
   });
@@ -295,14 +295,14 @@ couchTests.attachments= function(debug) {
 
   // test MD5 header
   var bin_data = "foo bar"
-  var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc7/attachment.txt", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/bin_doc7/attachment.txt", {
     headers:{"Content-Type":"application/octet-stream",
              "Content-MD5":"MntvB0NYESObxH4VRDUycw=="},
     body:bin_data
   });
   TEquals(201, xhr.status);
 
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc7/attachment.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc7/attachment.txt");
   TEquals('MntvB0NYESObxH4VRDUycw==', xhr.getResponseHeader("Content-MD5"));
 
   // test attachment via multipart/form-data
@@ -319,7 +319,7 @@ couchTests.attachments= function(debug) {
     "Content-Type: text/plain\r\n\r\n" +
     "contents of file.txt\r\n\r\n" +
     "------TF--"
-  xhr = CouchDB.request("POST", "/test_suite_db/bin_doc8", {
+  xhr = CouchDB.request("POST", "/" + db_name + "/bin_doc8", {
     headers: {
       "Content-Type": "multipart/form-data; boundary=----TF",
       "Content-Length": body.length

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/attachments_multipart.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/attachments_multipart.js b/test/javascript/tests/attachments_multipart.js
index 6f924a7..df92dc5 100644
--- a/test/javascript/tests/attachments_multipart.js
+++ b/test/javascript/tests/attachments_multipart.js
@@ -11,14 +11,14 @@
 // the License.
 
 couchTests.attachments_multipart= function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name()
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
   
   // mime multipart
             
-  var xhr = CouchDB.request("PUT", "/test_suite_db/multipart", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/multipart", {
     headers: {"Content-Type": "multipart/related;boundary=\"abc123\""},
     body:
       "--abc123\r\n" +
@@ -64,15 +64,15 @@ couchTests.attachments_multipart= function(debug) {
     
   TEquals(201, xhr.status, "should send 201 Accepted");
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart/foo.txt");
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart/foo.txt");
   
   T(xhr.responseText == "this is 21 chars long");
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart/bar.txt");
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart/bar.txt");
   
   T(xhr.responseText == "this is 20 chars lon");
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart/baz.txt");
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart/baz.txt");
   
   T(xhr.responseText == "this is 19 chars lo");
   
@@ -96,7 +96,7 @@ couchTests.attachments_multipart= function(debug) {
   //lets delete attachment baz:
   delete doc._attachments["baz.txt"];
   
-  var xhr = CouchDB.request("PUT", "/test_suite_db/multipart", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/multipart", {
     headers: {"Content-Type": "multipart/related;boundary=\"abc123\""},
     body:
       "--abc123\r\n" +
@@ -110,11 +110,11 @@ couchTests.attachments_multipart= function(debug) {
     });
   TEquals(201, xhr.status);
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart/bar.txt");
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart/bar.txt");
   
   T(xhr.responseText == "this is 18 chars l");
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart/baz.txt");
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart/baz.txt");
   T(xhr.status == 404);
   
   // now test receiving multipart docs
@@ -169,7 +169,7 @@ couchTests.attachments_multipart= function(debug) {
   }
   
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart?attachments=true",
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart?attachments=true",
     {headers:{"accept": "multipart/related,*/*;"}});
   
   T(xhr.status == 200);
@@ -209,7 +209,7 @@ couchTests.attachments_multipart= function(debug) {
   // now get attachments incrementally (only the attachments changes since
   // a certain rev).
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart?atts_since=[\"" + firstrev + "\"]",
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart?atts_since=[\"" + firstrev + "\"]",
     {headers:{"accept": "multipart/related, */*"}});
   
   T(xhr.status == 200);
@@ -228,7 +228,7 @@ couchTests.attachments_multipart= function(debug) {
   // try the atts_since parameter together with the open_revs parameter
   xhr = CouchDB.request(
     "GET",
-    '/test_suite_db/multipart?open_revs=["' +
+    '/" + db_name + "/multipart?open_revs=["' +
       doc._rev + '"]&atts_since=["' + firstrev + '"]',
     {headers: {"accept": "multipart/mixed"}}
   );
@@ -254,7 +254,7 @@ couchTests.attachments_multipart= function(debug) {
 
   // try it with a rev that doesn't exist (should get all attachments)
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart?atts_since=[\"1-2897589\"]",
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart?atts_since=[\"1-2897589\"]",
     {headers:{"accept": "multipart/related,*/*;"}});
   
   T(xhr.status == 200);
@@ -272,7 +272,7 @@ couchTests.attachments_multipart= function(debug) {
   TEquals("this is 18 chars l", sections[2].body, "should be 18 chars long 3");
   // try it with a rev that doesn't exist, and one that does
   
-  xhr = CouchDB.request("GET", "/test_suite_db/multipart?atts_since=[\"1-2897589\",\"" + firstrev + "\"]",
+  xhr = CouchDB.request("GET", "/" + db_name + "/multipart?atts_since=[\"1-2897589\",\"" + firstrev + "\"]",
     {headers:{"accept": "multipart/related,*/*;"}});
   
   T(xhr.status == 200);

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/basics.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/basics.js b/test/javascript/tests/basics.js
index 993456c..85a0c07 100644
--- a/test/javascript/tests/basics.js
+++ b/test/javascript/tests/basics.js
@@ -15,22 +15,22 @@ couchTests.basics = function(debug) {
   var result = JSON.parse(CouchDB.request("GET", "/").responseText);
   T(result.couchdb == "Welcome");
 
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name()
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
 
-  // bug COUCHDB-100: DELETE on non-existent DB returns 500 instead of 404
-  db.deleteDb();
+  //TODO bug COUCHDB-100: DELETE on non-existent DB returns 500 instead of 404
+  //TODO db.deleteDb();
 
   db.createDb();
 
   // PUT on existing DB should return 412 instead of 500
-  xhr = CouchDB.request("PUT", "/test_suite_db/");
+  xhr = CouchDB.request("PUT", "/" + db_name + "/");
   T(xhr.status == 412);
   if (debug) debugger;
 
   // creating a new DB should return Location header
   // and it should work for dbs with slashes (COUCHDB-411)
-  var dbnames = ["test_suite_db", "test_suite_db%2Fwith_slashes"];
+  var dbnames = [db_name, db_name + "%2Fwith_slashes"];
   dbnames.forEach(function(dbname) {
     xhr = CouchDB.request("DELETE", "/" + dbname);
     xhr = CouchDB.request("PUT", "/" + dbname);
@@ -43,8 +43,8 @@ couchTests.basics = function(debug) {
   });
 
   // Get the database info, check the db_name
-  T(db.info().db_name == "test_suite_db");
-  T(CouchDB.allDbs().indexOf("test_suite_db") != -1);
+  T(db.info().db_name == "" + db_name + "");
+  T(CouchDB.allDbs().indexOf("" + db_name + "") != -1);
 
   // Get the database info, check the doc_count
   T(db.info().doc_count == 0);
@@ -172,7 +172,7 @@ couchTests.basics = function(debug) {
   T(db.open(existingDoc._id, {rev: existingDoc._rev}) != null);
 
   // test that the POST response has a Location header
-  var xhr = CouchDB.request("POST", "/test_suite_db", {
+  var xhr = CouchDB.request("POST", "/" + db_name + "", {
     body: JSON.stringify({"foo":"bar"}),
     headers: {"Content-Type": "application/json"}
   });
@@ -182,10 +182,10 @@ couchTests.basics = function(debug) {
   T(loc, "should have a Location header");
   var locs = loc.split('/');
   T(locs[locs.length-1] == resp.id);
-  T(locs[locs.length-2] == "test_suite_db");
+  T(locs[locs.length-2] == "" + db_name + "");
 
   // test that that POST's with an _id aren't overriden with a UUID.
-  var xhr = CouchDB.request("POST", "/test_suite_db", {
+  var xhr = CouchDB.request("POST", "/" + db_name + "", {
     headers: {"Content-Type": "application/json"},
     body: JSON.stringify({"_id": "oppossum", "yar": "matey"})
   });
@@ -196,10 +196,10 @@ couchTests.basics = function(debug) {
   T(doc.yar == "matey");
 
   // document put's should return a Location header
-  var xhr = CouchDB.request("PUT", "/test_suite_db/newdoc", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/newdoc", {
     body: JSON.stringify({"a":1})
   });
-  TEquals("/test_suite_db/newdoc",
+  TEquals("/" + db_name + "/newdoc",
     xhr.getResponseHeader("Location").substr(-21),
     "should return Location header to newly created document");
   TEquals(CouchDB.protocol,
@@ -207,7 +207,7 @@ couchTests.basics = function(debug) {
     "should return absolute Location header to newly created document");
 
   // deleting a non-existent doc should be 404
-  xhr = CouchDB.request("DELETE", "/test_suite_db/doc-does-not-exist");
+  xhr = CouchDB.request("DELETE", "/" + db_name + "/doc-does-not-exist");
   T(xhr.status == 404);
 
   // Check for invalid document members
@@ -219,12 +219,12 @@ couchTests.basics = function(debug) {
   ];
   var test_doc = function(info) {
   var data = JSON.stringify(info[1]);
-    xhr = CouchDB.request("PUT", "/test_suite_db/" + info[0], {body: data});
+    xhr = CouchDB.request("PUT", "/" + db_name + "/" + info[0], {body: data});
     T(xhr.status == 500);
     result = JSON.parse(xhr.responseText);
     T(result.error == "doc_validation");
 
-    xhr = CouchDB.request("POST", "/test_suite_db/", {
+    xhr = CouchDB.request("POST", "/" + db_name + "/", {
       headers: {"Content-Type": "application/json"},
       body: data
     });
@@ -236,34 +236,34 @@ couchTests.basics = function(debug) {
 
   // Check some common error responses.
   // PUT body not an object
-  xhr = CouchDB.request("PUT", "/test_suite_db/bar", {body: "[]"});
+  xhr = CouchDB.request("PUT", "/" + db_name + "/bar", {body: "[]"});
   T(xhr.status == 400);
   result = JSON.parse(xhr.responseText);
   T(result.error == "bad_request");
   T(result.reason == "Document must be a JSON object");
 
   // Body of a _bulk_docs is not an object
-  xhr = CouchDB.request("POST", "/test_suite_db/_bulk_docs", {body: "[]"});
+  xhr = CouchDB.request("POST", "/" + db_name + "/_bulk_docs", {body: "[]"});
   T(xhr.status == 400);
   result = JSON.parse(xhr.responseText);
   T(result.error == "bad_request");
   T(result.reason == "Request body must be a JSON object");
 
   // Body of an _all_docs  multi-get is not a {"key": [...]} structure.
-  xhr = CouchDB.request("POST", "/test_suite_db/_all_docs", {body: "[]"});
+  xhr = CouchDB.request("POST", "/" + db_name + "/_all_docs", {body: "[]"});
   T(xhr.status == 400);
   result = JSON.parse(xhr.responseText);
   T(result.error == "bad_request");
   T(result.reason == "Request body must be a JSON object");
   var data = "{\"keys\": 1}";
-  xhr = CouchDB.request("POST", "/test_suite_db/_all_docs", {body:data});
+  xhr = CouchDB.request("POST", "/" + db_name + "/_all_docs", {body:data});
   T(xhr.status == 400);
   result = JSON.parse(xhr.responseText);
   T(result.error == "bad_request");
   T(result.reason == "`keys` member must be a array.");
 
   // oops, the doc id got lost in code nirwana
-  xhr = CouchDB.request("DELETE", "/test_suite_db/?rev=foobarbaz");
+  xhr = CouchDB.request("DELETE", "/" + db_name + "/?rev=foobarbaz");
   TEquals(400, xhr.status, "should return a bad request");
   result = JSON.parse(xhr.responseText);
   TEquals("bad_request", result.error);

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/batch_save.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/batch_save.js b/test/javascript/tests/batch_save.js
index a1b0019..0ec9c92 100644
--- a/test/javascript/tests/batch_save.js
+++ b/test/javascript/tests/batch_save.js
@@ -11,8 +11,8 @@
 // the License.
 
 couchTests.batch_save = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name()
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/bulk_docs.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/bulk_docs.js b/test/javascript/tests/bulk_docs.js
index 27a97c8..6d30818 100644
--- a/test/javascript/tests/bulk_docs.js
+++ b/test/javascript/tests/bulk_docs.js
@@ -11,8 +11,8 @@
 // the License.
 
 couchTests.bulk_docs = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name()
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 
@@ -81,7 +81,7 @@ couchTests.bulk_docs = function(debug) {
   T(doc.shooby == "dooby" || docConflict.shooby == "dooby");
 
   // verify creating a document with no id returns a new id
-  var req = CouchDB.request("POST", "/test_suite_db/_bulk_docs", {
+  var req = CouchDB.request("POST", "/" + db_name + "/_bulk_docs", {
     body: JSON.stringify({"docs": [{"foo":"bar"}]})
   });
   results = JSON.parse(req.responseText);
@@ -100,7 +100,7 @@ couchTests.bulk_docs = function(debug) {
 
 
   // verify that sending a request with no docs causes error thrown
-  var req = CouchDB.request("POST", "/test_suite_db/_bulk_docs", {
+  var req = CouchDB.request("POST", "/" + db_name + "/_bulk_docs", {
     body: JSON.stringify({"doc": [{"foo":"bar"}]})
   });
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/changes.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/changes.js b/test/javascript/tests/changes.js
index 7877758..6b85bf7 100644
--- a/test/javascript/tests/changes.js
+++ b/test/javascript/tests/changes.js
@@ -31,23 +31,24 @@ couchTests.changes = function(debug) {
   testChanges("live");
   testChanges("continuous");
   function testChanges(feed) {
-    db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"true"});
-    db.deleteDb();
+    var db_name = get_random_db_name();
+    db = new CouchDB(db_name, {"X-Couch-Full-Commit":"true"});
     db.createDb();
 
-    var req = CouchDB.request("GET", "/test_suite_db/_changes");
+    var req = CouchDB.request("GET", "/" + db_name + "/_changes");
     var resp = JSON.parse(req.responseText);
 
-    T(resp.results.length == 0 && resp.last_seq == 0, "empty db");
+    TEquals(0, resp.results.length, "db must be empty")
+    TEquals("0", resp.last_seq.substr(0, 1), "seq must start with 0")
     var docFoo = {_id:"foo", bar:1};
     T(db.save(docFoo).ok);
     T(db.ensureFullCommit().ok);
     T(db.open(docFoo._id)._id == docFoo._id);
 
-    req = CouchDB.request("GET", "/test_suite_db/_changes");
+    req = CouchDB.request("GET", "/" + db_name + "/_changes");
     var resp = JSON.parse(req.responseText);
 
-    T(resp.last_seq == 1);
+    TEquals("1", resp.last_seq.substr(0, 1), "seq must start with 1");
     T(resp.results.length == 1, "one doc db");
     T(resp.results[0].changes[0].rev == docFoo._rev);
 
@@ -58,14 +59,14 @@ couchTests.changes = function(debug) {
         key: "allow_jsonp",
         value: "true"}],
     function() {
-      var xhr = CouchDB.request("GET", "/test_suite_db/_changes?callback=jsonp");
+      var xhr = CouchDB.request("GET", "/" + db_name + "/_changes?callback=jsonp");
       T(xhr.status == 200);
       jsonp_flag = 0;
       eval(xhr.responseText);
       T(jsonp_flag == 1);
     });
 
-    req = CouchDB.request("GET", "/test_suite_db/_changes?feed=" + feed + "&timeout=10");
+    req = CouchDB.request("GET", "/" + db_name + "/_changes?feed=" + feed + "&timeout=10");
     var lines = req.responseText.split("\n");
     T(JSON.parse(lines[0]).changes[0].rev == docFoo._rev);
     T(JSON.parse(lines[1]).last_seq == 1);
@@ -84,7 +85,7 @@ couchTests.changes = function(debug) {
       // WebKit (last checked on nightly #47686) does fail on processing
       // the async-request properly while javascript is executed.
 
-      xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=" + feed + "&timeout=500"), true);
+      xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=" + feed + "&timeout=500"), true);
       xhr.send("");
 
       var docBar = {_id:"bar", bar:1};
@@ -130,7 +131,7 @@ couchTests.changes = function(debug) {
       xhr = CouchDB.newXhr();
 
       //verify the heartbeat newlines are sent
-      xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=" + feed + "&heartbeat=10&timeout=500"), true);
+      xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=" + feed + "&heartbeat=10&timeout=500"), true);
       xhr.send("");
 
       var str;
@@ -154,7 +155,7 @@ couchTests.changes = function(debug) {
     // test Server Sent Event (eventsource)
     if (!!window.EventSource) {
       var source = new EventSource(
-              "/test_suite_db/_changes?feed=eventsource");
+              "/" + db_name + "/_changes?feed=eventsource");
       var results = [];
       var sourceListener = function(e) {
         var data = JSON.parse(e.data);
@@ -183,7 +184,7 @@ couchTests.changes = function(debug) {
     // test that we receive EventSource heartbeat events
     if (!!window.EventSource) {
       var source = new EventSource(
-              "/test_suite_db/_changes?feed=eventsource&heartbeat=10");
+              "/" + db_name + "/_changes?feed=eventsource&heartbeat=10");
 
       var count_heartbeats = 0;
       source.addEventListener('heartbeat', function () { count_heartbeats = count_heartbeats + 1; } , false);
@@ -202,7 +203,7 @@ couchTests.changes = function(debug) {
     // test longpolling
     xhr = CouchDB.newXhr();
 
-    xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=longpoll"), true);
+    xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=longpoll"), true);
     xhr.send("");
 
     waitForSuccess(function() {
@@ -215,7 +216,7 @@ couchTests.changes = function(debug) {
 
     xhr = CouchDB.newXhr();
 
-    xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=longpoll&since=3"), true);
+    xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=longpoll&since=3"), true);
     xhr.send("");
 
     var docBarz = {_id:"barz", bar:1};
@@ -248,7 +249,7 @@ couchTests.changes = function(debug) {
     // test since=now
     xhr = CouchDB.newXhr();
 
-    xhr.open("GET", "/test_suite_db/_changes?feed=longpoll&since=now", true);
+    xhr.open("GET", "/" + db_name + "/_changes?feed=longpoll&since=now", true);
     xhr.send("");
 
     var docBarz = {_id:"barzzzz", bar:1};
@@ -313,22 +314,22 @@ couchTests.changes = function(debug) {
 
   db.save(ddoc);
 
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/bop");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/bop");
   var resp = JSON.parse(req.responseText);
   T(resp.results.length == 0);
 
   db.save({"bop" : "foom"});
   db.save({"bop" : false});
 
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/bop");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/bop");
   var resp = JSON.parse(req.responseText);
   T(resp.results.length == 1, "filtered/bop");
 
-  req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/dynamic&field=woox");
+  req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/dynamic&field=woox");
   resp = JSON.parse(req.responseText);
   T(resp.results.length == 0);
 
-  req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/dynamic&field=bop");
+  req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/dynamic&field=bop");
   resp = JSON.parse(req.responseText);
   T(resp.results.length == 1, "changes_filter/dynamic&field=bop");
 
@@ -336,13 +337,13 @@ couchTests.changes = function(debug) {
     // filter with longpoll
     // longpoll filters full history when run without a since seq
     xhr = CouchDB.newXhr();
-    xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=longpoll&filter=changes_filter/bop"), false);
+    xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=longpoll&filter=changes_filter/bop"), false);
     xhr.send("");
     var resp = JSON.parse(xhr.responseText);
     T(resp.last_seq == 8);
     // longpoll waits until a matching change before returning
     xhr = CouchDB.newXhr();
-    xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=longpoll&since=7&filter=changes_filter/bop"), true);
+    xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=longpoll&since=7&filter=changes_filter/bop"), true);
     xhr.send("");
     db.save({"_id":"falsy", "bop" : ""}); // empty string is falsy
     db.save({"_id":"bingo","bop" : "bingo"});
@@ -362,7 +363,7 @@ couchTests.changes = function(debug) {
 
       // filter with continuous
       xhr = CouchDB.newXhr();
-      xhr.open("GET", CouchDB.proxyUrl("/test_suite_db/_changes?feed=continuous&filter=changes_filter/bop&timeout="+timeout), true);
+      xhr.open("GET", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=continuous&filter=changes_filter/bop&timeout="+timeout), true);
       xhr.send("");
 
       db.save({"_id":"rusty", "bop" : "plankton"});
@@ -400,17 +401,17 @@ couchTests.changes = function(debug) {
 
   // non-existing design doc
   var req = CouchDB.request("GET",
-    "/test_suite_db/_changes?filter=nothingtosee/bop");
+    "/" + db_name + "/_changes?filter=nothingtosee/bop");
   TEquals(404, req.status, "should return 404 for non existant design doc");
 
   // non-existing filter
   var req = CouchDB.request("GET",
-    "/test_suite_db/_changes?filter=changes_filter/movealong");
+    "/" + db_name + "/_changes?filter=changes_filter/movealong");
   TEquals(404, req.status, "should return 404 for non existant filter fun");
 
   // both
   var req = CouchDB.request("GET",
-    "/test_suite_db/_changes?filter=nothingtosee/movealong");
+    "/" + db_name + "/_changes?filter=nothingtosee/movealong");
   TEquals(404, req.status,
     "should return 404 for non existant design doc and filter fun");
 
@@ -419,7 +420,7 @@ couchTests.changes = function(debug) {
   db.save(doc);
   db.deleteDoc(doc);
   var req = CouchDB.request("GET",
-    "/test_suite_db/_changes?filter=changes_filter/bop&style=all_docs");
+    "/" + db_name + "/_changes?filter=changes_filter/bop&style=all_docs");
   var resp = JSON.parse(req.responseText);
   var expect = (!is_safari && xhr) ? 3: 1;
   TEquals(expect, resp.results.length, "should return matching rows");
@@ -427,7 +428,7 @@ couchTests.changes = function(debug) {
   // test filter on view function (map)
   //
   T(db.save({"_id":"blah", "bop" : "plankton"}).ok);
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=_view&view=changes_filter/blah");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=_view&view=changes_filter/blah");
   var resp = JSON.parse(req.responseText);
   T(resp.results.length === 1);
   T(resp.results[0].id === "blah");
@@ -449,21 +450,21 @@ couchTests.changes = function(debug) {
       var resp = JSON.parse(req.responseText);
 
       T(db.save({"user" : "Noah Slater"}).ok);
-      var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/userCtx", authOpts);
+      var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/userCtx", authOpts);
       var resp = JSON.parse(req.responseText);
       T(resp.results.length == 0);
 
       var docResp = db.save({"user" : "Chris Anderson"});
       T(docResp.ok);
       T(db.ensureFullCommit().ok);
-      req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/userCtx", authOpts);
+      req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/userCtx", authOpts);
       resp = JSON.parse(req.responseText);
       T(resp.results.length == 1, "userCtx");
       T(resp.results[0].id == docResp.id);
     }
   );
 
-  req = CouchDB.request("GET", "/test_suite_db/_changes?limit=1");
+  req = CouchDB.request("GET", "/" + db_name + "/_changes?limit=1");
   resp = JSON.parse(req.responseText);
   TEquals(1, resp.results.length);
 
@@ -471,7 +472,7 @@ couchTests.changes = function(debug) {
   var id = db.save({'food' : 'pizza'}).id;
   db.bulkSave([{_id: id, 'food' : 'pasta'}], {all_or_nothing:true});
 
-  req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/conflicted");
+  req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=changes_filter/conflicted");
   resp = JSON.parse(req.responseText);
   T(resp.results.length == 1, "filter=changes_filter/conflicted");
 
@@ -500,7 +501,7 @@ couchTests.changes = function(debug) {
     db.createDb();
     T(db.save(erl_ddoc).ok);
 
-    var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=erlang/foo");
+    var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=erlang/foo");
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 0);
 
@@ -509,7 +510,7 @@ couchTests.changes = function(debug) {
     T(db.save({_id: "doc3", value : 3}).ok);
     T(db.save({_id: "doc4", value : 4}).ok);
 
-    var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=erlang/foo");
+    var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=erlang/foo");
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 2);
     T(resp.results[0].id === "doc2");
@@ -523,31 +524,31 @@ couchTests.changes = function(debug) {
         body: JSON.stringify({"doc_ids": ["something", "anotherthing", "andmore"]})
     };
 
-    var req = CouchDB.request("POST", "/test_suite_db/_changes?filter=_doc_ids", options);
+    var req = CouchDB.request("POST", "/" + db_name + "/_changes?filter=_doc_ids", options);
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 0);
 
     T(db.save({"_id":"something", "bop" : "plankton"}).ok);
-    var req = CouchDB.request("POST", "/test_suite_db/_changes?filter=_doc_ids", options);
+    var req = CouchDB.request("POST", "/" + db_name + "/_changes?filter=_doc_ids", options);
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 1);
     T(resp.results[0].id === "something");
 
     T(db.save({"_id":"anotherthing", "bop" : "plankton"}).ok);
-    var req = CouchDB.request("POST", "/test_suite_db/_changes?filter=_doc_ids", options);
+    var req = CouchDB.request("POST", "/" + db_name + "/_changes?filter=_doc_ids", options);
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 2);
     T(resp.results[0].id === "something");
     T(resp.results[1].id === "anotherthing");
 
     var docids = JSON.stringify(["something", "anotherthing", "andmore"]),
-        req = CouchDB.request("GET", "/test_suite_db/_changes?filter=_doc_ids&doc_ids="+docids, options);
+        req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=_doc_ids&doc_ids="+docids, options);
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 2);
     T(resp.results[0].id === "something");
     T(resp.results[1].id === "anotherthing");
 
-    var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=_design");
+    var req = CouchDB.request("GET", "/" + db_name + "/_changes?filter=_design");
     var resp = JSON.parse(req.responseText);
     T(resp.results.length === 1);
     T(resp.results[0].id === "_design/erlang");
@@ -556,7 +557,7 @@ couchTests.changes = function(debug) {
     if (!is_safari && xhr) {
         // filter docids with continuous
         xhr = CouchDB.newXhr();
-        xhr.open("POST", CouchDB.proxyUrl("/test_suite_db/_changes?feed=continuous&timeout=500&since=7&filter=_doc_ids"), true);
+        xhr.open("POST", CouchDB.proxyUrl("/" + db_name + "/_changes?feed=continuous&timeout=500&since=7&filter=_doc_ids"), true);
         xhr.setRequestHeader("Content-Type", "application/json");
 
         xhr.send(options.body);
@@ -659,7 +660,7 @@ couchTests.changes = function(debug) {
   db.save({"bop" : "foom"});
 
   // simulate an EventSource request with a Last-Event-ID header
-  req = CouchDB.request("GET", "/test_suite_db/_changes?feed=eventsource&timeout=0&since=0",
+  req = CouchDB.request("GET", "/" + db_name + "/_changes?feed=eventsource&timeout=0&since=0",
         {"headers": {"Accept": "text/event-stream", "Last-Event-ID": "2"}});
 
   // "parse" the eventsource response and collect only the "id: ..." lines
@@ -703,7 +704,7 @@ couchTests.changes = function(debug) {
     emit(parseInt(doc._id), count);
   };
 
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?include_docs=true");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?include_docs=true");
   var resp = JSON.parse(req.responseText);
 
   T(resp.results.length == 10);
@@ -716,7 +717,7 @@ couchTests.changes = function(debug) {
   T(resp.results[0].doc._attachments['bar.txt'].encoding === undefined);
   T(resp.results[0].doc._attachments['bar.txt'].encoded_length === undefined);
 
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?include_docs=true&attachments=true");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?include_docs=true&attachments=true");
   var resp = JSON.parse(req.responseText);
 
   T(resp.results.length == 10);
@@ -729,7 +730,7 @@ couchTests.changes = function(debug) {
   T(resp.results[0].doc._attachments['bar.txt'].encoding === undefined);
   T(resp.results[0].doc._attachments['bar.txt'].encoded_length === undefined);
 
-  var req = CouchDB.request("GET", "/test_suite_db/_changes?include_docs=true&att_encoding_info=true");
+  var req = CouchDB.request("GET", "/" + db_name + "/_changes?include_docs=true&att_encoding_info=true");
   var resp = JSON.parse(req.responseText);
 
   T(resp.results.length == 10);

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/coffee.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/coffee.js b/test/javascript/tests/coffee.js
index 9306124..047ac86 100644
--- a/test/javascript/tests/coffee.js
+++ b/test/javascript/tests/coffee.js
@@ -12,8 +12,8 @@
 
 // test basic coffeescript functionality
 couchTests.coffee = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/compact.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/compact.js b/test/javascript/tests/compact.js
index 68c83b3..42dd9e3 100644
--- a/test/javascript/tests/compact.js
+++ b/test/javascript/tests/compact.js
@@ -11,8 +11,8 @@
 // the License.
 
 couchTests.compact = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
   var docs = makeDocs(0, 20);
@@ -54,7 +54,7 @@ couchTests.compact = function(debug) {
 
   T(db.ensureFullCommit().ok);
   restartServer();
-  var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt");
+  var xhr = CouchDB.request("GET", "/" + db_name + "/bin_doc/foo.txt");
   T(xhr.responseText == "This is a base64 encoded text");
   T(xhr.getResponseHeader("Content-Type") == "text/plain");
   T(db.info().doc_count == 1);

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/config.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/config.js b/test/javascript/tests/config.js
index 37b339b..b593c34 100644
--- a/test/javascript/tests/config.js
+++ b/test/javascript/tests/config.js
@@ -11,8 +11,8 @@
 // the License.
 
 couchTests.config = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/conflicts.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/conflicts.js b/test/javascript/tests/conflicts.js
index 79266ab..7dd7d92 100644
--- a/test/javascript/tests/conflicts.js
+++ b/test/javascript/tests/conflicts.js
@@ -12,8 +12,8 @@
 
 // Do some edit conflict detection tests
 couchTests.conflicts = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 
@@ -58,27 +58,27 @@ couchTests.conflicts = function(debug) {
 
   // Make a few bad requests, specifying conflicting revs
   // ?rev doesn't match body
-  var xhr = CouchDB.request("PUT", "/test_suite_db/foo?rev=1-foobar", {
+  var xhr = CouchDB.request("PUT", "/" + db_name + "/foo?rev=1-foobar", {
     body : JSON.stringify(doc)
   });
   T(xhr.status == 400);
 
   // If-Match doesn't match body
-  xhr = CouchDB.request("PUT", "/test_suite_db/foo", {
+  xhr = CouchDB.request("PUT", "/" + db_name + "/foo", {
     headers: {"If-Match": "1-foobar"},
     body: JSON.stringify(doc)
   });
   T(xhr.status == 400);
 
   // ?rev= doesn't match If-Match
-  xhr = CouchDB.request("PUT", "/test_suite_db/foo?rev=1-boobaz", {
+  xhr = CouchDB.request("PUT", "/" + db_name + "/foo?rev=1-boobaz", {
     headers: {"If-Match": "1-foobar"},
     body: JSON.stringify(doc2)
   });
   T(xhr.status == 400);
 
   // Now update the document using ?rev=
-  xhr = CouchDB.request("PUT", "/test_suite_db/foo?rev=" + doc._rev, {
+  xhr = CouchDB.request("PUT", "/" + db_name + "/foo?rev=" + doc._rev, {
     body: JSON.stringify(doc)
   });
   T(xhr.status == 201);

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/cookie_auth.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/cookie_auth.js b/test/javascript/tests/cookie_auth.js
index 9b4bd64..00a393e 100644
--- a/test/javascript/tests/cookie_auth.js
+++ b/test/javascript/tests/cookie_auth.js
@@ -13,9 +13,12 @@
 couchTests.cookie_auth = function(debug) {
   // This tests cookie-based authentication.
 
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
+
+  // used later, needs to be global here
+  var users_db_name = get_random_db_name();
   if (debug) debugger;
 
   var password = "3.141592653589";
@@ -257,7 +260,7 @@ couchTests.cookie_auth = function(debug) {
           T(s.userCtx.roles.indexOf("_admin") != -1);
           // test session info
           T(s.info.authenticated == "cookie");
-          T(s.info.authentication_db == "test_suite_users");
+          T(s.info.authentication_db == users_db_name);
           // test that jchris still has the foo role
           T(CouchDB.session().userCtx.roles.indexOf("foo") != -1);
         });
@@ -270,13 +273,13 @@ couchTests.cookie_auth = function(debug) {
     TEquals(true, CouchDB.login("jan", "apple").ok);
   };
 
-  var usersDb = new CouchDB("test_suite_users", {"X-Couch-Full-Commit":"false"});
-  usersDb.deleteDb();
+  var usersDb = new CouchDB(users_db_name, {"X-Couch-Full-Commit":"false"});
+  usersDb.createDb();
 
   run_on_modified_server(
     [
      {section: "couch_httpd_auth",
-      key: "authentication_db", value: "test_suite_users"},
+      key: "authentication_db", value: users_db_name},
      {section: "couch_httpd_auth",
       key: "iterations", value: "1"},
      {section: "admins",

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/copy_doc.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/copy_doc.js b/test/javascript/tests/copy_doc.js
index d595761..7b19f8e 100644
--- a/test/javascript/tests/copy_doc.js
+++ b/test/javascript/tests/copy_doc.js
@@ -11,15 +11,15 @@
 // the License.
 
 couchTests.copy_doc = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  db.deleteDb();
+  var db_name = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
   db.createDb();
   if (debug) debugger;
 
   // copy a doc
   var ok = db.save({_id:"doc_to_be_copied",v:1}).ok;
   TEquals(true, ok, "Should return ok:true");
-  var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied", {
+  var xhr = CouchDB.request("COPY", "/" + db_name + "/doc_to_be_copied", {
     headers: {"Destination":"doc_that_was_copied"}
   });
 
@@ -35,26 +35,26 @@ couchTests.copy_doc = function(debug) {
   TEquals(true, doc.ok, "Should return ok:true");
 
   // error condition
-  var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied2", {
+  var xhr = CouchDB.request("COPY", "/" + db_name + "/doc_to_be_copied2", {
       headers: {"Destination":"doc_to_be_overwritten"}
   });
   TEquals(409, xhr.status, "Should return 409 status"); // conflict
 
-  var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied2");
+  var xhr = CouchDB.request("COPY", "/" + db_name + "/doc_to_be_copied2");
   TEquals(400, xhr.status, "Should return 400 status");
   TEquals("Destination header is mandatory for COPY.", JSON.parse(xhr.responseText).reason,
     "Should report missing destination header");
 
-  var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied2", {
+  var xhr = CouchDB.request("COPY", "/" + db_name + "/doc_to_be_copied2", {
     headers: {
-      "Destination": "http://localhost:5984/test_suite_db/doc_to_be_written"
+      "Destination": "http://localhost:5984/" + db_name + "/doc_to_be_written"
   }});
   TEquals(400, xhr.status, "Should return 400 status");
   TEquals("Destination URL must be relative.", JSON.parse(xhr.responseText).reason,
     "Should report invalid destination header");
 
   var rev = db.open("doc_to_be_overwritten")._rev;
-  var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied2", {
+  var xhr = CouchDB.request("COPY", "/" + db_name + "/doc_to_be_copied2", {
     headers: {"Destination":"doc_to_be_overwritten?rev=" + rev}
   });
   TEquals(201, xhr.status, "Should return 201 status");

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/delayed_commits.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/delayed_commits.js b/test/javascript/tests/delayed_commits.js
index dbb072f..f88872b 100644
--- a/test/javascript/tests/delayed_commits.js
+++ b/test/javascript/tests/delayed_commits.js
@@ -11,6 +11,10 @@
 // the License.
 
 couchTests.delayed_commits = function(debug) {
+  // NOTE: in 2.0 deayed_commits is deprecated, so we don’t port 1.x test over
+  //       to 2.0 here. jan@apache.org 2015-10-07
+  return;
+
   var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
   db.deleteDb();
   db.createDb();

http://git-wip-us.apache.org/repos/asf/couchdb/blob/aa1731d9/test/javascript/tests/design_docs.js
----------------------------------------------------------------------
diff --git a/test/javascript/tests/design_docs.js b/test/javascript/tests/design_docs.js
index dd38858..b043a54 100644
--- a/test/javascript/tests/design_docs.js
+++ b/test/javascript/tests/design_docs.js
@@ -11,14 +11,14 @@
 // the License.
 
 couchTests.design_docs = function(debug) {
-  var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
-  var db2 = new CouchDB("test_suite_db_a", {"X-Couch-Full-Commit":"false"});
+  var db_name = get_random_db_name();
+  var db_name_a = get_random_db_name();
+  var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"});
+  var db2 = new CouchDB(db_name_a, {"X-Couch-Full-Commit":"false"});
 
   if (debug) debugger;
 
-  db.deleteDb();
   db.createDb();
-  db2.deleteDb();
   db2.createDb();
 
   var server_config = [
@@ -199,14 +199,14 @@ couchTests.design_docs = function(debug) {
     }; // designDoc
 
     var xhr = CouchDB.request(
-      "PUT", "/test_suite_db_a/_design/test", {body: JSON.stringify(designDoc)}
+      "PUT", "/" + db_name_a + "/_design/test", {body: JSON.stringify(designDoc)}
     );
     var resp = JSON.parse(xhr.responseText);
 
     TEquals(resp.rev, db.save(designDoc).rev);
 
     // test that editing a show fun on the ddoc results in a change in output
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/simple");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/simple");
     T(xhr.status == 200);
     TEquals(xhr.responseText, "ok");
 
@@ -215,29 +215,29 @@ couchTests.design_docs = function(debug) {
     }).toString();
     T(db.save(designDoc).ok);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/simple");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/simple");
     T(xhr.status == 200);
     TEquals(xhr.responseText, "ko");
 
     xhr = CouchDB.request(
-      "GET", "/test_suite_db_a/_design/test/_show/simple?cache=buster"
+      "GET", "/" + db_name_a + "/_design/test/_show/simple?cache=buster"
     );
     T(xhr.status == 200);
     TEquals("ok", xhr.responseText, 'query server used wrong ddoc');
 
     // test commonjs require
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/requirey");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/requirey");
     T(xhr.status == 200);
     TEquals("PLANKTONwhatever/commonjs/upperplankton", xhr.responseText);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/circular");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/circular");
     T(xhr.status == 200);
     TEquals("javascript", JSON.parse(xhr.responseText).language);
 
     // test circular commonjs dependencies
     xhr = CouchDB.request(
       "GET",
-      "/test_suite_db/_design/test/_show/circular_require"
+      "/" + db_name + "/_design/test/_show/circular_require"
     );
     TEquals(200, xhr.status);
     TEquals("One", xhr.responseText);
@@ -252,30 +252,30 @@ couchTests.design_docs = function(debug) {
     // changed
     xhr = CouchDB.request(
       "GET",
-      "/test_suite_db/_design/test/_show/circular_require"
+      "/" + db_name + "/_design/test/_show/circular_require"
     );
     TEquals(200, xhr.status);
     TEquals("Updated", xhr.responseText);
 
 
     // test module id values are as expected:
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/idtest1");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/idtest1");
     TEquals(200, xhr.status);
     TEquals("whatever/idtest1/a/c/e", xhr.responseText);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/idtest2");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/idtest2");
     TEquals(200, xhr.status);
     TEquals("whatever/idtest2/a/c/e", xhr.responseText);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/idtest3");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/idtest3");
     TEquals(200, xhr.status);
     TEquals("whatever/idtest3/a/c/e", xhr.responseText);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/idtest4");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/idtest4");
     TEquals(200, xhr.status);
     TEquals("whatever/idtest4/a/c/e", xhr.responseText);
 
-    xhr = CouchDB.request("GET", "/test_suite_db/_design/test/_show/idtest5");
+    xhr = CouchDB.request("GET", "/" + db_name + "/_design/test/_show/idtest5");
     TEquals(200, xhr.status);
     TEquals("whatever/idtest5/b", xhr.responseText);
 
@@ -305,7 +305,7 @@ couchTests.design_docs = function(debug) {
       TEquals(0, db.view("test/single_doc", {stale: "ok"}).total_rows, 'view info');
       TEquals(0, db.view("test/summate", {stale: "ok"}).rows.length, 'view info');
       T(db.ensureFullCommit().ok);
-      restartServer();
+      // restartServer();
     };
 
     db.bulkSave(makeDocs(numDocs + 1, numDocs * 2 + 1));
@@ -332,7 +332,7 @@ couchTests.design_docs = function(debug) {
       TEquals(len2, db.view("test/single_doc", {stale: "ok"}).total_rows, 'view cleanup');
       TEquals(len3, db.view("test/summate", {stale: "ok"}).rows.length, 'view cleanup');
       T(db.ensureFullCommit().ok);
-      restartServer();
+      // restartServer();
       // we'll test whether the view group stays closed
       // and the views stay uninitialized (they should!)
       len1 = len2 = len3 = 0;
@@ -355,7 +355,7 @@ couchTests.design_docs = function(debug) {
       T(db.view("test/no_docs").total_rows == 0);
       T(db.view("test/single_doc").total_rows == 1);
       T(db.ensureFullCommit().ok);
-      restartServer();
+      // restartServer();
     };
 
     // test when language not specified, Javascript is implied
@@ -411,7 +411,7 @@ couchTests.design_docs = function(debug) {
     T(db.view("test/no_docs") == null);
 
     T(db.ensureFullCommit().ok);
-    restartServer();
+    // restartServer();
     T(db.open(designDoc._id) == null);
     T(db.view("test/no_docs") == null);