summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsebastianro <sebastianro@apache.org>2015-11-05 23:04:42 +0100
committersebastianro <sebastianro@apache.org>2015-11-12 21:56:05 +0100
commitd8408834b726174c4127614ee32ef86551bfa8b4 (patch)
treeb907305e19a4b77cce7f56c24b909187b3e0a9b8
parent01913cf27ad6444e05dfdb9844089155fef8db32 (diff)
downloadcouchdb-d8408834b726174c4127614ee32ef86551bfa8b4.tar.gz
Initial solutions for cluster testing
-rw-r--r--rel/overlay/etc/default.ini3
-rw-r--r--test/javascript/replicator_db_inc.js7
-rw-r--r--test/javascript/tests/replicator_db_bad_rep_id.js50
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
+}