mirror of https://gitee.com/bigwinds/arangodb
added test case
This commit is contained in:
parent
5a9305ca74
commit
adcc26c331
|
@ -48,11 +48,6 @@ static bool CreateIndex (SimpleHttpClient*, const string&, const string&, const
|
|||
// --SECTION-- version retrieval test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct VersionTest : public BenchmarkOperation {
|
||||
VersionTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -88,19 +83,10 @@ struct VersionTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- document CRUD append test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct DocumentCrudAppendTest : public BenchmarkOperation {
|
||||
DocumentCrudAppendTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -200,19 +186,98 @@ struct DocumentCrudAppendTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- shapes test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
struct ShapesTest : public BenchmarkOperation {
|
||||
ShapesTest ()
|
||||
: BenchmarkOperation () {
|
||||
}
|
||||
|
||||
~ShapesTest () {
|
||||
}
|
||||
|
||||
bool setUp (SimpleHttpClient* client) {
|
||||
return DeleteCollection(client, Collection) &&
|
||||
CreateCollection(client, Collection, 2);
|
||||
}
|
||||
|
||||
void tearDown () {
|
||||
}
|
||||
|
||||
string url (const int threadNumber, const size_t threadCounter, const size_t globalCounter) {
|
||||
const size_t mod = globalCounter % 3;
|
||||
|
||||
if (mod == 0) {
|
||||
return string("/_api/document?collection=" + Collection);
|
||||
}
|
||||
else {
|
||||
size_t keyId = (size_t) (globalCounter / 3);
|
||||
const string key = "testkey" + StringUtils::itoa(keyId);
|
||||
|
||||
return string("/_api/document/" + Collection + "/" + key);
|
||||
}
|
||||
}
|
||||
|
||||
HttpRequest::HttpRequestType type (const int threadNumber, const size_t threadCounter, const size_t globalCounter) {
|
||||
const size_t mod = globalCounter % 3;
|
||||
|
||||
if (mod == 0) {
|
||||
return HttpRequest::HTTP_REQUEST_POST;
|
||||
}
|
||||
else if (mod == 1) {
|
||||
return HttpRequest::HTTP_REQUEST_GET;
|
||||
}
|
||||
else {
|
||||
return HttpRequest::HTTP_REQUEST_DELETE;
|
||||
}
|
||||
}
|
||||
|
||||
const char* payload (size_t* length, const int threadNumber, const size_t threadCounter, const size_t globalCounter, bool* mustFree) {
|
||||
const size_t mod = globalCounter % 3;
|
||||
|
||||
if (mod == 0) {
|
||||
const uint64_t n = Complexity;
|
||||
TRI_string_buffer_t* buffer;
|
||||
|
||||
buffer = TRI_CreateSizedStringBuffer(TRI_UNKNOWN_MEM_ZONE, 256);
|
||||
TRI_AppendStringStringBuffer(buffer, "{\"_key\":\"");
|
||||
|
||||
size_t keyId = (size_t) (globalCounter / 3);
|
||||
const string key = "testkey" + StringUtils::itoa(keyId);
|
||||
TRI_AppendStringStringBuffer(buffer, key.c_str());
|
||||
TRI_AppendStringStringBuffer(buffer, "\"");
|
||||
|
||||
for (uint64_t i = 1; i <= n; ++i) {
|
||||
TRI_AppendStringStringBuffer(buffer, ",\"value");
|
||||
TRI_AppendUInt64StringBuffer(buffer, (uint64_t) ((globalCounter + i) % (Operations / 10)));
|
||||
TRI_AppendStringStringBuffer(buffer, "\":\"");
|
||||
TRI_AppendStringStringBuffer(buffer, "some bogus string value to fill up the datafile...");
|
||||
}
|
||||
|
||||
TRI_AppendStringStringBuffer(buffer, "\"}");
|
||||
|
||||
*length = TRI_LengthStringBuffer(buffer);
|
||||
*mustFree = true;
|
||||
char* ptr = TRI_StealStringBuffer(buffer);
|
||||
TRI_FreeStringBuffer(TRI_UNKNOWN_MEM_ZONE, buffer);
|
||||
|
||||
return (const char*) ptr;
|
||||
}
|
||||
else {
|
||||
*length = 0;
|
||||
*mustFree = false;
|
||||
return (const char*) 0;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- document CRUD test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct DocumentCrudTest : public BenchmarkOperation {
|
||||
DocumentCrudTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -315,19 +380,10 @@ struct DocumentCrudTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- edge CRUD test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct EdgeCrudTest : public BenchmarkOperation {
|
||||
EdgeCrudTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -432,19 +488,10 @@ struct EdgeCrudTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- skiplist test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct SkiplistTest : public BenchmarkOperation {
|
||||
SkiplistTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -535,19 +582,10 @@ struct SkiplistTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- hash test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct HashTest : public BenchmarkOperation {
|
||||
HashTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -638,19 +676,10 @@ struct HashTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- document creation test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct DocumentCreationTest : public BenchmarkOperation {
|
||||
DocumentCreationTest ()
|
||||
: BenchmarkOperation (),
|
||||
|
@ -710,19 +739,10 @@ struct DocumentCreationTest : public BenchmarkOperation {
|
|||
size_t _length;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- document creation test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct CollectionCreationTest : public BenchmarkOperation {
|
||||
CollectionCreationTest ()
|
||||
: BenchmarkOperation (),
|
||||
|
@ -791,11 +811,6 @@ struct CollectionCreationTest : public BenchmarkOperation {
|
|||
// --SECTION-- transaction test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TransactionAqlTest : public BenchmarkOperation {
|
||||
TransactionAqlTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -899,19 +914,10 @@ struct TransactionAqlTest : public BenchmarkOperation {
|
|||
string _c3;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- transaction test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TransactionCountTest : public BenchmarkOperation {
|
||||
TransactionCountTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -956,19 +962,10 @@ struct TransactionCountTest : public BenchmarkOperation {
|
|||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- transaction test
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TransactionMultiTest : public BenchmarkOperation {
|
||||
TransactionMultiTest ()
|
||||
: BenchmarkOperation () {
|
||||
|
@ -1048,26 +1045,12 @@ struct TransactionMultiTest : public BenchmarkOperation {
|
|||
// --SECTION-- private variables
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BenchmarkCounter<uint64_t>* CollectionCreationTest::_counter = 0;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- private functions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup Benchmark
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief delete a collection
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1211,6 +1194,9 @@ static BenchmarkOperation* GetTestCase (const string& name) {
|
|||
if (name == "edge") {
|
||||
return new EdgeCrudTest();
|
||||
}
|
||||
if (name == "shapes") {
|
||||
return new ShapesTest();
|
||||
}
|
||||
if (name == "crud") {
|
||||
return new DocumentCrudTest();
|
||||
}
|
||||
|
@ -1230,10 +1216,6 @@ static BenchmarkOperation* GetTestCase (const string& name) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- END-OF-FILE
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue