Sha256: c66ac657b8df25bb23b0ba80c79d0ca52d63d8caf4029f7bf62c0566b1f53cdd
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
// SARU : Tag fastjson // SARU : CxxLibs -L.. -lfastjson #include "saru_cxx.h" #include "fastjson/fastjson.h" struct TestFixture { struct ErrorHelper { ErrorHelper() : ec_(NULL) {} ~ErrorHelper() { delete ec_; } static void on_error( void* in_this, const fastjson::ErrorContext & ec ) { ErrorHelper * eh = static_cast<ErrorHelper*>(in_this); delete eh->ec_; eh->ec_ = new fastjson::ErrorContext(ec); } fastjson::ErrorContext * ec_; }; void number_as_key_ok() { unsigned char buffer[] = "xx"; fastjson::DictEntry dict_entries[1]; fastjson::Document doc; doc.mode = fastjson::mode::ext_any_as_key; doc.string_store = buffer; //Two single char entries doc.array_store = NULL; doc.dict_store = dict_entries; ErrorHelper eh; doc.user_error_callback = &ErrorHelper::on_error; doc.user_data = &eh; bool ok = fastjson::parse_doc( "{2:\"y\"}" , &doc ); saru_assert(ok); saru_assert( !eh.ec_ ); } void number_as_key_bad() { unsigned char buffer[] = "xx"; fastjson::DictEntry dict_entries[1]; fastjson::Document doc; doc.mode = 0; doc.string_store = buffer; //Two single char entries doc.array_store = NULL; doc.dict_store = dict_entries; ErrorHelper eh; doc.user_error_callback = &ErrorHelper::on_error; doc.user_data = &eh; //Create this first so it will exist after we get our error messages. std::string json("{2:\"y\"}"); bool ok = fastjson::parse_doc( json, &doc ); saru_assert(!ok); saru_assert( eh.ec_ ); saru_assert_equal("Unexpected character while parsing dict start", eh.ec_->mesg ); } }; int main() { saru::TestLogger logger; SARU_TEST( TestFixture::number_as_key_ok, logger); SARU_TEST( TestFixture::number_as_key_bad, logger); logger.printSummary(); return logger.allOK()?0:1; }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simdjson-0.3.0 | vendor/simdjson/dependencies/fastjson/tests/test_permissive_parse.cpp |