diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-03 15:09:37 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-03 15:09:37 +0000 |
commit | b8481b9c30e15d0adb94619b72a4926506b41f53 (patch) | |
tree | a5270f50de51dcb1828dde67930caf63c8a8931e /src/integration-tests | |
parent | 22cde9cd6e66462442647abf271559d9e3bcb41c (diff) | |
download | gnunet-b8481b9c30e15d0adb94619b72a4926506b41f53.tar.gz gnunet-b8481b9c30e15d0adb94619b72a4926506b41f53.zip |
- new test: connect on restart without bootstrap server
Diffstat (limited to 'src/integration-tests')
5 files changed, 190 insertions, 4 deletions
diff --git a/src/integration-tests/Makefile.am b/src/integration-tests/Makefile.am index 93608824d..8adbf2bcd 100644 --- a/src/integration-tests/Makefile.am +++ b/src/integration-tests/Makefile.am | |||
@@ -27,7 +27,8 @@ check_SCRIPTS = \ | |||
27 | test_integration_bootstrap_and_connect_and_disconnect_nat.py \ | 27 | test_integration_bootstrap_and_connect_and_disconnect_nat.py \ |
28 | test_integration_restart.py \ | 28 | test_integration_restart.py \ |
29 | test_integration_clique.py \ | 29 | test_integration_clique.py \ |
30 | test_integration_clique_nat.py | 30 | test_integration_clique_nat.py \ |
31 | test_integration_connect_on_restart.py | ||
31 | endif | 32 | endif |
32 | # test_integration_disconnect.py | 33 | # test_integration_disconnect.py |
33 | 34 | ||
@@ -83,6 +84,10 @@ test_integration_clique.py: test_integration_clique.py.in Makefile | |||
83 | test_integration_clique_nat.py: test_integration_clique_nat.py.in Makefile | 84 | test_integration_clique_nat.py: test_integration_clique_nat.py.in Makefile |
84 | $(do_subst) < $(srcdir)/test_integration_clique_nat.py.in > test_integration_clique_nat.py | 85 | $(do_subst) < $(srcdir)/test_integration_clique_nat.py.in > test_integration_clique_nat.py |
85 | chmod +x test_integration_clique_nat.py | 86 | chmod +x test_integration_clique_nat.py |
87 | |||
88 | test_integration_connect_on_restart.py: test_integration_connect_on_restart.py.in Makefile | ||
89 | $(do_subst) < $(srcdir)/test_integration_connect_on_restart.py.in > test_integration_connect_on_restart.py | ||
90 | chmod +x test_integration_connect_on_restart.py | ||
86 | 91 | ||
87 | test_integration_connection_values_tcp.py: test_integration_connection_values_tcp.py.in Makefile | 92 | test_integration_connection_values_tcp.py: test_integration_connection_values_tcp.py.in Makefile |
88 | $(do_subst) < $(srcdir)/test_integration_connection_values_tcp.py.in > test_integration_connection_values_tcp.py | 93 | $(do_subst) < $(srcdir)/test_integration_connection_values_tcp.py.in > test_integration_connection_values_tcp.py |
@@ -105,6 +110,7 @@ EXTRA_DIST = \ | |||
105 | test_integration_bootstrap_and_connect.py.in \ | 110 | test_integration_bootstrap_and_connect.py.in \ |
106 | test_integration_bootstrap_and_connect_and_disconnect.py.in \ | 111 | test_integration_bootstrap_and_connect_and_disconnect.py.in \ |
107 | test_integration_bootstrap_and_connect_and_disconnect_nat.py.in \ | 112 | test_integration_bootstrap_and_connect_and_disconnect_nat.py.in \ |
113 | test_integration_connect_on_restart.py.in \ | ||
108 | test_integration_disconnect.py.in \ | 114 | test_integration_disconnect.py.in \ |
109 | test_integration_restart.py.in \ | 115 | test_integration_restart.py.in \ |
110 | test_integration_clique.py.in \ | 116 | test_integration_clique.py.in \ |
diff --git a/src/integration-tests/test_integration_connect_on_restart.py.in b/src/integration-tests/test_integration_connect_on_restart.py.in new file mode 100755 index 000000000..ce460ae60 --- /dev/null +++ b/src/integration-tests/test_integration_connect_on_restart.py.in | |||
@@ -0,0 +1,180 @@ | |||
1 | #!@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 | # | ||
22 | # This test starts 3 peers and expects bootstrap and a connected clique | ||
23 | # After a successful clique it shuts down all peers and starts the non-bootstrap | ||
24 | # peers, expecting them to reconnect | ||
25 | # | ||
26 | # Conditions for successful exit: | ||
27 | # Both peers have 1 connected peer in transport, core, topology, fs | ||
28 | |||
29 | import sys | ||
30 | import os | ||
31 | import subprocess | ||
32 | import re | ||
33 | import shutil | ||
34 | import time | ||
35 | import pexpect | ||
36 | from gnunet_testing import Peer | ||
37 | from gnunet_testing import Test | ||
38 | from gnunet_testing import Check | ||
39 | from gnunet_testing import Condition | ||
40 | from gnunet_testing import * | ||
41 | |||
42 | |||
43 | #definitions | ||
44 | |||
45 | testname = "test_integration_clique" | ||
46 | verbose = True | ||
47 | check_timeout = 30 | ||
48 | |||
49 | |||
50 | def cleanup (): | ||
51 | if os.name == "nt": | ||
52 | shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_bootstrap_server"), True) | ||
53 | shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_no_nat_client"), True) | ||
54 | shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_no_nat_client_2"), True) | ||
55 | else: | ||
56 | shutil.rmtree ("/tmp/c_bootstrap_server/", True) | ||
57 | shutil.rmtree ("/tmp/c_no_nat_client/", True) | ||
58 | shutil.rmtree ("/tmp/c_no_nat_client_2/", True) | ||
59 | |||
60 | |||
61 | def success_cont (check): | ||
62 | global success | ||
63 | success = True; | ||
64 | check.evaluate(True) | ||
65 | |||
66 | def fail_cont (check): | ||
67 | global success | ||
68 | success = False; | ||
69 | check.evaluate(False) | ||
70 | |||
71 | |||
72 | def success_connect_cont (check): | ||
73 | check.evaluate(True) | ||
74 | print "Connected clique, shutdown" | ||
75 | server.stop () | ||
76 | client.stop () | ||
77 | client2.stop () | ||
78 | time.sleep (3) | ||
79 | client.start () | ||
80 | client2.start () | ||
81 | |||
82 | check = Check (test) | ||
83 | check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) | ||
84 | check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',1)) | ||
85 | check.add (StatisticsCondition (client, 'core', '# entries in session map',1)) | ||
86 | check.add (StatisticsCondition (client, 'topology', '# peers connected',1)) | ||
87 | check.add (StatisticsCondition (client, 'fs', '# peers connected',1)) | ||
88 | |||
89 | check.add (StatisticsCondition (client2, 'transport', '# peers connected',1)) | ||
90 | check.add (StatisticsCondition (client2, 'core', '# neighbour entries allocated',1)) | ||
91 | check.add (StatisticsCondition (client2, 'core', '# entries in session map',1)) | ||
92 | check.add (StatisticsCondition (client2, 'topology', '# peers connected',1)) | ||
93 | check.add (StatisticsCondition (client2, 'fs', '# peers connected',1)) | ||
94 | |||
95 | check.run_blocking (check_timeout, success_cont, fail_cont) | ||
96 | |||
97 | |||
98 | def fail_connect_cont (check): | ||
99 | global success | ||
100 | print "Failed to connect clique, shutdown" | ||
101 | success = False; | ||
102 | check.evaluate(False) | ||
103 | |||
104 | |||
105 | def check_connect (): | ||
106 | check = Check (test) | ||
107 | check.add (StatisticsCondition (client, 'transport', '# peers connected',2)) | ||
108 | check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',2)) | ||
109 | check.add (StatisticsCondition (client, 'core', '# entries in session map',2)) | ||
110 | check.add (StatisticsCondition (client, 'topology', '# peers connected',2)) | ||
111 | check.add (StatisticsCondition (client, 'fs', '# peers connected',2)) | ||
112 | |||
113 | check.add (StatisticsCondition (client2, 'transport', '# peers connected',2)) | ||
114 | check.add (StatisticsCondition (client2, 'core', '# neighbour entries allocated',2)) | ||
115 | check.add (StatisticsCondition (client2, 'core', '# entries in session map',2)) | ||
116 | check.add (StatisticsCondition (client2, 'topology', '# peers connected',2)) | ||
117 | check.add (StatisticsCondition (client2, 'fs', '# peers connected',2)) | ||
118 | |||
119 | check.add (StatisticsCondition (server, 'transport', '# peers connected',2)) | ||
120 | check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',2)) | ||
121 | check.add (StatisticsCondition (server, 'core', '# entries in session map',2)) | ||
122 | check.add (StatisticsCondition (server, 'topology', '# peers connected',2)) | ||
123 | check.add (StatisticsCondition (server, 'fs', '# peers connected',2)) | ||
124 | |||
125 | check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont) | ||
126 | |||
127 | # | ||
128 | # Test execution | ||
129 | # | ||
130 | def run (): | ||
131 | global success | ||
132 | global test | ||
133 | global server | ||
134 | global client | ||
135 | global client2 | ||
136 | |||
137 | success = False | ||
138 | |||
139 | test = Test ('test_integration_disconnect', verbose) | ||
140 | |||
141 | server = Peer(test, './confs/c_bootstrap_server.conf'); | ||
142 | server.start(); | ||
143 | |||
144 | client = Peer(test, './confs/c_no_nat_client.conf'); | ||
145 | client.start(); | ||
146 | |||
147 | client2 = Peer(test, './confs/c_no_nat_client_2.conf'); | ||
148 | client2.start(); | ||
149 | |||
150 | if ((client.started == True) and (client2.started == True) and (server.started == True)): | ||
151 | test.p ('Peers started, running check') | ||
152 | check_connect () | ||
153 | |||
154 | server.stop () | ||
155 | client.stop () | ||
156 | client2.stop () | ||
157 | |||
158 | cleanup () | ||
159 | |||
160 | if (success == False): | ||
161 | print ('Test failed') | ||
162 | return False | ||
163 | else: | ||
164 | return True | ||
165 | |||
166 | |||
167 | try: | ||
168 | run () | ||
169 | except (KeyboardInterrupt, SystemExit): | ||
170 | print 'Test interrupted' | ||
171 | server.stop () | ||
172 | client.stop () | ||
173 | client2.stop () | ||
174 | cleanup () | ||
175 | if (success == False): | ||
176 | sys.exit(1) | ||
177 | else: | ||
178 | sys.exit(0) | ||
179 | |||
180 | |||
diff --git a/src/integration-tests/test_integration_connection_values_tcp.py.in b/src/integration-tests/test_integration_connection_values_tcp.py.in index 6c0072a3e..bde137275 100755 --- a/src/integration-tests/test_integration_connection_values_tcp.py.in +++ b/src/integration-tests/test_integration_connection_values_tcp.py.in | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/python | 1 | #!@PYTHON@ |
2 | # This file is part of GNUnet. | 2 | # This file is part of GNUnet. |
3 | # (C) 2010 Christian Grothoff (and other contributing authors) | 3 | # (C) 2010 Christian Grothoff (and other contributing authors) |
4 | # | 4 | # |
diff --git a/src/integration-tests/test_integration_connection_values_tcp_udp.py.in b/src/integration-tests/test_integration_connection_values_tcp_udp.py.in index 905ea9b1b..4f492547e 100755 --- a/src/integration-tests/test_integration_connection_values_tcp_udp.py.in +++ b/src/integration-tests/test_integration_connection_values_tcp_udp.py.in | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/python | 1 | #!@PYTHON@ |
2 | # This file is part of GNUnet. | 2 | # This file is part of GNUnet. |
3 | # (C) 2010 Christian Grothoff (and other contributing authors) | 3 | # (C) 2010 Christian Grothoff (and other contributing authors) |
4 | # | 4 | # |
diff --git a/src/integration-tests/test_integration_connection_values_tcp_udp_http.py.in b/src/integration-tests/test_integration_connection_values_tcp_udp_http.py.in index 0916f8540..f51821685 100755 --- a/src/integration-tests/test_integration_connection_values_tcp_udp_http.py.in +++ b/src/integration-tests/test_integration_connection_values_tcp_udp_http.py.in | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/python | 1 | #!@PYTHON@ |
2 | # This file is part of GNUnet. | 2 | # This file is part of GNUnet. |
3 | # (C) 2010 Christian Grothoff (and other contributing authors) | 3 | # (C) 2010 Christian Grothoff (and other contributing authors) |
4 | # | 4 | # |