Browse Source

rpc-tests: Fix rpcbind_test after 0193fb8

Port number for RPC is no longer static as multiple tests could be
running at once.
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
49d86c7477
  1. 22
      qa/rpc-tests/rpcbind_test.py

22
qa/rpc-tests/rpcbind_test.py

@ -39,7 +39,7 @@ def run_bind_test(tmpdir, allow_ips, connect_to, addresses, expected):
stop_nodes(nodes) stop_nodes(nodes)
wait_bitcoinds() wait_bitcoinds()
def run_allowip_test(tmpdir, allow_ips, rpchost): def run_allowip_test(tmpdir, allow_ips, rpchost, rpcport):
''' '''
Start a node with rpcwallow IP, and request getinfo Start a node with rpcwallow IP, and request getinfo
at a non-localhost IP. at a non-localhost IP.
@ -48,7 +48,7 @@ def run_allowip_test(tmpdir, allow_ips, rpchost):
nodes = start_nodes(1, tmpdir, [base_args]) nodes = start_nodes(1, tmpdir, [base_args])
try: try:
# connect to node through non-loopback interface # connect to node through non-loopback interface
url = "http://rt:rt@%s:%d" % (rpchost, START_RPC_PORT,) url = "http://rt:rt@%s:%d" % (rpchost, rpcport,)
node = AuthServiceProxy(url) node = AuthServiceProxy(url)
node.getinfo() node.getinfo()
finally: finally:
@ -69,15 +69,17 @@ def run_test(tmpdir):
assert(not 'This test requires at least one non-loopback IPv4 interface') assert(not 'This test requires at least one non-loopback IPv4 interface')
print("Using interface %s for testing" % non_loopback_ip) print("Using interface %s for testing" % non_loopback_ip)
defaultport = rpc_port(0)
# check default without rpcallowip (IPv4 and IPv6 localhost) # check default without rpcallowip (IPv4 and IPv6 localhost)
run_bind_test(tmpdir, None, '127.0.0.1', [], run_bind_test(tmpdir, None, '127.0.0.1', [],
[('127.0.0.1', 11100), ('::1', 11100)]) [('127.0.0.1', defaultport), ('::1', defaultport)])
# check default with rpcallowip (IPv6 any) # check default with rpcallowip (IPv6 any)
run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', [], run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', [],
[('::0', 11100)]) [('::0', defaultport)])
# check only IPv4 localhost (explicit) # check only IPv4 localhost (explicit)
run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', ['127.0.0.1'], run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', ['127.0.0.1'],
[('127.0.0.1', START_RPC_PORT)]) [('127.0.0.1', defaultport)])
# check only IPv4 localhost (explicit) with alternative port # check only IPv4 localhost (explicit) with alternative port
run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1:32171', ['127.0.0.1:32171'], run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1:32171', ['127.0.0.1:32171'],
[('127.0.0.1', 32171)]) [('127.0.0.1', 32171)])
@ -86,18 +88,18 @@ def run_test(tmpdir):
[('127.0.0.1', 32171), ('127.0.0.1', 32172)]) [('127.0.0.1', 32171), ('127.0.0.1', 32172)])
# check only IPv6 localhost (explicit) # check only IPv6 localhost (explicit)
run_bind_test(tmpdir, ['[::1]'], '[::1]', ['[::1]'], run_bind_test(tmpdir, ['[::1]'], '[::1]', ['[::1]'],
[('::1', 11100)]) [('::1', defaultport)])
# check both IPv4 and IPv6 localhost (explicit) # check both IPv4 and IPv6 localhost (explicit)
run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', ['127.0.0.1', '[::1]'], run_bind_test(tmpdir, ['127.0.0.1'], '127.0.0.1', ['127.0.0.1', '[::1]'],
[('127.0.0.1', START_RPC_PORT), ('::1', START_RPC_PORT)]) [('127.0.0.1', defaultport), ('::1', defaultport)])
# check only non-loopback interface # check only non-loopback interface
run_bind_test(tmpdir, [non_loopback_ip], non_loopback_ip, [non_loopback_ip], run_bind_test(tmpdir, [non_loopback_ip], non_loopback_ip, [non_loopback_ip],
[(non_loopback_ip, START_RPC_PORT)]) [(non_loopback_ip, defaultport)])
# Check that with invalid rpcallowip, we are denied # Check that with invalid rpcallowip, we are denied
run_allowip_test(tmpdir, [non_loopback_ip], non_loopback_ip) run_allowip_test(tmpdir, [non_loopback_ip], non_loopback_ip, defaultport)
try: try:
run_allowip_test(tmpdir, ['1.1.1.1'], non_loopback_ip) run_allowip_test(tmpdir, ['1.1.1.1'], non_loopback_ip, defaultport)
assert(not 'Connection not denied by rpcallowip as expected') assert(not 'Connection not denied by rpcallowip as expected')
except ValueError: except ValueError:
pass pass

Loading…
Cancel
Save