Changeset: 2d4810d81cc6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2d4810d81cc6 Branch: default Log Message:
merged 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 -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org