diff options
author | Cory Fields <cory-nospam-@coryfields.com> | 2013-09-10 15:18:09 -0400 |
---|---|---|
committer | Cory Fields <cory-nospam-@coryfields.com> | 2013-09-16 12:53:11 -0400 |
commit | 152e51c7af2624831cc4796e06bf3b72787cc85f (patch) | |
tree | d943cbc4159b2e88f0ee68907edf51b9f673d6a8 /src/test/canonical_tests.cpp | |
parent | 08081e393b6d3249c19395f91537a7d824ec7333 (diff) | |
download | bitcoin-152e51c7af2624831cc4796e06bf3b72787cc85f.tar.xz |
included-tests: generate binary data from test files for inclusion into test binaries
This change moves test data into the binaries rather than reading them from
the disk at runtime.
Advantages:
- Tests become distributable
- Cross-compile friendly. Build on one machine and execute in an arbitrary
location on another.
- Easier testing for backports. Users can verify that tests pass without having
to track down corresponding test data.
- More trustworthy test results and easier quality assurance as tests make
fewer assumptions about their environment.
- Tests could theoretically run at client/daemon startup and exit on failure.
Disadvantages:
- Required 'hexdump' build-dependency. This is a standard bsd tool that should
be usable everywhere. It is likely already installed on all build-machines.
- Tests can no longer be fudged after build by altering test-data.
Diffstat (limited to 'src/test/canonical_tests.cpp')
-rw-r--r-- | src/test/canonical_tests.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/test/canonical_tests.cpp b/src/test/canonical_tests.cpp index 09988da259..ec32ceb8a4 100644 --- a/src/test/canonical_tests.cpp +++ b/src/test/canonical_tests.cpp @@ -8,13 +8,15 @@ #include "key.h" #include "script.h" #include "util.h" +#include "data/sig_noncanonical.json.h" +#include "data/sig_canonical.json.h" using namespace std; using namespace json_spirit; // In script_tests.cpp -extern Array read_json(const std::string& filename); +extern Array read_json(const std::string& jsondata); BOOST_AUTO_TEST_SUITE(canonical_tests) @@ -58,7 +60,7 @@ bool static IsCanonicalSignature_OpenSSL(const std::vector<unsigned char> &vchSi BOOST_AUTO_TEST_CASE(script_canon) { - Array tests = read_json("sig_canonical.json"); + Array tests = read_json(std::string(json_tests::sig_canonical, json_tests::sig_canonical + sizeof(json_tests::sig_canonical))); BOOST_FOREACH(Value &tv, tests) { string test = tv.get_str(); @@ -72,7 +74,7 @@ BOOST_AUTO_TEST_CASE(script_canon) BOOST_AUTO_TEST_CASE(script_noncanon) { - Array tests = read_json("sig_noncanonical.json"); + Array tests = read_json(std::string(json_tests::sig_noncanonical, json_tests::sig_noncanonical + sizeof(json_tests::sig_noncanonical))); BOOST_FOREACH(Value &tv, tests) { string test = tv.get_str(); |