diff --git a/test/perftest/schematest.cpp b/test/perftest/schematest.cpp index 7d27344..8237744 100644 --- a/test/perftest/schematest.cpp +++ b/test/perftest/schematest.cpp @@ -51,6 +51,8 @@ RAPIDJSON_DIAG_POP class Schema : public PerfTest { public: + typedef GenericSchemaDocument > SchemaDocumentType; + Schema() {} virtual void SetUp() { @@ -89,6 +91,8 @@ public: char jsonBuffer[65536]; MemoryPoolAllocator<> jsonAllocator(jsonBuffer, sizeof(jsonBuffer)); + char schemaBuffer[65536]; + MemoryPoolAllocator<> schemaAllocator(schemaBuffer, sizeof(schemaBuffer)); for (size_t i = 0; i < ARRAY_SIZE(filenames); i++) { char filename[FILENAME_MAX]; @@ -112,7 +116,7 @@ public: continue; TestSuite* ts = new TestSuite; - ts->schema = new SchemaDocument((*schemaItr)["schema"]); + ts->schema = new SchemaDocumentType((*schemaItr)["schema"], 0, 0, 0, &schemaAllocator); const Value& tests = (*schemaItr)["tests"]; for (Value::ConstValueIterator testItr = tests.Begin(); testItr != tests.End(); ++testItr) { @@ -187,7 +191,7 @@ protected: for (DocumentList::iterator itr = tests.begin(); itr != tests.end(); ++itr) delete *itr; } - SchemaDocument* schema; + SchemaDocumentType* schema; DocumentList tests; }; @@ -199,13 +203,14 @@ TEST_F(Schema, TestSuite) { char validatorBuffer[65536]; MemoryPoolAllocator<> validatorAllocator(validatorBuffer, sizeof(validatorBuffer)); - const int trialCount = 100000; + // DCOLES - Reduce number by a factor of 100 to make it more reasonable and inline with other test counts + const int trialCount = 1000; int testCount = 0; clock_t start = clock(); for (int i = 0; i < trialCount; i++) { for (TestSuiteList::const_iterator itr = testSuites.begin(); itr != testSuites.end(); ++itr) { const TestSuite& ts = **itr; - GenericSchemaValidator >, MemoryPoolAllocator<> > validator(*ts.schema, &validatorAllocator); + GenericSchemaValidator >, MemoryPoolAllocator<> > validator(*ts.schema, &validatorAllocator); for (DocumentList::const_iterator testItr = ts.tests.begin(); testItr != ts.tests.end(); ++testItr) { validator.Reset(); (*testItr)->Accept(validator);