Changeset: 4cacfb260a3e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4cacfb260a3e
Modified Files:
        gdk/gdk_utils.c
        testing/Mtest.py.in
Branch: default
Log Message:

Merge with Jun2016 branch.


diffs (262 lines):

diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -656,45 +656,56 @@ def CreateHtmlIndex (env, *body) :
                                   'target': '%s_%s_body' % (DISTVER, TSTDIR),
                                   'class': 'black'},
                                  header)
+            tr = Element('tr', {'valign': 'top'},
+                         Element('th', {'class': 'header'},
+                                 header))
+            tr.addchildren(body)
+            hbody = Element('body',
+                            {'bgcolor': white,
+                             'text': black,
+                             'link': green,
+                             'vlink': darkgreen,
+                             'alink': lime},
+                            Element('center', {},
+                                    Element('table',
+                                            {'align': 'abscenter',
+                                             'border': '1',
+                                             'cellspacing': '0',
+                                             'cellpadding': '3'},
+                                            tr)))
         else:
-            header = Element('span', {'class': 'black'},
+            header = Element('h3', {},
                              Text(DISTVER))
-        tr = Element('tr', {'valign': 'top'},
-                     Element('th', {'class': 'header'},
-                             header))
-        tr.addchildren(body)
+            hbody = Element('body',
+                            {'bgcolor': white,
+                             'text': black,
+                             'link': green,
+                             'vlink': darkgreen,
+                             'alink': lime},
+                            header)
+            hbody.addchildren(body)
         html = Element('html', {},
                        Element('head', {},
                                Element('meta', {'charset':'utf8'}),
                                Element('title', {}, Text(HTMLTITLE)),
                                stylesheet),
-                       Element('body',
-                               {'bgcolor': white,
-                                'text': black,
-                                'link': green,
-                                'vlink': darkgreen,
-                                'alink': lime},
-                               Element('center', {},
-                                       Element('table',
-                                               {'align': 'abscenter',
-                                                'border': '1',
-                                                'cellspacing': '0',
-                                                'cellpadding': '3'},
-                                               tr))))
+                       hbody)
         f = open("%s.head.html" % INDEX,"w")
         html.write(f, True)
         f.close()
 
         if TSTDIR:
-            ROWS="72"
+            layout = 'rows'
+            ROWS="8%"
         else:
