summaryrefslogtreecommitdiffstats
path: root/meta/COPYING.GPLv2
AgeCommit message (Expand)Author
2014-01-02Fix license notices for OE-CorePaul Eggleton
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
#!/usr/bin/env python3

# OpenEmbedded test tool
#
# Copyright (C) 2016 Intel Corporation
#
# SPDX-License-Identifier: MIT
#

import os
import sys
import argparse
import logging

scripts_path = os.path.dirname(os.path.realpath(__file__))
lib_path = scripts_path + '/lib'
sys.path = sys.path + [lib_path]
import argparse_oe
import scriptutils

# oe-test is used for testexport and it doesn't have oe lib
# so we just skip adding these libraries (not used in testexport)
try:
    import scriptpath
    scriptpath.add_oe_lib_path()
except ImportError:
    pass

from oeqa.utils import load_test_components
from oeqa.core.exception import OEQAPreRun

logger = scriptutils.logger_create('oe-test', stream=sys.stdout)

def main():
    parser = argparse_oe.ArgumentParser(description="OpenEmbedded test tool",
                                        add_help=False,
                                        epilog="Use %(prog)s <subcommand> --help to get help on a specific command")
    parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
    parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
    global_args, unparsed_args = parser.parse_known_args()

    # Help is added here rather than via add_help=True, as we don't want it to
    # be handled by parse_known_args()
    parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
                        help='show this help message and exit')

    if global_args.debug:
        logger.setLevel(logging.DEBUG)
    elif global_args.quiet:
        logger.setLevel(logging.ERROR)

    components = load_test_components(logger, 'oe-test')

    subparsers = parser.add_subparsers(dest="subparser_name", title='subcommands', metavar='<subcommand>')
    subparsers.add_subparser_group('components', 'Test components')
    subparsers.required = True
    for comp_name in sorted(components.keys()):
        comp = components[comp_name]
        comp.register_commands(logger, subparsers)

    try:
        args = parser.parse_args(unparsed_args, namespace=global_args)
        results = args.func(logger, args)
        ret = 0 if results.wasSuccessful() else 1
    except SystemExit as err:
        if err.code != 0:
            raise err
        ret = err.code
    except argparse_oe.ArgumentUsageError as ae:
        parser.error_subcommand(ae.message, ae.subcommand)
    except OEQAPreRun as pr:
        ret = 1

    return ret

if __name__ == '__main__':
    try:
        ret = main()
    except Exception:
        ret = 1
        import traceback
        traceback.print_exc()
    sys.exit(ret)