📄 mtest.py.in
字号:
#TODO?# <A HREF='.Mtest.Slave.Log.OutErr' TARGET='"""+OSVER+"_"+TSTDIR+"_"+TST+"_"+WHAT[1:]+"""_body'>LOG</A>).### CreateTstWhatXhtml (env, TST, stableWHAT, EXT) #def CreateSrcIndex (env, TST, EXT) : TSTSRCDIR = env['TSTSRCDIR'] TSTDIR = env['TSTDIR'] if URLPREFIX: framesrc = '%s%s/%s/%s%s%s' % (URLPREFIX, url(TSTDIR), TSTSUFF, TST, EXT, URLSUFFIX_F) else: f = open("."+TST+".nosrc.index.html","w") html = Element('html', {}, Element('head', {}, Element('title', {}, Text(HTMLTITLE)), stylesheet), Element('body', {'bgcolor': white, 'text': black, 'link': green, 'vlink': darkgreen, 'alink': lime}, Element('center', {}, Text('no source available')))) framesrc = '.%s.nosrc.index.html' % TST html = Element('html', {}, Element('head', {}, Element('title', {}, Text(HTMLTITLE))), Element('frameset', {'rows': '54,*', 'frameborder': 'yes', 'border': '1', 'bordercolor': white, 'marginwidth': '0', 'marginheight': '0'}, Element('frame', {'src': '.%s.src.index.head.html' % TST, 'scrolling': 'auto', 'name': '%s_%s_%s_head' % (OSVER, TSTDIR, TST), 'frameborder': 'yes', 'bordercolor': white, 'marginwidth': '0', 'marginheight': '0'}), Element('frame', {'src': framesrc, 'scrolling': 'auto', 'name': '%s_%s_%s_body' % (OSVER, TSTDIR, TST), 'frameborder': 'yes', 'bordercolor': white, 'marginwidth': '0', 'marginheight': '0'}))) f = open("."+TST+".src.index.html","w") html.write(f, True) f.close() tr = Element('tr', {}, Element('th', {'class': 'header'}, Text(TST))) for s in os.listdir(TSTSRCDIR): if len(s) >= len(TST) and s[:len(TST)] == TST: slink = Text(s) if URLPREFIX: slink = Element('a', {'href': '%s%s/%s/%s%s' % (URLPREFIX, url(TSTDIR), TSTSUFF, s, URLSUFFIX_F), 'target': '%s_%s_%s_body' % (OSVER, TSTDIR, TST)}, slink) tr.addchild(Element('td', {'class': 'header'}, slink)) html = Element('html', {}, Element('head', {}, 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)))) f = open("."+TST+".src.index.head.html","w") html.write(f, True) f.close()### CreateSrcIndex (env, TST, EXT) #def AddHref (href, target, linktext, diff) : if diff == 2: klass = 'error' elif diff == 1: klass = 'warning' else: klass = 'good' a = Element('a', {'href': href, 'target': target, 'class': klass}, Text(linktext)) if klass == 'good': return [Text('('), a, Text(')')] else: return [a]### AddHref (TSTDIR, TST, WHAT, diff) #def AddTstToHtmlIndex (env, TST, STABLEout, STABLEerr, EXT) : TSTDIR = env['TSTDIR'] CreateTstWhatXhtml(env, TST, STABLEout, EXT) CreateTstWhatXhtml(env, TST, STABLEerr, EXT) for l in fileinput.input(TST+".out.diff.html"): pass if l[:14] == '<!--NoDiffs-->': o = 0 elif l[:17] == '<!--MinorDiffs-->': o = 1 elif l[:17] == '<!--MajorDiffs-->': o = 2 else: Warn("Unexpected last line in %s:\n%s" % (TST+".out.diff.html",l)) ff = open(TST+WHAT+".out.diff.html","a") ff.write("\n<!--MajorDiffs-->\n") ff.close() o = 2 for l in fileinput.input(TST+".err.diff.html"): pass if l[:14] == '<!--NoDiffs-->': e = 0 elif l[:17] == '<!--MinorDiffs-->': e = 1 elif l[:17] == '<!--MajorDiffs-->': e = 2 else: Warn("Unexpected last line in %s:\n%s" % (TST+".err.diff.html",l)) ff = open(TST+WHAT+".err.diff.html","a") ff.write("\n<!--MajorDiffs-->\n") ff.close() e = 2 if o == 2 or e == 2: tstclass = 'error' elif o == 1 or e == 1: tstclass = 'warning' else: tstclass = 'good' td = Element('td', {'class': 'header'}, Element('a', {'href': '.%s.src.index.html' % TST, 'target': '%s_%s_body' % (OSVER, TSTDIR), 'class': tstclass}, Text(TST)), Element('br')) td.addchildren(AddHref('.%s%s.html' % (TST, '.out'), '%s_%s_body' % (OSVER, TSTDIR), 'out', o)) td.addchild(Text(" | ", raw = True)) td.addchildren(AddHref('.%s%s.html' % (TST, '.err'), '%s_%s_body' % (OSVER, TSTDIR), 'err', e)) if not env.has_key('_'+TSTDIR+'_BODY_') or \ not env['_'+TSTDIR+'_BODY_'][0] or \ ( (not env['_'+TSTDIR+'_BODY_'][1]) and (o or e) ): if e and not o: env['_'+TSTDIR+'_BODY_'] = ["."+TST+".err.html", e] else: env['_'+TSTDIR+'_BODY_'] = ["."+TST+".out.html", o] CreateSrcIndex(env, TST, EXT) return o, e, td### AddTstToHtmlIndex (env, TST, STABLEout, STABLEerr, EXT) #def AddSubToHtmlIndex (env, TSTDIR, diff) : TSTTRGBASE = env['TSTTRGBASE'] TSTPREF = env['TSTPREF'] td = Element('td', {'class': 'header'}) td.addchildren(AddHref('%s/.index.html' % url(TSTDIR), '%s__body' % OSVER, TSTDIR, diff)) if not env.has_key('__BODY_') or \ not env['__BODY_'][0] or \ ( (not env['__BODY_'][1]) and diff ): env['__BODY_'] = [TSTDIR+"/.index.html", diff] return td### AddSubToHtmlIndex (env, TSTDIR, diff) #def SkipTest(env, TST, EXT, REASON) : TSTDIR = env['TSTDIR'] TEXT = "Skipping test %s%s %s" % (TST, EXT, REASON) if not env['QUIET']: Warn(TEXT) else: STDOUT.write("-"); f = open("."+TST+".SKIPPED","w") f.write("\n%s Warning: %s\n\n" % (THISFILE, TEXT)) f.close() target = '%s_%s_body' % (OSVER, TSTDIR) td = Element('td', {'class': 'header'}, Element('a', {'href': '.%s.src.index.html' % TST, 'target': target, 'class': 'black'}, Text(TST)), Element('br'), Element('a', {'href': '.%s.SKIPPED' % TST, 'target': target}, Text('(skipped)'))) if not env.has_key('_'+TSTDIR+'_BODY_') or \ not env['_'+TSTDIR+'_BODY_'][0] or \ not env['_'+TSTDIR+'_BODY_'][1]: env['_'+TSTDIR+'_BODY_'] = ["."+TST+".SKIPPED", 1] CreateSrcIndex(env, TST, EXT) return td### SkipTest(env, TST, EXT, REASON) #def find_test_dirs(thisdir) : testdirs = [] thisdir = os.path.abspath(thisdir) dirnme = os.path.basename(thisdir) dirlst = os.listdir(thisdir) if dirnme == TSTSUFF and "All" in dirlst and os.path.isfile(os.path.join(thisdir,"All")): testdirs.append(os.path.dirname(thisdir)) for d in dirlst: d = os.path.join(thisdir,d) if os.path.isdir(d): testdirs = testdirs + find_test_dirs(d) return testdirs### find_test_dirs(thisdir) #def PerformDir(env, testdir, testlist, BusyPorts) : td = 0 elem = None FdOut = -1 FdErr = -1 TSTSRCBASE = env['TSTSRCBASE'] TSTPREF = env['TSTPREF'] if testdir == TSTSRCBASE: TSTDIR = os.curdir else: TSTDIR = testdir[len(TSTSRCBASE+os.sep):] TSTSRCDIR = os.path.normpath(os.path.join(testdir,TSTSUFF)) 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"]: TSTDB = TSTPREF+"_"+TSTDIR.replace(os.sep, '_') else: # THISFILE == "Mapprove.py" TSTDB = "" if testlist: tl = [] for tst in testlist: tl.append((tst,None)) testlist = tl else: for tc in fileinput.input(os.path.join(TSTSRCDIR,"All")): tc = tc.strip() if tc and tc[0] != "#": if tc.find('?') > -1: cond,tst = tc.split('?') else: cond,tst = None,tc testlist.append((tst,cond)) if not testlist: Warn("No tests found in '"+TSTSRCDIR+"`; skipping directory!") return td, elem env['TSTDB'] = TSTDB env['TSTDIR'] = TSTDIR env['TSTSRCDIR'] = TSTSRCDIR env['TSTBLDDIR'] = TSTBLDDIR env['TSTTRGDIR'] = TSTTRGDIR env['RELSRCDIR'] = os.path.join(((os.pardir+os.sep)*(len(TSTDIR.split(os.sep))+1))+env['RELSRCBASE'],TSTDIR,TSTSUFF).replace(os.sep+os.sep,os.sep) env['RELBLDDIR'] = os.path.join(((os.pardir+os.sep)*(len(TSTDIR.split(os.sep))+1))+env['RELBLDBASE'],TSTDIR,TSTSUFF).replace(os.sep+os.sep,os.sep) os.environ['TSTDB'] = TSTDB os.environ['TSTDIR'] = TSTDIR os.environ['TSTSRCDIR'] = TSTSRCDIR os.environ['TSTBLDDIR'] = TSTBLDDIR os.environ['TSTTRGDIR'] = TSTTRGDIR os.environ['RELSRCDIR'] = env['RELSRCDIR'] os.environ['RELBLDDIR'] = env['RELBLDDIR'] #STDERR.flush() #for v in 'RELSRCDIR', 'RELBLDDIR': # print v+" = "+str(env[v]) #STDOUT.flush() if THISFILE in ["Mtest.py", "Mprofile.py"]: for LogDBvar in 'GDK_DBFARM', 'SQL_LOGDIR', 'XQUERY_LOGDIR': LogDBdir = os.path.join(env[LogDBvar],TSTDB) if LogDBvar in 'SQL_LOGDIR': LogDBtxt = "sql log directory for " elif LogDBvar in 'XQUERY_LOGDIR': LogDBtxt = "xquery log directory for " else: LogDBtxt = "" if os.path.exists(LogDBdir): try: shutil.rmtree(LogDBdir) except: Warn(LogDBtxt+"database '"+TSTDB+"` exists, but destroying it failed; skipping tests in '"+TSTSRCDIR+"`!") #TODO: # add "something" to HTML output return td, elem try: os.makedirs(LogDBdir) except: Warn("creating "+LogDBtxt+"database '"+TSTDB+" failed; skipping tests in '"+TSTSRCDIR+"`!") #TODO: # add "something" to HTML output return td, elem if not os.path.exists(TSTTRGDIR): #TODO: set mode to umask os.makedirs(TSTTRGDIR) body = [] for TST,COND in testlist: os.environ['TST'] = TST tt, FtOut, FtErr, bodyline = RunTest(env, TST, BusyPorts, COND) if tt: t = "%7.3f" % tt else: t = '-.---' TIMES.append([TSTDIR,TST,t,tt,FtOut,FtErr]) td = td + tt FdOut = max(FdOut,FtOut) FdErr = max(FdErr,FtErr)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -