diff options
author | ng0 <ng0@n0.is> | 2019-10-12 18:16:07 +0000 |
---|---|---|
committer | ng0 <ng0@n0.is> | 2019-10-12 18:16:07 +0000 |
commit | a5f5e7ed9b07b902af4438d76087e034abcba9b2 (patch) | |
tree | 6f376f93f1c785103d0b30f54311a0f61d2bdced /src/integration-tests/test_integration_reconnect.py.in | |
parent | 8e827de2a1db34dfe15f5f9da2850ca469b5ecc3 (diff) | |
download | gnunet-a5f5e7ed9b07b902af4438d76087e034abcba9b2.tar.gz gnunet-a5f5e7ed9b07b902af4438d76087e034abcba9b2.zip |
format python
Diffstat (limited to 'src/integration-tests/test_integration_reconnect.py.in')
-rwxr-xr-x | src/integration-tests/test_integration_reconnect.py.in | 272 |
1 files changed, 136 insertions, 136 deletions
diff --git a/src/integration-tests/test_integration_reconnect.py.in b/src/integration-tests/test_integration_reconnect.py.in index 8c4193680..5bffb72e3 100755 --- a/src/integration-tests/test_integration_reconnect.py.in +++ b/src/integration-tests/test_integration_reconnect.py.in | |||
@@ -32,7 +32,6 @@ from gnunet_testing import Check | |||
32 | from gnunet_testing import Condition | 32 | from gnunet_testing import Condition |
33 | from gnunet_testing import * | 33 | from gnunet_testing import * |
34 | 34 | ||
35 | |||
36 | # | 35 | # |
37 | # This test tests if a fresh peer bootstraps from a hostlist server and then | 36 | # This test tests if a fresh peer bootstraps from a hostlist server and then |
38 | # successfully connects to the server. When both peers are connected | 37 | # successfully connects to the server. When both peers are connected |
@@ -43,195 +42,196 @@ from gnunet_testing import * | |||
43 | 42 | ||
44 | #definitions | 43 | #definitions |
45 | 44 | ||
46 | |||
47 | testname = "test_integration_restart" | 45 | testname = "test_integration_restart" |
48 | verbose = True | 46 | verbose = True |
49 | check_timeout = 180 | 47 | check_timeout = 180 |
50 | 48 | ||
51 | if os.name == "nt": | 49 | if os.name == "nt": |
52 | tmp = os.getenv ("TEMP") | 50 | tmp = os.getenv("TEMP") |
53 | signals = [signal.SIGTERM, signal.SIGINT] | 51 | signals = [signal.SIGTERM, signal.SIGINT] |
54 | else: | 52 | else: |
55 | tmp = "/tmp" | 53 | tmp = "/tmp" |
56 | signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT] | 54 | signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT] |
57 | 55 | ||
58 | def cleanup_onerror (function, path, excinfo): | 56 | |
59 | import stat | 57 | def cleanup_onerror(function, path, excinfo): |
60 | if not os.path.exists (path): | 58 | import stat |
61 | pass | 59 | if not os.path.exists(path): |
62 | elif not os.access(path, os.W_OK): | 60 | pass |
63 | # Is the error an access error ? | 61 | elif not os.access(path, os.W_OK): |
64 | os.chmod (path, stat.S_IWUSR) | 62 | # Is the error an access error ? |
65 | function (path) | 63 | os.chmod(path, stat.S_IWUSR) |
66 | else: | 64 | function(path) |
67 | raise | 65 | else: |
68 | 66 | raise | |
69 | def cleanup (): | 67 | |
68 | |||
69 | def cleanup(): | ||
70 | retries = 10 | 70 | retries = 10 |
71 | path = os.path.join (tmp, "c_bootstrap_server") | 71 | path = os.path.join(tmp, "c_bootstrap_server") |
72 | test.p ("Removing " + path) | 72 | test.p("Removing " + path) |
73 | while ((os.path.exists(path)) and (retries > 0)): | 73 | while ((os.path.exists(path)) and (retries > 0)): |
74 | shutil.rmtree ((path), False, cleanup_onerror) | 74 | shutil.rmtree((path), False, cleanup_onerror) |
75 | time.sleep (1) | 75 | time.sleep(1) |
76 | retries -= 1 | 76 | retries -= 1 |
77 | if (os.path.exists(path)): | 77 | if (os.path.exists(path)): |
78 | test.p ("Failed to remove " + path) | 78 | test.p("Failed to remove " + path) |
79 | |||
80 | 79 | ||
81 | retries = 10 | 80 | retries = 10 |
82 | path = os.path.join (tmp, "c_no_nat_client") | 81 | path = os.path.join(tmp, "c_no_nat_client") |
83 | test.p ("Removing " + path) | 82 | test.p("Removing " + path) |
84 | while ((os.path.exists(path)) and (retries > 0)): | 83 | while ((os.path.exists(path)) and (retries > 0)): |
85 | shutil.rmtree ((path), False, cleanup_onerror) | 84 | shutil.rmtree((path), False, cleanup_onerror) |
86 | time.sleep (1) | 85 | time.sleep(1) |
87 | retries -= 1 | 86 | retries -= 1 |
88 | if (os.path.exists(path)): | 87 | if (os.path.exists(path)): |
89 | test.p ("Failed to remove " + path) | 88 | test.p("Failed to remove " + path) |
89 | |||
90 | 90 | ||
91 | def success_restart_cont (check): | 91 | def success_restart_cont(check): |
92 | global success | 92 | global success |
93 | print('Peers connected successfully after restart') | 93 | print('Peers connected successfully after restart') |
94 | server.stop () | 94 | server.stop() |
95 | client.stop () | 95 | client.stop() |
96 | success = True; | 96 | success = True |
97 | 97 | ||
98 | 98 | ||
99 | def fail_restart_cont (check): | 99 | def fail_restart_cont(check): |
100 | global success | 100 | global success |
101 | success = False; | 101 | success = False |
102 | print('Peers failed to connect after restart') | 102 | print('Peers failed to connect after restart') |
103 | check.evaluate(True) | 103 | check.evaluate(True) |
104 | 104 | ||
105 | 105 | ||
106 | def success_connect_cont (check): | 106 | def success_connect_cont(check): |
107 | print('Peers connected successfully') | 107 | print('Peers connected successfully') |
108 | server.stop () | 108 | server.stop() |
109 | client.stop () | 109 | client.stop() |
110 | 110 | ||
111 | time.sleep(5) | 111 | time.sleep(5) |
112 | 112 | ||
113 | test.p ('Restarting client & server') | 113 | test.p('Restarting client & server') |
114 | server.start () | 114 | server.start() |
115 | client.start () | 115 | client.start() |
116 | 116 | ||
117 | check = Check (test) | 117 | check = Check(test) |
118 | check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) | 118 | check.add(StatisticsCondition(client, 'transport', '# peers connected', 1)) |
119 | check.add (StatisticsCondition (client, 'core', '# peers connected',1)) | 119 | check.add(StatisticsCondition(client, 'core', '# peers connected', 1)) |
120 | check.add (StatisticsCondition (client, 'topology', '# peers connected',1)) | 120 | check.add(StatisticsCondition(client, 'topology', '# peers connected', 1)) |
121 | check.add (StatisticsCondition (client, 'fs', '# peers connected',1)) | 121 | check.add(StatisticsCondition(client, 'fs', '# peers connected', 1)) |
122 | 122 | ||
123 | check.add (StatisticsCondition (server, 'transport', '# peers connected',1)) | 123 | check.add(StatisticsCondition(server, 'transport', '# peers connected', 1)) |
124 | check.add (StatisticsCondition (server, 'core', '# peers connected',1)) | 124 | check.add(StatisticsCondition(server, 'core', '# peers connected', 1)) |
125 | check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) | 125 | check.add(StatisticsCondition(server, 'topology', '# peers connected', 1)) |
126 | check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) | 126 | check.add(StatisticsCondition(server, 'fs', '# peers connected', 1)) |
127 | 127 | ||
128 | check.run_blocking (check_timeout, success_restart_cont, fail_restart_cont) | 128 | check.run_blocking(check_timeout, success_restart_cont, fail_restart_cont) |
129 | 129 | ||
130 | 130 | ||
131 | def fail_connect_cont (check): | 131 | def fail_connect_cont(check): |
132 | global success | 132 | global success |
133 | success= False; | 133 | success = False |
134 | print('Peers failed to connect') | 134 | print('Peers failed to connect') |
135 | check.evaluate(True) | 135 | check.evaluate(True) |
136 | 136 | ||
137 | 137 | ||
138 | def check_connect (): | 138 | def check_connect(): |
139 | check = Check (test) | 139 | check = Check(test) |
140 | check.add (StatisticsCondition (client, 'transport', '# peers connected',1)) | 140 | check.add(StatisticsCondition(client, 'transport', '# peers connected', 1)) |
141 | check.add (StatisticsCondition (client, 'core', '# peers connected',1)) | 141 | check.add(StatisticsCondition(client, 'core', '# peers connected', 1)) |
142 | check.add (StatisticsCondition (client, 'topology', '# peers connected',1)) | 142 | check.add(StatisticsCondition(client, 'topology', '# peers connected', 1)) |
143 | check.add (StatisticsCondition (client, 'fs', '# peers connected',1)) | 143 | check.add(StatisticsCondition(client, 'fs', '# peers connected', 1)) |
144 | 144 | ||
145 | check.add (StatisticsCondition (server, 'transport', '# peers connected',1)) | 145 | check.add(StatisticsCondition(server, 'transport', '# peers connected', 1)) |
146 | check.add (StatisticsCondition (server, 'core', '# peers connected',1)) | 146 | check.add(StatisticsCondition(server, 'core', '# peers connected', 1)) |
147 | check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) | 147 | check.add(StatisticsCondition(server, 'topology', '# peers connected', 1)) |
148 | check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) | 148 | check.add(StatisticsCondition(server, 'fs', '# peers connected', 1)) |
149 | |||
150 | check.run_blocking(check_timeout, success_connect_cont, fail_connect_cont) | ||
149 | 151 | ||
150 | check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont) | ||
151 | 152 | ||
152 | # | 153 | # |
153 | # Test execution | 154 | # Test execution |
154 | # | 155 | # |
155 | 156 | ||
156 | 157 | ||
157 | def SigHandler(signum = None, frame = None): | 158 | def SigHandler(signum=None, frame=None): |
158 | global success | 159 | global success |
159 | global server | 160 | global server |
160 | global client | 161 | global client |
161 | |||
162 | print('Test was aborted!') | ||
163 | if (None != server): | ||
164 | server.stop () | ||
165 | if (None != client): | ||
166 | client.stop () | ||
167 | cleanup () | ||
168 | sys.exit(success) | ||
169 | 162 | ||
170 | def run (): | 163 | print('Test was aborted!') |
171 | global success | 164 | if (None != server): |
172 | global test | 165 | server.stop() |
173 | global server | 166 | if (None != client): |
174 | global client | 167 | client.stop() |
168 | cleanup() | ||
169 | sys.exit(success) | ||
175 | 170 | ||
176 | success = False | ||
177 | server = None | ||
178 | client = None | ||
179 | 171 | ||
180 | for sig in signals: | 172 | def run(): |
181 | signal.signal(sig, SigHandler) | 173 | global success |
174 | global test | ||
175 | global server | ||
176 | global client | ||
182 | 177 | ||
178 | success = False | ||
179 | server = None | ||
180 | client = None | ||
183 | 181 | ||
184 | test = Test ('test_integration_disconnect', verbose) | 182 | for sig in signals: |
185 | cleanup () | 183 | signal.signal(sig, SigHandler) |
186 | server = Peer(test, './confs/c_bootstrap_server.conf'); | ||
187 | server.start(); | ||
188 | 184 | ||
189 | client = Peer(test, './confs/c_no_nat_client.conf'); | 185 | test = Test('test_integration_disconnect', verbose) |
190 | client.start(); | 186 | cleanup() |
187 | server = Peer(test, './confs/c_bootstrap_server.conf') | ||
188 | server.start() | ||
191 | 189 | ||
190 | client = Peer(test, './confs/c_no_nat_client.conf') | ||
191 | client.start() | ||
192 | 192 | ||
193 | if (True != server.start()): | 193 | if (True != server.start()): |
194 | print('Failed to start server') | 194 | print('Failed to start server') |
195 | if (None != server): | 195 | if (None != server): |
196 | server.stop () | 196 | server.stop() |
197 | if (None != server): | 197 | if (None != server): |
198 | client.stop () | 198 | client.stop() |
199 | cleanup () | 199 | cleanup() |
200 | sys.exit(success) | 200 | sys.exit(success) |
201 | 201 | ||
202 | # Give the server time to start | 202 | # Give the server time to start |
203 | time.sleep(5) | 203 | time.sleep(5) |
204 | 204 | ||
205 | if (True != client.start()): | 205 | if (True != client.start()): |
206 | print('Failed to start client') | 206 | print('Failed to start client') |
207 | if (None != server): | 207 | if (None != server): |
208 | server.stop () | 208 | server.stop() |
209 | if (None != server): | 209 | if (None != server): |
210 | client.stop () | 210 | client.stop() |
211 | cleanup () | 211 | cleanup() |
212 | sys.exit(success) | 212 | sys.exit(success) |
213 | 213 | ||
214 | check_connect () | 214 | check_connect() |
215 | 215 | ||
216 | server.stop () | 216 | server.stop() |
217 | client.stop () | 217 | client.stop() |
218 | cleanup () | 218 | cleanup() |
219 | 219 | ||
220 | if (success == False): | 220 | if (success == False): |
221 | print ('Test failed') | 221 | print('Test failed') |
222 | return True | 222 | return True |
223 | else: | 223 | else: |
224 | return False | 224 | return False |
225 | 225 | ||
226 | 226 | ||
227 | try: | 227 | try: |
228 | run () | 228 | run() |
229 | except (KeyboardInterrupt, SystemExit): | 229 | except (KeyboardInterrupt, SystemExit): |
230 | print('Test interrupted') | 230 | print('Test interrupted') |
231 | server.stop () | 231 | server.stop() |
232 | client.stop () | 232 | client.stop() |
233 | cleanup () | 233 | cleanup() |
234 | if (success == False): | 234 | if (success == False): |
235 | sys.exit(1) | 235 | sys.exit(1) |
236 | else: | 236 | else: |
237 | sys.exit(0) | 237 | sys.exit(0) |