-            ROWS="54"
+            layout = 'cols'
+            ROWS="10%"
         html = Element('html', {},
                        Element('head', {},
                                Element('meta', {'charset':'utf8'}),
                                Element('title', {}, Text(HTMLTITLE))),
                        Element('frameset',
-                               {'rows': '%s,*' % ROWS,
+                               {layout: '%s,*' % ROWS,
                                 'frameborder': 'yes',
                                 'border': '1',
                                 'bordercolor': white,
@@ -1056,14 +1067,15 @@ def AddTstToHtmlIndex (env, TST, STABLEo
 ### AddTstToHtmlIndex (env, TST, STABLEout, STABLEerr, EXT) #
 
 def AddSubToHtmlIndex (env, TSTDIR, diff) :
-    td = Element('td', {'class': 'header'})
-    td.addchildren(AddHref('%s/.index.html' % url(TSTDIR), '%s__body' % 
DISTVER,
-                           TSTDIR, diff))
+    elem = Element('p', {})
+    elem.addchildren(AddHref('%s/.index.html' % url(TSTDIR),
+                             '%s__body' % DISTVER,
+                             TSTDIR, diff))
     if '__BODY_' not in env  or  \
        not env['__BODY_'][0]  or  \
        ( (not env['__BODY_'][1])  and  diff ):
         env['__BODY_'] = ["%s/.index.html" % TSTDIR, diff]
-    return td
+    return elem
 ### AddSubToHtmlIndex (env, TSTDIR, diff) #
 
 def SkipTest(env, TST, EXT, REASON, length) :
@@ -1129,6 +1141,7 @@ def find_test_dirs(thisdir) :
 ### find_test_dirs(thisdir) #
 
 def PerformDir(env, testdir, testlist, BusyPorts, all_tests = False) :
+    interrupted = False
     td = 0
     elem = None
     FdOut = F_SKIP
@@ -1164,7 +1177,7 @@ def PerformDir(env, testdir, testlist, B
                 testlist.append((tst,cond))
     if not testlist:
         Warn("No tests found in '%s`; skipping directory!" % TSTSRCDIR)
-        return td, elem, max(FdOut, FdErr)
+        return td, elem, max(FdOut, FdErr), interrupted
 
     # find length of longest test name
     length = 0
@@ -1209,7 +1222,7 @@ def PerformDir(env, testdir, testlist, B
                     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)
+                    return td, elem, max(FdOut, FdErr), interrupted
             if os.path.isabs(LogDBdir) and not os.path.exists(LogDBdir):
                 try:
                     os.makedirs(LogDBdir)
@@ -1217,7 +1230,7 @@ def PerformDir(env, testdir, testlist, B
                     Warn("creating database '%s` failed; skipping tests in 
'%s`!" % (TSTDB, TSTSRCDIR))
                     #TODO:
                     # add "something" to HTML output
-                    return td, elem, max(FdOut, FdErr)
+                    return td, elem, max(FdOut, FdErr), interrupted
         if not os.path.exists(TSTTRGDIR):
             #TODO: set mode to umask
             os.makedirs(TSTTRGDIR)
@@ -1228,27 +1241,31 @@ def PerformDir(env, testdir, testlist, B
         if not verbose and not quiet:
             print('\nRunning in %s' % TSTDIR)
         alllinks = []
-        for TST,COND in testlist:
-            os.environ['TST'] = TST
-            tt, FtOut, FtErr, bodyline, reason, links = RunTest(env, TST, 
BusyPorts, COND, oktests, length, all_tests)
-            alllinks.extend(links)
-            if tt:
-                t = "%7.3f" % tt
-            else:
-                t = '-.---'
-            TIMES.append((TSTDIR, TST, t, tt, FtOut, FtErr, reason))
-            td += tt
-            FdOut = max(FdOut,FtOut)
-            FdErr = max(FdErr,FtErr)
-            if bodyline is not None:
-                if FtOut <= F_OK and FtErr <= F_OK:
-                    body_good.append(bodyline)
+        try:
+            for TST,COND in testlist:
+                os.environ['TST'] = TST
+                tt, FtOut, FtErr, bodyline, reason, links = RunTest(env, TST, 
BusyPorts, COND, oktests, length, all_tests)
+                alllinks.extend(links)
+                if tt:
+                    t = "%7.3f" % tt
                 else:
-                    body_bad.append(bodyline)
-            if FtOut in (F_OK, F_WARN) and FtErr in (F_OK, F_WARN):
-                oktests.append(TST)
-            if global_timeout and start_time + global_timeout < time.time():
-                break
+                    t = '-.---'
+                TIMES.append((TSTDIR, TST, t, tt, FtOut, FtErr, reason))
+                td += tt
+                FdOut = max(FdOut,FtOut)
+                FdErr = max(FdErr,FtErr)
+                if bodyline is not None:
+                    if FtOut <= F_OK and FtErr <= F_OK:
+                        body_good.append(bodyline)
+                    else:
+                        body_bad.append(bodyline)
+                if FtOut in (F_OK, F_WARN) and FtErr in (F_OK, F_WARN):
+                    oktests.append(TST)
+                if global_timeout and start_time + global_timeout < 
time.time():
+                    break
+        except KeyboardInterrupt:
+            print('\nInterrupted')
+            interrupted = True
         TIMES.append((TSTDIR, '', "%7.3f" % td, td, FdOut, FdErr, None))
         if testweb:
             os.chdir(TSTTRGDIR)
@@ -1292,12 +1309,12 @@ def PerformDir(env, testdir, testlist, B
     else: # THISFILE == "Mapprove.py"
         if not os.path.exists(TSTTRGDIR):
             Warn("Output directory '%s` missing; skipping directory!" % 
TSTTRGDIR)
-            return td, elem, max(FdOut, FdErr)
+            return td, elem, max(FdOut, FdErr), interrupted
 
         for TST,COND in testlist:
             td += ApproveOutput(env, TST)
 
-    return td, elem, max(FdOut, FdErr)
+    return td, elem, max(FdOut, FdErr), interrupted
 ### PerformDir(env, testdir, testlist, BusyPorts) #
 
 def ApproveOutput (env, TST) :
@@ -4148,33 +4165,37 @@ def main(argv) :
         t_ = 0
         body_good = []
         body_bad = []
-        if len(testdirs) == 1:
-            if testlist:
-                tsts = "tests "+str(testlist)
-            else:
-                tsts = "all tests"
-                all_tests = True
-            if verbose:
-                print("\nRunning %s in directory %s.\n" % (tsts , testdirs[0]))
-            t_, elem, diff = PerformDir(env, testdirs[0], testlist, BusyPorts, 
all_tests)
-            if elem is not None:
-                if diff <= F_OK:
-                    body_good.append(elem)
+        try:
+            if len(testdirs) == 1:
+                if testlist:
+                    tsts = "tests "+str(testlist)
                 else:
-                    body_bad.append(elem)
-        else:
-            if verbose:
-                print("\nRunning all tests in directories %s.\n" % 
str(testdirs))
-            for d in testdirs:
-                t, elem, diff = PerformDir(env, d, [], BusyPorts, True)
-                t_ = t_ + t
+                    tsts = "all tests"
+                    all_tests = True
+                if verbose:
+                    print("\nRunning %s in directory %s.\n" % (tsts , 
testdirs[0]))
+                t_, elem, diff = PerformDir(env, testdirs[0], testlist, 
BusyPorts, all_tests)
                 if elem is not None:
                     if diff <= F_OK:
                         body_good.append(elem)
                     else:
                         body_bad.append(elem)
-                if global_timeout and start_time + global_timeout < 
time.time():
-                    break
+            else:
+                if verbose:
+                    print("\nRunning all tests in directories %s.\n" % 
str(testdirs))
+                for d in testdirs:
+                    t, elem, diff = PerformDir(env, d, [], BusyPorts, True)
+                    t_ = t_ + t
+                    if elem is not None:
+                        if diff <= F_OK:
+                            body_good.append(elem)
+                        else:
+                            body_bad.append(elem)
+                    if global_timeout and start_time + global_timeout < 
time.time():
+                        break
+        except KeyboardInterrupt:
+            # if we get interrupted between directories, we still want output
+            pass
         body = body_bad + body_good
 
         if THISFILE == "Mtest.py":
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to