diff options
author | sebastianro <sebastianro@apache.org> | 2015-11-05 23:04:42 +0100 |
---|---|---|
committer | sebastianro <sebastianro@apache.org> | 2015-11-12 21:56:05 +0100 |
commit | d8408834b726174c4127614ee32ef86551bfa8b4 (patch) | |
tree | b907305e19a4b77cce7f56c24b909187b3e0a9b8 | |
parent | 01913cf27ad6444e05dfdb9844089155fef8db32 (diff) | |
download | couchdb-d8408834b726174c4127614ee32ef86551bfa8b4.tar.gz |
Initial solutions for cluster testing
-rw-r--r-- | rel/overlay/etc/default.ini | 3 | ||||
-rw-r--r-- | test/javascript/replicator_db_inc.js | 7 | ||||
-rw-r--r-- | test/javascript/tests/replicator_db_bad_rep_id.js | 50 |
3 files changed, 45 insertions, 15 deletions
diff --git a/rel/overlay/etc/default.ini b/rel/overlay/etc/default.ini index bcababcbb..8faa1b9ac 100644 --- a/rel/overlay/etc/default.ini +++ b/rel/overlay/etc/default.ini @@ -299,6 +299,9 @@ verify_ssl_certificates = false ;ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt ; Maximum peer certificate depth (must be set even if certificate validation is off). ssl_certificate_max_depth = 3 +; improve testing +start_delay=0 +start_splay=1 [compaction_daemon] ; The delay, in seconds, between each check for which database and view indexes diff --git a/test/javascript/replicator_db_inc.js b/test/javascript/replicator_db_inc.js index 23f858768..46dcdd702 100644 --- a/test/javascript/replicator_db_inc.js +++ b/test/javascript/replicator_db_inc.js @@ -32,7 +32,7 @@ replicator_db.docs1 = [ } ]; -replicator_db.waitForRep = function waitForSeq(repDb, repDoc, state) { +replicator_db.waitForRep = function waitForSeq(repDb, repDoc, state, errorState) { var newRep, t0 = new Date(), t1, @@ -41,7 +41,8 @@ replicator_db.waitForRep = function waitForSeq(repDb, repDoc, state) { do { newRep = repDb.open(repDoc._id); t1 = new Date(); - } while (((t1 - t0) <= ms) && newRep._replication_state !== state); + } while (((t1 - t0) <= ms) && newRep._replication_state !== state && (!errorState || newRep._replication_state !== errorState)); + return newRep ? newRep._replication_state : null; } replicator_db.waitForSeq = function waitForSeq(sourceDb, targetDb) { @@ -93,4 +94,4 @@ replicator_db.populate_db = function populate_db(db, docs) { delete d._rev; T(db.save(d).ok); } -}
\ No newline at end of file +} diff --git a/test/javascript/tests/replicator_db_bad_rep_id.js b/test/javascript/tests/replicator_db_bad_rep_id.js index 8f57eb04f..0c064c394 100644 --- a/test/javascript/tests/replicator_db_bad_rep_id.js +++ b/test/javascript/tests/replicator_db_bad_rep_id.js @@ -11,14 +11,16 @@ // the License. couchTests.replicator_db_bad_rep_id = function(debug) { - return console.log('TODO'); + //return console.log('TODO'); if (debug) debugger; var populate_db = replicator_db.populate_db; var docs1 = replicator_db.docs1; + // TODO: dice DBs (at least target) var dbA = replicator_db.dbA; var dbB = replicator_db.dbB; - var repDb = replicator_db.repDb; + //var repDb = replicator_db.repDb; + var replDb = new CouchDB("_replicator"); var wait = replicator_db.wait; var waitForRep = replicator_db.waitForRep; var waitForSeq = replicator_db.waitForSeq; @@ -33,9 +35,9 @@ couchTests.replicator_db_bad_rep_id = function(debug) { target: dbB.name, replication_id: "1234abc" }; - T(repDb.save(repDoc).ok); + T(replDb.save(repDoc).ok); - waitForRep(repDb, repDoc, "completed"); + T(waitForRep(replDb, repDoc, "completed", "error") == "completed"); for (var i = 0; i < docs1.length; i++) { var doc = docs1[i]; var copy = dbB.open(doc._id); @@ -43,7 +45,7 @@ couchTests.replicator_db_bad_rep_id = function(debug) { T(copy.value === doc.value); } - var repDoc1 = repDb.open(repDoc._id); + var repDoc1 = replDb.open(repDoc._id); T(repDoc1 !== null); T(repDoc1.source === repDoc.source); T(repDoc1.target === repDoc.target); @@ -54,7 +56,7 @@ couchTests.replicator_db_bad_rep_id = function(debug) { T(repDoc1._replication_id !== "1234abc"); } - var server_config = [ + /*var server_config = [ { section: "couch_httpd_auth", key: "iterations", @@ -63,15 +65,39 @@ couchTests.replicator_db_bad_rep_id = function(debug) { { section: "replicator", key: "db", - value: repDb.name + value: null //repDb.name } - ]; + ];*/ - repDb.deleteDb(); - run_on_modified_server(server_config, rep_doc_with_bad_rep_id); + //repDb.deleteDb(); + // don't run on modified server as it would be strange on cluster + // but use "normal" replication DB, create a doc, reliably clear after run + // on delete fail, the next tests would all fail + function handleReplDoc(show) { + var replDoc = replDb.open("foo_rep"); + if(replDoc!=null) { + if(show) { + console.log(JSON.stringify(replDoc)); + } + //replDb.deleteDoc(replDoc); + } + } + + handleReplDoc(); + try { + rep_doc_with_bad_rep_id(); + } finally { + // cleanup or log + try { + handleReplDoc(true); + } catch (e2) { + console.log("Error during cleanup " + e2); + } + } + //run_on_modified_server(server_config, rep_doc_with_bad_rep_id); // cleanup - repDb.deleteDb(); + //repDb.deleteDb(); dbA.deleteDb(); dbB.deleteDb(); -}
\ No newline at end of file +} |