Exemple #1
0
def main():

    numFailures = 0
    numTests = 0
    numSkippedTests = 0
    numStagingFailures = 0
    numStagingTests = 0
    numStagingSkippedTests = 0
    RunSuccessStr = ""
    logger = nvcstestutils.Logger()

    # parse arguments
    usage = "\n" \
            "%prog <options> - Run NVCS sanity and conformance test suite \n\n" \
            "Description:\n" \
            "\t NVCS sanity tests consists of a series of simple basic\n" \
            "\t tests to make sure that the nvcs infrastructure, basic\n" \
            "\t odm functionalities, camera core and algorithm paths are\n" \
            "\t functional.\n" \
            "\n \t Conformance tests are more sophisticated and specific\n" \
            "\t setup is required. Each test is designed to catch issues\n" \
            "\t which have been seen by camera team while working on\n" \
            "\t different customer devices. NVCS sanity test suite needs\n" \
            "\t to pass in order to run conformance test suite."

    standard_options = [
        make_option('-v',
                    '--version',
                    dest='version',
                    default=False,
                    action="store_true",
                    help='Display version information'),
        make_option('-l',
                    '--list',
                    dest='listTestNames',
                    default=False,
                    action="store_true",
                    help='Display list of sanity and conformance test names'),
        make_option(
            '-s',
            dest='sanity',
            default=False,
            action="store_true",
            help=
            'Run NVCS sanity tests. If no -i option is specified, the command will'
            + ' run using default imager id 0. Use -l option to look at the' +
            ' list of sanity tests'),
        make_option(
            '-c',
            dest='conformance',
            default=False,
            action="store_true",
            help='Run Conformance tests. Use -l option to look at the' +
            ' list of conformance tests'),
        make_option(
            '--classic',
            dest='useClassicRanges',
            default=False,
            action="store_true",
            help='Do not query sensor for gain and exposure range.' +
            'This option is only supported for \"linearity\" test at present'),
        make_option(
            '-t',
            dest='test_names',
            default=None,
            type="string",
            action="append",
            metavar="TEST_NAME",
            help=
            "Execute the specified test name. Multiple -t options are allowed to execute"
            + "more than one tests using a single command\n" + "example:\n" +
            "1) Command to run \"jpeg_capture\" test for imager id 0:\n" +
            "   python %s -t jpeg_capture -i 0\n" % sys.argv[0] +
            "2) Command to run multiple tests \"jpeg_capture\" and \n" +
            "  \"focuspos\" for imager id 0 using same command:\n" +
            "   python %s -t jpeg_capture -t focuspos -i 0" % sys.argv[0]),
        make_option('--width',
                    dest='width',
                    default=0,
                    type="int",
                    help='set width of the jpeg capture\n' +
                    'currently only "jpeg_capture" test supports this'),
        make_option('--height',
                    dest='height',
                    default=0,
                    type="int",
                    help='set height of the jpeg capture\n' +
                    'currently only "jpeg_capture" test supports this'),
        make_option('--fdelay',
                    dest='fdelay',
                    default=0,
                    type="float",
                    help='set delay for focuser to converge\n' +
                    'currently only "jpeg_capture" test supports this'),
        make_option(
            '-d',
            dest='disabled_test_names',
            default=None,
            type="string",
            action="append",
            metavar="TEST_NAME",
            help=
            'Disables the test. The test name specified as an argument will not'
            + ' execute. Multiple -d options are supported'),
        make_option(
            '-i',
            dest='imager_id',
            default=0,
            type="int",
            metavar="IMAGER_ID",
            help="set imager id. Most of the time imager id 0 is assigned for\n"
            + "rear facing and imager id 1 is assigned for front facing\n" +
            "camera sensor, but this might not be the case always\n" +
            "example:\n" +
            "- Command to run sanity test suite with imager id 1\n" +
            "  python %s -s -i 1" % sys.argv[0]),
        make_option('--nofocus',
                    dest='ignoreFocuser',
                    default=False,
                    action="store_true",
                    help='Ignore ALL focuser commands in the test'),
        make_option('-f',
                    dest='force',
                    default=False,
                    action="store_true",
                    help='run the tests without any prompts',
                    metavar="FORCE"),
        make_option('--overridesdir',
                    dest='overridesDir',
                    default='/data',
                    type="string",
                    metavar=" ",
                    help='Set Directory for used to set Camera Overrides'),
        make_option(
            '--overridesname',
            dest='overridesName',
            default='camera_overrides',
            type="string",
            metavar=" ",
            help="Set the Name of the file used to set Camera Overrides\n" +
            "Note: Should not include the assumed \'.isp\' extension"),
        make_option('-h',
                    '-?',
                    '--help',
                    dest='help',
                    action='store_true',
                    default=False,
                    help='print this help message')
    ]
    advanced_options = [
        make_option(
            '--nv',
            dest='advanced',
            action='store_true',
            default=False,
            help='Enable advanced options.' +
            ' This will enable options for advanced testing and debugging of tests'
        ),
        make_option(
            '-n',
            dest='numTimes',
            default=0,
            type="int",
            help='Set number of times the test should run.' +
            ' Currently only \"blacklevel\" and \"linearity\" test supports this option'
        ),
        make_option(
            '--nostaging',
            dest='stagingOff',
            default=False,
            action="store_true",
            help=
            'Do not run any of the staging tests in sanity or conformance suite'
            +
            ' Staging tests are ran to provide information internally to qualify new tests'
        ),
        make_option('--noshuffle',
                    dest='noShuffle',
                    action='store_true',
                    default=False,
                    help='Do not shuffle capture order' +
                    ' Currently only \"linearity\" test supports this option'),
        make_option('--eL',
                    dest='exposureLow',
                    default=0,
                    type="float",
                    help='Set minimum exposure for linearity3'),
        make_option('--eH',
                    dest='exposureHigh',
                    default=0,
                    type="float",
                    help='Set maximum expsoure for linearity3.'),
        make_option(
            '--threshold',
            dest='threshold',
            default=0,
            type="float",
            help='Set threshold for test (float).' +
            ' Currently only \"blacklevel\" test supports this option and it sets'
            +
            ' threshold for difference between the maximum and minimum black level'
            + ' variance'),
        make_option('--width',
                    dest='width',
                    default=2592,
                    type="int",
                    help='Set width for host sensor mode' +
                    ' Default width used by host sensor mode is 2592'),
        make_option('--height',
                    dest='height',
                    default=1944,
                    type="int",
                    help='Set height for host sensor mode' +
                    ' Default height used by host sensor mode is 1944'),
        make_option(
            '--gain',
            dest='utilGain',
            default=0,
            type="float",
            help='Set the gain for the capture.' +
            ' Currently only the \"hdr_ratio\" test supports this option'),
        make_option(
            '--exposure',
            dest='utilExposure',
            default=0,
            type="float",
            help='Set the exposure for the capture.' +
            ' Currently only the \"hdr_ratio\" test supports this option'),
    ]

    parser = OptionParser(
        usage,
        option_list=standard_options + advanced_options,
        add_help_option=False,
        formatter=nvcstestutils.IndentedHelpFormatterWithNL())

    # make a standard option for error checking if --nv is not specified
    standard_parser = OptionParser(
        usage,
        option_list=standard_options,
        add_help_option=False,
        formatter=nvcstestutils.IndentedHelpFormatterWithNL())

    # parse the command line arguments
    (test_options, args) = parser.parse_args()

    # parse the standard command line argument of the --nv is not present
    if (not test_options.advanced):
        (options, test_args) = standard_parser.parse_args()

    if (test_options.help):
        if (test_options.advanced):
            # print help message with advanced options
            parser.print_help()
        else:
            # print help message wihtout advanced options
            standard_parser.print_help()
        sys.exit(0)

    if (test_options.listTestNames):
        # print test names

        # print sanity test names
        print "SANITY TEST NAMES:"
        for sanity_test in TestFactory.sanityNameList:
            print "\t%s" % sanity_test

        # print sanity staging test names
        print "SANITY STAGING TEST NAMES:"
        for staging_test in TestFactory.sanityStagingNameList:
            print "\t%s" % staging_test

        print ""

        # print conformance test names
        print "CONFORMANCE TEST NAMES:"
        for conformance_test in TestFactory.conformanceNameList:
            print "\t%s" % conformance_test

        # print conformance staging test names
        print "CONFORMANCE STAGING TEST NAMES:"
        for staging_test in TestFactory.conformanceStagingNameList:
            print "\t%s" % staging_test

        print ""

        sys.exit(0)

    # print version infortion
    nvcstest.printVersionInformation(logger)

    if (test_options.version):
        # Already printed version in previous statement
        sys.exit(0)

    stagingNamesList = []
    testNamesList = []
    if (test_options.sanity):
        testNamesList = TestFactory.sanityNameList
        stagingNamesList = TestFactory.sanityStagingNameList

    elif (test_options.conformance):
        testNamesList = TestFactory.conformanceNameList
        stagingNamesList = TestFactory.conformanceStagingNameList

    elif (test_options.test_names != None):
        testNamesList = test_options.test_names

    __validateTestNames(testNamesList)

    # create a dictionary for disabled test names
    if (test_options.disabled_test_names != None):
        for testName in test_options.disabled_test_names:
            # get the test object
            if (TestFactory.hasTest(testName)):
                TestFactory.disableTest(testName)

    logger.info("Imager ID: %d" % test_options.imager_id)
    if (test_options.stagingOff == False):
        for testName in stagingNamesList:
            # get the test object
            try:
                # if the test is enabled, execute the test
                if (TestFactory.isEnabled(testName)):
                    numStagingTests = numStagingTests + 1

                    testOb = TestFactory.getTestObject(testName, test_options,
                                                       logger)
                    retVal = testOb.run()

                    if (retVal == nvcstest.NvCSTestResult.SUCCESS):
                        logger.info("STAGE TEST RESULT: PASS\n")
                    elif (retVal == nvcstest.NvCSTestResult.SKIPPED):
                        logger.info("STAGE RESULT: SKIP\n")
                        numStagingSkippedTests = numStagingSkippedTests + 1
                    else:
                        logger.info("STAGE RESULT: FAIL\n")
                        numStagingFailures = numStagingFailures + 1

            except Exception, err:
                print err
                numStagingFailures = numStagingFailures + 1
