Add bitcoin-tx tests
Testing: delin, delout, locktime, and basic createrawtransaction-like functionality.
This commit is contained in:
parent
335e3a5c95
commit
df4d61e681
@ -8,7 +8,12 @@ EXTRA_DIST += \
|
|||||||
test/bctest.py \
|
test/bctest.py \
|
||||||
test/bitcoin-util-test.py \
|
test/bitcoin-util-test.py \
|
||||||
test/data/bitcoin-util-test.json \
|
test/data/bitcoin-util-test.json \
|
||||||
test/data/blanktx.hex
|
test/data/blanktx.hex \
|
||||||
|
test/data/tt-delin1-out.hex \
|
||||||
|
test/data/tt-delout1-out.hex \
|
||||||
|
test/data/tt-locktime317000-out.hex \
|
||||||
|
test/data/tx394b54bb.hex \
|
||||||
|
test/data/txcreate1.hex
|
||||||
|
|
||||||
JSON_TEST_FILES = \
|
JSON_TEST_FILES = \
|
||||||
test/data/script_valid.json \
|
test/data/script_valid.json \
|
||||||
|
@ -17,8 +17,11 @@ def bctest(testDir, testObj):
|
|||||||
inputData = open(filename).read()
|
inputData = open(filename).read()
|
||||||
stdinCfg = subprocess.PIPE
|
stdinCfg = subprocess.PIPE
|
||||||
|
|
||||||
outputFn = testObj['output_cmp']
|
outputFn = None
|
||||||
outputData = open(testDir + "/" + outputFn).read()
|
outputData = None
|
||||||
|
if "output_cmp" in testObj:
|
||||||
|
outputFn = testObj['output_cmp']
|
||||||
|
outputData = open(testDir + "/" + outputFn).read()
|
||||||
|
|
||||||
proc = subprocess.Popen(execargs, stdin=stdinCfg, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(execargs, stdin=stdinCfg, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
try:
|
try:
|
||||||
@ -27,10 +30,17 @@ def bctest(testDir, testObj):
|
|||||||
print("OSError, Failed to execute " + execargs[0])
|
print("OSError, Failed to execute " + execargs[0])
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
if outs[0] != outputData:
|
if outputData and (outs[0] != outputData):
|
||||||
print("Output data mismatch for " + outputFn)
|
print("Output data mismatch for " + outputFn)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
wantRC = 0
|
||||||
|
if "return_code" in testObj:
|
||||||
|
wantRC = testObj['return_code']
|
||||||
|
if proc.returncode != wantRC:
|
||||||
|
print("Return code mismatch for " + outputFn)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def bctester(testDir, input_basename):
|
def bctester(testDir, input_basename):
|
||||||
input_filename = testDir + "/" + input_basename
|
input_filename = testDir + "/" + input_basename
|
||||||
raw_data = open(input_filename).read()
|
raw_data = open(input_filename).read()
|
||||||
|
@ -5,5 +5,34 @@
|
|||||||
{ "exec": ["./bitcoin-tx", "-"],
|
{ "exec": ["./bitcoin-tx", "-"],
|
||||||
"input": "blanktx.hex",
|
"input": "blanktx.hex",
|
||||||
"output_cmp": "blanktx.hex"
|
"output_cmp": "blanktx.hex"
|
||||||
|
},
|
||||||
|
{ "exec": ["./bitcoin-tx", "-", "delin=1"],
|
||||||
|
"input": "tx394b54bb.hex",
|
||||||
|
"output_cmp": "tt-delin1-out.hex"
|
||||||
|
},
|
||||||
|
{ "exec": ["./bitcoin-tx", "-", "delin=31"],
|
||||||
|
"input": "tx394b54bb.hex",
|
||||||
|
"return_code": 1
|
||||||
|
},
|
||||||
|
{ "exec": ["./bitcoin-tx", "-", "delout=1"],
|
||||||
|
"input": "tx394b54bb.hex",
|
||||||
|
"output_cmp": "tt-delout1-out.hex"
|
||||||
|
},
|
||||||
|
{ "exec": ["./bitcoin-tx", "-", "delout=2"],
|
||||||
|
"input": "tx394b54bb.hex",
|
||||||
|
"return_code": 1
|
||||||
|
},
|
||||||
|
{ "exec": ["./bitcoin-tx", "-", "locktime=317000"],
|
||||||
|
"input": "tx394b54bb.hex",
|
||||||
|
"output_cmp": "tt-locktime317000-out.hex"
|
||||||
|
},
|
||||||
|
{ "exec":
|
||||||
|
["./bitcoin-tx", "-create",
|
||||||
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
"in=bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c:18",
|
||||||
|
"in=22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc:1",
|
||||||
|
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
|
||||||
|
"outaddr=4:1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"],
|
||||||
|
"output_cmp": "txcreate1.hex"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
1
src/test/data/tt-delin1-out.hex
Normal file
1
src/test/data/tt-delin1-out.hex
Normal file
File diff suppressed because one or more lines are too long
1
src/test/data/tt-delout1-out.hex
Normal file
1
src/test/data/tt-delout1-out.hex
Normal file
File diff suppressed because one or more lines are too long
1
src/test/data/tt-locktime317000-out.hex
Normal file
1
src/test/data/tt-locktime317000-out.hex
Normal file
File diff suppressed because one or more lines are too long
1
src/test/data/tx394b54bb.hex
Normal file
1
src/test/data/tx394b54bb.hex
Normal file
File diff suppressed because one or more lines are too long
1
src/test/data/txcreate1.hex
Normal file
1
src/test/data/txcreate1.hex
Normal file
@ -0,0 +1 @@
|
|||||||
|
01000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000
|
Loading…
Reference in New Issue
Block a user