Changeset: e389c6048508 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e389c6048508
Modified Files:
testing/Mtest.py.in
testing/Mz.py.in
Branch: default
Log Message:
Merge with Jan2022 branch.
diffs (truncated from 852 to 300 lines):
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -62,12 +62,12 @@ mapiportre = re.compile(r'mapi:monetdb:/
geos_version = '@GEOS_VERSION@'.split('.')
# default is no color (these three functions may get redefined)
-def prred(str, write = sys.stdout.write):
- write(str)
-def prgreen(str, write = sys.stdout.write):
- write(str)
-def prpurple(str, write = sys.stdout.write):
- write(str)
+def prred(str):
+ print(str, end='')
+def prgreen(str):
+ print(str, end='')
+def prpurple(str):
+ print(str, end='')
if isatty:
if os.name != 'nt':
# color output a little
@@ -75,24 +75,24 @@ if isatty:
GREEN = '\033[0;32m'
PURPLE = '\033[1;35m' # actually magenta
BLACK = '\033[0;0m'
- def prred(str, write = sys.stdout.write):
+ def prred(str):
try:
- write(RED)
- write(str)
+ print(RED, end='')
+ print(str, end='')
finally:
- write(BLACK)
- def prgreen(str, write = sys.stdout.write):
+ print(BLACK, end='')
+ def prgreen(str):
try:
- write(GREEN)
- write(str)
+ print(GREEN, end='')
+ print(str, end='')
finally:
- write(BLACK)
- def prpurple(str, write = sys.stdout.write):
+ print(BLACK, end='')
+ def prpurple(str):
try:
- write(PURPLE)
- write(str)
+ print(PURPLE, end='')
+ print(str, end='')
finally:
- write(BLACK)
+ print(BLACK, end='')
else:
try:
import ctypes
@@ -115,36 +115,27 @@ if isatty:
return wattr
reset = get_csbi_attributes(handle)
def prred(str,
- write=sys.stdout.write,
- flush=sys.stdout.flush,
scta=ctypes.windll.kernel32.SetConsoleTextAttribute):
try:
- flush()
+ print(end='', flush=True)
scta(handle, 0x4)
- write(str)
- flush()
+ print(str, end='', flush=True)
finally:
scta(handle, reset)
def prgreen(str,
- write=sys.stdout.write,
- flush=sys.stdout.flush,
scta=ctypes.windll.kernel32.SetConsoleTextAttribute):
try:
- flush()
+ print(end='', flush=True)
scta(handle, 0x2)
- write(str)
- flush()
+ print(str, end='', flush=True)
finally:
scta(handle, reset)
def prpurple(str,
- write=sys.stdout.write,
- flush=sys.stdout.flush,
scta=ctypes.windll.kernel32.SetConsoleTextAttribute):
try:
- flush()
+ print(end='', flush=True)
scta(handle, 0x5)
- write(str)
- flush()
+ print(str, end='', flush=True)
finally:
scta(handle, reset)
@@ -166,7 +157,7 @@ if os.path.exists('/usr/bin/coredumpctl'
pass
def ErrExit(msg):
- sys.stderr.write(msg + '\n')
+ print(msg, file=sys.stderr, flush=True)
sys.exit(1)
def _configure(str):
@@ -581,8 +572,6 @@ class Timer:
self.timer.cancel()
self.timer = None
-STDOUT = sys.stdout
-STDERR = sys.stdout # err
REV = '' # revision (output of hg id), default unknown
black = 'black' # #000000
@@ -622,9 +611,8 @@ random.seed(time.time())
#### AlarmHandler(signum, frame) #
def ErrMsg(TEXT) :
- STDOUT.flush()
- STDERR.write("\n%s: ERROR: %s\n\n" % (THISFILE, TEXT))
- STDERR.flush()
+ print(end='', flush=True)
+ print("\n%s: ERROR: %s\n" % (THISFILE, TEXT), file=sys.stderr,
flush=True)
### ErrMsg(TEXT) #
def ErrXit(TEXT) :
@@ -634,12 +622,11 @@ def ErrXit(TEXT) :
def Warn(TEXT) :
try:
- STDOUT.flush()
+ print(end='', flush=True)
except IOError:
pass
try:
- STDERR.write("\n%s Warning: %s\n\n" % (THISFILE, TEXT))
- STDERR.flush()
+ print("\n%s Warning: %s\n" % (THISFILE, TEXT), file=sys.stderr,
flush=True)
except IOError:
pass
### Warn(TEXT) #
@@ -1130,7 +1117,7 @@ def SkipTest(env, TST, EXT, REASON, leng
TSTDIR = env['TSTDIR']
TEXT = "Skipping test %s%s %s" % (TST, EXT, REASON)
if quiet:
- STDOUT.write("-")
+ pass
elif verbose:
Warn(TEXT)
else:
@@ -1148,7 +1135,7 @@ def SkipTest(env, TST, EXT, REASON, leng
s = '%s...%s' % (TST[:l//2 - 2], TST[-(l//2 - 1):])
else:
s = '%-*s' % (length, TST)
- STDOUT.write('%s%s skipped (%s)\n' % (prompt(), s, REASON))
+ print('%s%s skipped (%s)' % (prompt(), s, REASON))
if testweb:
return None
@@ -1177,21 +1164,39 @@ def SkipTest(env, TST, EXT, REASON, leng
return td
### SkipTest(env, TST, EXT, REASON) #
-def find_test_dirs(thisdir) :
- testdirs = []
+def find_test_dirs(thisdir, recursive=True) :
thisdir = os.path.realpath(thisdir)
dirnme = os.path.basename(thisdir)
+ if not recursive and dirnme != TSTSUFF and
os.path.isdir(os.path.join(thisdir, TSTSUFF)):
+ return find_test_dirs(os.path.join(thisdir, TSTSUFF), recursive)
+ testdirs = []
dirlst = listdir(thisdir)
+ tstcnt = 0
if dirnme == TSTSUFF and "All" in dirlst and
os.path.isfile(os.path.join(thisdir,"All")):
- testdirs.append(os.path.dirname(thisdir))
- for d in dirlst:
- d = os.path.join(thisdir,d)
- if os.path.isdir(d):
- testdirs = testdirs + find_test_dirs(d)
- return testdirs
+ try:
+ allf = openutf8(os.path.join(thisdir,"All"))
+ except IOError:
+ pass
+ else:
+ cnt = 0
+ for tc in allf:
+ tc = tc.strip()
+ if tc != '' and not tc.startswith('#'):
+ cnt += 1
+ if cnt > 0:
+ testdirs.append(os.path.dirname(thisdir))
+ tstcnt += cnt
+ if recursive:
+ for d in dirlst:
+ d = os.path.join(thisdir,d)
+ if os.path.isdir(d):
+ tst, cnt = find_test_dirs(d)
+ testdirs.extend(tst)
+ tstcnt += cnt
+ return testdirs, tstcnt
### find_test_dirs(thisdir) #
-def PerformDir(env, testdir, testlist, all_tests = False) :
+def PerformDir(env, testdir, testlist, all_tests, total_tests, test_progress) :
interrupted = False
td = 0
elem = None
@@ -1261,7 +1266,7 @@ def PerformDir(env, testdir, testlist, a
testlist = alltests
if not testlist:
Warn("No tests found in '%s`; skipping directory!" % TSTSRCDIR)
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr), interrupted, test_progress
# find length of longest test name
length = 0
@@ -1290,11 +1295,6 @@ def PerformDir(env, testdir, testlist, a
os.environ['TSTDATAPATH'] = TSTDATAPATH
- #STDERR.flush()
- #for v in 'RELSRCDIR':
- # print(v+" = "+str(env[v]))
- #STDOUT.flush()
-
if 'GDK_DBFARM' in env:
LogDBdir = os.path.join(env['GDK_DBFARM'],TSTDB)
if not env.get('NOCLEAN') and LogDBdir and
os.path.exists(LogDBdir):
@@ -1306,7 +1306,7 @@ def PerformDir(env, testdir, testlist, a
Warn("database '%s` exists, but destroying it failed;
skipping tests in '%s`!" % (TSTDB, TSTSRCDIR))
#TODO:
# add "something" to HTML output
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr), interrupted,
test_progress
if os.path.isabs(LogDBdir) and not os.path.exists(LogDBdir):
try:
os.makedirs(LogDBdir)
@@ -1314,7 +1314,7 @@ def PerformDir(env, testdir, testlist, a
Warn("creating database '%s` failed; skipping tests in
'%s`!" % (TSTDB, TSTSRCDIR))
#TODO:
# add "something" to HTML output
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr), interrupted,
test_progress
if initdb:
import zipfile
try:
@@ -1323,7 +1323,7 @@ def PerformDir(env, testdir, testlist, a
Warn("initial database '%s` cannot be opened; skipping
tests in '%s`!" % (initdb, TSTSRCDIR))
#TODO:
# add "something" to HTML output
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr), interrupted,
test_progress
try:
z.extractall(LogDBdir)
except KeyboardInterrupt:
@@ -1332,7 +1332,7 @@ def PerformDir(env, testdir, testlist, a
Warn("initial database '%s` cannot be extracted; skipping
tests in '%s`!" % (initdb, TSTSRCDIR))
#TODO:
# add "something" to HTML output
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr), interrupted,
test_progress
z.close()
if not oneserver:
pSrvr =
ServerClass(splitcommand(env['exe']['mserver5'][1]) + ['--dbpath=%s' %
LogDBdir] + mserver5_opts, open(os.devnull, 'w'), open(os.devnull, 'w'),
par['TIMEOUT'], os.path.join(LogDBdir, '.started'))
@@ -1351,6 +1351,7 @@ def PerformDir(env, testdir, testlist, a
pSrvr = None
try:
for TST,COND in testlist:
+ test_progress += 1
if oneserver and (pSrvr is None or pSrvr.poll() is not None):
# restart server
inmem = single_in_memory
@@ -1393,7 +1394,7 @@ def PerformDir(env, testdir, testlist, a
tt, FtOut, FtErr, bodyline, reason =
0,F_SKIP,F_SKIP,None,"as the global timeout has been reached"
else:
os.environ['TST'] = TST
- tt, FtOut, FtErr, bodyline, reason, links = RunTest(env,
TST, COND, oktests, length, all_tests, pSrvr)
+ tt, FtOut, FtErr, bodyline, reason, links = RunTest(env,
TST, COND, oktests, length, all_tests, pSrvr, total_tests, test_progress)
alllinks.extend(links)
if tt:
t = "%7.3f" % tt
@@ -1483,10 +1484,10 @@ def PerformDir(env, testdir, testlist, a
except:
pass
- return td, elem, max(FdOut, FdErr, ssout, sserr), interrupted
+ return td, elem, max(FdOut, FdErr, ssout, sserr), interrupted,
test_progress
finally:
del sys.path[0]
-### PerformDir(env, testdir, testlist) #
+### PerformDir(env, testdir, testlist, all_tests, total_tests, test_progress) #
# this function is a slightly modified copy of the posixpath version
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]