Exemple #2
0
            logger.info("RESULT: FAIL\n")

    logger.setClientName("")

    if (numFailures == 0):
        RunSuccessStr = "PASS"
    else:
        RunSuccessStr = "FAIL"

    logger.info(
        "=================================================================")
    logger.dumpWarnings("Accumulated WARNING messages from test run:")
    logger.dumpErrors("Accumulated ERROR messages from test run:")
    logger.info(
        "=================================================================")
    nvcstest.printVersionInformation(logger)
    logger.info(
        "=================================================================")
    if (numStagingTests > 0):
        logger.info("(STAGE RUNS DO NOT AFFECT NVCS FINAL RESULT)")
        logger.info("STAGE RUNS: %d" % numStagingTests)
        logger.info("STAGE FAILURES: %d" % numStagingFailures)
        logger.info("STAGE SKIPPED TESTS: %d" % numStagingSkippedTests)
        logger.info(
            "================================================================="
        )
    logger.info("TOTAL TEST RUNS: %d" % numTests)
    logger.info("TOTAL FAILURES: %d" % numFailures)
    logger.info("TOTAL SKIPPED TESTS: %d" % numSkippedTests)
    logger.info(
        "=================================================================")
def main():

    numFailures = 0
    numTests = 0
    numSkippedTests = 0

    logger = nvcstestutils.Logger()

    # parse arguments
    usage = "Usage: %prog <options>"

    options = [
            make_option('-s', dest='sanity', default=False, action="store_true",
                    help = 'Run Sanity tests'),
            make_option('--odm', dest='odm_conformance', default=False, action="store_true",
                    help = 'Run ODM Conformance tests'),
            make_option('-t', dest='test_names', default=None, type="string", action = "append",
                    help = 'Test name to execute', metavar="TEST_NAME"),
            make_option('-d', dest='disabled_test_names', default=None, type="string", action = "append",
                    help = 'Disable the test', metavar="TEST_NAME"),
            make_option('-i', dest='imager_id', default=0, type="int",
                    help = 'set imager id. 0 for rear facing, 1 for front facing', metavar="IMAGER_ID"),
            make_option('-f', dest='force', default=False, action="store_true",
                    help = 'run the tests without any prompts', metavar="FORCE")
        ]

    options_parser = OptionParser(usage, option_list=options)

    # parse the command line arguments
    (test_options, args) = options_parser.parse_args()

    # print version infortion
    nvcstest.printVersionInformation()

    testNamesList = []
    if (test_options.sanity):
        testNamesList = ["jpeg_capture",
                         "raw_capture",
                         "concurrent_raw",
                         "exposuretime",
                         "gain",
                         "focuspos"]

    elif (test_options.odm_conformance):
        testNamesList = ["linearity"]

    elif (test_options.test_names != None):
        testNamesList = test_options.test_names

    __validateTestNames(testNamesList)

    # create a dictionary for disabled test names
    if (test_options.disabled_test_names != None):
        for testName in test_options.disabled_test_names:
            # get the test object
            if (TestFactory.hasTest(testName)):
                TestFactory.disableTest(testName)

    logger.info("Imager ID: %d" % test_options.imager_id)
    for testName in testNamesList:
        # get the test object
        try:
            # if the test is enabled, execute the test
            if (TestFactory.isEnabled(testName)):
                numTests = numTests + 1

                testOb = TestFactory.getTestObject(testName, test_options)
                retVal = testOb.run()

                if (retVal == nvcstest.NvCSTestResult.SUCCESS):
                    logger.info("RESULT: PASS\n")
                elif (retVal == nvcstest.NvCSTestResult.SKIPPED):
                    logger.info("RESULT: SKIP\n")
                    numSkippedTests = numSkippedTests + 1
                else:
                    logger.info("RESULT: FAIL\n")
                    numFailures = numFailures + 1

        except Exception, err:
            print err
            numFailures = numFailures + 1
            logger.info("RESULT: FAIL\n")
