/ src / univalue / test / test_json.cpp
test_json.cpp
 1  // Copyright 2014 BitPay Inc.
 2  // Copyright (c) 2017-present The Bitcoin Core developers
 3  // Distributed under the MIT software license, see the accompanying
 4  // file COPYING or https://opensource.org/license/mit.
 5  
 6  // Test program that can be called by the JSON test suite at
 7  // https://github.com/nst/JSONTestSuite.
 8  //
 9  // It reads JSON input from stdin and exits with code 0 if it can be parsed
10  // successfully. It also pretty prints the parsed JSON value to stdout.
11  
12  #include <univalue.h>
13  
14  #include <iostream>
15  #include <iterator>
16  #include <string>
17  
18  using namespace std;
19  
20  int main (int argc, char *argv[])
21  {
22      UniValue val;
23      if (val.read(string(istreambuf_iterator<char>(cin),
24                          istreambuf_iterator<char>()))) {
25          cout << val.write(1 /* prettyIndent */, 4 /* indentLevel */) << endl;
26          return 0;
27      } else {
28          cerr << "JSON Parse Error." << endl;
29          return 1;
30      }
31  }