13#error JSON_TEST_SRC must point to test source directory 
   17#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) 
   23#define d_assert(expr) { if (!(expr)) { test_failed = true; fprintf(stderr, "%s failed\n", filename.c_str()); } }
 
   24#define f_assert(expr) { if (!(expr)) { test_failed = true; fprintf(stderr, "%s failed\n", __func__); } }
 
   26static std::string 
rtrim(std::string s)
 
   28    s.erase(s.find_last_not_of(
" \n\r\t")+1);
 
   32static void runtest(std::string filename, 
const std::string& jdata)
 
   34        std::string 
prefix = filename.substr(0, 4);
 
   36        bool wantPass = (
prefix == 
"pass") || (
prefix == 
"roun");
 
   37        bool wantFail = (
prefix == 
"fail");
 
   38        bool wantRoundTrip = (
prefix == 
"roun");
 
   39        assert(wantPass || wantFail);
 
   42        bool testResult = val.
read(jdata);
 
   51            std::string odata = val.
write(0, 0);
 
   58        std::string basename(filename_);
 
   59        std::string filename = 
srcdir + 
"/" + basename;
 
   60        FILE *f = 
fopen(filename.c_str(), 
"r");
 
   67                int bread = fread(buf, 1, 
sizeof(buf), f);
 
   70                std::string s(buf, bread);
 
  144    testResult = val.
read(
"[\"\\u0022\"]");
 
  148    testResult = val.
read(
"[\"\\u0191\"]");
 
  150    f_assert(val[0].get_str() == 
"\xc6\x91");
 
  152    testResult = val.
read(
"[\"\\u2191\"]");
 
  154    f_assert(val[0].get_str() == 
"\xe2\x86\x91");
 
  156    testResult = val.
read(
"[\"\\ud834\\udd61\"]");
 
  158    f_assert(val[0].get_str() == 
"\xf0\x9d\x85\xa1");
 
  161int main (
int argc, 
char *argv[])
 
std::string write(unsigned int prettyIndent=0, unsigned int indentLevel=0) const
bool read(const char *raw, size_t len)
FILE * fopen(const fs::path &p, const char *mode)
int main(int argc, char *argv[])
static const char * filenames[]
static std::string rtrim(std::string s)
void unescape_unicode_test()
static void runtest(std::string filename, const std::string &jdata)
static void runtest_file(const char *filename_)
std::string srcdir(JSON_TEST_SRC)