Update of /cvsroot/monetdb/MonetDB/src/testing
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17490/src/testing

Modified Files:
      Tag: GDK-2
        Mfilter.py.in Mtest.py.in 
Log Message:
propagated changes since the creation of the GDK-2 branch (tag GDK-2_root) til 
Monday Aug 13 2007
from the development trunk to the GDK-2 branch

resolved minor conflicts in src/gdk/gdk_relop.mx.

resolved major conflicts in src/gdk/gdk_batop.mx (BATordered())
(hopefully correctly)

compilation NOT tested!



Index: Mtest.py.in
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/Mtest.py.in,v
retrieving revision 1.280
retrieving revision 1.280.2.1
diff -u -d -r1.280 -r1.280.2.1
--- Mtest.py.in 12 Jun 2007 17:20:02 -0000      1.280
+++ Mtest.py.in 13 Aug 2007 22:42:42 -0000      1.280.2.1
@@ -108,6 +108,8 @@
     # use private copy for old Python versions
     import subprocess26 as subprocess
 
+randomPortRepeat = 9
+
 F_SKIP = -1
 F_OK = 0
 F_WARN = 1
@@ -1522,10 +1524,13 @@
             if test.match(f):
                 
SymlinkOrCopy(os.path.join(RELSRCDIR,f),os.path.join(TSTTRGDIR,f))
 
-        if SERVER in ["MAPI", "SQL", "XQUERY"]:
-            CheckSocket2(env, "MAPI")   #, SrvrErr)
-        if SERVER == "XQUERY":
-            CheckSocket2(env, "XRPC")   #, SrvrErr)
+        # Check for available sockets and block them until we're ready to run 
the actual test
+        MAPIsockets, reason = CheckSocket2(env, "MAPI")   #, SrvrErr)
+        if MAPIsockets is not None:
+            XRPCsockets, reason = CheckSocket2(env, "XRPC")   #, SrvrErr)
+        if None in (MAPIsockets, XRPCsockets):
+            elem = SkipTest(env, TST, EXT, "as "+reason)
+            return TX,Failed,Failed,elem
 
         if os.path.isfile(TST+EXT+".src")  and not os.path.isfile(TST+EXT):
             f = open(TST+EXT+".src","r")
