diff options
author | John Newbery <john@johnnewbery.com> | 2017-03-29 10:20:10 -0400 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2017-03-31 11:47:50 +0200 |
commit | ecc523288cc655089d83f168e81ae1f249a3ae88 (patch) | |
tree | 0362381a38e2d7e48e50a877501703eddc9fd8e1 | |
parent | 04c21afcdf0ed664c1fddff17d066cc2de552b54 (diff) |
Check stderr when testing bitcoin-tx
Github-Pull: #10130
Rebased-From: 21704f6334d2a4bd140c6e3260c4bfa3f3157bad
-rw-r--r-- | src/test/bctest.py | 12 | ||||
-rw-r--r-- | src/test/data/bitcoin-util-test.json | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/test/bctest.py b/src/test/bctest.py index adc5d0e418..7ea15dfddc 100644 --- a/src/test/bctest.py +++ b/src/test/bctest.py @@ -98,6 +98,18 @@ def bctest(testDir, testObj, exeext): logging.error("Return code mismatch for " + outputFn) raise Exception + if "error_txt" in testObj: + want_error = testObj["error_txt"] + # Compare error text + # TODO: ideally, we'd compare the strings exactly and also assert + # That stderr is empty if no errors are expected. However, bitcoin-tx + # emits DISPLAY errors when running as a windows application on + # linux through wine. Just assert that the expected error text appears + # somewhere in stderr. + if want_error not in outs[1]: + logging.error("Error mismatch:\n" + "Expected: " + want_error + "\nReceived: " + outs[1].rstrip()) + raise Exception + def bctester(testDir, input_basename, buildenv): """ Loads and parses the input file, runs all tests and reports results""" input_filename = testDir + "/" + input_basename diff --git a/src/test/data/bitcoin-util-test.json b/src/test/data/bitcoin-util-test.json index a80ab51901..2a0a8f1a99 100644 --- a/src/test/data/bitcoin-util-test.json +++ b/src/test/data/bitcoin-util-test.json @@ -42,6 +42,7 @@ "args": ["-", "delin=31"], "input": "tx394b54bb.hex", "return_code": 1, + "error_txt": "error: Invalid TX input index '31'", "description": "Attempts to delete an input with a bad index from a transaction. Expected to fail." }, { "exec": "./bitcoin-tx", @@ -60,6 +61,7 @@ "args": ["-", "delout=2"], "input": "tx394b54bb.hex", "return_code": 1, + "error_txt": "error: Invalid TX output index '2'", "description": "Attempts to delete an output with a bad index from a transaction. Expected to fail." }, { "exec": "./bitcoin-tx", @@ -233,6 +235,7 @@ "in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0", "outdata=4:badhexdata"], "return_code": 1, + "error_txt": "error: invalid TX output data", "description": "Attempts to create a new transaction with one input and an output with malformed hex data. Expected to fail" }, { "exec": "./bitcoin-tx", @@ -241,6 +244,7 @@ "in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0", "outdata=badhexdata"], "return_code": 1, + "error_txt": "error: invalid TX output data", "description": "Attempts to create a new transaction with one input and an output with no value and malformed hex data. Expected to fail" }, { "exec": "./bitcoin-tx", |