diff options
Diffstat (limited to 'src/integration-tests/gnunet_testing.py.in')
-rw-r--r-- | src/integration-tests/gnunet_testing.py.in | 100 |
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 | |||
30 | logger = logging.getLogger() | 30 | logger = logging.getLogger() |
31 | handler = logging.StreamHandler() | 31 | handler = logging.StreamHandler() |
32 | formatter = logging.Formatter( | 32 | formatter = logging.Formatter( |
33 | '%(asctime)s %(name)-12s %(levelname)-8s %(message)s') | 33 | '%(asctime)s %(name)-12s %(levelname)-8s %(message)s' |
34 | ) | ||
34 | handler.setFormatter(formatter) | 35 | handler.setFormatter(formatter) |
35 | logger.addHandler(handler) | 36 | logger.addHandler(handler) |
36 | logger.setLevel(logging.DEBUG) | 37 | logger.setLevel(logging.DEBUG) |
37 | 38 | ||
39 | |||
38 | class Check(object): | 40 | class 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 |