aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-02-16 21:00:41 +0100
committerChristian Grothoff <christian@grothoff.org>2019-02-16 21:00:41 +0100
commitd78e50fefc1f683872cda7821fdf4d324e57d952 (patch)
treee04ecc0f27d2e539e9bd8f1b0fbddefa82961805
parent613eaaad5798a134ec2d593432622a8f7f135a5d (diff)
parent815fc58842343a3b407c957e288f63718d3caebb (diff)
downloadgnunet-d78e50fefc1f683872cda7821fdf4d324e57d952.tar.gz
gnunet-d78e50fefc1f683872cda7821fdf4d324e57d952.zip
Merge branch 'master' of git+ssh://gnunet.org/gnunet
-rw-r--r--src/integration-tests/gnunet_testing.py.in130
1 files changed, 77 insertions, 53 deletions
diff --git a/src/integration-tests/gnunet_testing.py.in b/src/integration-tests/gnunet_testing.py.in
index 1470c3d38..dcfc99e8d 100644
--- a/src/integration-tests/gnunet_testing.py.in
+++ b/src/integration-tests/gnunet_testing.py.in
@@ -28,7 +28,15 @@ import sys
28import shutil 28import shutil
29import time 29import time
30from gnunet_pyexpect import pexpect 30from gnunet_pyexpect import pexpect
31import logging
31 32
33logger = logging.getLogger()
34handler = logging.StreamHandler()
35formatter = logging.Formatter(
36 '%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
37handler.setFormatter(formatter)
38logger.addHandler(handler)
39logger.setLevel(logging.DEBUG)
32 40
33class Check(object): 41class Check(object):
34 def __init__(self, test): 42 def __init__(self, test):
@@ -59,7 +67,8 @@ class Check(object):
59 time.sleep(1) 67 time.sleep(1)
60 execs += 1 68 execs += 1
61 if ((False == res) and (execs >= timeout)): 69 if ((False == res) and (execs >= timeout)):
62 print(('Check had timeout after ' + str(timeout) + ' seconds')) 70 logger.debug('Check had timeout after %s seconds', str(timeout))
71 # print(('Check had timeout after ' + str(timeout) + ' seconds'))
63 neg_cont(self) 72 neg_cont(self)
64 elif ((False == res) and (execs < timeout)): 73 elif ((False == res) and (execs < timeout)):
65 if (None != neg_cont): 74 if (None != neg_cont):
@@ -87,7 +96,8 @@ class Check(object):
87 neg += 1 96 neg += 1
88 else: 97 else:
89 pos += 1 98 pos += 1
90 print((str(pos) + ' out of ' + str(pos+neg) + ' conditions fulfilled')) 99 # print((str(pos) + ' out of ' + str(pos+neg) + ' conditions fulfilled'))
100 logger.debug('%s out of %s conditions fulfilled', str(pos), str(pos+neg))
91 return self.fulfilled 101 return self.fulfilled
92 102
93 def reset(self): 103 def reset(self):
@@ -110,9 +120,11 @@ class Condition(object):
110 120
111 def evaluate(self, failed_only): 121 def evaluate(self, failed_only):
112 if ((self.fulfilled == False) and (failed_only == True)): 122 if ((self.fulfilled == False) and (failed_only == True)):
113 print(str(self.type) + 'condition for was ' + str(self.fulfilled)) 123 # print(str(self.type) + 'condition for was ' + str(self.fulfilled))
124 logger.debug('%s condition for was %s', str(self.type), str(self.fulfilled))
114 elif (failed_only == False): 125 elif (failed_only == False):
115 print(str(self.type) + 'condition for was ' + str(self.fulfilled)) 126 # print(str(self.type) + 'condition for was ' + str(self.fulfilled))
127 logger.debug('%s condition for was %s', str(self.type), str(self.fulfilled))
116 return self.fulfilled 128 return self.fulfilled
117 129
118 130
@@ -135,17 +147,19 @@ class FileExistCondition(Condition):
135 147
136 def evaluate(self, failed_only): 148 def evaluate(self, failed_only):
137 if ((self.fulfilled == False) and (failed_only == True)): 149 if ((self.fulfilled == False) and (failed_only == True)):
138 print(str(self.type) + 150 # print(str(self.type) +
139 'condition for file ' + 151 # 'condition for file ' +
140 self.file + 152 # self.file +
141 ' was ' + 153 # ' was ' +
142 str(self.fulfilled)) 154 # str(self.fulfilled))
155 logger.debug('%s confition for file %s was %s', str(self.type), self.file, str(self.fulfilled))
143 elif (failed_only == False): 156 elif (failed_only == False):
144 print(str(self.type) + 157 # print(str(self.type) +
145 'condition for file ' + 158 # 'condition for file ' +
146 self.file + 159 # self.file +
147 ' was ' + 160 # ' was ' +
148 str(self.fulfilled)) 161 # str(self.fulfilled))
162 logger.debug('%s confition for file %s was %s', str(self.type), self.file, str(self.fulfilled))
149 return self.fulfilled 163 return self.fulfilled
150 164
151 165
@@ -182,20 +196,21 @@ class StatisticsCondition(Condition):
182 fail = b"" 196 fail = b""
183 op = b" == " 197 op = b" == "
184 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)): 198 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)):
185 print(self.peer.id[:4] + 199 # print(self.peer.id[:4] +
186 b" " + 200 # b" " +
187 self.peer.cfg.encode('utf-8') + 201 # self.peer.cfg.encode('utf-8') +
188 b" " + 202 # b" " +
189 str(self.type).encode('utf-8') + 203 # str(self.type).encode('utf-8') +
190 b' condition in subsystem "' + 204 # b' condition in subsystem "' +
191 self.subsystem.encode('utf-8').ljust(12) + 205 # self.subsystem.encode('utf-8').ljust(12) +
192 b'" : "' + 206 # b'" : "' +
193 self.name.encode('utf-8').ljust(30) + 207 # self.name.encode('utf-8').ljust(30) +
194 b'" : (expected/real value) ' + 208 # b'" : (expected/real value) ' +
195 str(self.value).encode('utf-8') + 209 # str(self.value).encode('utf-8') +
196 op + 210 # op +
197 res + 211 # res +
198 fail) 212 # fail)
213 logger.debug('%s %s %s condition in subsystem %s : %s : (expected/real value) %s %s %s %s', self.peer.id[:4], self.peer.cfg.encode('utf-8'), str(self.type).encode('utf-8'), self.subsystem.encode('utf-8').ljust(12), self.name.encode('utf-8').ljust(30), str(self.value).encode('utf-8'), op, res, fail)
199 return self.fulfilled 214 return self.fulfilled
200 215
201 216
@@ -241,21 +256,22 @@ class EqualStatisticsCondition(Condition):
241 fail = b"" 256 fail = b""
242 op = b" == " 257 op = b" == "
243 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)): 258 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)):
244 print(self.peer.id[:4] + 259 # print(self.peer.id[:4] +
245 b' "' + 260 # b' "' +
246 self.subsystem.encode('utf-8').ljust(12) + 261 # self.subsystem.encode('utf-8').ljust(12) +
247 b'" "' + 262 # b'" "' +
248 self.name.encode('utf-8').ljust(30) + 263 # self.name.encode('utf-8').ljust(30) +
249 b'" == ' + 264 # b'" == ' +
250 str(self.result).encode('utf-8') + 265 # str(self.result).encode('utf-8') +
251 b" " + 266 # b" " +
252 self.peer2.id[:4] + 267 # self.peer2.id[:4] +
253 b' "' + 268 # b' "' +
254 self.subsystem2.encode('utf-8').ljust(12) + 269 # self.subsystem2.encode('utf-8').ljust(12) +
255 b'" ' + 270 # b'" ' +
256 self.name2.encode('utf-8').ljust(30) + 271 # self.name2.encode('utf-8').ljust(30) +
257 b'" ' + 272 # b'" ' +
258 str(self.result2).encode('utf-8')) 273 # str(self.result2).encode('utf-8'))
274 logger.debug('%s %s %s == %s %s %s %s %s', self.peer.id[:4], self.subsystem.encode('utf-8').ljust(12), self.name.encode('utf-8').ljust(30), str(self.result).encode('utf-8'), self.peer2.id[:4], self.subsystem2.encode('uft-8').ljust(12), self.name2.encode('utf-8').ljust(30), str(self.result2).encode('utf-8'))
259 return self.fulfilled 275 return self.fulfilled
260 276
261 277
@@ -294,7 +310,8 @@ class Test(object):
294class Peer(object): 310class Peer(object):
295 def __init__(self, test, cfg_file): 311 def __init__(self, test, cfg_file):
296 if (False == os.path.isfile(cfg_file)): 312 if (False == os.path.isfile(cfg_file)):
297 print(("Peer cfg " + cfg_file + ": FILE NOT FOUND")) 313 # print(("Peer cfg " + cfg_file + ": FILE NOT FOUND"))
314 logger.debug('Peer cfg %s : FILE NOT FOUND', cfg_file)
298 self.id = "<NaN>" 315 self.id = "<NaN>"
299 self.test = test 316 self.test = test
300 self.started = False 317 self.started = False
@@ -302,12 +319,14 @@ class Peer(object):
302 319
303 def __del__(self): 320 def __del__(self):
304 if (self.started == True): 321 if (self.started == True):
305 print('ERROR! Peer using cfg ' + self.cfg + ' was not stopped') 322 # print('ERROR! Peer using cfg ' + self.cfg + ' was not stopped')
323 logger.debug('ERROR! Peer using cfg %s was not stopped', self.cfg)
306 ret = self.stop() 324 ret = self.stop()
307 if (False == ret): 325 if (False == ret):
308 print('ERROR! Peer using cfg ' + 326 # print('ERROR! Peer using cfg ' +
309 self.cfg + 327 # self.cfg +
310 ' could not be stopped') 328 # ' could not be stopped')
329 logger.debug('ERROR! Peer using cfg %s could not be stopped', self.cfg)
311 self.started = False 330 self.started = False
312 return ret 331 return ret
313 else: 332 else:
@@ -319,7 +338,8 @@ class Peer(object):
319 server = subprocess.Popen([self.test.gnunetarm, '-sq', '-c', self.cfg]) 338 server = subprocess.Popen([self.test.gnunetarm, '-sq', '-c', self.cfg])
320 server.communicate() 339 server.communicate()
321 except OSError: 340 except OSError:
322 print("Can not start peer") 341 # print("Can not start peer")
342 logger.debug('Can not start peer')
323 self.started = False 343 self.started = False
324 return False 344 return False
325 self.started = True 345 self.started = True
@@ -329,7 +349,8 @@ class Peer(object):
329 server.spawn(None, [self.test.gnunetpeerinfo, '-c', self.cfg, '-s'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 349 server.spawn(None, [self.test.gnunetpeerinfo, '-c', self.cfg, '-s'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
330 test = server.read("stdout", 1024) 350 test = server.read("stdout", 1024)
331 except OSError: 351 except OSError:
332 print("Can not get peer identity") 352 # print("Can not get peer identity")
353 logger.debug('Can not get peer identity')
333 test = (test.split(b'`')[1]) 354 test = (test.split(b'`')[1])
334 self.id = test.split(b'\'')[0] 355 self.id = test.split(b'\'')[0]
335 return True 356 return True
@@ -342,7 +363,8 @@ class Peer(object):
342 server = subprocess.Popen([self.test.gnunetarm, '-eq', '-c', self.cfg]) 363 server = subprocess.Popen([self.test.gnunetarm, '-eq', '-c', self.cfg])
343 server.communicate() 364 server.communicate()
344 except OSError: 365 except OSError:
345 print("Can not stop peer") 366 # print("Can not stop peer")
367 logger.debug('Can not stop peer')
346 return False 368 return False
347 self.started = False 369 self.started = False
348 return True 370 return True
@@ -357,9 +379,11 @@ class Peer(object):
357 if os.name == 'nt' and tests[1] == b'\n' and tests[0][-1] == b'\r': 379 if os.name == 'nt' and tests[1] == b'\n' and tests[0][-1] == b'\r':
358 tests = (tests[0][:-1], tests[1], tests[2]) 380 tests = (tests[0][:-1], tests[1], tests[2])
359 tests = tests[0] 381 tests = tests[0]
360 print("running gnunet-statistics " + self.cfg + " for " + name + "/" + subsystem + " yields " + tests.decode("utf-8")) 382 # print("running gnunet-statistics " + self.cfg + " for " + name + "/" + subsystem + " yields " + tests.decode("utf-8"))
383 logger.debug('running gnunet-statistics %s for %s "/" %s yields %s', self.cfg, name, subsystem, test.decode("utf-8"))
361 if (tests.isdigit() == True): 384 if (tests.isdigit() == True):
362 return tests 385 return tests
363 else: 386 else:
364 print("Invalid statistics value: " + str(tests) + " is not a number!") 387 # print("Invalid statistics value: " + str(tests) + " is not a number!")
388 logger.debug('Invalid statistics value: %s is not a number!', str(tests))
365 return -1 389 return -1