@@ -1535,6 +1540,11 @@
                 SymlinkOrCopy(TSTSRC,TST+EXT)
             else:
                 elem = SkipTest(env, TST, EXT+".src", "as source file 
'"+TSTSRC+"` is missing.")
+                # Release reserved sockets before bailing out
+                MAPIsockets[0].close()
+                MAPIsockets[1].close()
+                XRPCsockets[0].close()
+                XRPCsockets[1].close()
                 return TX,Failed,Failed,elem
         test = re.compile("^"+TST+"((_[sp][0-9][0-9])?\..*)?\.src$", 
re.MULTILINE)
         for ff in os.listdir(TSTTRGDIR):
@@ -1666,7 +1676,7 @@
         TestErr.close()
 
         t0 = time.time()
-        DoIt (env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME)
+        DoIt (env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME, MAPIsockets, XRPCsockets)
         t1 = time.time()
         TX = t1 - t0
         if not quiet:
@@ -1700,10 +1710,8 @@
                         killed = 1
                     p.close()
 
-        if SERVER in ["MAPI", "SQL", "XQUERY"]:
-            CheckSocket3(env, "MAPI", TestErrFile)
-        if SERVER == "XQUERY":
-            CheckSocket3(env, "XRPC", TestErrFile)
+        CheckSocket3(env, "MAPI", TestErrFile)
+        CheckSocket3(env, "XRPC", TestErrFile)
 
         #TODO:
         ##if [ ! -f $TSTTRGBASE/Tests/.old.left-over.tmp.bats. ] ; then  touch 
$TSTTRGBASE/Tests/.old.left-over.tmp.bats. ; fi
@@ -1845,70 +1853,71 @@
     return TX,FailedOut,FailedErr,elem
 ### RunTest(env, TST, BusyPorts) #
 
-def CheckPort(host,port) :
+def CheckPort(port) :
+    # Since 'localhost' and $HOST (i.e., `hostname`) are usually different 
interfaces,
+    # we check both, unless $HOST (`hostname`) appears to be merely an alias 
for 'localhost'.
     busy = 0
     Serrno = 0
     Serrstr = ""
-    S = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    S0 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    S1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    host = 'localhost'
     try:
-        S.bind((host,port))
+        S0.bind((host,port))
     except socket.error, (Serrno,Serrstr):
         busy = 1
-    S.close()
-    return busy, Serrno, Serrstr
-### CheckPort(host,port) #
+    if not busy:
+        host = os.environ['HOST']
+        try:
+            S1.bind((host,port))
+        except socket.error, (Serrno,Serrstr):
+            # $HOST just alias for 'localhost'?
+            S0.close()
+            try:
+                S1.bind((host,port))
+            except socket.error, (Serrno,Serrstr):
+                busy = 1
+    return busy, host, Serrno, Serrstr, (S0, S1)
+### CheckPort(port) #
 
 def randomPort(l,h) :
-    repeat = 9
-    host = 'localhost'
+    repeat = randomPortRepeat
     port = 0
     rpt = 0
     while rpt < repeat:
         port = random.randrange(l,h,1)
-        if CheckPort(host,port)[0]:
+        busy, host, Serrno, Serrstr, S = CheckPort(port)
+        S[0].close()
+        S[1].close()
+        if busy:
             rpt = rpt + 1
         else:
             break
     return port
 ### randomPort(l,h) #
 
-def CheckSocket(env,SERVER,SrvrErr,LogLine) :
-#       if OS == "SunOS":
-#               wait = 241
-#       else:
-#               wait = 61
-    wait = 61
-    repeat = 5
-    host = 'localhost'
+def CheckSocket2(env,SERVER) :  #,SrvrErr) :
     port = int(env[SERVER+'PORT'])
-    rpt = 0
-    while rpt < repeat:
-        busy, Serrno, Serrstr = CheckPort(host,port)
+    newport = port
+    busy, host, Serrno, Serrstr, S = CheckPort(port)
+    if busy:
+        S[0].close()
+        S[1].close()
+        Smsg = """
+! Socket-Check failed for %sserver on <%s:%d> with #%d; '%s' !
+""" % (SERVER, host, port, Serrno, Serrstr)
+        newport = eval(dft[SERVER+'PORT']) 
+        busy, host, Serrno, Serrstr, S = CheckPort(int(newport))
         if busy:
-            rpt = rpt + 1
-            Smsg = """
+            S[0].close()
+            S[1].close()
+            Smsg = Smsg + """
 ! Socket-Check failed for %sserver on <%s:%d> with #%d; '%s' !
-! Waiting %d seconds (%d/%d) ... """ % (SERVER, host, port, Serrno, Serrstr, 
wait, rpt, repeat)
-#            STDERR.write(Smsg)
-#            STDERR.flush()
-#            SrvrErr.write(Smsg)
-#            SrvrErr.flush()
-            time.sleep(wait)
-        else:
-            break
-    if rpt != 0:
-        SrvrErr.write("Done.\n\n")
-        SrvrErr.flush()
-        STDERR.write("Done.\n"+prompt()+LogLine)
-        STDERR.flush()
-### CheckSocket(env,SERVER,SrvrErr,LogLine) #
+! Giving up after %d attepts !
+""" % (SERVER, host, int(newport), Serrno, Serrstr, randomPortRepeat)
+            return None, Smsg
 
-def CheckSocket2(env,SERVER) :  #,SrvrErr) :
-    host = 'localhost'
-    port = int(env[SERVER+'PORT'])
-    busy, Serrno, Serrstr = CheckPort(host,port)
-    if busy:
-        env[SERVER+'PORT'] = eval(dft[SERVER+'PORT'])
+        env[SERVER+'PORT'] = newport
         os.environ[SERVER+'PORT'] = env[SERVER+'PORT']
         op = 'port=%d' % port
         np = 'port=%s' % env[SERVER+'PORT']
@@ -1924,20 +1933,22 @@
         os.environ['SQL_DUMP']      = os.environ['SQL_DUMP'].replace(op, np)
         os.environ['XQUERY_CLIENT'] = os.environ['XQUERY_CLIENT'].replace(op, 
np)
         os.environ['X100_CLIENT']   = os.environ['X100_CLIENT'].replace(op, np)
-        Smsg = """
-! Socket-Check failed for %sserver on <%s:%d> with #%d; '%s' !
+        Smsg = Smsg + """
 ! Using new %sPORT=%s !
-""" % (SERVER, host, port, Serrno, Serrstr, SERVER, env[SERVER+'PORT'])
+""" % (SERVER, env[SERVER+'PORT'])
 #        STDERR.write(Smsg)
 #        STDERR.flush()
 #        SrvrErr.write(Smsg)
 #        SrvrErr.flush()
+
+    return S, None
 ### CheckSocket2(env,SERVER)    #,SrvrErr) #
 
 def CheckSocket3(env,SERVER,ErrFileName) :
-    host = 'localhost'
     port = int(env[SERVER+'PORT'])
-    busy, Serrno, Serrstr = CheckPort(host,port)
+    busy, host, Serrno, Serrstr, S = CheckPort(port)
+    S[0].close()
+    S[1].close()
     if busy:
         Smsg = """
 ! Socket-Check failed for %sserver on <%s:%d> with #%d; '%s' !
@@ -1945,10 +1956,10 @@
 """ % (SERVER, host, port, Serrno, Serrstr, SERVER)
         STDERR.write(Smsg)
         STDERR.flush()
-#        ErrFile = open(ErrFileName, 'a')
-#        ErrFile.write(Smsg)
-#        ErrFile.flush()
-#        ErrFile.close()
+        ErrFile = open(ErrFileName, 'a')
+        ErrFile.write(Smsg)
+        ErrFile.flush()
+        ErrFile.close()
 ### CheckSocket3(env,SERVER,ErrFileName) #
 
 def prompt() :
@@ -2033,7 +2044,7 @@
 else:
     devnull = '/dev/null'
 
-def DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME) :
+def DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOutFile, TestErrFile, 
STIMEOUT, CTIMEOUT, TIMEOUT, MkillUsersAT, ME, MAPIsockets, XRPCsockets) :
     quiet = env['QUIET']
     ATJOB2 = ""
     LogLine = os.path.join(env['TSTDIR'],TST+EXT)+' '+PRELUDE+' (<=%d,%d,%d) 