Exemple #4
0
def main():

    numFailures = 0
    numTests = 0
    numSkippedTests = 0

    logger = nvcstestutils.Logger()

    # parse arguments
    usage = "Usage: %prog <options>"

    options = [
        make_option('-s',
                    dest='sanity',
                    default=False,
                    action="store_true",
                    help='Run Sanity tests'),
        make_option('--odm',
                    dest='odm_conformance',
                    default=False,
                    action="store_true",
                    help='Run ODM Conformance tests'),
        make_option('-t',
                    dest='test_names',
                    default=None,
                    type="string",
                    action="append",
                    help='Test name to execute',
                    metavar="TEST_NAME"),
        make_option('-d',
                    dest='disabled_test_names',
                    default=None,
                    type="string",
                    action="append",
                    help='Disable the test',
                    metavar="TEST_NAME"),
        make_option(
            '-i',
            dest='imager_id',
            default=0,
            type="int",
            help='set imager id. 0 for rear facing, 1 for front facing',
            metavar="IMAGER_ID"),
        make_option('-f',
                    dest='force',
                    default=False,
                    action="store_true",
                    help='run the tests without any prompts',
                    metavar="FORCE")
    ]

    options_parser = OptionParser(usage, option_list=options)

    # parse the command line arguments
    (test_options, args) = options_parser.parse_args()

    # print version infortion
    nvcstest.printVersionInformation()

    testNamesList = []
    if (test_options.sanity):
        testNamesList = [
            "jpeg_capture", "raw_capture", "concurrent_raw", "exposuretime",
            "gain", "focuspos"
        ]

    elif (test_options.odm_conformance):
        testNamesList = ["linearity"]

    elif (test_options.test_names != None):
        testNamesList = test_options.test_names

    __validateTestNames(testNamesList)

    # create a dictionary for disabled test names
    if (test_options.disabled_test_names != None):
        for testName in test_options.disabled_test_names:
            # get the test object
            if (TestFactory.hasTest(testName)):
                TestFactory.disableTest(testName)

    logger.info("Imager ID: %d" % test_options.imager_id)
    for testName in testNamesList:
        # get the test object
        try:
            # if the test is enabled, execute the test
            if (TestFactory.isEnabled(testName)):
                numTests = numTests + 1

                testOb = TestFactory.getTestObject(testName, test_options)
                retVal = testOb.run()

                if (retVal == nvcstest.NvCSTestResult.SUCCESS):
                    logger.info("RESULT: PASS\n")
                elif (retVal == nvcstest.NvCSTestResult.SKIPPED):
                    logger.info("RESULT: SKIP\n")
                    numSkippedTests = numSkippedTests + 1
                else:
                    logger.info("RESULT: FAIL\n")
                    numFailures = numFailures + 1

        except Exception, err:
            print err
            numFailures = numFailures + 1
            logger.info("RESULT: FAIL\n")
