summaryrefslogtreecommitdiff
path: root/jstests/dur/dur1.js
diff options
context:
space:
mode:
authorDwight <dwight@10gen.com>2010-12-09 15:12:27 -0500
committerDwight <dwight@10gen.com>2010-12-09 15:12:27 -0500
commit5e6a72e7c6512581f4c64fdadea90717e3449b85 (patch)
treecbcbfef835e8bb1096cef94e379c3667e47f0b3c /jstests/dur/dur1.js
parent4f435aadb650fd26d7d86c39210703a7a59a9bde (diff)
downloadmongo-5e6a72e7c6512581f4c64fdadea90717e3449b85.tar.gz
dur tests
Diffstat (limited to 'jstests/dur/dur1.js')
-rw-r--r--jstests/dur/dur1.js63
1 files changed, 54 insertions, 9 deletions
diff --git a/jstests/dur/dur1.js b/jstests/dur/dur1.js
index 86d2d0089de..db18f97ad72 100644
--- a/jstests/dur/dur1.js
+++ b/jstests/dur/dur1.js
@@ -1,23 +1,68 @@
// dur1.js
+// test durability
print("dur1.js");
-var name = "dur1";
+// directories
+var path1 = "dur1testnodur";
+var path2 = "dur1testdur";
-print(1);
+var step = 1;
+function log(str) {
+ if(str)
+ print("step " + step++ + " " + str);
+ else
+ print("step " + step++);
+}
-var n = startMongodTest(31001, name + "-nodur", 0, {});
+//stopMongo(30000, 9);
-print(2);
+// non-durable version
+log();
+var conn = startMongodEmpty("--port", 30000, "--dbpath", path1);
+log();
+var d = conn.getDB("test");
+d.foo.insert({ x: 1 });
+log();
+stopMongod(30000);
-var d = startMongodTest(31002, name + "-dur", 0, { dur: true });
+// durable version
+log();
+var conn = startMongodEmpty("--port", 30001, "--dbpath", path2, "--dur");
+log();
+var d = conn.getDB("test");
+d.foo.insert({ x: 1 });
+log();
-print(3);
+// wait for group commit. use getLastError(...) later when that is enhanced.
+sleep(400);
-//assert(n.foo.count() == 0);
+// kill the process hard
+stopMongod(30001, /*signal*/9);
-print(4);
+// journal file should be present, and non-empty as we killed hard
-//assert(d.foo.count() == 0);
+// restart and recover
+log();
+var conn = startMongodNoReset("--port", 30002, "--dbpath", path2, "--dur");
+log();
+var d = conn.getDB("test");
+print("count:" + d.foo.count());
+assert(d.foo.count() == 1);
+
+log("stop");
+stopMongod(30002);
+
+// at this point, after clean shutdown, there should be no journal files
+log("check no journal files");
+assert(ls(path2 + "/journal") == null);
+
+log("check data matches");
+var diff = run("diff", path1 + "/test.ns", path2 + "/test.ns");
+print(diff);
+assert(diff == "");
+var diff = run("diff", path1 + "/test.0", path2 + "/test.0");
+print(diff);
+assert(diff == "");
print("SUCCESS dur1.js");