aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2017-03-29 10:20:10 -0400
committerWladimir J. van der Laan <laanwj@gmail.com>2017-03-31 11:47:50 +0200
commitecc523288cc655089d83f168e81ae1f249a3ae88 (patch)
tree0362381a38e2d7e48e50a877501703eddc9fd8e1
parent04c21afcdf0ed664c1fddff17d066cc2de552b54 (diff)
downloadbitcoin-ecc523288cc655089d83f168e81ae1f249a3ae88.tar.xz
Check stderr when testing bitcoin-tx
Github-Pull: #10130 Rebased-From: 21704f6334d2a4bd140c6e3260c4bfa3f3157bad
-rw-r--r--src/test/bctest.py12
-rw-r--r--src/test/data/bitcoin-util-test.json4
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",