def main():

    numFailures = 0
    numTests = 0
    numSkippedTests = 0
    numStagingFailures = 0
    numStagingTests = 0
    numStagingSkippedTests = 0
    RunSuccessStr = ""
    logger = nvcstestutils.Logger()

    # parse arguments
    usage = "\n" \
            "%prog <options> - Run NVCS sanity and conformance test suite \n\n" \
            "Description:\n" \
            "\t NVCS sanity tests consists of a series of simple basic\n" \
            "\t tests to make sure that the nvcs infrastructure, basic\n" \
            "\t odm functionalities, camera core and algorithm paths are\n" \
            "\t functional.\n" \
            "\n \t Conformance tests are more sophisticated and specific\n" \
            "\t setup is required. Each test is designed to catch issues\n" \
            "\t which have been seen by camera team while working on\n" \
            "\t different customer devices. NVCS sanity test suite needs\n" \
            "\t to pass in order to run conformance test suite."

    standard_options = [
            make_option('-v', '--version', dest='version', default=False, action="store_true",
                    help = 'Display version information'),
            make_option('-l', '--list', dest='listTestNames', default=False, action="store_true",
                    help = 'Display list of sanity and conformance test names'),
            make_option('-s', dest='sanity', default=False, action="store_true",
                    help = 'Run NVCS sanity tests. If no -i option is specified, the command will'
                         + ' run using default imager id 0. Use -l option to look at the'
                         + ' list of sanity tests'),
            make_option('-c', dest='conformance', default=False, action="store_true",
                    help = 'Run Conformance tests. Use -l option to look at the'
                         + ' list of conformance tests'),
            make_option('--classic', dest='useClassicRanges', default=False, action="store_true",
                    help = 'Do not query sensor for gain and exposure range.'
                         + 'This option is only supported for \"linearity\" test at present'),
            make_option('-t', dest='test_names', default=None, type="string", action = "append",
                    metavar="TEST_NAME",
                    help = "Execute the specified test name. Multiple -t options are allowed to execute"
                         + "more than one tests using a single command\n"
                         + "example:\n"
                         + "1) Command to run \"jpeg_capture\" test for imager id 0:\n"
                         + "   python %s -t jpeg_capture -i 0\n" %  sys.argv[0]
                         + "2) Command to run multiple tests \"jpeg_capture\" and \n"
                         + "  \"focuspos\" for imager id 0 using same command:\n"
                         + "   python %s -t jpeg_capture -t focuspos -i 0" % sys.argv[0]),
            make_option('--width', dest='width', default=0, type="int",
                    help = 'set width of the jpeg capture\n'
                         + 'currently only "jpeg_capture" test supports this'),
            make_option('--height', dest='height', default=0, type="int",
                    help = 'set height of the jpeg capture\n'
                         + 'currently only "jpeg_capture" test supports this'),
            make_option('--fdelay', dest='fdelay', default=0, type="float",
                    help = 'set delay for focuser to converge\n'
                         + 'currently only "jpeg_capture" test supports this'),
            make_option('-d', dest='disabled_test_names', default=None, type="string", action = "append",
                    metavar="TEST_NAME",
                    help = 'Disables the test. The test name specified as an argument will not'
                         + ' execute. Multiple -d options are supported'),
            make_option('-i', dest='imager_id', default=0, type="int", metavar="IMAGER_ID",
                    help = "set imager id. Most of the time imager id 0 is assigned for\n"
                         + "rear facing and imager id 1 is assigned for front facing\n"
                         + "camera sensor, but this might not be the case always\n"
                         + "example:\n"
                         + "- Command to run sanity test suite with imager id 1\n"
                         + "  python %s -s -i 1" % sys.argv[0]),
            make_option('--nofocus', dest='ignoreFocuser', default=False, action="store_true",
                    help = 'Ignore ALL focuser commands in the test'),
            make_option('-f', dest='force', default=False, action="store_true",
                    help = 'run the tests without any prompts', metavar="FORCE"),
            make_option('--overridesdir', dest='overridesDir', default='/data', type="string", metavar=" ",
                    help = 'Set Directory for used to set Camera Overrides'),
            make_option('--overridesname', dest='overridesName', default='camera_overrides', type="string", metavar=" ",
                    help = "Set the Name of the file used to set Camera Overrides\n"
                         + "Note: Should not include the assumed \'.isp\' extension"),
            make_option('-h', '-?', '--help', dest='help', action='store_true', default=False,
                    help = 'print this help message')
        ]
    advanced_options = [
            make_option('--nv', dest='advanced', action='store_true', default=False,
                    help = 'Enable advanced options.'
                         + ' This will enable options for advanced testing and debugging of tests'),
            make_option('-n', dest='numTimes', default=0, type="int",
                    help = 'Set number of times the test should run.'
                         + ' Currently only \"blacklevel\" and \"linearity\" test supports this option'),
            make_option('--nostaging', dest='stagingOff', default=False, action="store_true",
                    help = 'Do not run any of the staging tests in sanity or conformance suite'
                         + ' Staging tests are ran to provide information internally to qualify new tests'),
            make_option('--noshuffle', dest='noShuffle', action='store_true', default=False,
                    help = 'Do not shuffle capture order'
                         + ' Currently only \"linearity\" test supports this option'),
            make_option('--eL', dest='exposureLow', default=0, type="float",
                    help = 'Set minimum exposure for linearity3'),
            make_option('--eH', dest='exposureHigh', default=0, type="float",
                    help = 'Set maximum expsoure for linearity3.'),
            make_option('--threshold', dest='threshold', default=0, type="float",
                    help = 'Set threshold for test (float).'
                         + ' Currently only \"blacklevel\" test supports this option and it sets'
                         + ' threshold for difference between the maximum and minimum black level'
                         + ' variance'),
            make_option('--width', dest='width', default=2592, type="int",
                    help = 'Set width for host sensor mode'
                         + ' Default width used by host sensor mode is 2592'),
            make_option('--height', dest='height', default=1944, type="int",
                    help = 'Set height for host sensor mode'
                         + ' Default height used by host sensor mode is 1944'),
            make_option('--gain', dest='utilGain', default=0, type="float",
                    help = 'Set the gain for the capture.'
                         + ' Currently only the \"hdr_ratio\" test supports this option'),
            make_option('--exposure', dest='utilExposure', default=0, type="float",
                    help = 'Set the exposure for the capture.'
                         + ' Currently only the \"hdr_ratio\" test supports this option'),
        ]

    parser = OptionParser(usage, option_list=standard_options + advanced_options,
                          add_help_option=False,
                          formatter=nvcstestutils.IndentedHelpFormatterWithNL())

    # make a standard option for error checking if --nv is not specified
    standard_parser = OptionParser(usage, option_list=standard_options,
                                   add_help_option=False,
                                   formatter=nvcstestutils.IndentedHelpFormatterWithNL())

    # parse the command line arguments
    (test_options, args) = parser.parse_args()

    # parse the standard command line argument of the --nv is not present
    if(not test_options.advanced):
        (options, test_args) = standard_parser.parse_args()

    if(test_options.help):
        if(test_options.advanced):
            # print help message with advanced options
            parser.print_help()
        else:
            # print help message wihtout advanced options
            standard_parser.print_help()
        sys.exit(0)

    if (test_options.listTestNames):
        # print test names

        # print sanity test names
        print "SANITY TEST NAMES:"
        for sanity_test in TestFactory.sanityNameList:
            print "\t%s" % sanity_test

        # print sanity staging test names
        print "SANITY STAGING TEST NAMES:"
        for staging_test in TestFactory.sanityStagingNameList:
            print "\t%s" % staging_test

        print ""

        # print conformance test names
        print "CONFORMANCE TEST NAMES:"
        for conformance_test in TestFactory.conformanceNameList:
            print "\t%s" % conformance_test

        # print conformance staging test names
        print "CONFORMANCE STAGING TEST NAMES:"
        for staging_test in TestFactory.conformanceStagingNameList:
            print "\t%s" % staging_test

        print ""

        sys.exit(0)

    # print version infortion
    nvcstest.printVersionInformation(logger)

    if(test_options.version):
        # Already printed version in previous statement
        sys.exit(0)

    stagingNamesList = []
    testNamesList = []
    if (test_options.sanity):
        testNamesList = TestFactory.sanityNameList
        stagingNamesList = TestFactory.sanityStagingNameList

    elif (test_options.conformance):
        testNamesList = TestFactory.conformanceNameList
        stagingNamesList = TestFactory.conformanceStagingNameList

    elif (test_options.test_names != None):
        testNamesList = test_options.test_names

    __validateTestNames(testNamesList)

    # create a dictionary for disabled test names
    if (test_options.disabled_test_names != None):
        for testName in test_options.disabled_test_names:
            # get the test object
            if (TestFactory.hasTest(testName)):
                TestFactory.disableTest(testName)

    logger.info("Imager ID: %d" % test_options.imager_id)
    if (test_options.stagingOff == False):
        for testName in stagingNamesList:
            # get the test object
            try:
                # if the test is enabled, execute the test
                if (TestFactory.isEnabled(testName)):
                    numStagingTests = numStagingTests + 1

                    testOb = TestFactory.getTestObject(testName, test_options, logger)
                    retVal = testOb.run()

                    if (retVal == nvcstest.NvCSTestResult.SUCCESS):
                        logger.info("STAGE TEST RESULT: PASS\n")
                    elif (retVal == nvcstest.NvCSTestResult.SKIPPED):
                        logger.info("STAGE RESULT: SKIP\n")
                        numStagingSkippedTests = numStagingSkippedTests + 1
                    else:
                        logger.info("STAGE RESULT: FAIL\n")
                        numStagingFailures = numStagingFailures + 1

            except Exception, err:
                print err
                numStagingFailures = numStagingFailures + 1
            print err
            numFailures = numFailures + 1
            logger.info("RESULT: FAIL\n")

    logger.setClientName("")

    if (numFailures == 0):
        RunSuccessStr = "PASS"
    else:
        RunSuccessStr = "FAIL"

    logger.info("=================================================================")
    logger.dumpWarnings("Accumulated WARNING messages from test run:")
    logger.dumpErrors("Accumulated ERROR messages from test run:")
    logger.info("=================================================================")
    nvcstest.printVersionInformation(logger)
    logger.info("=================================================================")
    if (numStagingTests > 0):
        logger.info("(STAGE RUNS DO NOT AFFECT NVCS FINAL RESULT)")
        logger.info("STAGE RUNS: %d" % numStagingTests)
        logger.info("STAGE FAILURES: %d" % numStagingFailures)
        logger.info("STAGE SKIPPED TESTS: %d" % numStagingSkippedTests)
        logger.info("=================================================================")
    logger.info("TOTAL TEST RUNS: %d" % numTests)
    logger.info("TOTAL FAILURES: %d" % numFailures)
    logger.info("TOTAL SKIPPED TESTS: %d" % numSkippedTests)
    logger.info("=================================================================")
    logger.info("NVCS Final Result: %s" % (RunSuccessStr))
    logger.info("=================================================================")

    if (numFailures > 0):