From 4997b98b69d53d14085f0da4d7d4b002f3d59100 Mon Sep 17 00:00:00 2001 From: Matthias Wachs Date: Fri, 16 Dec 2011 12:25:28 +0000 Subject: [PATCH] added support for interupting a test --- src/integration-tests/gnunet_testing.py.in | 10 ++- ...st_integration_bootstrap_and_connect.py.in | 78 +++++++++++++------ .../test_integration_clique.py.in | 71 ++++++++++------- .../test_integration_disconnect.py.in | 65 ++++++++++------ 4 files changed, 146 insertions(+), 78 deletions(-) diff --git a/src/integration-tests/gnunet_testing.py.in b/src/integration-tests/gnunet_testing.py.in index 3fb6221fd..4b667a270 100644 --- a/src/integration-tests/gnunet_testing.py.in +++ b/src/integration-tests/gnunet_testing.py.in @@ -134,6 +134,7 @@ class StatisticsCondition (Condition): class Test: def __init__(self, testname, verbose): + self.peers = list() self.verbose = verbose; self.name = testname; srcdir = "../.." @@ -153,6 +154,8 @@ class Test: shutil.rmtree (os.path.join (os.getenv ("TEMP"), testname), True) else: shutil.rmtree ("/tmp/" + testname, True) + def add_peer (peer): + self.conditions.append(condition) def p (self, msg): if (self.verbose == True): print msg @@ -167,9 +170,12 @@ class Peer: def __del__(self): if (self.started == True): print 'ERROR! Peer using cfg ' + self.cfg + ' was not stopped' - self.started == False - if (False == self.stop ()): + if (ret == self.stop ()): print 'ERROR! Peer using cfg ' + self.cfg + ' could not be stopped' + self.started == False + return ret + else: + return False def start (self): self.test.p ("Starting peer using cfg " + self.cfg) try: diff --git a/src/integration-tests/test_integration_bootstrap_and_connect.py.in b/src/integration-tests/test_integration_bootstrap_and_connect.py.in index 581179f99..a8aff73d7 100755 --- a/src/integration-tests/test_integration_bootstrap_and_connect.py.in +++ b/src/integration-tests/test_integration_bootstrap_and_connect.py.in @@ -32,6 +32,13 @@ from gnunet_testing import Condition from gnunet_testing import * +# +# This test tests if a fresh peer bootstraps from a hostlist server and then +# successfully connects to the server +# +# Conditions for successful exit: +# Both peers have 1 connected peer in transport, core, topology, fs + # # This test tests if a fresh peer bootstraps from a hostlist server and then # successfully connects to the server @@ -42,8 +49,8 @@ from gnunet_testing import * #definitions testname = "test_integration_bootstrap_and_connect" -verbose = False -timeout = 100 +verbose = True +check_timeout = 30 def cleanup (): @@ -64,7 +71,10 @@ def fail_cont (check): check.eval(True) def check (): - + global test + global server + global client + global success check = Check (test) check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',1)) @@ -79,32 +89,50 @@ def check (): check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) - check.run_blocking (10, success_cont, fail_cont) + check.run_blocking (check_timeout, success_cont, fail_cont) # # Test execution # -success = False - -test = Test ('test_integration_bootstrap_and_connect.py', verbose) -server = Peer(test, './confs/c_bootstrap_server.conf'); -server.start(); - -client = Peer(test, './confs/c_no_nat_client.conf'); -client.start(); - -if ((client.started == True) and (server.started == True)): - test.p ('Peers started, running check') - check () - -server.stop () -client.stop () +def run (): + global test + global server + global client + global success + + success = False + test = Test ('test_integration_bootstrap_and_connect.py', verbose) + + server = Peer(test, './confs/c_bootstrap_server.conf'); + client = Peer(test, './confs/c_no_nat_client.conf'); -cleanup () + server.start(); + client.start(); + + if ((client.started == True) and (server.started == True)): + test.p ('Peers started, running check') + time.sleep(5) + check () + + print 'stop in run' + server.stop () + client.stop () + + cleanup () + + if (success == False): + print ('Test failed') + return False + else: + return True -if (success == False): - print ('Test failed') - exit (1) -else: - exit (0) +try: + run () +except (KeyboardInterrupt, SystemExit): + print 'Test interrupted' + server.stop () + client.stop () + cleanup () +sys.exit(success) + \ No newline at end of file diff --git a/src/integration-tests/test_integration_clique.py.in b/src/integration-tests/test_integration_clique.py.in index ce254ca7b..2c9a569f1 100755 --- a/src/integration-tests/test_integration_clique.py.in +++ b/src/integration-tests/test_integration_clique.py.in @@ -144,33 +144,50 @@ def check_connect (): # # Test execution # - -success = False - -test = Test ('test_integration_disconnect', verbose) - -server = Peer(test, './confs/c_bootstrap_server.conf'); -server.start(); - -client = Peer(test, './confs/c_no_nat_client.conf'); -client.start(); - -client2 = Peer(test, './confs/c_no_nat_client_2.conf'); -client2.start(); - -if ((client.started == True) and (client2.started == True) and (server.started == True)): - test.p ('Peers started, running check') - check_connect () +def run (): + global test + global server + global client + global success -server.stop () -client.stop () -client2.stop () + success = False + + test = Test ('test_integration_disconnect', verbose) + + server = Peer(test, './confs/c_bootstrap_server.conf'); + server.start(); + + client = Peer(test, './confs/c_no_nat_client.conf'); + client.start(); + + client2 = Peer(test, './confs/c_no_nat_client_2.conf'); + client2.start(); + + if ((client.started == True) and (client2.started == True) and (server.started == True)): + test.p ('Peers started, running check') + check_connect () + + server.stop () + client.stop () + client2.stop () + + cleanup () + + if (success == False): + print ('Test failed') + return False + else: + return True -cleanup () - -if (success == False): - print ('Test failed') - exit (1) -else: - exit (0) + +try: + run () +except (KeyboardInterrupt, SystemExit): + print 'Test interrupted' + server.stop () + client.stop () + client2.stop () + cleanup () +sys.exit(success) + diff --git a/src/integration-tests/test_integration_disconnect.py.in b/src/integration-tests/test_integration_disconnect.py.in index 0397fafd2..f708aee1d 100755 --- a/src/integration-tests/test_integration_disconnect.py.in +++ b/src/integration-tests/test_integration_disconnect.py.in @@ -43,7 +43,7 @@ from gnunet_testing import * #definitions testname = "test_integration_disconnect" -verbose = False +verbose = True check_timeout = 30 @@ -112,28 +112,45 @@ def check_connect (): # # Test execution # -success = False - -test = Test ('test_integration_disconnect', verbose) - -server = Peer(test, './confs/c_bootstrap_server.conf'); -server.start(); - -client = Peer(test, './confs/c_no_nat_client.conf'); -client.start(); - - -if ((client.started == True) and (server.started == True)): - test.p ('Peers started, running check') - check_connect () +def run (): + global test + global server + global client + global success -server.stop () -client.stop () - -cleanup () + success = False + + test = Test ('test_integration_disconnect', verbose) + + server = Peer(test, './confs/c_bootstrap_server.conf'); + server.start(); + + client = Peer(test, './confs/c_no_nat_client.conf'); + client.start(); + + + if ((client.started == True) and (server.started == True)): + test.p ('Peers started, running check') + check_connect () + + server.stop () + client.stop () + + cleanup () + + if (success == False): + print ('Test failed') + return True + else: + return False -if (success == False): - print ('Test failed') - exit (1) -else: - exit (0) + +try: + run () +except (KeyboardInterrupt, SystemExit): + print 'Test interrupted' + server.stop () + client.stop () + cleanup () +sys.exit(success) + \ No newline at end of file -- 2.25.1