mirror of https://gitee.com/bigwinds/arangodb
added tests
This commit is contained in:
parent
8ec5ad2a1e
commit
9695b25673
|
@ -210,6 +210,7 @@ unittests-recovery:
|
|||
@echo "================================================================================"
|
||||
@echo
|
||||
|
||||
$(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collector-oom"
|
||||
$(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-no-abort"
|
||||
$(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-no-commit"
|
||||
$(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="multi-database-durability"
|
||||
|
|
|
@ -1064,6 +1064,10 @@ int CollectorThread::executeTransferMarkers (TRI_document_collection_t* document
|
|||
int CollectorThread::queueOperations (triagens::wal::Logfile* logfile,
|
||||
CollectorCache*& cache) {
|
||||
TRI_voc_cid_t cid = cache->collectionId;
|
||||
|
||||
TRI_IF_FAILURE("CollectorThreadQueueOperations") {
|
||||
throw std::bad_alloc();
|
||||
}
|
||||
|
||||
MUTEX_LOCKER(_operationsQueueLock);
|
||||
|
||||
|
|
|
@ -30,6 +30,60 @@ var arangodb = require("org/arangodb");
|
|||
var testHelper = require("org/arangodb/test-helper").Helper;
|
||||
var db = arangodb.db;
|
||||
var internal = require("internal");
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- wal failures
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test suite
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function walFailureSuite () {
|
||||
var cn = "UnitTestsWal";
|
||||
var c;
|
||||
|
||||
return {
|
||||
|
||||
setUp: function () {
|
||||
internal.debugClearFailAt();
|
||||
db._drop(cn);
|
||||
c = db._create(cn);
|
||||
},
|
||||
|
||||
tearDown: function () {
|
||||
db._drop(cn);
|
||||
c = null;
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test bad alloc in collector
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testCollectorBadAlloc : function () {
|
||||
internal.flushWal(true, true);
|
||||
internal.debugSetFailAt("CollectorThreadQueueOperations");
|
||||
|
||||
var i = 0;
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
c.save({ _key: "test" + i });
|
||||
}
|
||||
|
||||
assertEqual(1000, c.count());
|
||||
internal.flushWal(true, false);
|
||||
|
||||
assertEqual(1000, c.count());
|
||||
internal.wait(6);
|
||||
internal.debugClearFailAt();
|
||||
|
||||
internal.wait(6);
|
||||
testHelper.waitUnload(c);
|
||||
|
||||
assertEqual(1000, c.count());
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- wal functions
|
||||
|
@ -39,7 +93,7 @@ var internal = require("internal");
|
|||
/// @brief test suite
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function WalSuite () {
|
||||
function walSuite () {
|
||||
var cn = "UnitTestsWal";
|
||||
var c;
|
||||
|
||||
|
@ -123,7 +177,10 @@ function WalSuite () {
|
|||
/// @brief executes the test suites
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
jsunity.run(WalSuite);
|
||||
if (internal.debugCanUseFailAt()) {
|
||||
jsunity.run(walFailureSuite);
|
||||
}
|
||||
jsunity.run(walSuite);
|
||||
|
||||
return jsunity.done();
|
||||
|
||||
|
|
Loading…
Reference in New Issue