Update of /cvsroot/monetdb/MonetDB/src/testing
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv689/src/testing
Modified Files:
Tag: GDK-2
Makefile.ag Mfilter.py.in Mtest.py.in README
Removed Files:
Tag: GDK-2
Mprofile-commands.lst prof.py
Log Message:
propagated changes of Monday Sep 10 2007 - Tuesday Sep 18 2007
from the development trunk to the GDK-2 branch
--- prof.py DELETED ---
Index: Mtest.py.in
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/Mtest.py.in,v
retrieving revision 1.280.2.6
retrieving revision 1.280.2.7
diff -u -d -r1.280.2.6 -r1.280.2.7
--- Mtest.py.in 6 Sep 2007 13:50:57 -0000 1.280.2.6
+++ Mtest.py.in 18 Sep 2007 12:51:49 -0000 1.280.2.7
@@ -29,7 +29,6 @@
# contains(<file>,<string>)
# - do multi-level prompting?
# - normalize all path's used
-# - remove one of milM, milS
try:
True
@@ -49,7 +48,6 @@
#import signal
#import getpass
import Mfilter
-import prof
def _configure(str):
# expand configure variables in str and return result
@@ -98,15 +96,21 @@
str = nstr
return str
-# add dir where monet_options, trace & subprocess26 are installed to sys.path
-# we must expand configure variables in the process
-sys.path.append(_configure(os.path.join('@QXdatadir@','@PACKAGE@','python')))
-import monet_options
+try:
+ from MonetDB import monet_options
+except ImportError:
+ import distutils.sysconfig
+ p =
_configure(os.path.join('@QXprefix@',distutils.sysconfig.get_python_lib(1,0,"")))
+ sys.path.insert(0, p)
+ from MonetDB import monet_options
+ if os.environ.has_key('PYTHONPATH'):
+ p = p + os.pathsep + os.environ['PYTHONPATH']
+ os.environ['PYTHONPATH'] = p
try:
import subprocess
except ImportError:
# use private copy for old Python versions
- import subprocess26 as subprocess
+ import MonetDB.subprocess26 as subprocess
randomPortRepeat = 9
@@ -546,48 +550,6 @@
if COMPILER:
SYSTEM = COMPILER+", "+SYSTEM
- xWHAT = WHAT
- if THISFILE == "Mprofile.py":
- test =
re.compile("^"+TST+"(_[sp][0-9][0-9])?\..*mil.*\.prof\.diff\.html$",
re.MULTILINE)
- d = os.listdir(os.getcwd())
- d.sort()
- rows = ""
- frames = ""
- frameset = Element('frameset',
- {'frameborder': 'yes',
- 'border': '1',
- 'bordercolor': white,
- 'marginwidth': '0',
- 'marginheight': '0'})
- for f in d:
- if test.match(f):
- rows = rows+",*"
- frameset.addchild(Element('frame',
- {'src': f,
- 'scrolling': 'auto',
- 'frameborder': 'yes',
- 'bordercolor': white,
- 'marginwidth': '0',
- 'marginheight': '0'}))
- if rows:
- xWHAT = ".prof-"+WHAT[1:]
- rows = "*"+rows
- frameset.inschild(0, Element('frame',
- {'src': TST+WHAT+'.diff.html',
- 'scrolling': 'auto',
- 'frameborder': 'yes',
- 'bordercolor': white,
- 'marginwidth': '0',
- 'marginheight': '0'}))
- frameset.attrdict['rows'] = rows
- html = Element('html', {},
- Element('head', {}.
- Element('title', {}, Text(HTMLTITLE))),
- frameset)
- f = open(TST+xWHAT+".diff.html","w")
- html.write(f, True)
- f.close()
-
html = Element('html', {},
Element('head', {},
Element('title', {}, Text(HTMLTITLE)),
@@ -607,7 +569,7 @@
'marginwidth': '0',
'marginheight': '0'}),
Element('frame',
- {'src': '%s%s.diff.html' % (TST, xWHAT),
+ {'src': '%s%s.diff.html' % (TST, WHAT),
'scrolling': 'auto',
'name': '%s_%s_%s_%s_body' % (DISTVER,
TSTDIR, TST, WHAT[1:]),
'frameborder': 'yes',
@@ -627,7 +589,7 @@
text = Element('div', {'class': 'header'},
Text(SYSTEM),
Text(' '),
- Element('a', {'href': '%s%s.diff.html' % (TST, xWHAT),
+ Element('a', {'href': '%s%s.diff.html' % (TST, WHAT),
'target': target,
'class': diffclass},
Text(difftext)),
@@ -927,7 +889,7 @@
TSTBLDDIR =
os.path.normpath(os.path.join(env['TSTBLDBASE'],TSTDIR,TSTSUFF))
TSTTRGDIR =
os.path.normpath(os.path.join(env['TSTTRGBASE'],TSTPREF,TSTDIR))
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
TSTDB = TSTPREF+"_"+TSTDIR.replace(os.sep, '_')
else: # THISFILE == "Mapprove.py"
TSTDB = ""
@@ -970,7 +932,7 @@
# print v+" = "+str(env[v])
#STDOUT.flush()
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
for LogDBvar in 'GDK_DBFARM', 'SQL_LOGDIR', 'XQUERY_LOGDIR':
if env.has_key(LogDBvar):
LogDBdir = os.path.join(env[LogDBvar],TSTDB)
@@ -1015,7 +977,7 @@
body.append(bodyline)
TIMES.append([TSTDIR,'',"%7.3f" % td,td,FdOut,FdErr])
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
CreateHtmlIndex(env, *body)
elem = AddSubToHtmlIndex(env, TSTDIR, max(FdOut,FdErr))
@@ -1303,6 +1265,10 @@
def CheckBATs(env, TST, TSTDB) :
missing = []
+ if not os.path.isfile(TST+".BATs"):
+ # no BATs required => no check required
+ return missing
+
if par['M5']:
# Warn("Monet5: Check, whether required BATs do exist, is not
possible, yet!")
return missing
@@ -1441,14 +1407,10 @@
EXT = ".SQL.py" ; CALL = "python" ; SERVER = "SQL"
elif os.path.isfile(TST+".XQUERY"+".py") or
os.path.isfile(TST+".XQUERY"+".py.src") or
os.path.isfile(TST+".XQUERY"+".py.in"):
EXT = ".XQUERY.py" ; CALL = "python" ; SERVER = "XQUERY"
- elif os.path.isfile(TST+".milM") or
os.path.isfile(TST+".milM.src") or os.path.isfile(TST+".milM.in"):
- EXT = ".milM" ; CALL = "milM"
elif os.path.isfile(TST+".milS") or
os.path.isfile(TST+".milS.src") or os.path.isfile(TST+".milS.in"):
EXT = ".milS" ; CALL = "milS"
elif os.path.isfile(TST+".milC") or
os.path.isfile(TST+".milC.src") or os.path.isfile(TST+".milC.in"):
EXT = ".milC" ; CALL = "milC" ; SERVER = "MIL"
- elif os.path.isfile(TST+"_s00.milM") or
os.path.isfile(TST+"_s00.milM.src") or os.path.isfile(TST+"_s00.milM.in"):
- EXT = ".milM" ; CALL = "milMXs"
elif os.path.isfile(TST+"_s00.milS") or
os.path.isfile(TST+"_s00.milS.src") or os.path.isfile(TST+"_s00.milS.in"):
EXT = ".milS" ; CALL = "milSXs"
elif os.path.isfile(TST+"_s00.milC") or
os.path.isfile(TST+"_s00.milC.src") or os.path.isfile(TST+"_s00.milC.in"):
@@ -1492,11 +1454,11 @@
return RunTest(env, TST[:i], BusyPorts, COND)
EXT = CALL = SERVER = ""
if os.name == "nt":
- ErrMsg("test missing:
'"+os.path.join(TSTSRCDIR,TST)+".(exe|com|bat|cmd|py|mal|malC|milM|milS|milC|sql|xq|x100)`")
+ ErrMsg("test missing:
'"+os.path.join(TSTSRCDIR,TST)+".(exe|com|bat|cmd|py|mal|malC|milS|milC|sql|xq|x100)`")
#TODO:
#elif os.name == "posix":
else:
- ErrMsg("test missing:
'"+os.path.join(TSTSRCDIR,TST)+"[.py|.mal|.malC|.milM|.milS|.milC|.sql|.xq|.x100]`")
+ ErrMsg("test missing:
'"+os.path.join(TSTSRCDIR,TST)+"[.py|.mal|.malC|.milS|.milC|.sql|.xq|.x100]`")
return TX,Failed,Failed,elem
if par['PACKAGE'] not in ('monetdb', 'monetdb-clients'):
@@ -1614,19 +1576,6 @@
f.write(expandvars(l))
f.close()
- if THISFILE == "Mprofile.py":
- test = re.compile("^"+TST+"(_[sp][0-9][0-9])?\..*mil.*$",
re.MULTILINE)
- d = os.listdir(os.getcwd())
- for f in d:
- if test.match(f) and f != TST+EXT+".src":
- prof.prof(f, env['CMDLST'])
- os.rename(f,f+".no_prof")
- os.rename("prof_"+f,f)
- if not quiet:
- os.system('%s -I"%s" "%s" -A%d "%s.no_prof" "%s"
"%s.prof.diff.html"' %
(env['exe']['Mdiff'][1],par['IGNORE'],par['CONTEXT'],par['ACCURACY'],f,f,f))
- else:
- os.system('%s -q -I"%s" "%s" -A%d "%s.no_prof" "%s"
"%s.prof.diff.html"' %
(env['exe']['Mdiff'][1],par['IGNORE'],par['CONTEXT'],par['ACCURACY'],f,f,f))
-
ACCURACYout = par['ACCURACY']
ACCURACYerr = par['ACCURACY']
STABLEout,STABLEerr = StableOutErr(env,par,TST,OS,RELEASE,DIST,VERSION)
@@ -1671,13 +1620,13 @@
else:
TOx = 1
CTIMEOUT = CTIMEOUT + ( TOx * TIMEOUT )
- elif CALL in ["malXs", "milMXs", "milSXs", "milCXs", "sqlXs", "xqXs",
"x100Xs"]:
+ elif CALL in ["malXs", "milSXs", "milCXs", "sqlXs", "xqXs", "x100Xs"]:
test = re.compile("^"+TST+"_s[0-9][0-9]"+EXT+"$", re.MULTILINE)
d = os.listdir(os.getcwd())
for f in d:
if test.match(f):
CTIMEOUT = CTIMEOUT + TIMEOUT
- elif CALL in ["mal", "malC", "milM", "milS", "milC", "sql", "xq",
"x100"]:
+ elif CALL in ["mal", "malC", "milS", "milC", "sql", "xq", "x100"]:
CTIMEOUT = CTIMEOUT + TIMEOUT
if CTIMEOUT < TIMEOUT:
CTIMEOUT = TIMEOUT
@@ -1718,9 +1667,6 @@
TestErrFile = TST+".test.err"
TestOut = open(TestOutFile,"w")
TestErr = open(TestErrFile,"w")
- #else: # THISFILE == "Mprofile.py"
- # TestOut = open(TST+".profile.out","w")
- # TestErr = open(TST+".profile.err","w")
TestOut.write("stdout of test '"+TST+"` in directory '"+url(TSTDIR)+"`
itself:\n\n")
TestErr.write("stderr of test '"+TST+"` in directory '"+url(TSTDIR)+"`
itself:\n\n")
TestOut.close()
@@ -1810,7 +1756,7 @@
env['exe']['Mtimeout'] = env['exe']['Mtimeout'][0], 'Mtimeout
-timeout %s ' % str(par['TIMEOUT'])
SetExecEnv(env['exe'],0)
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
try:
Mfilter.mFilter(TST+STABLEout,par['IGNORE'])
Mfilter.mFilter(TST+STABLEerr,par['IGNORE'])
@@ -2252,9 +2198,9 @@
elif CALL == "python":
cmd = MTO+str(CTO)+" "+exe['python'][1]+" "+TST+EXT+" "+TST+"
"+PRELUDE
RunIt(cmd, "", ClntOut, ClntErr)
- elif CALL in ["mal", "malXs", "milM", "milS", "milMXs", "milSXs"]:
+ elif CALL in ["mal", "malXs", "milS", "milSXs"]:
cmd = '%s%s %s%s --dbname=%s %s ' % (MTO, str(TOT),
exe['Mserver'][1], LOCAL_CONF, TSTDB, PRELUDE)
- if CALL in ["mal", "milM", "milS"]:
+ if CALL in ["mal", "milS"]:
X=""
else:
X="_s[0-9][0-9]"
@@ -2520,14 +2466,9 @@
THISFILE = os.path.basename(sys.argv[0])
THISPATH = os.path.abspath(os.path.dirname(sys.argv[0]))
-if THISFILE == "Mprofile.py":
- dftTSTPREF = "mProfiles"
- TSTDBG = str(0)
- dftIGNORE = '^[#~]'
-else: # THISFILE in ["Mtest.py", "Mapprove.py"]
- dftIGNORE = '^#'
- TSTDBG = str(2+8)
- dftTSTPREF = "mTests"
+dftIGNORE = '^#'
+TSTDBG = str(2+8)
+dftTSTPREF = "mTests"
TSTSUFF = "Tests"
if hasattr(os,"symlink"):
@@ -2700,18 +2641,6 @@
par['PACKAGE'] = 'monetdb'
Warn('Using default package="%s".' % par['PACKAGE'])
-def FindCmdLst(env) :
- dirs = [ os.path.join(os.getcwd(),"."),
os.path.join(env['TSTSRCBASE'],".") ]
- if os.environ.has_key('HOME'):
- dirs.append(os.path.join(os.environ['HOME'],"."))
- dirs.append(path(env['MONETDB_PREFIX']+"/share/MonetDB/"))
- for d in dirs:
- f = d+'Mprofile-commands.lst'
- if os.path.isfile(f):
- return f
- return ""
-### FindCmdLst(env) #
-
def GetConfig(cfg, arg) :
cmd = CheckExec(cfg)
proc = subprocess.Popen([cmd,arg], stdin = subprocess.PIPE, stdout =
subprocess.PIPE, universal_newlines = True)
@@ -2745,10 +2674,8 @@
vars = ['MONETDB_SOURCE', 'MONETDB_BUILD', 'MONETDB_PREFIX',
'TSTSRCBASE' , 'TSTBLDBASE' , 'TSTTRGBASE' ,
'SQL_PREFIX']
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
vars = vars + [ 'MILCLIENT', 'MALCLIENT', 'SQLCLIENT', 'SQLDUMP',
'XQUERYCLIENT', 'X100CLIENT'] #, 'MONETDB_MOD_PATH' ]
- if THISFILE == "Mprofile.py":
- vars = vars + ['CMDLST']
env = {}
@@ -2760,7 +2687,7 @@
dft['TSTSRCBASE'] = "GetMonetConfig(par['PACKAGE'],'--source')"
dft['TSTBLDBASE'] = "GetMonetConfig(par['PACKAGE'],'--build')"
dft['TSTTRGBASE'] = "GetMonetConfig(par['PACKAGE'],'--prefix')" # or
os.getcwd() ?
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
dft['GDK_DEBUG'] = "TSTDBG"
dft['MONETDB_MOD_PATH'] = "''"
#"os.path.join(env['MONETDB_PREFIX'],'lib')+os.pathsep+os.path.join(env['MONETDB_PREFIX'],'lib','MonetDB')"
dft['setMONETDB_MOD_PATH'] = "'--set
\"monet_mod_path='+env['MONETDB_MOD_PATH']+'\"'"
@@ -2773,10 +2700,8 @@
dft['MALCLIENT'] = "'mclient -lmal'"
dft['SQLCLIENT'] = "'mclient -lsql'"
dft['SQLDUMP'] = "'msqldump'"
- dft['XQUERYCLIENT'] = "'mclient -lxquery -oxml'"
+ dft['XQUERYCLIENT'] = "'mclient -lxquery -fxml'"
dft['X100CLIENT'] = "'x100run_mapi'"
- if THISFILE == "Mprofile.py":
- dft['CMDLST'] = "FindCmdLst(env)"
#par = {}
# get current environment
@@ -2815,7 +2740,7 @@
"suppress messages on stdout"),
]
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
common_options = cmd_options + [
(None, 'I', 'ignore', '<exp>',
"ignore lines matching <exp> during diff (default: '%s')" %
dftIGNORE),
@@ -2856,16 +2781,6 @@
if THISFILE == 'Mtest.py':
options = common_options # + []
- elif THISFILE == "Mprofile.py":
- options = common_options + [
- ('CMDLIST', None, 'cmdlist', '<path>',
- "location of .Mprofile-commands.lst file; default is the first
of\n" +
- "\t%s\n" % os.path.join(os.getcwd(), '.Mprofile-commands.lst') +
- "\t%s\n" % os.path.join('<TSTSRCBASE>', '.Mprofile-commands.lst')
+
- "\t%s\n" %
os.path.join(os.environ['HOME'],'.Mprofile-commands.lst') +
- "\t%s" %
os.path.join(GetMonetConfig(par['PACKAGE'],'--prefix'),'share','MonetDB','Mprofile-commands.lst')
- ),
- ]
elif THISFILE == 'Mapprove.py':
f =
os.path.join(GetMonetConfig(par['PACKAGE'],'--prefix'),dftTSTPREF,'.Mapprove.rc')
v = ReadMapproveRc(f)
@@ -2949,7 +2864,7 @@
par['RECURSIVE'] = opts.get('recursive', 0)
par['QUIET'] = opts.get('quiet', 0)
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
par['IGNORE'] = opts.get('ignore', dftIGNORE)
par['CONTEXT'] = '-C%d' % int(opts.get('context', 1))
a = int(opts.get('accuracy', (os.name != 'nt' and 1) or 0))
@@ -3041,7 +2956,7 @@
#os.environ['PATH'] = bp
# tidy-up and fall-back to defaults where necessary
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
vars_ = vars + ['MAPIPORT', 'XRPCPORT', 'GDK_DEBUG',
'MONETDB_MOD_PATH']
else: # THISFILE == "Mapprove.py"
vars_ = vars
@@ -3050,7 +2965,7 @@
env[v] = eval(dft[v])
#TODO:
# make sure, that PATHs are absolute
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
if env['MONETDB_MOD_PATH']:
env['setMONETDB_MOD_PATH'] = eval(dft['setMONETDB_MOD_PATH'])
else:
@@ -3072,13 +2987,6 @@
else:
env['setDBG'] = ''
- if THISFILE == "Mprofile.py" and not env['CMDLST']:
- try:
- Usage(options)
- except monet_options.Error:
- pass
- ErrXit("No .Mprofile-commands.lst found!")
-
#TODO:
## in case of inconsistencies, try to fallback to "save" settings
#
@@ -3167,7 +3075,7 @@
#STDOUT.flush()
# find mil script for MIL and SQL server
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
env['SQL_SERVER'] = "sql_server"
env['SQL_TRACE'] = ""
@@ -3181,7 +3089,7 @@
URLPREFIX = URLPREFIXMAP.get(repo) # None if unknown
# export and display env
STDERR.flush()
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
vars_ = vars_ +
['XQUERY_LOGDIR','SQL_LOGDIR','GDK_DBFARM','setMONETDB_MOD_PATH','SQL_SERVER']
else: # THISFILE == "Mapprove.py"
vars_ = vars_
@@ -3199,7 +3107,7 @@
## set/extend PATH & LD_LIBRARY_PATH
#bp = "" #os.path.join(env['MONETDB_PREFIX'],"bin")
- #if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ #if THISFILE == "Mtest.py":
# lp = env['MONETDB_MOD_PATH']
#else: # THISFILE == "Mapprove.py"
# lp = ""
@@ -3230,7 +3138,7 @@
os.chdir(env['TSTSRCBASE'])
# check for executables, set their standard options and export them
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
exe = {}
exe['Mtimeout'] = CheckExec('Mtimeout') , 'Mtimeout -timeout
%d ' % par['TIMEOUT']
if par['M5']:
@@ -3241,12 +3149,12 @@
(env['setDBG'],
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
- exe['MIL_Client'] = CheckExec(env['MILCLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb "--config=%s" --host=%s --port=%s' %
(env['MILCLIENT'], config, HOST, env['MAPIPORT'])
- exe['MAL_Client'] = CheckExec(env['MALCLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb "--config=%s" --host=%s --port=%s' %
(env['MALCLIENT'], config, HOST, env['MAPIPORT'])
+ exe['MIL_Client'] = CheckExec(env['MILCLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb --host=%s --port=%s' % (env['MILCLIENT'], HOST,
env['MAPIPORT'])
+ exe['MAL_Client'] = CheckExec(env['MALCLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb --host=%s --port=%s' % (env['MALCLIENT'], HOST,
env['MAPIPORT'])
exe['SQL_Client'] = CheckExec(env['SQLCLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb --host=%s --port=%s %s' % (env['SQLCLIENT'], HOST,
env['MAPIPORT'], env['SQL_TRACE'])
exe['SQL_Dump'] = CheckExec(env['SQLDUMP'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb --host=%s --port=%s %s' % (env['SQLDUMP'], HOST,
env['MAPIPORT'], env['SQL_TRACE'])
exe['XQuery_Client'] = CheckExec(env['XQUERYCLIENT'].split(None,
1)[0]), '%s -umonetdb -Pmonetdb --host=%s --port=%s' % (env['XQUERYCLIENT'],
HOST, env['MAPIPORT'])
- exe['X100_Client'] = CheckExec(env['X100CLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb "--config=%s" --host=%s --port=%s' %
(env['X100CLIENT'], config, HOST, env['MAPIPORT'])
+ exe['X100_Client'] = CheckExec(env['X100CLIENT'].split(None, 1)[0])
, '%s -umonetdb -Pmonetdb --host=%s --port=%s' % (env['X100CLIENT'], HOST,
env['MAPIPORT'])
if par['TIMEOUT'] == 0 or not exe['Mtimeout'][0]:
exe['Mtimeout'] = '', ''
env['exe'] = exe
@@ -3336,7 +3244,7 @@
BusyPorts = []
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
if os.name == "nt":
n = os.path.join(THISPATH,"MkillNT.")
@@ -3496,7 +3404,7 @@
if elem is not None:
body.append(elem)
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
fn = os.path.join(env['TSTTRGBASE'],TSTPREF,"times.")
fl = open(fn+"lst","w")
Failure = [0,0,0,0,0,0]
@@ -3580,7 +3488,7 @@
fl.write(sql)
fl.close()
- if THISFILE in ["Mtest.py", "Mprofile.py"]:
+ if THISFILE == "Mtest.py":
env['TSTDIR'] = ""
env['TSTTRGDIR'] = os.path.join(env['TSTTRGBASE'],TSTPREF)
CreateHtmlIndex(env, *body)
--- Mprofile-commands.lst DELETED ---
Index: README
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/README,v
retrieving revision 1.35.4.2
retrieving revision 1.35.4.3
diff -u -d -r1.35.4.2 -r1.35.4.3
--- README 3 Sep 2007 12:53:45 -0000 1.35.4.2
+++ README 18 Sep 2007 12:51:51 -0000 1.35.4.3
@@ -1,13 +1,13 @@
-Hi all Monet and DS hackers,
-here comes the new version of the testing environment. Only a few details
-have changed since my proposal.
+This is the documentation of the MonetDB regression testing environment.
+
+For futher information about the automatic nightly multi-platform regression
+testing of MonetDB, please also see
+http://monetdb.cwi.nl/Development/TestWeb/index.html
- The testing environment consists of the following tools:
+ Mtest.py a python script to run tests
- + Mprofile.py a python script to run tests and collect profiling
information
- (see below)
+ Mfilter.py a python script to filter the test output before running Mdiff
(see below)
+ Mdiff a C program to show the differences of two files as HTML
document
@@ -18,8 +18,11 @@
(used "fuser" to detect such processes)
(Mtimeout and MkillUsers are currently available on Unix, only)
+ When called with command-line option "--help", each of these tools
+ provides the respective usage information.
-- In each directory of the current Monet and/or DS source tree tests may be
+
+- In each directory of all MonetDB-related source trees, tests may be
provided in a subdirectory called "Tests". Of course, the tests should
deal with the part/modules where they are located and they should be
provided and maintained by the respective developer (see also below).
@@ -36,10 +39,7 @@
and scripts must be ".(bat|cmd)" (TST.(bat|cmd))
(~,^)
* a Python script (TST.py)
(~,^)
* a MAL script to be executed by mserver5 (TST.mal) (',^,`)
- * a MIL script to be executed by Mserver (TST.milM) (',^,`)
- * a MIL script to be executed by Mserver -single (TST.milS) (',^,`)
- (-single has been removed, so .milM & .milS are
- treated equally, now)
+ * a MIL script to be executed by Mserver (TST.milS) (',^,`)
* a MIL script to be executed by mclient -lmil (TST.milC) (",^,`)
* a MAL script to be executed by mclient -lmal (TST.malC) (",^,`)
* a SQL script to be executed by mclient -lsql (TST.sql) (",^,`)
@@ -58,20 +58,20 @@
MAPIPORT is started.
In both cases, Mtest.py stops the Mserver again, once the test has
finished.
- (') For Mserver, if several files are present named
- TST_sXX.mil(M|S) (XX={00,01,...,99})
- these are executed by subsequently calling Mserver
+ (') For Mserver/mserver5, if several files are present named
+ TST_sXX.(milS|mal) (XX={00,01,...,99})
+ these are executed by subsequently calling Mserver/mserver5
(") For mclient, if several files are present named
- (1) TST_sXX.(milC|sql|xq) (XX={00,01,...,99})
- these are executed subsequently using the same Mserver
- (2) TST_pXX.(milC|sql|xq) (XX={00,01,...,99})
- these are executed cuncurrently using the same Mserver
+ (1) TST_sXX.(milC|malC|sql|xq) (XX={00,01,...,99})
+ these are executed subsequently using the same Mserver/mserver5
+ (2) TST_pXX.(milC|malC|sql|xq) (XX={00,01,...,99})
+ these are executed concurrently using the same Mserver/mserver5
(^) For each test file TST[.*] involved,
if a file called
TST[.*].src exists instead of TST[.*],
TST[.*].src is expected to contain a single line
giving the original location of the test file to be used.
- E.g., src/modules/plain/Tests/arith.milM.src contains
+ E.g., src/modules/plain/Tests/arith.milS.src contains
$TSTBLDBASE/$TSTDIR/arith.mil
in order to use the MIL script extracted from
src/modules/plain/arith.mx as test script.
@@ -84,9 +84,12 @@
(optional) (TST.prelude)
(^,`)
+ a MAL script to be used as prelude for mserver5
(optional) (TST.prelude5)
(^,`)
- + for frontend tests, a MIL script to be used
- instead of the frontends dbinit script.
+ + for frontend tests with MonetDB4 (Mserver), a MIL script to be executed
+ by the server before stating the frontend
(optional) (TST.dbinit) (^,`)
+ + for frontend tests with MonetDB5 (mserver5), a MAL script to be executed
+ by the server before stating the frontend
+ (optional) (TST.dbinit5) (^,`)
+ for mclient tests, a MIL script to be used as
prologue for Mserver, i.e., a script that is executed by Mserver after
dbinit is executed, but before (the first)
@@ -106,10 +109,10 @@
(all) mclient(s) have finished
(optional)
(TST.epilogue5)(^,`)
+ a file that contains a list of modules (one per line)
- required by the test (optional) (TST.modules)
(^,`)
+ required by the test (optional; MonetDB4, only) (TST.modules)
(^,`)
+ a file that contains a list of BATs (one per line)
(created by previous tests within the same directory)
- required by the test (optional) (TST.BATs)
(^,`)
+ required by the test (optional; MonetDB4, only) (TST.BATs)
(^,`)
+ a set of files used by the arbitrary executable
(optinal) (TST.*)
(^,`)
+ stable (i.e. correct) versions of stdout and stderr
@@ -125,21 +128,30 @@
Using this naming conventions, the test environment can automatically
decide what to do when called as "Mtest.py TST" (see below), i.e. execute
one of the following:
- * TST[.exe|.com|.bat|.cmd] TST [TST.prelude]
+ * TST[.sh|.exe|.com|.bat|.cmd] TST [TST.prelude]
* python TST.py [TST.prelude]
- * Mserver --dbname=TSTDB [TST.prelude] < TST.mil(M|S)
- * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="module(mapi); mil_start();" [TST.prologue] &
+ * Mserver --dbname=TSTDB [TST.prelude] < TST.milS
+ * mserver5 --dbname=TSTDB [TST.prelude] < TST.mal
+ * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="[<TST.dbinit] module(mapi); mil_start();" [TST.prologue] &
mclient -lmil < TST[_(s|p)XX].milC
- or TST[.exe|.com|.bat|.cmd] TST [TST.prelude]
- or python TST.py [TST.prelude]
- * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="module(sql_server);" [TST.prologue] &
+ or TST.MIL.(sh|exe|com|bat|cmd) TST [TST.prelude]
+ or python TST.MIL.py [TST.prelude]
+ * mserver5 --dbname=TSTDB --set mapi_port=$MAPIPORT --set
xrpc_port=$XRPCPORT --dbinit="[<TST.dbinit5]" [TST.prologue5] &
+ mclient -lmal < TST[_(s|p)XX].malC
+ or TST.MAL.(sh|exe|com|bat|cmd) TST
+ or python TST.MAL.py
+ * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="[<TST.dbinit] module(sql_server);" [TST.prologue] &
mclient -lsql < TST[_(s|p)XX].sql
- or TST[.exe|.com|.bat|.cmd] TST [TST.prelude]
- or python TST.py [TST.prelude]
- * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="module(pathfinder);" [TST.prologue] &
- mclient -lxquery -oxml < TST[_(s|p)XX].xq
- or TST[.exe|.com|.bat|.cmd] TST [TST.prelude]
- or python TST.py [TST.prelude]
+ or TST.SQL.(sh|exe|com|bat|cmd) TST
+ or python TST.SQL.py
+ * mserver5 --dbname=TSTDB --set mapi_port=$MAPIPORT --set
xrpc_port=$XRPCPORT --dbinit="[<TST.dbinit5] include sql;" [TST.prologue5] &
+ mclient -lsql < TST[_(s|p)XX].sql
+ or TST.SQL.(sh|exe|com|bat|cmd) TST
+ or python TST..SQL.py
+ * Mserver --dbname=TSTDB --set mapi_port=$MAPIPORT --set xrpc_port=$XRPCPORT
--dbinit="[<TST.dbinit] module(pathfinder);" [TST.prologue] &
+ mclient -lxquery -fxml < TST[_(s|p)XX].xq
+ or TST.XQUERY.(sh|exe|com|bat|cmd) TST
+ or python TST.XQUERY.py
(On Unix, all M<tool>'s are started with "Mtimeout -timeout TIMEOUT
M<tool> ..." to kill (probably) hanging M<tool>'s after a certain
@@ -159,13 +171,13 @@
- Mtest.py uses three directory trees based at TSTSRCBASE, TSTBLDBASE, and
TSTTRGBASE, respectively. These trees have similar purpose as the SOURCE,
- BUILD, and PREFIX trees when configuring and compiling Monet: the original
+ BUILD, and PREFIX trees when configuring and compiling MonetDB: the original
tests are found in TSTSRCBASE, tests extracted from .mx or .in files
during testing are fould in TSTBLDBASE, and Mtest.py writes the test
output to TSTTRGBASE. The default settings are as follows:
- TSTSRCBASE=$MONETDB_SOURCE (where you cecked out Monet's source tree)
+ TSTSRCBASE=$MONETDB_SOURCE (where you cecked out MonetDB's source tree)
TSTBLDBASE=$MONETDB_BUILD (where you called configure and make)
- TSTTRGBASE=$MONETDB_PREFIX (where you told configure to put Monet)
+ TSTTRGBASE=$MONETDB_PREFIX (where you told configure to put MonetDB)
You can over rule any of these defaults by setting the respective
environment variable, or by giving, e.g., --TSTTRGBASE=/tmp as command
line option to Mtest.py.
@@ -178,7 +190,7 @@
The latter is a restiction that might be released in the future, but for
the time being, using paths that contain symbolic links will cause
problems with Mtest.py.
- Hence, if you compiled Monet in a path that contains a symbolic link,
+ Hence, if you compiled MonetDB in a path that contains a symbolic link,
e.g., ~/dev/monet -> /net/myhost/export/scratch1/myname/monet,
you should either
a) overrule the initial setting of MONETDB_SOURCE, MONETDB_BUILD,
@@ -226,9 +238,9 @@
default settings:
name default description
---- ------- -----------
- MONETDB_SOURCE (where you checked out Monet) base of Monet's
source tree
+ MONETDB_SOURCE (where you checked out MonetDB) base of
MonetDB's source tree
MONETDB_BUILD (where you called configure & make) base of
extracted source tree
- MONETDB_PREFIX (where you installed Monet to) base of Monet
distribution
+ MONETDB_PREFIX (where you installed MonetDB to) base of MonetDB
distribution
TSTSRCBASE $MONETDB_SOURCE base of test
source tree
TSTBLDBASE $MONETDB_BUILD base of
extracted test tree
TSTTRGBASE $MONETDB_PREFIX base for test
output
@@ -236,13 +248,13 @@
MALCLIENT mclient -lmal mal-client
program `)
SQLCLIENT mclient -lsql sql-client
program `)
SQLDUMP msqldump sql-dump
program `)
- XQUERYCLIENT mclient -lxquery -oxml xquery-client
program `)
+ XQUERYCLIENT mclient -lxquery -fxml xquery-client
program `)
`) Alternative MIL-, MAL-, SQL-, & XQUERY- client programs need to accept
(or ignore)
"--config=", "--host=", & "--port=" options.
The following variables are currently still used legacy, but they will
disappear soon...
- MONETDB_MOD_PATH
$MONETDB_PREFIX/lib(64);MONETDB_PREFIX/lib(64)/Monet
+ MONETDB_MOD_PATH
$MONETDB_PREFIX/lib(64);MONETDB_PREFIX/lib(64)/MonetDB
The setting of all these environment variables maybe overruled
by commandline options with the same names, e.g., "--MILCLIENT=mclient.py".
@@ -361,7 +373,7 @@
# approve new/modified correct output of your tests
run Mapprove.py <names...>
endloop
- # run all Monet tests...
+ # run all MonetDB tests...
cd $TSTSRCBASE
run Mtest.py -r
# ... and check their results
@@ -373,19 +385,6 @@
run cvs ci
-- Mprofile.py:
- Mprofile.py works just like Mtest.py, only it uses "prof.py" to add some
- mprof-commands to all TST*.*mil* files before actually running the test.
- Thus, profiling information is collected.
- prof.py reads a list of mil commands from a .Mprofile-commands.lst file
- (specified by Mprofile.py's "--CMDLST" parameter) and wraps all
- occurances of these commands in a mil script in
- pmB("<command>");
- <command>;
- pmE("<command>");
- Further, prof.py adds a "pmSummary();" at the end of the mil script.
-
-
--
| Stefan Manegold | mailto:[EMAIL PROTECTED] |
| CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ |
Index: Makefile.ag
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/Makefile.ag,v
retrieving revision 1.18.4.2
retrieving revision 1.18.4.3
diff -u -d -r1.18.4.2 -r1.18.4.3
--- Makefile.ag 6 Sep 2007 13:50:57 -0000 1.18.4.2
+++ Makefile.ag 18 Sep 2007 12:51:45 -0000 1.18.4.3
@@ -15,7 +15,7 @@
# All Rights Reserved.
EXTRA_DIST = Mtest.py.in Mtest.py.bat Mlog.in Mlog.bat Mfilter.py.in \
- MkillUsers.in prof.py Mprofile-commands.lst
+ MkillUsers.in
INCLUDES = ../common
@@ -31,8 +31,6 @@
bin_Mapprove.py = bin_Mtest.py
bin_Mapprove.py.bat = NATIVE_WIN32?bin_Mtest.py.bat
-bin_Mprofile.py = bin_Mtest.py
-bin_Mprofile.py.bat = NATIVE_WIN32?bin_Mtest.py.bat
scripts_bat = {
COND = NATIVE_WIN32
@@ -42,20 +40,15 @@
scripts_py = {
DIR = bindir
- SOURCES = prof.py Mtest.py Mfilter.py
+ SOURCES = Mtest.py Mfilter.py
}
-scripts_python = {
- EXT = py
- DIR = pkgdatadir/python
+headers_python = {
+ HEADERS = py
+ DIR = $(prefix)/$(PYTHON_LIBDIR)/MonetDB
SOURCES = trace.py subprocess26.py
}
-scripts_lst = {
- DIR = pkgdatadir
- SOURCES = Mprofile-commands.lst
-}
-
scripts_sh = {
COND = NOT_WIN32
EXT = ""
Index: Mfilter.py.in
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/testing/Mfilter.py.in,v
retrieving revision 1.146.4.2
retrieving revision 1.146.4.3
diff -u -d -r1.146.4.2 -r1.146.4.3
--- Mfilter.py.in 21 Aug 2007 13:25:14 -0000 1.146.4.2
+++ Mfilter.py.in 18 Sep 2007 12:51:47 -0000 1.146.4.3
@@ -190,7 +190,7 @@
## r'^\[ "(?:mapi_params|tmp_62)",\t* *[10],\t* *[10],\t*
*0\t* *\]$',
# src/gdk/cast:
r'^\[ (?:\-|)0 \]$',
- # src/monet/modrefcnt1 &
tests/BugDay_2005-11-09_4.9.3/double_load_double_drop.SF-1082293.milM (on
Itanium)
+ # src/monet/modrefcnt1 &
tests/BugDay_2005-11-09_4.9.3/double_load_double_drop.SF-1082293 (on Itanium)
r"^!ERROR: DESCload: atom 'lock' unknown, in BAT
'[0-9]+'.$",
# pathfinder/tests/XQuery/fn_aps:
r'^0.900000 0.500000 0.400000 (?:\-|)0.000000 0.400000
0.500000 0.900000 1 *$',
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins