Changeset: e4c07ef16ecc for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e4c07ef16ecc Modified Files: testing/Mtest.py.in Branch: mtest Log Message:
more clean up and Mtest.py conditions diffs (200 lines): diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in --- a/testing/Mtest.py.in +++ b/testing/Mtest.py.in @@ -1064,6 +1064,7 @@ def RunTest(env, TST, BusyPorts, COND, o TX = 0 EXT = CALL = SERVER = "" + # (True, ext) x = isexecutable(TST) if not x[0]: x = isexecutable(TST,'') @@ -2444,8 +2445,7 @@ def main(argv) : global global_timeout VARS = ['TSTSRCBASE', 'TSTTRGBASE'] - if THISFILE == "Mtest.py": - VARS = VARS + [ 'MALCLIENT', 'SQLCLIENT', 'SQLDUMP', 'RCLIENT', 'RUBYCLIENT'] #, 'MONETDB_MOD_PATH' ] + VARS = VARS + [ 'MALCLIENT', 'SQLCLIENT', 'SQLDUMP', 'RCLIENT', 'RUBYCLIENT'] #, 'MONETDB_MOD_PATH' ] env = {} @@ -2504,35 +2504,31 @@ def main(argv) : parser.add_argument('--verbose', '-v', action='store_true', dest='verbose', help="more verbose test output") parser.add_argument('--procdebug', action='store_true', dest='procdebug', help='process debugging (Mtest developers only)') - if THISFILE == "Mtest.py": - parser.add_argument('-I', action='store', dest='ignore', default=dftIGNORE, metavar='<exp>', help="ignore lines matching <exp> during diff (default: '%s')" % dftIGNORE) - parser.add_argument('-C', action='store', dest='context', metavar='<num>', type=int, default=1, help="use <num> lines of context during diff (default: -C1)") - parser.add_argument('-A', action='store', dest='accuracy', metavar='<num>', type=int, default=1, help="accuracy for diff: 0=lines, 1=words, 2=chars (default: -A1)") - parser.add_argument('-t', action='store', dest='timeout', metavar='<sec>', type=int, default=60, help="timeout: kill (hanging) tests after <sec> seconds;\n-t0 means no timeout (default: -t60)") - parser.add_argument('--debug', '-d', action='store', dest='debug', metavar='<sec>', type=int, default=int(TSTDBG), help="debug value to be used by mserver5 (default: -d%s)\n(see `mserver5 --help' for details)" % TSTDBG) - parser.add_argument('--nr_threads', '-n', action='store', dest='nr_threads', metavar='<num>', type=int, default=int(TSTTHREADS), help="number of threads for mserver5 (default: -n%s)\n-n0 => mserver5 automatically determines the number of CPU cores" % TSTTHREADS) - parser.add_argument('--monet_mod_path', action='store', dest='monet_mod_path', metavar='<pathlist>', help="override mserver5's default module search path") - parser.add_argument('--dbfarm', action='store', dest='gdk_dbfarm', default=_configure(os.path.join('@QXlocalstatedir@','MonetDB')), metavar='<directory>', help="override default location of database directory") - parser.add_argument('--MALCLIENT', action='store', dest='MALCLIENT', metavar='<mal-client program>', help='default: %s' % dft['MALCLIENT']) - parser.add_argument('--SQLCLIENT', action='store', dest='SQLCLIENT', metavar='<sql-client program>', help='default: %s' % dft['SQLCLIENT']) - parser.add_argument('--SQLDUMP', action='store', dest='SQLDUMP', metavar='<sql-dump program>', help='default: %s' % dft['SQLDUMP']) - parser.add_argument('--RCLIENT', action='store', dest='RCLIENT', metavar='<R program>', help='default: %s' % dft['RCLIENT']) - parser.add_argument('--RUBYCLIENT', action='store', dest='RUBYCLIENT', metavar='<ruby program>', help='default: %s' % dft['RUBYCLIENT']) - parser.add_argument('--concurrent', action='store_true', dest='concurrent', help='There are concurrent Mtest runs using the same MonetDB installation') - parser.add_argument('--dbg', action='store', dest='dbg', metavar='<debugger/valgrind>', help="debugger to start before each server") - parser.add_argument('--mserver_set', action='store', dest='mserver_set', metavar='<mserver5_option>', help="This passes a single set to the server") - parser.add_argument('--no-clean', action='store_true', dest='no_clean', help='Do not clean up before test') - parser.add_argument('--testweb', action='store_true', dest='testweb', help='Optimize testing for testweb') - parser.add_argument('--releaserun', action='store_true', dest='releaserun', help='run tests as if for a release test') - parser.add_argument('--multifarm', action='store_true', dest='multifarm', help='use multiple dbfarms (developers only)') - parser.add_argument('--transient-inmemory', action='store_true', dest='inmemory', help="don't write transient data to disk") - parser.add_argument('--nomito', action='store_true', dest='nomito', help='Do not pass --forcemito to server') - parser.add_argument('--jenkins', action='store_true', dest='jenkins', help='special handling for Jenkins') - parser.add_argument('--addreqs', action='store_true', dest='addreqs', help='automatically add required tests when testing individual tests') - parser.add_argument('--global_timeout', '-T', action='store', dest='global_timeout', type=int, default=global_timeout, metavar='<sec>', help='global timeout') - parser.add_argument('--data_path', '-D', action='store', dest='data_path', metavar='<path>', help='Path to the root directory of the data files needed for testing') - parser.add_argument('--alltests', action='store_true', dest='alltests', help='also run tests that are known to fail') - parser.add_argument('--initdb', action='store', dest='initdb', metavar='<zipfile>', help='zip file with contents for initial database') + parser.add_argument('-t', action='store', dest='timeout', metavar='<sec>', type=int, default=60, help="timeout: kill (hanging) tests after <sec> seconds;\n-t0 means no timeout (default: -t60)") + parser.add_argument('--debug', '-d', action='store', dest='debug', metavar='<sec>', type=int, default=int(TSTDBG), help="debug value to be used by mserver5 (default: -d%s)\n(see `mserver5 --help' for details)" % TSTDBG) + parser.add_argument('--nr_threads', '-n', action='store', dest='nr_threads', metavar='<num>', type=int, default=int(TSTTHREADS), help="number of threads for mserver5 (default: -n%s)\n-n0 => mserver5 automatically determines the number of CPU cores" % TSTTHREADS) + parser.add_argument('--monet_mod_path', action='store', dest='monet_mod_path', metavar='<pathlist>', help="override mserver5's default module search path") + parser.add_argument('--dbfarm', action='store', dest='gdk_dbfarm', default=_configure(os.path.join('@QXlocalstatedir@','MonetDB')), metavar='<directory>', help="override default location of database directory") + parser.add_argument('--MALCLIENT', action='store', dest='MALCLIENT', metavar='<mal-client program>', help='default: %s' % dft['MALCLIENT']) + parser.add_argument('--SQLCLIENT', action='store', dest='SQLCLIENT', metavar='<sql-client program>', help='default: %s' % dft['SQLCLIENT']) + parser.add_argument('--SQLDUMP', action='store', dest='SQLDUMP', metavar='<sql-dump program>', help='default: %s' % dft['SQLDUMP']) + parser.add_argument('--RCLIENT', action='store', dest='RCLIENT', metavar='<R program>', help='default: %s' % dft['RCLIENT']) + parser.add_argument('--RUBYCLIENT', action='store', dest='RUBYCLIENT', metavar='<ruby program>', help='default: %s' % dft['RUBYCLIENT']) + parser.add_argument('--concurrent', action='store_true', dest='concurrent', help='There are concurrent Mtest runs using the same MonetDB installation') + parser.add_argument('--dbg', action='store', dest='dbg', metavar='<debugger/valgrind>', help="debugger to start before each server") + parser.add_argument('--mserver_set', action='store', dest='mserver_set', metavar='<mserver5_option>', help="This passes a single set to the server") + parser.add_argument('--no-clean', action='store_true', dest='no_clean', help='Do not clean up before test') + parser.add_argument('--testweb', action='store_true', dest='testweb', help='Optimize testing for testweb') + parser.add_argument('--releaserun', action='store_true', dest='releaserun', help='run tests as if for a release test') + parser.add_argument('--multifarm', action='store_true', dest='multifarm', help='use multiple dbfarms (developers only)') + parser.add_argument('--transient-inmemory', action='store_true', dest='inmemory', help="don't write transient data to disk") + parser.add_argument('--nomito', action='store_true', dest='nomito', help='Do not pass --forcemito to server') + parser.add_argument('--jenkins', action='store_true', dest='jenkins', help='special handling for Jenkins') + parser.add_argument('--addreqs', action='store_true', dest='addreqs', help='automatically add required tests when testing individual tests') + parser.add_argument('--global_timeout', '-T', action='store', dest='global_timeout', type=int, default=global_timeout, metavar='<sec>', help='global timeout') + parser.add_argument('--data_path', '-D', action='store', dest='data_path', metavar='<path>', help='Path to the root directory of the data files needed for testing') + parser.add_argument('--alltests', action='store_true', dest='alltests', help='also run tests that are known to fail') + parser.add_argument('--initdb', action='store', dest='initdb', metavar='<zipfile>', help='zip file with contents for initial database') parser.add_argument('tests', nargs='*', help='The positional arguments are either a list of one or more directories to be tested, or a single directory followed by a list of tests within that directory.') opts = parser.parse_args() @@ -2556,12 +2552,6 @@ def main(argv) : testweb = opts.testweb CONDITIONALS['RELEASERUN'] = opts.releaserun nomito = opts.nomito - par['IGNORE'] = opts.ignore - par['CONTEXT'] = str(opts.context) - a = opts.accuracy - if a not in (-1,0,1,2): - ErrExit('Accuracy for diff (-A) must be one of: 0=lines, 1=words, 2=chars !') - par['ACCURACY'] = a par['TIMEOUT'] = opts.timeout env['GDK_DEBUG'] = str(opts.debug) env['GDK_NR_THREADS'] = str(opts.nr_threads) @@ -2782,15 +2772,14 @@ def main(argv) : except: CONDITIONALS['BAD_HOSTNAME'] = '#' # True - if THISFILE == "Mtest.py": # env['MAPIPORT'] not available on Mapprove.py - s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) - try: - s.bind(('::1', int(env['MAPIPORT']))) - except socket.error as err: - CONDITIONALS['HAVE_IPV6'] = '' # False - else: - CONDITIONALS['HAVE_IPV6'] = '#' # True - s.close() + s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + try: + s.bind(('::1', int(env['MAPIPORT']))) + except socket.error as err: + CONDITIONALS['HAVE_IPV6'] = '' # False + else: + CONDITIONALS['HAVE_IPV6'] = '#' # True + s.close() # some relative path's for relocatable HTML output @@ -2804,10 +2793,9 @@ def main(argv) : # export and display env STDERR.flush() - if THISFILE == "Mtest.py": - vars_ = vars_ + ['GDK_DBFARM'] - vars_ = vars_ + ['setMONETDB_MOD_PATH'] - vars_ = vars_ + ['TSTDATAPATH'] + vars_ = vars_ + ['GDK_DBFARM'] + vars_ = vars_ + ['setMONETDB_MOD_PATH'] + vars_ = vars_ + ['TSTDATAPATH'] for v in vars_: if v in env: os.environ[v] = env[v] @@ -2852,38 +2840,37 @@ def main(argv) : global SOCK, HOST try: # try/finally to clean up sockdir # check for executables, set their standard options and export them - if THISFILE == "Mtest.py": - if SOCK: - # we cannot put the UNIX socket in the mtest root, because that - # makes the UNIX socket too long on most platforms, so use - # /var/tmp/mtest and try not to forget to clean that up - sockdir = "/var/tmp/mtest-%d" % os.getpid() - try: - os.mkdir(sockdir); - SOCK = "--set mapi_usock=%s/.s.monetdb.%s" % \ - (sockdir, env['MAPIPORT']) - HOST = sockdir - os.environ['MAPIHOST'] = HOST - except: - SOCK = "" - else: + if SOCK: + # we cannot put the UNIX socket in the mtest root, because that + # makes the UNIX socket too long on most platforms, so use + # /var/tmp/mtest and try not to forget to clean that up + sockdir = "/var/tmp/mtest-%d" % os.getpid() + try: + os.mkdir(sockdir); + SOCK = "--set mapi_usock=%s/.s.monetdb.%s" % \ + (sockdir, env['MAPIPORT']) + HOST = sockdir + os.environ['MAPIHOST'] = HOST + except: SOCK = "" + else: + SOCK = "" - exe = {} - exe['mserver5'] = CheckExec('mserver5') , '%s mserver5 --debug=%s --set gdk_nr_threads=%s %s --set mapi_listenaddr=all --set mapi_port=%s %s %s %s' % \ - (env['setDBG'], env['GDK_DEBUG'], env['GDK_NR_THREADS'], env['setMONETDB_MOD_PATH'], env['MAPIPORT'], SOCK, not nomito and '--forcemito' or '', env['MSERVER_SET']) - exe['python'] = CheckExec(sys.executable) , sys.executable - exe['ruby_client'] = CheckExec(env['RUBYCLIENT'].split(None, 1)[0]) , '%s %s' % (env['RUBYCLIENT'], env['MAPIPORT']) - exe['MAL_Client'] = CheckExec(env['MALCLIENT'].split(None, 1)[0]) , '%s --host=%s --port=%s' % (env['MALCLIENT'], HOST, env['MAPIPORT']) - exe['SQL_Client'] = CheckExec(env['SQLCLIENT'].split(None, 1)[0]) , '%s -i -e --host=%s --port=%s' % (env['SQLCLIENT'], HOST, env['MAPIPORT']) - exe['SQL_Dump'] = CheckExec(env['SQLDUMP'].split(None, 1)[0]) , '%s --host=%s --port=%s' % (env['SQLDUMP'], HOST, env['MAPIPORT']) - exe['R_Client'] = CheckExec(env['RCLIENT'].split(None, 1)[0]) , '%s --args %s' % (env['RCLIENT'], env['MAPIPORT']) - env['exe'] = exe - SetExecEnv(exe,verbose) + exe = {} + exe['mserver5'] = CheckExec('mserver5') , '%s mserver5 --debug=%s --set gdk_nr_threads=%s %s --set mapi_listenaddr=all --set mapi_port=%s %s %s %s' % \ + (env['setDBG'], env['GDK_DEBUG'], env['GDK_NR_THREADS'], env['setMONETDB_MOD_PATH'], env['MAPIPORT'], SOCK, not nomito and '--forcemito' or '', env['MSERVER_SET']) + exe['python'] = CheckExec(sys.executable) , sys.executable + exe['ruby_client'] = CheckExec(env['RUBYCLIENT'].split(None, 1)[0]) , '%s %s' % (env['RUBYCLIENT'], env['MAPIPORT']) + exe['MAL_Client'] = CheckExec(env['MALCLIENT'].split(None, 1)[0]) , '%s --host=%s --port=%s' % (env['MALCLIENT'], HOST, env['MAPIPORT']) + exe['SQL_Client'] = CheckExec(env['SQLCLIENT'].split(None, 1)[0]) , '%s -i -e --host=%s --port=%s' % (env['SQLCLIENT'], HOST, env['MAPIPORT']) + exe['SQL_Dump'] = CheckExec(env['SQLDUMP'].split(None, 1)[0]) , '%s --host=%s --port=%s' % (env['SQLDUMP'], HOST, env['MAPIPORT']) + exe['R_Client'] = CheckExec(env['RCLIENT'].split(None, 1)[0]) , '%s --args %s' % (env['RCLIENT'], env['MAPIPORT']) + env['exe'] = exe + SetExecEnv(exe,verbose) - #TODO: - #exe['JAVA'] = 'java' - #exe['JAVAC'] = 'javac' + #TODO: + #exe['JAVA'] = 'java' + #exe['JAVAC'] = 'javac' # parse commandline arguments testdirs = [] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list