47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
#include <string>
|
|
#include <vector>
|
|
#include <iostream>
|
|
|
|
#include "simdjson.h"
|
|
|
|
bool single_document() {
|
|
std::cout << "Running " << __func__ << std::endl;
|
|
simdjson::dom::parser parser;
|
|
simdjson::dom::document_stream stream;
|
|
|
|
#if COMPILATION_TEST_USE_FAILING_CODE
|
|
auto error = parser.parse_many(json).get(R"({"hello": "world"})"_padded);
|
|
#else
|
|
auto json = R"({"hello": "world"})"_padded;
|
|
auto error = parser.parse_many(json).get(stream);
|
|
#endif
|
|
if(error) {
|
|
std::cerr << error << std::endl;
|
|
return false;
|
|
}
|
|
size_t count = 0;
|
|
for (auto doc : stream) {
|
|
if(doc.error()) {
|
|
std::cerr << "Unexpected error: " << doc.error() << std::endl;
|
|
return false;
|
|
}
|
|
std::string expected = R"({"hello":"world"})";
|
|
simdjson::dom::element this_document;
|
|
error = doc.get(this_document);
|
|
if(error) {
|
|
std::cerr << error << std::endl;
|
|
return false;
|
|
}
|
|
std::string answer = simdjson::minify(this_document);
|
|
if(answer != expected) {
|
|
std::cout << this_document << std::endl;
|
|
return false;
|
|
}
|
|
count += 1;
|
|
}
|
|
return count == 1;
|
|
}
|
|
|
|
int main() {
|
|
return single_document() ? EXIT_SUCCESS : EXIT_FAILURE;
|
|
} |