Changeset: 1e640a76f3c0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1e640a76f3c0
Modified Files:
        testing/Mtest.py.in
        tools/merovingian/daemon/forkmserver.c
Branch: default
Log Message:

Merged from Aug2011


diffs (truncated from 641 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
@@ -209,9 +209,8 @@ F_WARN = 1
 F_SOCK = 2
 F_TIME = 3
 F_RECU = 4
-F_KILL = 5
-F_SEGV = 6
-F_ERROR = 7
+F_SEGV = 5
+F_ERROR = 6
 
 FAILURES = {
     F_SKIP  : "F_SKIP",
@@ -220,7 +219,6 @@ FAILURES = {
     F_SOCK  : "F_SOCK",
     F_TIME  : "F_TIME",
     F_RECU  : "F_RECU",
-    F_KILL  : "F_KILL",
     F_SEGV  : "F_SEGV",
     F_ERROR : "F_ERROR"
 }
@@ -419,7 +417,8 @@ class Comment:
         f.write(str(self))
 
 class Timer:
-    # interface to the threading.Timer function that interprets a timeout of 0 
as no timeout
+    # interface to the threading.Timer function that interprets a
+    # timeout of 0 as no timeout
     def __init__(self, interval, function, args):
         self.timer = None
         if interval > 0:
@@ -448,7 +447,6 @@ purple = '#aa00aa'
 stylesheet = Element('style', None, Text('''
 .error     { font-weight: bold; font-style: italic; color: red; }
 .segfault  { font-weight: bold; font-style: italic; color: purple; }
-.killed    { font-weight: bold; font-style: italic; color: purple; }
 .recursion { font-weight: bold; font-style: italic; color: purple; }
 .timeout   { font-weight: bold; font-style: italic; color: purple; }
 .socket    { font-weight: bold; font-style: italic; color: purple; }
@@ -655,7 +653,7 @@ def CreateTstWhatXhtml (env, TST, stable
         f.close()
         diffclass = 'error'
         difftext = 'Major differences'
-    if diffclass == 'error' and SockTime in (F_SOCK, F_TIME, F_RECU, F_KILL, 
F_SEGV):
+    if diffclass == 'error' and SockTime in (F_SOCK, F_TIME, F_RECU, F_SEGV):
         if SockTime == F_SOCK:
             diffclass = 'socket'
             difftext = difftext + ' (Socket)'
@@ -665,9 +663,6 @@ def CreateTstWhatXhtml (env, TST, stable
         if SockTime == F_RECU:
             diffclass = 'recursion'
             difftext = difftext + ' (Recursion)'
-        if SockTime == F_KILL:
-            diffclass = 'killed'
-            difftext = difftext + ' (Killed)'
         if SockTime == F_SEGV:
             diffclass = 'segfault'
             difftext = difftext + ' (Crash)'
@@ -868,8 +863,6 @@ def CreateSrcIndex (env, TST, EXT) :
 def AddHref (href, target, linktext, diff) :
     if   diff == F_ERROR:
         klass = 'error'
-    elif diff == F_KILL:
-        klass = 'killed'
     elif diff == F_RECU:
         klass = 'recursion'
     elif diff == F_TIME:
@@ -924,12 +917,10 @@ def AddTstToHtmlIndex (env, TST, STABLEo
         ff.write("\n<!--MajorDiffs-->\n")
         ff.close()
         e = F_ERROR
-    if e == F_ERROR and SockTime in (F_SOCK, F_TIME, F_RECU, F_KILL, F_SEGV):
+    if e == F_ERROR and SockTime in (F_SOCK, F_TIME, F_RECU, F_SEGV):
         e = SockTime
     if o == F_ERROR or e == F_ERROR:
         tstclass = 'error'
-    elif e == F_KILL:
-        tstclass = 'killed'
     elif e == F_RECU:
         tstclass = 'recursion'
     elif e == F_TIME:
@@ -1330,8 +1321,7 @@ def GetBitsAndOIDsAndModsAndStaticAndThr
     t = Timer(float(par['TIMEOUT']), killProc, args = [proc, proc.stderr, cmd])
     try:
         t.start()
-        if par['M5']:
-            input = '''\
+        input = '''\
                 c := mdb.modules();
                 mods := algebra.kunique(c);
                 s := "\\nModules: ";
@@ -1428,8 +1418,7 @@ def CheckMods(env, TST, SERVER, CALL) :
             if m  and  m[0] != "#"  and  m not in env['TST_MODS']:
                 missing.append(m)
     if SERVER == "SQL":
-        if par['M5']:
-            sql_mods = ["sql"]
+        sql_mods = ["sql"]
         for m in sql_mods:
             if m not in env['TST_MODS']:
                 missing.append(m)
@@ -1451,30 +1440,6 @@ def CheckTests(env, TST, oktests):
     return missing
 ### CheckTests(env, TST, oktests) #
 
-def StartAt(cmd) :
-    if procdebug:
-        print 'StartAt: starting process "%s" (inpipe, outpipe, errpipe)\n' % 
cmd
-    proc = subprocess.Popen(cmd, shell = True, stdin = subprocess.PIPE, stdout 
= subprocess.PIPE, stderr = subprocess.PIPE, universal_newlines = True)
-    qOut, qErr = proc.communicate()
-    if procdebug:
-        print 'StartAt: starting exited "%s"\n' % cmd
-    return qOut.split('\n', 1)[0].strip()
-### StartAt(cmd) #
-
-def StopAt(ATJOB,ME) :
-    while  os.path.isfile(path("/tmp/.MkillUsers."+ME)):
-        time.sleep(9)
-    if SYST in ("IRIX", "IRIX64", "Darwin", "HPUX") or SYSTVER[:-1] == 
"SunOS5.1":
-        ATRM = 'at -r '
-    elif SYST == "SunOS":
-        ATRM = 'atrm -f '
-    else:
-        ATRM = 'atrm '
-    os.system(ATRM+ATJOB)
-    #TODO:
-    #LOG1x at -l >&2
-### StopAt(ATJOB,ME) #
-
 def StableOutErr(env,par,TST,SYST,RELEASE,DIST,VERSION) :
     BITS = env['TST_BITS']
     OIDS = env['TST_OIDS']
@@ -1681,7 +1646,7 @@ def RunTest(env, TST, BusyPorts, COND, o
 
         PRELUDE = []
         if EXT !=  '.sql':
-            if os.path.isfile(TST+".prelude5")  and  par['M5']:
+            if os.path.isfile(TST+".prelude5"):
                 PRELUDE = [TST+".prelude5"]
 
         TIMEOUT = par['TIMEOUT']
@@ -1715,31 +1680,6 @@ def RunTest(env, TST, BusyPorts, COND, o
             STIMEOUT = STIMEOUT + TIMEOUT + min(TIMEOUT, par['TIMEOUT'])
 
         ME = ""
-        ATJOB1 = ""
-        MkillUsers = ""
-        MkillUsersAT = ""
-        if TIMEOUT and os.name != "nt" and sys.platform != 'cygwin' and 
env.get('USE_AT'):
-            for f in TST+".KILLED.out", TST+".KILLED.err":
-                if os.path.isfile(f):
-                    os.remove(f)
-            ME = str(os.getpid())
-            WAIT = str(int(STIMEOUT / 60) + 2)
-            FILES = os.path.join(TSTTRGDIR,TST)+" 
"+os.path.join(TSTTRGDIR,TST)+".*"
-            for f in ["bat/\\*", '.gdk_lock']:
-                FILES = FILES+" "+os.path.join(env['GDK_DBFARM'],TSTDB,path(f))
-            WHAT0 = os.path.join(THISPATH,"MkillUsers")
-            if env.get('CONCURRENT'):
-                 WHAT0 = WHAT0+" --concurrent"
-            WHAT0 = WHAT0+" -l"+ME
-            WHAT1 = FILES+r" 
\>\>"+os.path.join(TSTTRGDIR,TST+".KILLED.out")+r" 
2\>\>"+os.path.join(TSTTRGDIR,TST+".KILLED.err")
-            WHAT = WHAT0+" -p"+ME+" "+WHAT1
-            WHEN = "now + "+WAIT+" minutes"
-            cmd  = "echo  "+WHAT+"  2>/dev/null | at "+WHEN+" 2>&1 | awk 
'/^[Jj]ob/{print $2}'"
-            ATJOB1 = StartAt(cmd)
-            #TODO:
-            #LOG1x at -l >&2
-            MkillUsers = (WHAT0+" "+WHAT1).replace('\\','')
-            MkillUsersAT = "echo  "+WHAT+"  2>/dev/null | at now + 1 minute 
2>&1 | awk '/^[Jj]ob/{print $2}'"
 
         TestOutFile = TST+".test.out"
         TestErrFile = TST+".test.err"
@@ -1751,7 +1691,7 @@ def RunTest(env, TST, BusyPorts, COND, o
         TestErr.close()
 
         t0 = time.time()
-        tres = DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, 
TestErrFile, STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME, MAPIsockets, length)
+        tres = DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, 
TestErrFile, STIMEOUT, CTIMEOUT, TIMEOUT, ME, MAPIsockets, length)
 
         t1 = time.time()
         TX = t1 - t0
@@ -1760,7 +1700,6 @@ def RunTest(env, TST, BusyPorts, COND, o
 
         timeout = F_OK
         recursion = F_OK
-        killed = F_OK
         segfaulted = F_OK
 
         if tres == 'timeout':
@@ -1770,33 +1709,6 @@ def RunTest(env, TST, BusyPorts, COND, o
         elif tres == 'segfault':
             segfaulted = F_SEGV
 
-        if ATJOB1:
-            StopAt(ATJOB1,ME)
-            os.system(WHAT.replace('\\', '').replace(" -p"+ME+" ", ' '))
-        else:
-            while os.path.exists(os.path.join(TSTTRGBASE,".KILLED.lck")):
-                time.sleep(1)
-
-        if MkillUsers:
-            os.system(MkillUsers)
-
-        n = TST+".KILLED."
-        for (x,txf) in [("out",TestOutFile),("err",TestErrFile)]:
-            f = n+x
-            if os.name == "nt":
-                for t in os.path.join(TSTTRGBASE,f), 
os.path.join(TSTTRGBASE,".KILLED."+x):
-                    if os.path.isfile(t):
-                        shutil.copy(t,f)
-                        os.remove(t)
-                        break
-            if os.path.isfile(f) and os.path.getsize(f):
-                p = try_open(txf, 'a')
-                if p is not None:
-                    for l in open(f):
-                        p.write("! "+l)
-                        killed = F_KILL
-                    p.close()
-
         sockerr = F_OK
         sockerr = max(sockerr, CheckSocket3(env, "MAPI", TestErrFile))
 
@@ -1827,12 +1739,6 @@ def RunTest(env, TST, BusyPorts, COND, o
             elif verbose:
                 STDOUT.write("(Recursion!) ")
 
-        if killed == F_KILL:
-            if quiet:
-                STDOUT.write("\n%s : Killed!\n" % TST)
-            elif verbose:
-                STDOUT.write("(Killed!) ")
-
         if segfaulted == F_SEGV:
             if quiet:
                 STDOUT.write("\n%s : Crashed!\n" % TST)
@@ -1869,8 +1775,8 @@ def RunTest(env, TST, BusyPorts, COND, o
         diff_html.write('<!--MajorDiffs-->\n')
         diff_html.close()
         timedout = True
-        if timeout == F_TIME or recursion == F_RECU or killed == F_KILL or 
segfaulted == F_SEGV:
-            # test run timed out or orphan processes were killed => expect 
major differences!
+        if timeout == F_TIME or recursion == F_RECU or segfaulted == F_SEGV:
+            # test run timed out or crashed => expect major differences!
             ACCURACYout = -1
         else:
             fs = open("%s%s.FILTERED" % (TST, STABLEout))
@@ -1939,8 +1845,8 @@ def RunTest(env, TST, BusyPorts, COND, o
         diff_html.write('<!--MajorDiffs-->\n')
         diff_html.close()
         timedout = True
-        if timeout == F_TIME or recursion == F_RECU or killed == F_KILL or 
segfaulted == F_SEGV:
-            # test run timed out or orphan processes were killed => expect 
major differences!
+        if timeout == F_TIME or recursion == F_RECU or segfaulted == F_SEGV:
+            # test run timed out or crashed => expect major differences!
             ACCURACYerr = -1
         else:
             fs = open("%s%s.FILTERED" % (TST, STABLEerr))
@@ -2004,15 +1910,13 @@ def RunTest(env, TST, BusyPorts, COND, o
             proc = subprocess.Popen(cmd)
             proc.wait()
 
-        FailedOut, FailedErr, elem = AddTstToHtmlIndex(env, TST, STABLEout, 
STABLEerr, EXT, max(sockerr, timeout, recursion, killed, segfaulted))
+        FailedOut, FailedErr, elem = AddTstToHtmlIndex(env, TST, STABLEout, 
STABLEerr, EXT, max(sockerr, timeout, recursion, segfaulted))
 
         if not verbose and not quiet:
             if timeout == F_TIME:
                 STDOUT.write("TIMEOUT")
             elif recursion == F_RECU:
                 STDOUT.write("RECURSION")
-            elif killed == F_KILL:
-                STDOUT.write("KILLED")
             elif segfaulted == F_SEGV:
                 STDOUT.write("CRASHED")
             else:
@@ -2267,7 +2171,7 @@ def mapi_ping(port,lang) :
     return False
 ### mapi_ping() #
 
-def DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME, MAPIsockets, length) :
+def DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, ME, MAPIsockets, length) :
     ATJOB2 = ""
     STDERR.flush()
     if quiet:
@@ -2296,9 +2200,6 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
     else:
         LOCAL_CONF = []
 
-    if par['M5']:
-        PRINTF = "io.printf"
-
     # Release reserved sockets and run the actual test
     MAPIsockets[0].close()
     MAPIsockets[1].close()
@@ -2319,13 +2220,12 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
             ClntErr = open(ClntErrFile,"w")
             PROLOGUE = []
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to