aboutsummaryrefslogtreecommitdiff
path: root/test/functional/net.py
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2017-03-25 15:29:56 +0100
committerMarcoFalke <falke.marco@gmail.com>2017-03-25 15:33:01 +0100
commitfa697b719286c599103d04c7055b7c666e71f09d (patch)
treec5fd72ec91a52d1fcd3c312b6a614a9d9762e615 /test/functional/net.py
parenta0b1e57b20a17177ed5a9a54e4a8aab597a546b4 (diff)
[qa] Add setnetworkactive smoke test
Diffstat (limited to 'test/functional/net.py')
-rwxr-xr-xtest/functional/net.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/functional/net.py b/test/functional/net.py
new file mode 100755
index 0000000000..e9463c7dc7
--- /dev/null
+++ b/test/functional/net.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python3
+# Copyright (c) 2017 The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
+"""Test RPC calls related to net.
+
+Tests correspond to code in rpc/net.cpp.
+"""
+
+from decimal import Decimal
+import time
+
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.authproxy import JSONRPCException
+from test_framework.util import (
+ assert_equal,
+ start_nodes,
+ connect_nodes_bi,
+)
+
+
+class NetTest(BitcoinTestFramework):
+ def __init__(self):
+ super().__init__()
+ self.setup_clean_chain = True
+ self.num_nodes = 2
+
+ def setup_network(self):
+ self.nodes = start_nodes(self.num_nodes, self.options.tmpdir)
+ connect_nodes_bi(self.nodes, 0, 1)
+ self.is_network_split = False
+ self.sync_all()
+
+ def run_test(self):
+ assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
+ assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2) # bilateral connection
+
+ self.nodes[0].setnetworkactive(False)
+ assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], False)
+ timeout = 3
+ while self.nodes[0].getnetworkinfo()['connections'] != 0:
+ # Wait a bit for all sockets to close
+ assert timeout > 0, 'not all connections closed in time'
+ timeout -= 0.1
+ time.sleep(0.1)
+
+ self.nodes[0].setnetworkactive(True)
+ connect_nodes_bi(self.nodes, 0, 1)
+ assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
+ assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2)
+
+
+if __name__ == '__main__':
+ NetTest().main()