aboutsummaryrefslogtreecommitdiff
path: root/src/integration-tests
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-02-19 01:59:00 +0100
committerChristian Grothoff <christian@grothoff.org>2019-02-19 01:59:00 +0100
commit29184ebd9987a2c63d50d563bd0b7a5ce68f0023 (patch)
tree1b036dfe8a90166a1786c3d7ed7fbb44445e5fc1 /src/integration-tests
parent5268a6fed72de00832cf075f480c03fe86952bb6 (diff)
downloadgnunet-29184ebd9987a2c63d50d563bd0b7a5ce68f0023.tar.gz
gnunet-29184ebd9987a2c63d50d563bd0b7a5ce68f0023.zip
got integration tests to pass, fixes #5560
Diffstat (limited to 'src/integration-tests')
-rwxr-xr-xsrc/integration-tests/test_integration_bootstrap_and_connect.py.in2
-rwxr-xr-xsrc/integration-tests/test_integration_disconnect_nat.py.in2
-rwxr-xr-xsrc/integration-tests/test_integration_reconnect.py.in110
-rwxr-xr-xsrc/integration-tests/test_integration_reconnect_nat.py.in2
4 files changed, 57 insertions, 59 deletions
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 560a429fd..f0de1c0cd 100755
--- a/src/integration-tests/test_integration_bootstrap_and_connect.py.in
+++ b/src/integration-tests/test_integration_bootstrap_and_connect.py.in
@@ -11,7 +11,7 @@
11# WITHOUT ANY WARRANTY; without even the implied warranty of 11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# Affero General Public License for more details. 13# Affero General Public License for more details.
14# 14#
15# You should have received a copy of the GNU Affero General Public License 15# You should have received a copy of the GNU Affero General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>. 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17# 17#
diff --git a/src/integration-tests/test_integration_disconnect_nat.py.in b/src/integration-tests/test_integration_disconnect_nat.py.in
index 825c1cfa1..601586f47 100755
--- a/src/integration-tests/test_integration_disconnect_nat.py.in
+++ b/src/integration-tests/test_integration_disconnect_nat.py.in
@@ -11,7 +11,7 @@
11# WITHOUT ANY WARRANTY; without even the implied warranty of 11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# Affero General Public License for more details. 13# Affero General Public License for more details.
14# 14#
15# You should have received a copy of the GNU Affero General Public License 15# You should have received a copy of the GNU Affero General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>. 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17# 17#
diff --git a/src/integration-tests/test_integration_reconnect.py.in b/src/integration-tests/test_integration_reconnect.py.in
index 573ae221a..e8abacd48 100755
--- a/src/integration-tests/test_integration_reconnect.py.in
+++ b/src/integration-tests/test_integration_reconnect.py.in
@@ -11,13 +11,13 @@
11# WITHOUT ANY WARRANTY; without even the implied warranty of 11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# Affero General Public License for more details. 13# Affero General Public License for more details.
14# 14#
15# You should have received a copy of the GNU Affero General Public License 15# You should have received a copy of the GNU Affero General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>. 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17# 17#
18# SPDX-License-Identifier: AGPL3.0-or-later 18# SPDX-License-Identifier: AGPL3.0-or-later
19# 19#
20# 20#
21from __future__ import print_function 21from __future__ import print_function
22import sys 22import sys
23import os 23import os
@@ -30,13 +30,13 @@ from gnunet_testing import Peer
30from gnunet_testing import Test 30from gnunet_testing import Test
31from gnunet_testing import Check 31from gnunet_testing import Check
32from gnunet_testing import Condition 32from gnunet_testing import Condition
33from gnunet_testing import * 33from gnunet_testing import *
34 34
35 35
36# 36#
37# This test tests if a fresh peer bootstraps from a hostlist server and then 37# 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 38# successfully connects to the server. When both peers are connected
39# in transport, core, topology, fs, botth peers are shutdown and restarted 39# in transport, core, topology, fs, botth peers are shutdown and restarted
40# 40#
41# Conditions for successful exit: 41# Conditions for successful exit:
42# Both peers have 1 connected peer in transport, core, topology, fs after restart 42# Both peers have 1 connected peer in transport, core, topology, fs after restart
@@ -68,68 +68,68 @@ def cleanup_onerror (function, path, excinfo):
68 68
69def cleanup (): 69def 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 79
80 80
81 retries = 10 81 retries = 10
82 path = os.path.join (tmp, "c_no_nat_client") 82 path = os.path.join (tmp, "c_no_nat_client")
83 test.p ("Removing " + path) 83 test.p ("Removing " + path)
84 while ((os.path.exists(path)) and (retries > 0)): 84 while ((os.path.exists(path)) and (retries > 0)):
85 shutil.rmtree ((path), False, cleanup_onerror) 85 shutil.rmtree ((path), False, cleanup_onerror)
86 time.sleep (1) 86 time.sleep (1)
87 retries -= 1 87 retries -= 1
88 if (os.path.exists(path)): 88 if (os.path.exists(path)):
89 test.p ("Failed to remove " + path) 89 test.p ("Failed to remove " + path)
90 90
91def success_restart_cont (check): 91def 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
99def fail_restart_cont (check): 99def 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
106def success_connect_cont (check): 106def 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
131def fail_connect_cont (check): 131def 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)
@@ -141,28 +141,28 @@ def check_connect ():
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 149
150 check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont) 150 check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont)
151 151
152# 152#
153# Test execution 153# Test execution
154# 154#
155 155
156 156
157def SigHandler(signum = None, frame = None): 157def SigHandler(signum = None, frame = None):
158 global success 158 global success
159 global server 159 global server
160 global client 160 global client
161 161
162 print('Test was aborted!') 162 print('Test was aborted!')
163 if (None != server): 163 if (None != server):
164 server.stop () 164 server.stop ()
165 if (None != client): 165 if (None != client):
166 client.stop () 166 client.stop ()
167 cleanup () 167 cleanup ()
168 sys.exit(success) 168 sys.exit(success)
@@ -172,68 +172,66 @@ def run ():
172 global test 172 global test
173 global server 173 global server
174 global client 174 global client
175 175
176 success = False 176 success = False
177 server = None 177 server = None
178 client = None 178 client = None
179 179
180 for sig in signals: 180 for sig in signals:
181 signal.signal(sig, SigHandler) 181 signal.signal(sig, SigHandler)
182 182
183 183
184 test = Test ('test_integration_disconnect', verbose) 184 test = Test ('test_integration_disconnect', verbose)
185 cleanup () 185 cleanup ()
186 server = Peer(test, './confs/c_bootstrap_server.conf'); 186 server = Peer(test, './confs/c_bootstrap_server.conf');
187 server.start(); 187 server.start();
188 188
189 client = Peer(test, './confs/c_no_nat_client.conf'); 189 client = Peer(test, './confs/c_no_nat_client.conf');
190 client.start(); 190 client.start();
191 191
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
227try: 227try:
228 run () 228 run ()
229except (KeyboardInterrupt, SystemExit): 229except (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 ()
234if (success == False): 234if (success == False):
235 sys.exit(1) 235 sys.exit(1)
236else: 236else:
237 sys.exit(0) 237 sys.exit(0)
238
239
diff --git a/src/integration-tests/test_integration_reconnect_nat.py.in b/src/integration-tests/test_integration_reconnect_nat.py.in
index 5b3f34d02..61d2ea966 100755
--- a/src/integration-tests/test_integration_reconnect_nat.py.in
+++ b/src/integration-tests/test_integration_reconnect_nat.py.in
@@ -11,7 +11,7 @@
11# WITHOUT ANY WARRANTY; without even the implied warranty of 11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# Affero General Public License for more details. 13# Affero General Public License for more details.
14# 14#
15# You should have received a copy of the GNU Affero General Public License 15# You should have received a copy of the GNU Affero General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>. 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17# 17#