X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fintegration-tests%2Ftest_integration_bootstrap_and_connect.py.in;h=7738c72d88a735fe0b957538e91b2955202f145d;hb=5a8f88e1745a184039f07382c4b1c757011ca4be;hp=44e8df3df1cede0568cb7bed75fd52a8853006b4;hpb=3ec5e14c7071bfb39ad7af8f98365d6e81cbe026;p=oweals%2Fgnunet.git 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 44e8df3df..7738c72d8 100755 --- a/src/integration-tests/test_integration_bootstrap_and_connect.py.in +++ b/src/integration-tests/test_integration_bootstrap_and_connect.py.in @@ -23,88 +23,113 @@ import os import subprocess import re import shutil +import time +import pexpect +from gnunet_testing import Peer +from gnunet_testing import Test +from gnunet_testing import Check +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 -#definitions - -def vpfrint (msg): - if verbose == True: - print msg +# +# 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 +#definitions testname = "test_integration_bootstrap_and_connect" verbose = True +check_timeout = 30 + + +def cleanup (): + if os.name == "nt": + shutil.rmtree (os.path.join (os.getenv ("TEMP"), "gnunet-test-fs-py-ns"), True) + shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_no_nat_client"), True) + else: + shutil.rmtree ("/tmp/c_bootstrap_server/", True) + shutil.rmtree ("/tmp/c_no_nat_client/", True) + +def success_cont (check): + global success + success = True; + +def fail_cont (check): + global success + success = False; + check.eval(True) + +def check (): + check = Check (test) + check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) + check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',1)) + check.add (StatisticsCondition (client, 'core', '# entries in session map',1)) + check.add (StatisticsCondition (client, 'topology', '# peers connected',1)) + check.add (StatisticsCondition (client, 'fs', '# peers connected',1)) + + + check.add (StatisticsCondition (server, 'transport', '# peers connected',1)) + check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',1)) + check.add (StatisticsCondition (server, 'core', '# entries in session map',1)) + check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) + check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) + + check.run_blocking (check_timeout, success_cont, fail_cont) -# setup - -srcdir = "../.." -gnunet_pyexpect_dir = os.path.join (srcdir, "contrib") -if gnunet_pyexpect_dir not in sys.path: - sys.path.append (gnunet_pyexpect_dir) - -from gnunet_pyexpect import pexpect - -if os.name == 'posix': - gnunetarm = 'gnunet-arm' -elif os.name == 'nt': - gnunetarm = 'gnunet-arm.exe' - -if os.name == "nt": - shutil.rmtree (os.path.join (os.getenv ("TEMP"), testname), True) -else: - shutil.rmtree ("/tmp/" + testname, True) - -vpfrint ("Running " + testname) - - - -# start nodes - -vpfrint ("Starting bootstrap server & client") -try: - server = subprocess.Popen ([gnunetarm, '-sq', '-c', './confs/c_bootstrap_server.conf']) - server.communicate () -except OSError: - print "Can not start bootstrap server, exiting..." - exit (1) -try: - client = subprocess.Popen ([gnunetarm, '-sq', '-c', 'confs/c_no_nat_client.conf']) - client.communicate () -except OSError: - print "Can not start bootstrap client, exiting..." - exit (1) -vpfrint ("Bootstrap server & client started") - +# +# Test execution +# -import time -time.sleep(5) +def run (): + global success + global test + global server + global client + + 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'); + + server.start(); + client.start(); + + if ((client.started == True) and (server.started == True)): + test.p ('Peers started, running check') + time.sleep(5) + check () + server.stop () + client.stop () + + cleanup () + + if (success == False): + print ('Test failed') + return False + else: + return True -# shutdown -vpfrint ("Shutting down bootstrap server") try: - server = subprocess.Popen ([gnunetarm, '-eq', '-c', './confs/c_bootstrap_server.conf']) - server.communicate () -except OSError: - print "Can not stop bootstrap server, exiting..." - exit (1) -try: - client = subprocess.Popen ([gnunetarm, '-eq', '-c', 'confs/c_no_nat_client.conf']) - client.communicate () -except OSError: - print "Can not stop bootstrap client, exiting..." - exit (1) -vpfrint ("Bootstrap server & client stopped") - -# clean up - -if os.name == "nt": - shutil.rmtree (os.path.join (os.getenv ("TEMP"), "gnunet-test-fs-py-ns"), True) + run () +except (KeyboardInterrupt, SystemExit): + print 'Test interrupted' + server.stop () + client.stop () + cleanup () +if (success == False): + sys.exit(1) else: - shutil.rmtree ("/tmp/gnunet-test-fs-py-ns", True) - -exit (0) - + sys.exit(0) + \ No newline at end of file