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('&', '&amp;').replace('<', 
'&lt;').replace('>', '&gt;'))
+                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('&', '&amp;').replace('<', 
'&lt;').replace('>', '&gt;'))
+                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

Reply via email to