27 from gnunet_pyexpect
import pexpect
30 logger = logging.getLogger()
31 handler = logging.StreamHandler()
32 formatter = logging.Formatter(
33 '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
35 handler.setFormatter(formatter)
36 logger.addHandler(handler)
37 logger.setLevel(logging.DEBUG)
46 def add(self, condition):
54 if (
False == c.check()):
64 while ((
False == res)
and (execs < timeout)):
68 if ((
False == res)
and (execs >= timeout)):
69 logger.debug(
'Check had timeout after %s seconds', str(timeout))
71 elif ((
False == res)
and (execs < timeout)):
72 if (
None != neg_cont):
75 if (
None != pos_cont):
83 if ((res ==
False)
and (neg_cont !=
None)):
85 if ((res ==
True)
and (pos_cont !=
None)):
93 if (
False == c.evaluate(failed_only)):
98 '%s out of %s conditions fulfilled', str(pos), str(pos + neg)
121 if ((self.
fulfilledfulfilled ==
False)
and (failed_only ==
True)):
123 '%s condition for was %s', str(self.
typetype), str(self.
fulfilledfulfilled)
125 elif (failed_only ==
False):
127 '%s condition for was %s', str(self.
typetype), str(self.
fulfilledfulfilled)
140 res = os.path.isfile(self.
filefile)
152 '%s confition for file %s was %s', str(self.
typetypetype), self.
filefile,
155 elif (failed_only ==
False):
157 '%s confition for file %s was %s', str(self.
typetypetype), self.
filefile,
175 self.
resultresult = self.
peerpeer.get_statistics_value(
194 or (failed_only ==
False)):
196 '%s %s condition in subsystem %s: %s: (expected/real value) %s %s %s %s',
197 self.
peerpeer.id[:4].decode(
"utf-8"), self.
peerpeer.cfg,
206 def __init__(self, peer, subsystem, name, peer2, subsystem2, name2):
220 self.
resultresult = self.
peerpeer.get_statistics_value(
223 self.
result2result2 = self.
peer2peer2.get_statistics_value(
236 or (failed_only ==
False)):
238 '%s %s %s == %s %s %s %s %s', self.
peerpeer.id[:4],
252 gnunet_pyexpect_dir = os.path.join(srcdir,
"contrib/scripts")
253 if gnunet_pyexpect_dir
not in sys.path:
254 sys.path.append(gnunet_pyexpect_dir)
257 if os.name ==
'posix':
261 elif os.name ==
'nt':
262 self.
gnunetarmgnunetarm =
'gnunet-arm.exe'
266 shutil.rmtree(os.path.join(os.getenv(
"TEMP"), testname),
True)
268 shutil.rmtree(
"/tmp/" + testname,
True)
271 self.
peerspeers.append(peer)
274 if (self.
verboseverbose ==
True):
280 if (
False == os.path.isfile(cfg_file)):
282 logger.debug(
'Peer cfg %s : FILE NOT FOUND', cfg_file)
289 if (self.
startedstarted ==
True):
291 logger.debug(
'ERROR! Peer using cfg %s was not stopped', self.
cfgcfg)
292 ret = self.
stopstop()
298 'ERROR! Peer using cfg %s could not be stopped', self.
cfgcfg
306 os.unsetenv(
"XDG_CONFIG_HOME")
307 os.unsetenv(
"XDG_DATA_HOME")
308 os.unsetenv(
"XDG_CACHE_HOME")
309 self.
testtest.
p(
"Starting peer using cfg " + self.
cfgcfg)
311 server = subprocess.Popen([
312 self.
testtest.gnunetarm,
'-sq',
'-c', self.
cfgcfg
317 logger.debug(
'Can not start peer')
325 None, [self.
testtest.gnunetpeerinfo,
'-c', self.
cfgcfg,
'-s'],
326 stdout=subprocess.PIPE,
327 stderr=subprocess.STDOUT
329 test = server.read(
"stdout", 1024)
332 logger.debug(
'Can not get peer identity')
333 test = (test.split(b
'`')[1])
334 self.
idid = test.split(b
'\'')[0]
338 if (self.
startedstarted ==
False):
340 self.
testtest.
p(
"Stopping peer using cfg " + self.
cfgcfg)
342 server = subprocess.Popen([
343 self.
testtest.gnunetarm,
'-eq',
'-c', self.
cfgcfg
348 logger.debug(
'Can not stop peer')
357 self.
testtest.gnunetstatistics,
'-c', self.
cfgcfg,
'-q',
'-n', name,
360 stdout=subprocess.PIPE,
361 stderr=subprocess.STDOUT
364 test = server.read(
"stdout", 10240)
365 tests = test.partition(b
'\n')
367 if os.name ==
'nt' and tests[1] == b
'\n' and tests[0][-1] == b
'\r':
368 tests = (tests[0][:-1], tests[1], tests[2])
370 result = tests.decode(
"utf-8").strip()
372 'running gnunet-statistics %s for %s "/" %s yields %s', self.
cfgcfg,
373 name, subsystem, result
375 if (result.isdigit() ==
True):
379 'Invalid statistics value: %s is not a number!', result
def run_once(self, pos_cont, neg_cont)
def run_blocking(self, timeout, pos_cont, neg_cont)
def evaluate(self, failed_only)
def evaluate(self, failed_only)
def evaluate(self, failed_only)
def __init__(self, peer, subsystem, name, peer2, subsystem2, name2)
def evaluate(self, failed_only)
def __init__(self, test, cfg_file)
def get_statistics_value(self, subsystem, name)
def evaluate(self, failed_only)
def __init__(self, peer, subsystem, name, value)
def __init__(self, testname, verbose)
static int list
Set if we should print a list of currently running services.
static struct GNUNET_OS_Process * p
Helper process we started.