...' % (TIMEOUT,CTIMEOUT,STIMEOUT)
@@ -2071,6 +2082,12 @@
     else:
         PRINTF = "printf"
 
+    # Release reserved sockets and run the actual test
+    MAPIsockets[0].close()
+    MAPIsockets[1].close()
+    XRPCsockets[0].close()
+    XRPCsockets[1].close()
+
     ServerReady = True
     if SERVER in ["MAPI", "SQL", "XQUERY"]:
         SrvrOutFile = TST+".server.out"
@@ -2325,7 +2342,7 @@
         TestErr.close()
 
 
-### DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOut, TestErr, STIMEOUT, 
CTIMEOUT, TIMEOUT, MkillUsersAT, ME) #
+### DoIt(env, SERVER, CALL, TST, EXT, PRELUDE, TestOut, TestErr, STIMEOUT, 
CTIMEOUT, TIMEOUT, MkillUsersAT, ME, MAPIsockets, XRPCsockets) #
 
 def Check(command, input) :
     proc = subprocess.Popen(command+" || echo ! Exit 1", shell = True, stdin = 
subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, 
universal_newlines = True)
@@ -2981,10 +2998,10 @@
         exe = {}
         exe['Mtimeout']      = CheckExec('Mtimeout')     , 'Mtimeout -timeout 
%d ' % par['TIMEOUT']
         if env['VERSION'] >= 49900:
-            exe['Mserver']       = CheckExec('mserver5')     , '%s mserver5 
"--config=%s" --debug=%s %s %s %s %s --set mapi_open=true --set mapi_port=%s 
--set xrpc_port=%s --set monet_prompt= --trace' % \
+            exe['Mserver']       = CheckExec('mserver5')     , '%s mserver5 
"--config=%s" --debug=%s %s %s %s %s --set mapi_open=true --set xrpc_open=true 
--set mapi_port=%s --set xrpc_port=%s --set monet_prompt= --trace' % \
                                                                (env['setDBG'], 
opts.config, env['GDK_DEBUG'], env['setMONETDB_MOD_PATH'], 
env['setGDK_DBFARM'], env['setSQL_LOGDIR'], env['setXQUERY_LOGDIR'], 
env['MAPIPORT'], env['XRPCPORT'])
         else:
