#!/usr/bin/python -u # # autotest - run the autotest control file specified. # import os, sys import common from optparse import OptionParser from autotest_lib.client.bin import job from autotest_lib.client.common_lib import global_config # Use the name of the binary to find the real installation directory # aka $AUTODIR. Update our path to include the $AUTODIR/bin/tests # directory and ensure we have $AUTODIR in our environment. autodirbin = os.path.dirname(os.path.realpath(sys.argv[0])) autodir = os.path.dirname(autodirbin) sys.path.insert(0, autodirbin) os.environ['AUTODIR'] = autodir os.environ['AUTODIRBIN'] = autodirbin os.environ['PYTHONPATH'] = autodirbin parser = OptionParser(usage='Usage: %prog [options] ') parser.add_option("-a", "--args", dest='args', help="additional args to pass to control file") parser.add_option("-c", "--continue", dest="cont", action="store_true", default=False, help="continue previously started job") parser.add_option("-t", "--tag", dest="tag", type="string", default="default", help="set the job tag") parser.add_option("-H", "--harness", dest="harness", type="string", default='', help="set the harness type") parser.add_option("-P", "--harness_args", dest="harness_args", type="string", default='', help="arguments delivered to harness") parser.add_option("-U", "--user", dest="user", type="string", default='', help="set the job username") parser.add_option("-l", "--external_logging", dest="log", action="store_true", default=False, help="enable external logging") parser.add_option('--verbose', dest='verbose', action='store_true', help='Include DEBUG messages in console output') parser.add_option('--quiet', dest='verbose', action='store_false', help='Not include DEBUG messages in console output') parser.add_option('--hostname', dest='hostname', type='string', default=None, action='store', help='Take this as the hostname of this machine ' '(given by autoserv)') parser.add_option('--output_dir', dest='output_dir', type='string', default="", action='store', help='Specify an alternate path to store test result logs') parser.add_option('--client_test_setup', dest='client_test_setup', type='string', default=None, action='store', help='a comma seperated list of client tests to prebuild on ' 'the server. Use all to prebuild all of them.') parser.add_option('--tap', dest='tap_report', action='store_true', default=None, help='Deprecated, do not use.') def usage(): parser.print_help() sys.exit(1) options, args = parser.parse_args() # Check for a control file if not in prebuild mode. if len(args) != 1 and options.client_test_setup is None: print "Missing control file!" usage() drop_caches = global_config.global_config.get_config_value('CLIENT', 'drop_caches', type=bool, default=True) if options.client_test_setup: from autotest_lib.client.bin import setup_job exit_code = 0 try: setup_job.setup_tests(options) except: exit_code = 1 sys.exit(exit_code) # JOB: run the specified job control file. job.runjob(os.path.realpath(args[0]), drop_caches, options)