aboutsummaryrefslogtreecommitdiff
path: root/src/integration-tests/gnunet_testing.py.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/integration-tests/gnunet_testing.py.in')
-rw-r--r--src/integration-tests/gnunet_testing.py.in100
1 files changed, 77 insertions, 23 deletions
diff --git a/src/integration-tests/gnunet_testing.py.in b/src/integration-tests/gnunet_testing.py.in
index c3596d232..10f9d4475 100644
--- a/src/integration-tests/gnunet_testing.py.in
+++ b/src/integration-tests/gnunet_testing.py.in
@@ -30,11 +30,13 @@ import logging
30logger = logging.getLogger() 30logger = logging.getLogger()
31handler = logging.StreamHandler() 31handler = logging.StreamHandler()
32formatter = logging.Formatter( 32formatter = logging.Formatter(
33 '%(asctime)s %(name)-12s %(levelname)-8s %(message)s') 33 '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
34)
34handler.setFormatter(formatter) 35handler.setFormatter(formatter)
35logger.addHandler(handler) 36logger.addHandler(handler)
36logger.setLevel(logging.DEBUG) 37logger.setLevel(logging.DEBUG)
37 38
39
38class Check(object): 40class Check(object):
39 def __init__(self, test): 41 def __init__(self, test):
40 self.fulfilled = False 42 self.fulfilled = False
@@ -92,7 +94,9 @@ class Check(object):
92 neg += 1 94 neg += 1
93 else: 95 else:
94 pos += 1 96 pos += 1
95 logger.debug('%s out of %s conditions fulfilled', str(pos), str(pos+neg)) 97 logger.debug(
98 '%s out of %s conditions fulfilled', str(pos), str(pos + neg)
99 )
96 return self.fulfilled 100 return self.fulfilled
97 101
98 def reset(self): 102 def reset(self):
@@ -115,9 +119,13 @@ class Condition(object):
115 119
116 def evaluate(self, failed_only): 120 def evaluate(self, failed_only):
117 if ((self.fulfilled == False) and (failed_only == True)): 121 if ((self.fulfilled == False) and (failed_only == True)):
118 logger.debug('%s condition for was %s', str(self.type), str(self.fulfilled)) 122 logger.debug(
123 '%s condition for was %s', str(self.type), str(self.fulfilled)
124 )
119 elif (failed_only == False): 125 elif (failed_only == False):
120 logger.debug('%s condition for was %s', str(self.type), str(self.fulfilled)) 126 logger.debug(
127 '%s condition for was %s', str(self.type), str(self.fulfilled)
128 )
121 return self.fulfilled 129 return self.fulfilled
122 130
123 131
@@ -140,9 +148,15 @@ class FileExistCondition(Condition):
140 148
141 def evaluate(self, failed_only): 149 def evaluate(self, failed_only):
142 if ((self.fulfilled == False) and (failed_only == True)): 150 if ((self.fulfilled == False) and (failed_only == True)):
143 logger.debug('%s confition for file %s was %s', str(self.type), self.file, str(self.fulfilled)) 151 logger.debug(
152 '%s confition for file %s was %s', str(self.type), self.file,
153 str(self.fulfilled)
154 )
144 elif (failed_only == False): 155 elif (failed_only == False):
145 logger.debug('%s confition for file %s was %s', str(self.type), self.file, str(self.fulfilled)) 156 logger.debug(
157 '%s confition for file %s was %s', str(self.type), self.file,
158 str(self.fulfilled)
159 )
146 return self.fulfilled 160 return self.fulfilled
147 161
148 162
@@ -158,7 +172,9 @@ class StatisticsCondition(Condition):
158 172
159 def check(self): 173 def check(self):
160 if (self.fulfilled == False): 174 if (self.fulfilled == False):
161 self.result = self.peer.get_statistics_value(self.subsystem, self.name) 175 self.result = self.peer.get_statistics_value(
176 self.subsystem, self.name
177 )
162 if (self.result == self.value): 178 if (self.result == self.value):
163 self.fulfilled = True 179 self.fulfilled = True
164 return True 180 return True
@@ -174,8 +190,14 @@ class StatisticsCondition(Condition):
174 else: 190 else:
175 fail = "" 191 fail = ""
176 op = " == " 192 op = " == "
177 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)): 193 if (((self.fulfilled == False) and (failed_only == True))
178 logger.debug('%s %s condition in subsystem %s: %s: (expected/real value) %s %s %s %s', self.peer.id[:4].decode("utf-8"), self.peer.cfg, self.subsystem.ljust(12), self.name.ljust(30), self.value, op, self.result, fail) 194 or (failed_only == False)):
195 logger.debug(
196 '%s %s condition in subsystem %s: %s: (expected/real value) %s %s %s %s',
197 self.peer.id[:4].decode("utf-8"), self.peer.cfg,
198 self.subsystem.ljust(12), self.name.ljust(30), self.value, op,
199 self.result, fail
200 )
179 return self.fulfilled 201 return self.fulfilled
180 202
181 203
@@ -195,8 +217,12 @@ class EqualStatisticsCondition(Condition):
195 217
196 def check(self): 218 def check(self):
197 if (self.fulfilled == False): 219 if (self.fulfilled == False):
198 self.result = self.peer.get_statistics_value(self.subsystem, self.name) 220 self.result = self.peer.get_statistics_value(
199 self.result2 = self.peer2.get_statistics_value(self.subsystem2, self.name2) 221 self.subsystem, self.name
222 )
223 self.result2 = self.peer2.get_statistics_value(
224 self.subsystem2, self.name2
225 )
200 if (self.result == self.result2): 226 if (self.result == self.result2):
201 self.fulfilled = True 227 self.fulfilled = True
202 return True 228 return True
@@ -206,8 +232,14 @@ class EqualStatisticsCondition(Condition):
206 return True 232 return True
207 233
208 def evaluate(self, failed_only): 234 def evaluate(self, failed_only):
209 if (((self.fulfilled == False) and (failed_only == True)) or (failed_only == False)): 235 if (((self.fulfilled == False) and (failed_only == True))
210 logger.debug('%s %s %s == %s %s %s %s %s', self.peer.id[:4], self.subsystem.ljust(12), self.name.ljust(30), self.result, self.peer2.id[:4], self.subsystem2.ljust(12), self.name2.ljust(30), self.result2) 236 or (failed_only == False)):
237 logger.debug(
238 '%s %s %s == %s %s %s %s %s', self.peer.id[:4],
239 self.subsystem.ljust(12), self.name.ljust(30), self.result,
240 self.peer2.id[:4], self.subsystem2.ljust(12),
241 self.name2.ljust(30), self.result2
242 )
211 return self.fulfilled 243 return self.fulfilled
212 244
213 245
@@ -262,19 +294,23 @@ class Peer(object):
262 # print('ERROR! Peer using cfg ' + 294 # print('ERROR! Peer using cfg ' +
263 # self.cfg + 295 # self.cfg +
264 # ' could not be stopped') 296 # ' could not be stopped')
265 logger.debug('ERROR! Peer using cfg %s could not be stopped', self.cfg) 297 logger.debug(
298 'ERROR! Peer using cfg %s could not be stopped', self.cfg
299 )
266 self.started = False 300 self.started = False
267 return ret 301 return ret
268 else: 302 else:
269 return False 303 return False
270 304
271 def start(self): 305 def start(self):
272 os.unsetenv ("XDG_CONFIG_HOME") 306 os.unsetenv("XDG_CONFIG_HOME")
273 os.unsetenv ("XDG_DATA_HOME") 307 os.unsetenv("XDG_DATA_HOME")
274 os.unsetenv ("XDG_CACHE_HOME") 308 os.unsetenv("XDG_CACHE_HOME")
275 self.test.p("Starting peer using cfg " + self.cfg) 309 self.test.p("Starting peer using cfg " + self.cfg)
276 try: 310 try:
277 server = subprocess.Popen([self.test.gnunetarm, '-sq', '-c', self.cfg]) 311 server = subprocess.Popen([
312 self.test.gnunetarm, '-sq', '-c', self.cfg
313 ])
278 server.communicate() 314 server.communicate()
279 except OSError: 315 except OSError:
280 # print("Can not start peer") 316 # print("Can not start peer")
@@ -285,7 +321,11 @@ class Peer(object):
285 test = '' 321 test = ''
286 try: 322 try:
287 server = pexpect() 323 server = pexpect()
288 server.spawn(None, [self.test.gnunetpeerinfo, '-c', self.cfg, '-s'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 324 server.spawn(
325 None, [self.test.gnunetpeerinfo, '-c', self.cfg, '-s'],
326 stdout=subprocess.PIPE,
327 stderr=subprocess.STDOUT
328 )
289 test = server.read("stdout", 1024) 329 test = server.read("stdout", 1024)
290 except OSError: 330 except OSError:
291 # print("Can not get peer identity") 331 # print("Can not get peer identity")
@@ -299,7 +339,9 @@ class Peer(object):
299 return False 339 return False
300 self.test.p("Stopping peer using cfg " + self.cfg) 340 self.test.p("Stopping peer using cfg " + self.cfg)
301 try: 341 try:
302 server = subprocess.Popen([self.test.gnunetarm, '-eq', '-c', self.cfg]) 342 server = subprocess.Popen([
343 self.test.gnunetarm, '-eq', '-c', self.cfg
344 ])
303 server.communicate() 345 server.communicate()
304 except OSError: 346 except OSError:
305 # print("Can not stop peer") 347 # print("Can not stop peer")
@@ -310,7 +352,14 @@ class Peer(object):
310 352
311 def get_statistics_value(self, subsystem, name): 353 def get_statistics_value(self, subsystem, name):
312 server = pexpect() 354 server = pexpect()
313 server.spawn(None, [self.test.gnunetstatistics, '-c', self.cfg, '-q', '-n', name, '-s', subsystem], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 355 server.spawn(
356 None, [
357 self.test.gnunetstatistics, '-c', self.cfg, '-q', '-n', name,
358 '-s', subsystem
359 ],
360 stdout=subprocess.PIPE,
361 stderr=subprocess.STDOUT
362 )
314 # server.expect ("stdout", re.compile (r"")) 363 # server.expect ("stdout", re.compile (r""))
315 test = server.read("stdout", 10240) 364 test = server.read("stdout", 10240)
316 tests = test.partition(b'\n') 365 tests = test.partition(b'\n')
@@ -319,9 +368,14 @@ class Peer(object):
319 tests = (tests[0][:-1], tests[1], tests[2]) 368 tests = (tests[0][:-1], tests[1], tests[2])
320 tests = tests[0] 369 tests = tests[0]
321 result = tests.decode("utf-8").strip() 370 result = tests.decode("utf-8").strip()
322 logger.debug('running gnunet-statistics %s for %s "/" %s yields %s', self.cfg, name, subsystem, result) 371 logger.debug(
372 'running gnunet-statistics %s for %s "/" %s yields %s', self.cfg,
373 name, subsystem, result
374 )
323 if (result.isdigit() == True): 375 if (result.isdigit() == True):
324 return result 376 return result
325 else: 377 else:
326 logger.debug('Invalid statistics value: %s is not a number!', result) 378 logger.debug(
379 'Invalid statistics value: %s is not a number!', result
380 )
327 return -1 381 return -1