"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "test/perftest/perftest.h" between
rapidjson-1.0.2.tar.gz and rapidjson-1.1.0.tar.gz

About: RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM style API.

perftest.h  (rapidjson-1.0.2):perftest.h  (rapidjson-1.1.0)
skipping to change at line 33 skipping to change at line 33
(((x)*100000) + ((y)*100) + (z)) (((x)*100000) + ((y)*100) + (z))
// __SSE2__ and __SSE4_2__ are recognized by gcc, clang, and the Intel compiler. // __SSE2__ and __SSE4_2__ are recognized by gcc, clang, and the Intel compiler.
// We use -march=native with gmake to enable -msse2 and -msse4.2, if supported. // We use -march=native with gmake to enable -msse2 and -msse4.2, if supported.
#if defined(__SSE4_2__) #if defined(__SSE4_2__)
# define RAPIDJSON_SSE42 # define RAPIDJSON_SSE42
#elif defined(__SSE2__) #elif defined(__SSE2__)
# define RAPIDJSON_SSE2 # define RAPIDJSON_SSE2
#endif #endif
#define RAPIDJSON_HAS_STDSTRING 1
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Google Test // Google Test
#ifdef __cplusplus #ifdef __cplusplus
// gtest indirectly included inttypes.h, without __STDC_CONSTANT_MACROS. // gtest indirectly included inttypes.h, without __STDC_CONSTANT_MACROS.
#ifndef __STDC_CONSTANT_MACROS #ifndef __STDC_CONSTANT_MACROS
# define __STDC_CONSTANT_MACROS 1 // required by C++ standard # define __STDC_CONSTANT_MACROS 1 // required by C++ standard
#endif #endif
skipping to change at line 68 skipping to change at line 70
#include <crtdbg.h> #include <crtdbg.h>
#pragma warning(disable : 4996) // 'function': was declared deprecated #pragma warning(disable : 4996) // 'function': was declared deprecated
#endif #endif
//! Base class for all performance tests //! Base class for all performance tests
class PerfTest : public ::testing::Test { class PerfTest : public ::testing::Test {
public: public:
PerfTest() : filename_(), json_(), length_(), whitespace_(), whitespace_leng th_() {} PerfTest() : filename_(), json_(), length_(), whitespace_(), whitespace_leng th_() {}
virtual void SetUp() { virtual void SetUp() {
{
const char *paths[] = { const char *paths[] = {
"data/sample.json", "data/sample.json",
"bin/data/sample.json", "bin/data/sample.json",
"../bin/data/sample.json", "../bin/data/sample.json",
"../../bin/data/sample.json", "../../bin/data/sample.json",
"../../../bin/data/sample.json" "../../../bin/data/sample.json"
}; };
FILE *fp = 0;
for (size_t i = 0; i < sizeof(paths) / sizeof(paths[0]); i++) { FILE *fp = 0;
fp = fopen(filename_ = paths[i], "rb"); for (size_t i = 0; i < sizeof(paths) / sizeof(paths[0]); i++) {
if (fp) fp = fopen(filename_ = paths[i], "rb");
break; if (fp)
break;
}
ASSERT_TRUE(fp != 0);
fseek(fp, 0, SEEK_END);
length_ = (size_t)ftell(fp);
fseek(fp, 0, SEEK_SET);
json_ = (char*)malloc(length_ + 1);
ASSERT_EQ(length_, fread(json_, 1, length_, fp));
json_[length_] = '\0';
fclose(fp);
} }
ASSERT_TRUE(fp != 0);
fseek(fp, 0, SEEK_END);
length_ = (size_t)ftell(fp);
fseek(fp, 0, SEEK_SET);
json_ = (char*)malloc(length_ + 1);
ASSERT_EQ(length_, fread(json_, 1, length_, fp));
json_[length_] = '\0';
fclose(fp);
// whitespace test // whitespace test
whitespace_length_ = 1024 * 1024; {
whitespace_ = (char *)malloc(whitespace_length_ + 4); whitespace_length_ = 1024 * 1024;
char *p = whitespace_; whitespace_ = (char *)malloc(whitespace_length_ + 4);
for (size_t i = 0; i < whitespace_length_; i += 4) { char *p = whitespace_;
*p++ = ' '; for (size_t i = 0; i < whitespace_length_; i += 4) {
*p++ = '\n'; *p++ = ' ';
*p++ = '\r'; *p++ = '\n';
*p++ = '\t'; *p++ = '\r';
*p++ = '\t';
}
*p++ = '[';
*p++ = '0';
*p++ = ']';
*p++ = '\0';
}
// types test
{
const char *typespaths[] = {
"data/types",
"bin/types",
"../bin/types",
"../../bin/types/",
"../../../bin/types"
};
const char* typesfilenames[] = {
"booleans.json",
"floats.json",
"guids.json",
"integers.json",
"mixed.json",
"nulls.json",
"paragraphs.json"
};
for (size_t j = 0; j < sizeof(typesfilenames) / sizeof(typesfilename
s[0]); j++) {
types_[j] = 0;
for (size_t i = 0; i < sizeof(typespaths) / sizeof(typespaths[0]
); i++) {
char filename[256];
sprintf(filename, "%s/%s", typespaths[i], typesfilenames[j])
;
if (FILE* fp = fopen(filename, "rb")) {
fseek(fp, 0, SEEK_END);
typesLength_[j] = (size_t)ftell(fp);
fseek(fp, 0, SEEK_SET);
types_[j] = (char*)malloc(typesLength_[j] + 1);
ASSERT_EQ(typesLength_[j], fread(types_[j], 1, typesLeng
th_[j], fp));
types_[j][typesLength_[j]] = '\0';
fclose(fp);
break;
}
}
}
} }
*p++ = '[';
*p++ = '0';
*p++ = ']';
*p++ = '\0';
} }
virtual void TearDown() { virtual void TearDown() {
free(json_); free(json_);
free(whitespace_); free(whitespace_);
json_ = 0; json_ = 0;
whitespace_ = 0; whitespace_ = 0;
for (size_t i = 0; i < 7; i++) {
free(types_[i]);
types_[i] = 0;
}
} }
private: private:
PerfTest(const PerfTest&); PerfTest(const PerfTest&);
PerfTest& operator=(const PerfTest&); PerfTest& operator=(const PerfTest&);
protected: protected:
const char* filename_; const char* filename_;
char *json_; char *json_;
size_t length_; size_t length_;
char *whitespace_; char *whitespace_;
size_t whitespace_length_; size_t whitespace_length_;
char *types_[7];
size_t typesLength_[7];
static const size_t kTrialCount = 1000; static const size_t kTrialCount = 1000;
}; };
#endif // __cplusplus #endif // __cplusplus
#endif // PERFTEST_H_ #endif // PERFTEST_H_
 End of changes. 7 change blocks. 
34 lines changed or deleted 89 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)