-            exe['Mserver']       = CheckExec('Mserver')      , '%s Mserver 
"--config=%s" --debug=%s %s %s %s %s --set mapi_open=true --set mapi_port=%s 
--set xrpc_port=%s --set monet_prompt= --trace' % \
+            exe['Mserver']       = CheckExec('Mserver')      , '%s Mserver 
"--config=%s" --debug=%s %s %s %s %s --set mapi_open=true --set xrpc_open=true 
--set mapi_port=%s --set xrpc_port=%s --set monet_prompt= --trace' % \
                                                                (env['setDBG'], 
opts.config, env['GDK_DEBUG'], env['setMONETDB_MOD_PATH'], 
env['setGDK_DBFARM'], env['setSQL_LOGDIR'], env['setXQUERY_LOGDIR'], 
env['MAPIPORT'], env['XRPCPORT'])
         exe['Mdiff']         = CheckExec('Mdiff')        , 'Mdiff'
         exe['python']        = CheckExec(sys.executable) , sys.executable
@@ -3158,13 +3175,14 @@
             if MissingMods:
                 ErrXit('Stopping Pathfinder testing as modules "%s" are 
missing!' % str(MissingMods))
 
-        host = 'localhost'
-        for S in 'MAPI', 'XRPC':
-            port = int(env[S+'PORT'])
-            busy, Serrno, Serrstr = CheckPort(host,port)
+        for SRVR in 'MAPI', 'XRPC':
+            port = int(env[SRVR+'PORT'])
+            busy, host, Serrno, Serrstr, S = CheckPort(port)
+            S[0].close()
+            S[1].close()
             if busy:
-                Warn("Skipping %s tests as %sPORT=%s is not available (Error 
#%d: '%s')!" % (S,S,env[S+'PORT'],Serrno,Serrstr))
-                BusyPorts.append(S)
+                Warn("Skipping %s tests as %sPORT=%s is not available on %s 
(Error #%d: '%s')!" % (SRVR,SRVR,env[SRVR+'PORT'],host,Serrno,Serrstr))
+                BusyPorts.append(SRVR)
 
         # create '.Mapprove.rc'
         env['OS'] = os.environ['OS']

Index: Mfilter.py.in
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/Mfilter.py.in,v
retrieving revision 1.146
retrieving revision 1.146.4.1
diff -u -d -r1.146 -r1.146.4.1
--- Mfilter.py.in       20 May 2007 08:45:40 -0000      1.146
+++ Mfilter.py.in       13 Aug 2007 22:42:41 -0000      1.146.4.1
@@ -66,7 +66,7 @@
 ##                    r"^server listening on port [0-9]*$",
 ##                    r"^SQL  connected to database .* using schema .*$",
                       r"^MAPI  = [EMAIL PROTECTED]:[0-9]*$",
-                      r'^QUERY = execute at { "localhost:[0-9]*" }$',
+                      r'^QUERY = execute at { ".*:[0-9]*" }$',
                     r"^Pathfinder (?:XQuery Compiler|XML Shredder) 
\(.Revision: .* .\)$",
 ##                    r"^SQL  .* affected$",
 ##                    r": Symbol .(?:exit|_setjmp). causes overflow in 
R_X86_64_PC32 relocation$",
@@ -211,11 +211,6 @@
                     r'^QUERY = (?:\-\-|select|insert|INSERT) ',
 ##                # pathfinder: loader/usage (without BerkeleyDB):
 ##                    r'^     -c: compress node properties \(40% encoding 
speed\)$',
-                # Mtest warnings:
-                    r"^! Socket-Check failed for (?:SQL|MAPI)server on 
<[a-zA-Z0-9]*:[0-9]+> with #[0-9]+; '.*' !$",
-##                    r'^! Waiting [0-9]+ seconds \([0-9]/[0-9]\) \.\.\. 
(?:Done\.)?$',
-                    r'^! Using new (?:SQL|MAPI)PORT=[0-9]+ !$',
-                    r'^! (?:SQL|MAPI)PORT was not properly released by Mserver 
!$',
                 # ld warnings on IRIX64:
                     r"^ld64: WARNING 84 : .*/common/.libs/libmutils.so is not 
used for resolving any symbol.$",
                 # (extra) error messages that used to occur with M4/sql but 
don't any more with M5/sql:


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to