diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-02-17 10:25:07 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-02-17 10:25:07 +0000 |
commit | d509bb66653383b4876cb1cb736047b5f84e10ce (patch) | |
tree | d60d4eb9eeb95f36b50b1037ac5c3e3fca752962 /src/integration-tests | |
parent | 8865c486ab23e325c66fd710f5441e3e53e8ab30 (diff) | |
download | gnunet-d509bb66653383b4876cb1cb736047b5f84e10ce.tar.gz gnunet-d509bb66653383b4876cb1cb736047b5f84e10ce.zip |
- new test
Diffstat (limited to 'src/integration-tests')
-rw-r--r-- | src/integration-tests/Makefile.am | 6 | ||||
-rwxr-xr-x | src/integration-tests/test_integration_bootstrap_and_connect_and_disconnect.py.in | 147 |
2 files changed, 153 insertions, 0 deletions
diff --git a/src/integration-tests/Makefile.am b/src/integration-tests/Makefile.am index feebde269..e0b151158 100644 --- a/src/integration-tests/Makefile.am +++ b/src/integration-tests/Makefile.am | |||
@@ -20,6 +20,7 @@ noinst_SCRIPTS = \ | |||
20 | if HAVE_PYTHON_PEXPECT | 20 | if HAVE_PYTHON_PEXPECT |
21 | check_SCRIPTS = \ | 21 | check_SCRIPTS = \ |
22 | test_integration_bootstrap_and_connect.py \ | 22 | test_integration_bootstrap_and_connect.py \ |
23 | test_integration_bootstrap_and_connect_and_disconnect.py \ | ||
23 | test_integration_restart.py \ | 24 | test_integration_restart.py \ |
24 | test_integration_clique.py \ | 25 | test_integration_clique.py \ |
25 | test_integration_clique_nat.py | 26 | test_integration_clique_nat.py |
@@ -50,6 +51,11 @@ test_integration_bootstrap_and_connect.py: test_integration_bootstrap_and_connec | |||
50 | $(do_subst) < $(srcdir)/test_integration_bootstrap_and_connect.py.in > test_integration_bootstrap_and_connect.py | 51 | $(do_subst) < $(srcdir)/test_integration_bootstrap_and_connect.py.in > test_integration_bootstrap_and_connect.py |
51 | chmod +x test_integration_bootstrap_and_connect.py | 52 | chmod +x test_integration_bootstrap_and_connect.py |
52 | 53 | ||
54 | |||
55 | test_integration_bootstrap_and_connect_and_disconnect.py.in: test_integration_bootstrap_and_connect_and_disconnect.py.in Makefile | ||
56 | $(do_subst) < $(srcdir)/test_integration_bootstrap_and_connect_and_disconnect.py.in > test_integration_bootstrap_and_connect_and_disconnect.py | ||
57 | chmod +x test_integration_bootstrap_and_connect_and_disconnect.py | ||
58 | |||
53 | test_integration_disconnect.py: test_integration_disconnect.py.in Makefile | 59 | test_integration_disconnect.py: test_integration_disconnect.py.in Makefile |
54 | $(do_subst) < $(srcdir)/test_integration_disconnect.py.in > test_integration_disconnect.py | 60 | $(do_subst) < $(srcdir)/test_integration_disconnect.py.in > test_integration_disconnect.py |
55 | chmod +x test_integration_disconnect.py | 61 | chmod +x test_integration_disconnect.py |
diff --git a/src/integration-tests/test_integration_bootstrap_and_connect_and_disconnect.py.in b/src/integration-tests/test_integration_bootstrap_and_connect_and_disconnect.py.in new file mode 100755 index 000000000..e0eadfa88 --- /dev/null +++ b/src/integration-tests/test_integration_bootstrap_and_connect_and_disconnect.py.in | |||
@@ -0,0 +1,147 @@ | |||
1 | #!/usr/bin/python | ||
2 | # This file is part of GNUnet. | ||
3 | # (C) 2010 Christian Grothoff (and other contributing authors) | ||
4 | # | ||
5 | # GNUnet is free software; you can redistribute it and/or modify | ||
6 | # it under the terms of the GNU General Public License as published | ||
7 | # by the Free Software Foundation; either version 2, or (at your | ||
8 | # option) any later version. | ||
9 | # | ||
10 | # GNUnet is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with GNUnet; see the file COPYING. If not, write to the | ||
17 | # Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | # Boston, MA 02111-1307, USA. | ||
19 | # | ||
20 | # | ||
21 | import sys | ||
22 | import os | ||
23 | import subprocess | ||
24 | import re | ||
25 | import shutil | ||
26 | import time | ||
27 | import pexpect | ||
28 | from gnunet_testing import Peer | ||
29 | from gnunet_testing import Test | ||
30 | from gnunet_testing import Check | ||
31 | from gnunet_testing import Condition | ||
32 | from gnunet_testing import * | ||
33 | |||
34 | |||
35 | # | ||
36 | # This test tests if a fresh peer bootstraps from a hostlist server and then | ||
37 | # successfully connects to the server | ||
38 | # | ||
39 | # Conditions for successful exit: | ||
40 | # Both peers have 1 connected peer in transport, core, topology, fs | ||
41 | |||
42 | # | ||
43 | # This test tests if a fresh peer bootstraps from a hostlist server and then | ||
44 | # successfully connects to the server | ||
45 | # | ||
46 | # Conditions for successful exit: | ||
47 | # Both peers have 1 connected peer in transport, core, topology, fs | ||
48 | |||
49 | #definitions | ||
50 | |||
51 | testname = "test_integration_bootstrap_and_connect" | ||
52 | verbose = True | ||
53 | check_timeout = 30 | ||
54 | |||
55 | |||
56 | def cleanup (): | ||
57 | if os.name == "nt": | ||
58 | shutil.rmtree (os.path.join (os.getenv ("TEMP"), "gnunet-test-fs-py-ns"), True) | ||
59 | shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_no_nat_client"), True) | ||
60 | else: | ||
61 | shutil.rmtree ("/tmp/c_bootstrap_server/", True) | ||
62 | shutil.rmtree ("/tmp/c_no_nat_client/", True) | ||
63 | |||
64 | def success_server_stop_cont (check): | ||
65 | global success | ||
66 | success = True; | ||
67 | |||
68 | def success_cont (check): | ||
69 | server.stop() | ||
70 | |||
71 | check = Check (test) | ||
72 | check.add (StatisticsCondition (client, 'transport', '# peers connected',0)) | ||
73 | check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',0)) | ||
74 | check.add (StatisticsCondition (client, 'core', '# entries in session map',0)) | ||
75 | check.add (StatisticsCondition (client, 'topology', '# peers connected',0)) | ||
76 | check.add (StatisticsCondition (client, 'fs', '# peers connected',0)) | ||
77 | |||
78 | check.run_blocking (check_timeout, success_server_stop_cont, fail_cont) | ||
79 | |||
80 | def fail_cont (check): | ||
81 | global success | ||
82 | success = False; | ||
83 | check.evaluate(True) | ||
84 | |||
85 | def check (): | ||
86 | check = Check (test) | ||
87 | check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) | ||
88 | check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',1)) | ||
89 | check.add (StatisticsCondition (client, 'core', '# entries in session map',1)) | ||
90 | check.add (StatisticsCondition (client, 'topology', '# peers connected',1)) | ||
91 | check.add (StatisticsCondition (client, 'fs', '# peers connected',1)) | ||
92 | |||
93 | |||
94 | check.add (StatisticsCondition (server, 'transport', '# peers connected',1)) | ||
95 | check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',1)) | ||
96 | check.add (StatisticsCondition (server, 'core', '# entries in session map',1)) | ||
97 | check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) | ||
98 | check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) | ||
99 | |||
100 | check.run_blocking (check_timeout, success_cont, fail_cont) | ||
101 | |||
102 | # | ||
103 | # Test execution | ||
104 | # | ||
105 | |||
106 | def run (): | ||
107 | global success | ||
108 | global test | ||
109 | global server | ||
110 | global client | ||
111 | |||
112 | success = False | ||
113 | test = Test ('test_integration_bootstrap_and_connect.py', verbose) | ||
114 | |||
115 | server = Peer(test, './confs/c_bootstrap_server.conf'); | ||
116 | client = Peer(test, './confs/c_no_nat_client.conf'); | ||
117 | |||
118 | assert (True == server.start()); | ||
119 | assert (True == client.start()); | ||
120 | |||
121 | if ((client.started == True) and (server.started == True)): | ||
122 | test.p ('Peers started, running check') | ||
123 | time.sleep(5) | ||
124 | check () | ||
125 | server.stop () | ||
126 | client.stop () | ||
127 | |||
128 | cleanup () | ||
129 | |||
130 | if (success == False): | ||
131 | print ('Test failed') | ||
132 | return False | ||
133 | else: | ||
134 | return True | ||
135 | |||
136 | try: | ||
137 | run () | ||
138 | except (KeyboardInterrupt, SystemExit): | ||
139 | print 'Test interrupted' | ||
140 | server.stop () | ||
141 | client.stop () | ||
142 | cleanup () | ||
143 | if (success == False): | ||
144 | sys.exit(1) | ||
145 | else: | ||
146 | sys.exit(0) | ||
147 | \ No newline at end of file | ||