Fix JSON pretty printing in script_tests
This commit is contained in:
parent
a9149688f8
commit
c7c664191f
1 changed files with 16 additions and 4 deletions
|
@ -381,6 +381,18 @@ public:
|
||||||
return creditTx.vout[0].scriptPubKey;
|
return creditTx.vout[0].scriptPubKey;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::string JSONPrettyPrint(const UniValue& univalue)
|
||||||
|
{
|
||||||
|
std::string ret = univalue.write(4);
|
||||||
|
// Workaround for libunivalue pretty printer, which puts a space between comma's and newlines
|
||||||
|
size_t pos = 0;
|
||||||
|
while ((pos = ret.find(" \n", pos)) != std::string::npos) {
|
||||||
|
ret.replace(pos, 2, "\n");
|
||||||
|
pos++;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(script_build)
|
BOOST_AUTO_TEST_CASE(script_build)
|
||||||
|
@ -651,11 +663,11 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
|
|
||||||
for (unsigned int idx = 0; idx < json_good.size(); idx++) {
|
for (unsigned int idx = 0; idx < json_good.size(); idx++) {
|
||||||
const UniValue& tv = json_good[idx];
|
const UniValue& tv = json_good[idx];
|
||||||
tests_good.insert(tv.get_array().write(1,4));
|
tests_good.insert(JSONPrettyPrint(tv.get_array()));
|
||||||
}
|
}
|
||||||
for (unsigned int idx = 0; idx < json_bad.size(); idx++) {
|
for (unsigned int idx = 0; idx < json_bad.size(); idx++) {
|
||||||
const UniValue& tv = json_bad[idx];
|
const UniValue& tv = json_bad[idx];
|
||||||
tests_bad.insert(tv.get_array().write(1,4));
|
tests_bad.insert(JSONPrettyPrint(tv.get_array()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -664,7 +676,7 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
|
|
||||||
BOOST_FOREACH(TestBuilder& test, good) {
|
BOOST_FOREACH(TestBuilder& test, good) {
|
||||||
test.Test(true);
|
test.Test(true);
|
||||||
std::string str = test.GetJSON().write(1,4);
|
std::string str = JSONPrettyPrint(test.GetJSON());
|
||||||
#ifndef UPDATE_JSON_TESTS
|
#ifndef UPDATE_JSON_TESTS
|
||||||
if (tests_good.count(str) == 0) {
|
if (tests_good.count(str) == 0) {
|
||||||
BOOST_CHECK_MESSAGE(false, "Missing auto script_valid test: " + test.GetComment());
|
BOOST_CHECK_MESSAGE(false, "Missing auto script_valid test: " + test.GetComment());
|
||||||
|
@ -674,7 +686,7 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
}
|
}
|
||||||
BOOST_FOREACH(TestBuilder& test, bad) {
|
BOOST_FOREACH(TestBuilder& test, bad) {
|
||||||
test.Test(false);
|
test.Test(false);
|
||||||
std::string str = test.GetJSON().write(1,4);
|
std::string str = JSONPrettyPrint(test.GetJSON());
|
||||||
#ifndef UPDATE_JSON_TESTS
|
#ifndef UPDATE_JSON_TESTS
|
||||||
if (tests_bad.count(str) == 0) {
|
if (tests_bad.count(str) == 0) {
|
||||||
BOOST_CHECK_MESSAGE(false, "Missing auto script_invalid test: " + test.GetComment());
|
BOOST_CHECK_MESSAGE(false, "Missing auto script_invalid test: " + test.GetComment());
|
||||||
|
|
Loading…
Reference in a new issue