aboutsummaryrefslogtreecommitdiff
path: root/src/test/script_tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/script_tests.cpp')
-rw-r--r--src/test/script_tests.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp
index 745df4bd7..a30e3ccbc 100644
--- a/src/test/script_tests.cpp
+++ b/src/test/script_tests.cpp
@@ -59,13 +59,15 @@ ParseScript(string s)
}
else if (starts_with(w, "0x") && IsHex(string(w.begin()+2, w.end())))
{
- // Hex data:
- result << ParseHex(string(w.begin()+2, w.end()));
+ // Raw hex data, inserted NOT pushed onto stack:
+ std::vector<unsigned char> raw = ParseHex(string(w.begin()+2, w.end()));
+ result.insert(result.end(), raw.begin(), raw.end());
}
- else if (s.size() >= 2 && starts_with(w, "'") && ends_with(w, "'"))
+ else if (w.size() >= 2 && starts_with(w, "'") && ends_with(w, "'"))
{
- // Single-quoted string, pushed as data:
- std::vector<unsigned char> value(s.begin()+1, s.end()-1);
+ // Single-quoted string, pushed as data. NOTE: this is poor-man's
+ // parsing, spaces/tabs/newlines in single-quoted strings won't work.
+ std::vector<unsigned char> value(w.begin()+1, w.end()-1);
result << value;
}
else if (mapOpNames.count(w))
@@ -100,7 +102,10 @@ read_json(const std::string& filename)
Value v;
if (!read_stream(ifs, v))
{
- BOOST_ERROR("Cound not find/open " << filename);
+ if (ifs.fail())
+ BOOST_ERROR("Cound not find/open " << filename);
+ else
+ BOOST_ERROR("JSON syntax error in " << filename);
return Array();
}
if (v.type() != array_type)