tesh -- testing shell
========================
-Copyright (c) 2012-2020. The SimGrid Team. All rights reserved.
+Copyright (c) 2012-2022. The SimGrid Team. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of the license (GNU LGPL) which comes with this package.
def expandvars2(path):
return re.sub(r'(?<!\\)\$[A-Za-z_][A-Za-z0-9_]*', '', os.path.expandvars(path))
-
-# https://github.com/Cadair/jupyter_environment_kernels/issues/10
-try:
- FileNotFoundError
-except NameError:
- # py2
- FileNotFoundError = OSError
-
##############
#
# Cleanup on signal
except:
# os.getpgid failed. Ok, don't cleanup.
return
-
+
try:
os.killpg(pgid, signal.SIGTERM)
if process_is_dead(pid):
# Return False if nothing has been ran.
def run_if_possible(self):
- if self.can_run():
- if self.background:
- lock = _thread.allocate_lock()
- lock.acquire()
- TeshState().add_thread(lock)
- _thread.start_new_thread(Cmd._run, (self, lock))
- else:
- self._run()
- return True
- else:
+ if not self.can_run():
return False
+ if self.background:
+ lock = _thread.allocate_lock()
+ lock.acquire()
+ TeshState().add_thread(lock)
+ _thread.start_new_thread(Cmd._run, (self, lock))
+ else:
+ self._run()
+ return True
def _run(self, lock=None):
# Python threads loose the cwd
return_code = max(2, return_code)
print('\n'.join(logs))
return
- else:
- logs.append("Test suite `{file}': NOK (<{cmd}> got signal {sig})".format(
- file=FileReader().filename, cmd=cmdName,
- sig=SIGNALS_TO_NAMES_DICT[-proc.returncode]))
- if lock is not None:
- lock.release()
- return_code = max(max(-proc.returncode, 1), return_code)
- print('\n'.join(logs))
- return
+
+ logs.append("Test suite `{file}': NOK (<{cmd}> got signal {sig})".format(
+ file=FileReader().filename, cmd=cmdName,
+ sig=SIGNALS_TO_NAMES_DICT[-proc.returncode]))
+ if lock is not None:
+ lock.release()
+ return_code = max(max(-proc.returncode, 1), return_code)
+ print('\n'.join(logs))
+ return
if lock is not None:
lock.release()
group1.add_argument(
'--ignore-jenkins',
action='store_true',
- help='ignore all cruft generated on SimGrid continous integration servers')
+ help='ignore all cruft generated on SimGrid continuous integration servers')
group1.add_argument('--wrapper', metavar='arg', help='Run each command in the provided wrapper (eg valgrind)')
group1.add_argument(
'--keep',
os.chdir(options.cd)
if options.ignore_jenkins:
- print("Ignore all cruft seen on SimGrid's continous integration servers")
+ print("Ignore all cruft seen on SimGrid's continuous integration servers")
# Note: regexps should match at the beginning of lines
TeshState().ignore_regexps_common = [
re.compile(r"profiling:"),
re.compile(r"Picked up JAVA_TOOL_OPTIONS: "),
re.compile(r"Picked up _JAVA_OPTIONS: "),
re.compile(r"==[0-9]+== ?WARNING: ASan doesn't fully support"),
- re.compile(r"==[0-9]+== ?WARNING: ASan is ignoring requested __asan_handle_no_return: stack top:"),
+ re.compile(r"==[0-9]+== ?WARNING: ASan is ignoring requested __asan_handle_no_return: stack "),
re.compile(r"False positive error reports may follow"),
- re.compile(r"For details see http://code.google.com/p/address-sanitizer/issues/detail\?id=189"),
- re.compile(r"For details see https://github.com/google/sanitizers/issues/189"),
+ re.compile(r"For details see http://code\.google\.com/p/address-sanitizer/issues/detail\?id=189"),
+ re.compile(r"For details see https://github\.com/google/sanitizers/issues/189"),
re.compile(r"Python runtime initialized with LC_CTYPE=C .*"),
# Seen on CircleCI
re.compile(r"cmake: /usr/local/lib/libcurl\.so\.4: no version information available \(required by cmake\)"),
- re.compile(r".*mmap broken on FreeBSD, but dlopen\+thread broken too. Switching to dlopen\+raw contexts\."),
+ re.compile(r".*mmap broken on FreeBSD, but dlopen\+thread broken too\. Switching to dlopen\+raw contexts\."),
re.compile(r".*dlopen\+thread broken on Apple and BSD\. Switching to raw contexts\."),
]
TeshState().jenkins = True # This is a Jenkins build
print("Test suite from stdin OK")
else:
print("Test suite `" + f.filename + "' OK")
- else:
- tesh_exit(return_code)
+ tesh_exit(return_code)