|
Gaudi Framework, version v21r9 |
| Home | Generated: 3 May 2010 |
Classes | |
| class | Options |
Functions | |
| def | parseOptions |
| def | main |
| def run_qmtest::main | ( | argv = None |
) |
Definition at line 67 of file run_qmtest.py.
00067 : 00068 opts = parseOptions(argv) 00069 00070 print "==========> Running tests for package %s" % opts.package 00071 00072 # create the destination directory if necessary 00073 if opts.output: 00074 results_dest_dir = os.path.realpath(os.path.join(opts.qmtest_dir, os.path.dirname(opts.output))) 00075 if not os.path.exists(results_dest_dir): 00076 print "==========> Creating '%s'" % results_dest_dir 00077 os.makedirs(results_dest_dir, 0755) 00078 00079 print "==========> Entering '%s'" % opts.qmtest_dir 00080 os.chdir(opts.qmtest_dir) 00081 00082 if not os.path.isdir("QMTest"): 00083 # The QMTest database is not initialized 00084 print "==========> Initializing QMTest database" 00085 os.system("qmtest create-tdb") 00086 00087 if opts.html_output: 00088 opts.qmtest_args.insert(0, """--result-stream 'GaudiTest.HTMLResultStream(dir="%s")'""" % opts.html_output) 00089 00090 # prepare the qmtest command 00091 cmd = "qmtest run %s" % (" ".join(opts.qmtest_args)) 00092 00093 if not opts.have_user_options: 00094 # If there are no user options, we should check for a default test suite 00095 # to run. 00096 # The suite to run is the first one available in the list passed via 00097 # the environment variable GAUDI_QMTEST_DEFAULT_SUITE (comma-separated list) 00098 # or the suite with the same name as the package. 00099 # If none of them is present, no argument is passed to qmtest, so all the tests 00100 # are run. 00101 suites = [] 00102 if "GAUDI_QMTEST_DEFAULT_SUITE" in os.environ: 00103 suites.extend([s.strip().lower() 00104 for s in os.environ["GAUDI_QMTEST_DEFAULT_SUITE"].split(",")]) 00105 suites.append(opts.package.lower()) 00106 for s in suites: 00107 if os.path.exists("%s.qms" % s): 00108 cmd += " %s" % s 00109 break 00110 00111 if opts.dry_run: 00112 print "==========> Would run '%s'"%cmd 00113 else: 00114 print "==========> Running '%s'"%cmd 00115 os.system(cmd) 00116 00117 # Note: the return code of qmtest is not propagated to avoid that 00118 # CMT stops if we have a non-PASS tests (e.g. UNTESTED). if __name__ == '__main__':
| def run_qmtest::parseOptions | ( | argv = None |
) |
Definition at line 13 of file run_qmtest.py.
00013 : 00014 if argv is None: 00015 argv = sys.argv[1:] 00016 # Defaults 00017 opts = Options() 00018 opts.package = "Unknown" 00019 opts.qmtest_args = [] 00020 opts.have_user_options = False 00021 opts.output = os.path.normpath(os.path.expandvars(os.environ["QMTESTRESULTS"])) 00022 opts.qmtest_dir = os.path.normpath(os.path.expandvars(os.environ["QMTESTLOCALDIR"])) 00023 opts.dry_run = False 00024 if "GAUDI_QMTEST_HTML_OUTPUT" in os.environ: 00025 opts.html_output = os.path.normpath(os.path.expandvars(os.environ.get("GAUDI_QMTEST_HTML_OUTPUT"))) 00026 else: 00027 opts.html_output = None 00028 00029 # First argument is the package name: 00030 if argv: 00031 opts.package = argv.pop(0) 00032 00033 # If the use specifies a directory where to collect all the results 00034 # (e.g. because running from a read-only location) we must use it 00035 if "QMTESTRESULTSDIR" in os.environ: 00036 opts.output = os.path.normpath(os.path.expandvars(os.environ["QMTESTRESULTSDIR"])) 00037 opts.output = os.path.join(opts.output, 00038 "%s.%s.qmr" % (opts.package, os.environ.get("CMTCONFIG", "noConfig"))) 00039 00040 # Do we have user options? 00041 opts.have_user_options = len(argv) 00042 # Scan the user options (if any) to look for options we must intercept 00043 while argv: 00044 o = argv.pop(0) 00045 if o in ['-o','--output']: 00046 # make the path absolute 00047 opts.output = os.path.realpath(argv.pop(0)) 00048 opts.have_user_options -= 2 00049 elif o in ["--no-output"]: 00050 opts.output = None 00051 opts.have_user_options -= 1 00052 elif o in ["--dry-run"]: 00053 opts.dry_run = True 00054 opts.have_user_options -= 1 00055 elif o in ["--html-output"]: 00056 opts.html_output = os.path.realpath(argv.pop(0)) 00057 opts.have_user_options -= 2 00058 else: 00059 opts.qmtest_args.append(o) 00060 # Add the option for the output to the qmtest_args 00061 if opts.output: 00062 opts.qmtest_args = ["-o", opts.output] + opts.qmtest_args 00063 else: 00064 opts.qmtest_args.insert(0, "--no-output") 00065 return opts 00066 def main(argv = None):