Changeset: 2242e4d66b58 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2242e4d66b58
Modified Files:
testing/Mtest.py.in
Branch: Oct2020
Log Message:
Give access to server output in single server directories and highlight errors.
diffs (118 lines):
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -681,7 +681,7 @@ def try_open(path, mode) :
return f
### try_open(path, mode) #
-def CreateHtmlIndex (env, *body) :
+def CreateHtmlIndex (env, ssout, sserr, *body) :
TSTDIR=env['TSTDIR']
TSTTRGDIR=env['TSTTRGDIR']
@@ -702,9 +702,17 @@ def CreateHtmlIndex (env, *body) :
'target': '%s_%s_body' % (DISTVER, TSTDIR),
'class': 'black'},
header)
- tr = Element('tr', {'valign': 'top'},
- Element('th', {'class': 'header'},
- header))
+ th = Element('th', {'class': 'header'}, header)
+ if os.path.exists('SingleServer.out.html'):
+ th.addchild(Element('br'))
+ th.addchildren(AddHref('SingleServer.out.html',
+ '%s_%s_body' % (DISTVER, TSTDIR),
+ 'out', ssout))
+ th.addchild(Text(' | '))
+ th.addchildren(AddHref('SingleServer.err.html',
+ '%s_%s_body' % (DISTVER, TSTDIR),
+ 'err', sserr))
+ tr = Element('tr', {'valign': 'top'}, th)
tr.addchildren(body)
hbody = Element('body',
{'bgcolor': white,
@@ -778,7 +786,7 @@ def CreateHtmlIndex (env, *body) :
f.close()
env['_%s_BODY_' % TSTDIR] = ["", 0]
os.chdir(BACK)
-### CreateHtmlIndex (env, *body) #
+### CreateHtmlIndex (env, ssout, sserr, *body) #
bugre = re.compile(r'\.(sf|bug)-(?P<bugno>[1-9]\d+)', re.I)
@@ -1202,6 +1210,8 @@ def PerformDir(env, testdir, testlist, B
elem = None
FdOut = F_SKIP
FdErr = F_SKIP
+ ssout = F_SKIP
+ sserr = F_SKIP
if testdir == TSTSRCBASE:
TSTDIR = os.curdir
else:
@@ -1398,6 +1408,28 @@ def PerformDir(env, testdir, testlist, B
if pSrvr is not None:
pSrvr.terminate()
pSrvr = None
+ o = open(os.path.join(TSTTRGDIR, 'SingleServer.out.html'), 'w')
+ o.write('<html><head><title>{} standard output</title></head>'
+ '<body><pre>\n'.format(TSTDIR))
+ e = F_OK
+ for line in open(os.path.join(TSTTRGDIR, 'SingleServer.out')):
+ if line != '\n' and not line.startswith('#'):
+ e = F_ERROR
+ ssout = F_ERROR
+ o.write(line.replace('&', '&').replace('<',
'<').replace('>', '>'))
+ o.write('</pre></body></html>\n')
+ o.close()
+ o = open(os.path.join(TSTTRGDIR, 'SingleServer.err.html'), 'w')
+ o.write('<html><head><title>{} standard error</title></head>'
+ '<body><pre>\n'.format(TSTDIR))
+ e = F_OK
+ for line in open(os.path.join(TSTTRGDIR, 'SingleServer.err')):
+ if line != '\n' and not line.startswith('#'):
+ e = F_ERROR
+ sserr = F_ERROR
+ o.write(line.replace('&', '&').replace('<',
'<').replace('>', '>'))
+ o.write('</pre></body></html>\n')
+ o.close()
TIMES.append((TSTDIR, '', "%7.3f" % td, td, FdOut, FdErr, None))
if testweb:
os.chdir(TSTTRGDIR)
@@ -1407,8 +1439,8 @@ def PerformDir(env, testdir, testlist, B
if THISFILE == "Mtest.py":
if not testweb:
body = body_bad + body_good
- CreateHtmlIndex(env, *body)
- elem = AddSubToHtmlIndex(env, TSTDIR, max(FdOut,FdErr))
+ CreateHtmlIndex(env, ssout, sserr, *body)
+ elem = AddSubToHtmlIndex(env, TSTDIR, max(FdOut, FdErr, ssout,
sserr))
# remove extra files created by tests
for f in listdir(TSTTRGDIR):
@@ -1447,7 +1479,7 @@ def PerformDir(env, testdir, testlist, B
for TST,COND in testlist:
td += ApproveOutput(env, TST)
- return td, elem, max(FdOut, FdErr), interrupted
+ return td, elem, max(FdOut, FdErr, ssout, sserr), interrupted
### PerformDir(env, testdir, testlist, BusyPorts) #
def ApproveOutput (env, TST) :
@@ -4500,7 +4532,7 @@ def main(argv) :
env['TSTDIR'] = ""
env['TSTTRGDIR'] = os.path.join(TSTTRGBASE, TSTPREF)
body = body_bad + body_good
- CreateHtmlIndex(env, *body)
+ CreateHtmlIndex(env, F_SKIP, F_SKIP, *body)
except KeyboardInterrupt:
# if we get interrupted between directories, we still want output
pass
@@ -4606,7 +4638,7 @@ VALUES (%s, '%s', '%s', '%s',
env['TSTDIR'] = ""
env['TSTTRGDIR'] = os.path.join(TSTTRGBASE, TSTPREF)
if not testweb:
- CreateHtmlIndex(env, *body)
+ CreateHtmlIndex(env, F_SKIP, F_SKIP, *body)
Failed = 0
for f in Failure[1:-1]:
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list