A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
docker: update the link to the latest stable release
[simgrid.git]
/
tools
/
tesh
/
tesh.py
diff --git
a/tools/tesh/tesh.py
b/tools/tesh/tesh.py
index
2e0d94a
..
3abc35a
100755
(executable)
--- a/
tools/tesh/tesh.py
+++ b/
tools/tesh/tesh.py
@@
-5,12
+5,11
@@
tesh -- testing shell
========================
tesh -- testing shell
========================
-Copyright (c) 2012-20
19
. The SimGrid Team. All rights reserved.
+Copyright (c) 2012-20
20
. 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.
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.
-
#TODO: child of child of child that printfs. Does it work?
#TODO: a child dies after its parent. What happen?
#TODO: child of child of child that printfs. Does it work?
#TODO: a child dies after its parent. What happen?
@@
-25,7
+24,6
@@
under the terms of the license (GNU LGPL) which comes with this package.
"""
"""
-
import sys
import os
import shlex
import sys
import os
import shlex
@@
-47,14
+45,12
@@
else:
#
#
#
#
-
def isWindows():
return sys.platform.startswith('win')
# Singleton metaclass that works in Python 2 & 3
# http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python
def isWindows():
return sys.platform.startswith('win')
# Singleton metaclass that works in Python 2 & 3
# http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python
-
class _Singleton(type):
""" A metaclass that creates a Singleton base class when called. """
_instances = {}
class _Singleton(type):
""" A metaclass that creates a Singleton base class when called. """
_instances = {}
@@
-64,11
+60,9
@@
class _Singleton(type):
cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
-
class Singleton(_Singleton('SingletonMeta', (object,), {})):
pass
class Singleton(_Singleton('SingletonMeta', (object,), {})):
pass
-
SIGNALS_TO_NAMES_DICT = dict((getattr(signal, n), n)
for n in dir(signal) if n.startswith('SIG') and '_' not in n)
SIGNALS_TO_NAMES_DICT = dict((getattr(signal, n), n)
for n in dir(signal) if n.startswith('SIG') and '_' not in n)
@@
-314,8
+308,8
@@
class Cmd(object):
vdefault = m.group(2)
if vname in os.environ:
return "$" + vname
vdefault = m.group(2)
if vname in os.environ:
return "$" + vname
- else:
- return vdefault
+ return vdefault
+
self.args = re.sub(r"\${(\w+):=([^}]*)}", replace_perl_variables, self.args)
# replace bash environment variables ($THINGS) to their values
self.args = re.sub(r"\${(\w+):=([^}]*)}", replace_perl_variables, self.args)
# replace bash environment variables ($THINGS) to their values
@@
-427,7
+421,7
@@
class Cmd(object):
logs.append("(ignoring the output of <{cmd}> as requested)".format(cmd=cmdName))
else:
stdouta = stdout_data.split("\n")
logs.append("(ignoring the output of <{cmd}> as requested)".format(cmd=cmdName))
else:
stdouta = stdout_data.split("\n")
- while
len(stdouta) > 0
and stdouta[-1] == "":
+ while
stdouta
and stdouta[-1] == "":
del stdouta[-1]
stdouta = self.remove_ignored_lines(stdouta)
stdcpy = stdouta[:]
del stdouta[-1]
stdouta = self.remove_ignored_lines(stdouta)
stdcpy = stdouta[:]
@@
-447,7
+441,7
@@
class Cmd(object):
lineterm="",
fromfile='expected',
tofile='obtained'))
lineterm="",
fromfile='expected',
tofile='obtained'))
- if
len(diff) > 0
:
+ if
diff
:
logs.append("Output of <{cmd}> mismatch:".format(cmd=cmdName))
if self.sort >= 0: # If sorted, truncate the diff output and show the unsorted version
difflen = 0
logs.append("Output of <{cmd}> mismatch:".format(cmd=cmdName))
if self.sort >= 0: # If sorted, truncate the diff output and show the unsorted version
difflen = 0
@@
-471,7
+465,7
@@
class Cmd(object):
if TeshState().keep:
f = open('obtained', 'w')
obtained = stdout_data.split("\n")
if TeshState().keep:
f = open('obtained', 'w')
obtained = stdout_data.split("\n")
- while
len(obtained) > 0
and obtained[-1] == "":
+ while
obtained
and obtained[-1] == "":
del obtained[-1]
obtained = self.remove_ignored_lines(obtained)
for line in obtained:
del obtained[-1]
obtained = self.remove_ignored_lines(obtained)
for line in obtained:
@@
-514,14
+508,12
@@
class Cmd(object):
def can_run(self):
return self.args is not None
def can_run(self):
return self.args is not None
-
##############
#
# Main
#
#
##############
#
# Main
#
#
-
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
@@
-609,7
+601,7
@@
if __name__ == '__main__':
line = f.readfullline()
while line is not None:
# print(">>============="+line+"==<<")
line = f.readfullline()
while line is not None:
# print(">>============="+line+"==<<")
- if
len(line) == 0
:
+ if
not line
:
#print ("END CMD block")
if cmd.run_if_possible():
cmd = Cmd()
#print ("END CMD block")
if cmd.run_if_possible():
cmd = Cmd()