mirror of https://gitee.com/bigwinds/arangodb
test fixes
This commit is contained in:
parent
07e43276c6
commit
d9c5877054
|
@ -52,6 +52,12 @@ Overview
|
|||
13. the HTTP API for modifying documents (/_api/document) does not return the `error`
|
||||
attribute with a value of `false` in case an operation succeeds.
|
||||
|
||||
14. calling either collection.edges(), collection.outEdges(), collection.inEdges()
|
||||
with an array of edge ids will now make the edge ids unique before returning the
|
||||
connected edges. This is probably desired anyway, as results will be returned only
|
||||
once per distinct input edge id. However, it may break client applications that
|
||||
rely on the old behavior.
|
||||
|
||||
|
||||
### New capabilities:
|
||||
|
||||
|
|
|
@ -1571,7 +1571,6 @@ int TRI_CreateDatabaseServer(TRI_server_t* server, TRI_voc_tick_t databaseId,
|
|||
try {
|
||||
builder.openObject();
|
||||
builder.add("database", VPackValue(databaseId));
|
||||
builder.add("data", VPackValue(VPackValueType::Object));
|
||||
|
||||
// name not yet in use
|
||||
defaults->toVelocyPack(builder);
|
||||
|
@ -1677,7 +1676,6 @@ int TRI_CreateDatabaseServer(TRI_server_t* server, TRI_voc_tick_t databaseId,
|
|||
|
||||
// write marker into log
|
||||
if (writeMarker) {
|
||||
builder.close(); // close inner
|
||||
builder.close();
|
||||
res = WriteCreateMarker(databaseId, builder.slice());
|
||||
}
|
||||
|
|
|
@ -3312,7 +3312,6 @@ const recoveryTests = [
|
|||
"indexes-sparse-skiplist",
|
||||
"indexes-geo",
|
||||
"edges",
|
||||
"cap-constraint",
|
||||
"indexes",
|
||||
"many-inserts",
|
||||
"many-updates",
|
||||
|
|
|
@ -1,112 +0,0 @@
|
|||
/*jshint globalstrict:false, strict:false, unused : false */
|
||||
/*global assertEqual */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief tests for dump/reload
|
||||
///
|
||||
/// @file
|
||||
///
|
||||
/// DISCLAIMER
|
||||
///
|
||||
/// Copyright 2010-2012 triagens GmbH, Cologne, Germany
|
||||
///
|
||||
/// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
/// you may not use this file except in compliance with the License.
|
||||
/// You may obtain a copy of the License at
|
||||
///
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
///
|
||||
/// Unless required by applicable law or agreed to in writing, software
|
||||
/// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
/// See the License for the specific language governing permissions and
|
||||
/// limitations under the License.
|
||||
///
|
||||
/// Copyright holder is triAGENS GmbH, Cologne, Germany
|
||||
///
|
||||
/// @author Jan Steemann
|
||||
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var db = require("@arangodb").db;
|
||||
var internal = require("internal");
|
||||
var jsunity = require("jsunity");
|
||||
|
||||
|
||||
function runSetup () {
|
||||
'use strict';
|
||||
internal.debugClearFailAt();
|
||||
|
||||
var i, j, c;
|
||||
for (i = 0; i < 5; ++i) {
|
||||
db._drop("UnitTestsRecovery" + i);
|
||||
c = db._create("UnitTestsRecovery" + i);
|
||||
|
||||
c.ensureCapConstraint((i + 1) * 10);
|
||||
|
||||
for (j = 0; j < 100; ++j) {
|
||||
c.save({ _key: "test" + j, value1: i, value2: j });
|
||||
}
|
||||
}
|
||||
|
||||
db._drop("test");
|
||||
c = db._create("test");
|
||||
c.save({ _key: "crashme" }, true);
|
||||
|
||||
internal.debugSegfault("crashing server");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test suite
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function recoverySuite () {
|
||||
'use strict';
|
||||
jsunity.jsUnity.attachAssertions();
|
||||
|
||||
return {
|
||||
setUp: function () {
|
||||
},
|
||||
tearDown: function () {
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test whether we can restore the trx data
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testCapConstraint : function () {
|
||||
var i, j, c, n, doc;
|
||||
for (i = 0; i < 5; ++i) {
|
||||
c = db._collection("UnitTestsRecovery" + i);
|
||||
|
||||
n = (i + 1) * 10;
|
||||
assertEqual(n, c.count());
|
||||
|
||||
for (j = 100 - n; j < 100; ++j) {
|
||||
doc = c.document("test" + j);
|
||||
assertEqual(i, doc.value1);
|
||||
assertEqual(j, doc.value2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief executes the test suite
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function main (argv) {
|
||||
'use strict';
|
||||
if (argv[1] === "setup") {
|
||||
runSetup();
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
jsunity.run(recoverySuite);
|
||||
return jsunity.done().status ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -46,7 +46,6 @@ function runSetup () {
|
|||
|
||||
c.ensureUniqueConstraint("value1");
|
||||
c.ensureUniqueSkiplist("value2");
|
||||
c.ensureCapConstraint(50);
|
||||
}
|
||||
|
||||
db._drop("test");
|
||||
|
@ -79,11 +78,11 @@ function recoverySuite () {
|
|||
var hash = null, skip = null;
|
||||
for (i = 0; i < 5; ++i) {
|
||||
c = db._collection("UnitTestsRecovery" + i);
|
||||
assertEqual(50, c.count());
|
||||
assertEqual(100, c.count());
|
||||
idx = c.getIndexes();
|
||||
assertEqual(4, idx.length);
|
||||
assertEqual(3, idx.length);
|
||||
|
||||
for (j = 1; j < 4; ++j) {
|
||||
for (j = 1; j < 3; ++j) {
|
||||
if (idx[j].type === 'hash') {
|
||||
hash = idx[j];
|
||||
}
|
||||
|
@ -95,13 +94,13 @@ function recoverySuite () {
|
|||
assertNotNull(hash);
|
||||
assertNotNull(skip);
|
||||
|
||||
for (j = 50; j < 100; ++j) {
|
||||
for (j = 0; j < 100; ++j) {
|
||||
doc = c.document("test" + j);
|
||||
assertEqual("foo" + j, doc.value1);
|
||||
assertEqual("bar" + j, doc.value2);
|
||||
|
||||
assertEqual(1, c.byExampleHash(hash.id, { value1: "foo" + j }).toArray().length);
|
||||
assertEqual(1, c.byExampleSkiplist(skip.id, { value2: "bar" + j }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value1: "foo" + j }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value2: "bar" + j }).toArray().length);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,6 @@ function runSetup () {
|
|||
|
||||
c.ensureHashIndex("value1");
|
||||
c.ensureSkiplist("value2");
|
||||
c.ensureCapConstraint(1000);
|
||||
}
|
||||
|
||||
// drop all indexes but primary
|
||||
|
@ -91,7 +90,7 @@ function recoverySuite () {
|
|||
|
||||
c = db._collection("UnitTestsRecovery4");
|
||||
idx = c.getIndexes();
|
||||
assertEqual(4, idx.length);
|
||||
assertEqual(3, idx.length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -93,7 +93,7 @@ function recoverySuite () {
|
|||
assertFalse(idx.sparse);
|
||||
assertEqual([ "value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleHash(idx.id, { value: i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value: i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery2");
|
||||
|
@ -102,7 +102,7 @@ function recoverySuite () {
|
|||
assertFalse(idx.sparse);
|
||||
assertEqual([ "a.value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleHash(idx.id, { "a.value": i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ "a.value": i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery3");
|
||||
|
@ -110,10 +110,10 @@ function recoverySuite () {
|
|||
assertFalse(idx.unique);
|
||||
assertFalse(idx.sparse);
|
||||
assertEqual([ "a", "b" ], idx.fields);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 2, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 2 }).toArray().length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -93,7 +93,7 @@ function recoverySuite () {
|
|||
assertFalse(idx.sparse);
|
||||
assertEqual([ "value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { value: i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value: i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery2");
|
||||
|
@ -102,7 +102,7 @@ function recoverySuite () {
|
|||
assertFalse(idx.sparse);
|
||||
assertEqual([ "a.value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { "a.value" : i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ "a.value" : i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery3");
|
||||
|
@ -110,10 +110,10 @@ function recoverySuite () {
|
|||
assertFalse(idx.unique);
|
||||
assertFalse(idx.sparse);
|
||||
assertEqual([ "a", "b" ], idx.fields);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 2, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 2 }).toArray().length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -93,7 +93,7 @@ function recoverySuite () {
|
|||
assertTrue(idx.sparse);
|
||||
assertEqual([ "value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleHash(idx.id, { value: i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value: i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery2");
|
||||
|
@ -102,7 +102,7 @@ function recoverySuite () {
|
|||
assertTrue(idx.sparse);
|
||||
assertEqual([ "a.value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleHash(idx.id, { "a.value": i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ "a.value": i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery3");
|
||||
|
@ -110,10 +110,10 @@ function recoverySuite () {
|
|||
assertFalse(idx.unique);
|
||||
assertTrue(idx.sparse);
|
||||
assertEqual([ "a", "b" ], idx.fields);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleHash(idx.id, { a: 2, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 2 }).toArray().length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -93,7 +93,7 @@ function recoverySuite () {
|
|||
assertTrue(idx.sparse);
|
||||
assertEqual([ "value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { value: i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value: i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery2");
|
||||
|
@ -102,7 +102,7 @@ function recoverySuite () {
|
|||
assertTrue(idx.sparse);
|
||||
assertEqual([ "a.value" ], idx.fields);
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { "a.value" : i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ "a.value" : i }).toArray().length);
|
||||
}
|
||||
|
||||
c = db._collection("UnitTestsRecovery3");
|
||||
|
@ -110,10 +110,10 @@ function recoverySuite () {
|
|||
assertFalse(idx.unique);
|
||||
assertTrue(idx.sparse);
|
||||
assertEqual([ "a", "b" ], idx.fields);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExampleSkiplist(idx.id, { a: 2, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 1, b: 2 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 1 }).toArray().length);
|
||||
assertEqual(250, c.byExample({ a: 2, b: 2 }).toArray().length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -41,7 +41,6 @@ function runSetup () {
|
|||
|
||||
c.ensureHashIndex("value1");
|
||||
c.ensureSkiplist("value2");
|
||||
c.ensureCapConstraint(5000);
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
c.save({ _key: "test" + i, value1: i, value2: "test" + (i % 10) });
|
||||
|
@ -88,25 +87,19 @@ function recoverySuite () {
|
|||
return 0;
|
||||
});
|
||||
|
||||
assertEqual(4, idx.length);
|
||||
assertEqual(3, idx.length);
|
||||
|
||||
assertEqual("primary", idx[0].type);
|
||||
assertEqual("hash", idx[1].type);
|
||||
assertFalse(idx[1].unique);
|
||||
assertFalse(idx[1].sparse);
|
||||
assertEqual([ "value1" ], idx[1].fields);
|
||||
var hash = idx[1];
|
||||
|
||||
assertEqual("skiplist", idx[2].type);
|
||||
assertFalse(idx[2].unique);
|
||||
assertFalse(idx[2].sparse);
|
||||
assertEqual([ "value2" ], idx[2].fields);
|
||||
var skip = idx[2];
|
||||
|
||||
assertEqual("cap", idx[3].type);
|
||||
assertEqual(5000, idx[3].size);
|
||||
assertEqual(0, idx[3].byteSize);
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
var doc = c.document("test" + i);
|
||||
assertEqual(i, doc.value1);
|
||||
|
@ -114,13 +107,13 @@ function recoverySuite () {
|
|||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
docs = c.byExampleHash(hash.id, { value1: i }).toArray();
|
||||
docs = c.byExample({ value1: i }).toArray();
|
||||
assertEqual(1, docs.length);
|
||||
assertEqual("test" + i, docs[0]._key);
|
||||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
docs = c.byExampleSkiplist(skip.id, { value2: "test" + (i % 10) }).toArray();
|
||||
docs = c.byExample({ value2: "test" + (i % 10) }).toArray();
|
||||
assertEqual(100, docs.length);
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,6 @@ function recoverySuite () {
|
|||
|
||||
testResumeRecoveryAll : function () {
|
||||
var c = db._collection("UnitTestsRecovery"), i, j, doc;
|
||||
var idx = c.getIndexes()[1];
|
||||
|
||||
assertEqual(50001, c.count());
|
||||
|
||||
|
@ -94,7 +93,7 @@ function recoverySuite () {
|
|||
doc = c.document("test" + i);
|
||||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual(i + 1, doc.value2);
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { value2: i + 1 }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value2: i + 1 }).toArray().length);
|
||||
}
|
||||
|
||||
for (j = 0; j < 4; ++j) {
|
||||
|
@ -103,7 +102,7 @@ function recoverySuite () {
|
|||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual("abc" + i, doc.value2);
|
||||
|
||||
assertEqual(4, c.byExampleSkiplist(idx.id, { value2: "abc" + i }).toArray().length);
|
||||
assertEqual(4, c.byExample({ value2: "abc" + i }).toArray().length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,6 @@ function recoverySuite () {
|
|||
|
||||
testResumeRecoveryOther : function () {
|
||||
var c = db._collection("UnitTestsRecovery"), i, j, doc;
|
||||
var idx = c.getIndexes()[1];
|
||||
|
||||
assertEqual(50001, c.count());
|
||||
|
||||
|
@ -94,7 +93,7 @@ function recoverySuite () {
|
|||
doc = c.document("test" + i);
|
||||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual(i + 1, doc.value2);
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { value2: i + 1 }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value2: i + 1 }).toArray().length);
|
||||
}
|
||||
|
||||
for (j = 0; j < 4; ++j) {
|
||||
|
@ -103,7 +102,7 @@ function recoverySuite () {
|
|||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual("abc" + i, doc.value2);
|
||||
|
||||
assertEqual(4, c.byExampleSkiplist(idx.id, { value2: "abc" + i }).toArray().length);
|
||||
assertEqual(4, c.byExample({ value2: "abc" + i }).toArray().length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,14 +70,13 @@ function recoverySuite () {
|
|||
|
||||
testResumeRecoverySimple : function () {
|
||||
var c = db._collection("UnitTestsRecovery"), doc;
|
||||
var idx = c.getIndexes()[1];
|
||||
|
||||
assertEqual(1, c.count());
|
||||
|
||||
doc = c.document("test");
|
||||
assertEqual(1, doc.foo);
|
||||
assertEqual(2, doc.bar);
|
||||
assertEqual(1, c.byExampleHash(idx.id, { foo: 1, bar: 2 }).toArray().length);
|
||||
assertEqual(1, c.byExample({ foo: 1, bar: 2 }).toArray().length);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -81,7 +81,6 @@ function recoverySuite () {
|
|||
|
||||
testResumeRecovery : function () {
|
||||
var c = db._collection("UnitTestsRecovery"), i, j, doc;
|
||||
var idx = c.getIndexes()[1];
|
||||
|
||||
assertEqual(50001, c.count());
|
||||
|
||||
|
@ -89,7 +88,7 @@ function recoverySuite () {
|
|||
doc = c.document("test" + i);
|
||||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual(i, doc.value2);
|
||||
assertEqual(1, c.byExampleSkiplist(idx.id, { value2: i }).toArray().length);
|
||||
assertEqual(1, c.byExample({ value2: i }).toArray().length);
|
||||
}
|
||||
|
||||
for (j = 0; j < 4; ++j) {
|
||||
|
@ -98,7 +97,7 @@ function recoverySuite () {
|
|||
assertEqual("test" + i, doc.value1);
|
||||
assertEqual("abc" + i, doc.value2);
|
||||
|
||||
assertEqual(4, c.byExampleSkiplist(idx.id, { value2: "abc" + i }).toArray().length);
|
||||
assertEqual(4, c.byExample({ value2: "abc" + i }).toArray().length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue