[Lldb-commits] [lldb] r237602 - Refactored dotest arg parser so that it's accessible from dosep

Vince Harron vince at nethacker.com
Thu May 21 16:17:36 PDT 2015


Yeah, on it.

On Thu, May 21, 2015 at 4:03 PM, Zachary Turner <zturner at google.com> wrote:

> This breaks dotest.py --help, and many other command line options.
>
> Would you mind fixing this?  I took a stab at it but it turns out to be a
> little more involved than I have time for.
>
> On Mon, May 18, 2015 at 12:45 PM Vince Harron <vince at nethacker.com> wrote:
>
>> Author: vharron
>> Date: Mon May 18 14:40:54 2015
>> New Revision: 237602
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=237602&view=rev
>> Log:
>> Refactored dotest arg parser so that it's accessible from dosep
>>
>> This allows dosep to understand an act on dotest arguments
>>
>> Differential Revision: http://reviews.llvm.org/D9820
>>
>>
>> Added:
>>     lldb/trunk/test/dotest_args.py
>> Modified:
>>     lldb/trunk/test/dosep.py
>>     lldb/trunk/test/dotest.py
>>
>> Modified: lldb/trunk/test/dosep.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237602&r1=237601&r2=237602&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/test/dosep.py (original)
>> +++ lldb/trunk/test/dosep.py Mon May 18 14:40:54 2015
>> @@ -25,6 +25,7 @@ import multiprocessing
>>  import os
>>  import platform
>>  import re
>> +import dotest_args
>>  import shlex
>>  import subprocess
>>  import sys
>> @@ -152,16 +153,16 @@ def walk_and_invoke(test_directory, test
>>
>>      return (timed_out, failed, passed)
>>
>> -def getExpectedTimeouts(dotest_options):
>> +def getExpectedTimeouts(platform_name):
>>      # returns a set of test filenames that might timeout
>>      # are we running against a remote target?
>> -    m = re.search('\sremote-(\w+)', dotest_options)
>> -    if m:
>> -        target = m.group(1)
>> -        remote = True
>> -    else:
>> +    if platform_name is None:
>>          target = sys.platform
>>          remote = False
>> +    else:
>> +        m = re.search('remote-(\w+)', platform_name)
>> +        target = m.group(1)
>> +        remote = True
>>
>>      expected_timeout = set()
>>
>> @@ -225,7 +226,10 @@ Run lldb test suite using a separate pro
>>                        help="""The number of threads to use when running
>> tests separately.""")
>>
>>      opts, args = parser.parse_args()
>> -    dotest_options = opts.dotest_options
>> +    dotest_option_string = opts.dotest_options
>> +
>> +    dotest_argv = shlex.split(dotest_option_string)
>> +    dotest_options = dotest_args.getArguments(dotest_argv)
>>
>>      # The root directory was specified on the command line
>>      if len(args) == 0:
>> @@ -245,13 +249,13 @@ Run lldb test suite using a separate pro
>>          num_threads = 1
>>
>>      system_info = " ".join(platform.uname())
>> -    (timed_out, failed, passed) = walk_and_invoke(test_directory,
>> test_subdir, dotest_options,
>> +    (timed_out, failed, passed) = walk_and_invoke(test_directory,
>> test_subdir, dotest_option_string,
>>                                                    num_threads)
>>      timed_out = set(timed_out)
>>      num_tests = len(failed) + len(passed)
>>
>>      # remove expected timeouts from failures
>> -    expected_timeout = getExpectedTimeouts(dotest_options)
>> +    expected_timeout =
>> getExpectedTimeouts(dotest_options.lldb_platform_name)
>>      for xtime in expected_timeout:
>>          if xtime in timed_out:
>>              timed_out.remove(xtime)
>>
>> Modified: lldb/trunk/test/dotest.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237602&r1=237601&r2=237602&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/test/dotest.py (original)
>> +++ lldb/trunk/test/dotest.py Mon May 18 14:40:54 2015
>> @@ -22,6 +22,7 @@ for available options.
>>
>>  import commands
>>  import os
>> +import dotest_args
>>  import errno
>>  import platform
>>  import progress
>> @@ -34,26 +35,6 @@ import inspect
>>  import unittest2
>>  import lldbtest_config
>>
>> -if sys.version_info >= (2, 7):
>> -    argparse = __import__('argparse')
>> -else:
>> -    argparse = __import__('argparse_compat')
>> -
>> -def parse_args(parser):
>> -    """ Returns an argument object. LLDB_TEST_ARGUMENTS environment
>> variable can
>> -        be used to pass additional arguments if a compatible (>=2.7)
>> argparse
>> -        library is available.
>> -    """
>> -    if sys.version_info >= (2, 7):
>> -        args = ArgParseNamespace()
>> -
>> -        if ('LLDB_TEST_ARGUMENTS' in os.environ):
>> -            print "Arguments passed through environment: '%s'" %
>> os.environ['LLDB_TEST_ARGUMENTS']
>> -            args =
>> parser.parse_args([sys.argv[0]].__add__(os.environ['LLDB_TEST_ARGUMENTS'].split()),namespace=args)
>> -
>> -        return parser.parse_args(namespace=args)
>> -    else:
>> -        return parser.parse_args()
>>
>>  def is_exe(fpath):
>>      """Returns true if fpath is an executable."""
>> @@ -388,9 +369,6 @@ def unique_string_match(yourentry,list):
>>                         candidate = item
>>         return candidate
>>
>> -class ArgParseNamespace(object):
>> -    pass
>> -
>>  def validate_categories(categories):
>>      """For each category in categories, ensure that it's a valid
>> category (or a prefix thereof).
>>         If a category is invalid, print a message and quit.
>> @@ -513,93 +491,7 @@ def parseOptionsAndInitTestdirs():
>>      platform_system = platform.system()
>>      platform_machine = platform.machine()
>>
>> -    parser = argparse.ArgumentParser(description='description',
>> prefix_chars='+-', add_help=False)
>> -    group = None
>> -
>> -    # Helper function for boolean options (group will point to the
>> current group when executing X)
>> -    X = lambda optstr, helpstr, **kwargs: group.add_argument(optstr,
>> help=helpstr, action='store_true', **kwargs)
>> -
>> -    group = parser.add_argument_group('Help')
>> -    group.add_argument('-h', '--help', dest='h', action='store_true',
>> help="Print this help message and exit.  Add '-v' for more detailed help.")
>> -
>> -    # C and Python toolchain options
>> -    group = parser.add_argument_group('Toolchain options')
>> -    group.add_argument('-A', '--arch', metavar='arch', action='append',
>> dest='archs', help=textwrap.dedent('''Specify the architecture(s) to test.
>> This option can be specified more than once'''))
>> -    group.add_argument('-C', '--compiler', metavar='compiler',
>> dest='compilers', action='append', help=textwrap.dedent('''Specify the
>> compiler(s) used to build the inferior executables. The compiler path can
>> be an executable basename or a full path to a compiler executable. This
>> option can be specified multiple times.'''))
>> -    if platform_system == 'Darwin':
>> -        group.add_argument('--apple-sdk', metavar='apple_sdk',
>> dest='apple_sdk', help=textwrap.dedent('''Specify the name of the Apple SDK
>> (macosx, macosx.internal, iphoneos, iphoneos.internal, or path to SDK) and
>> use the appropriate tools from that SDK's toolchain.'''))
>> -    # FIXME? This won't work for different extra flags according to each
>> arch.
>> -    group.add_argument('-E', metavar='extra-flags',
>> help=textwrap.dedent('''Specify the extra flags to be passed to the
>> toolchain when building the inferior programs to be debugged
>> -                                                           suggestions:
>> do not lump the "-A arch1 -A arch2" together such that the -E option
>> applies to only one of the architectures'''))
>> -    X('-D', 'Dump the Python sys.path variable')
>> -
>> -    # Test filtering options
>> -    group = parser.add_argument_group('Test filtering options')
>> -    group.add_argument('-N', choices=['dwarf', 'dsym'], help="Don't do
>> test cases marked with the @dsym decorator by passing 'dsym' as the option
>> arg, or don't do test cases marked with the @dwarf decorator by passing
>> 'dwarf' as the option arg")
>> -    X('-a', "Don't do lldb Python API tests")
>> -    X('+a', "Just do lldb Python API tests. Do not specify along with
>> '-a'", dest='plus_a')
>> -    X('+b', 'Just do benchmark tests', dest='plus_b')
>> -    group.add_argument('-b', metavar='blacklist', help='Read a blacklist
>> file specified after this option')
>> -    group.add_argument('-f', metavar='filterspec', action='append',
>> help='Specify a filter, which consists of the test class name, a dot,
>> followed by the test method, to only admit such test into the test suite')
>> # FIXME: Example?
>> -    X('-g', 'If specified, the filterspec by -f is not exclusive, i.e.,
>> if a test module does not match the filterspec (testclass.testmethod), the
>> whole module is still admitted to the test suite')
>> -    X('-l', "Don't skip long running tests")
>> -    X('-m', "Don't do lldb-mi tests")
>> -    X('+m', "Just do lldb-mi tests. Do not specify along with '-m'",
>> dest='plus_m')
>> -    group.add_argument('-p', metavar='pattern', help='Specify a regexp
>> filename pattern for inclusion in the test suite')
>> -    group.add_argument('-X', metavar='directory', help="Exclude a
>> directory from consideration for test discovery. -X types => if 'types'
>> appear in the pathname components of a potential testfile, it will be
>> ignored")
>> -    group.add_argument('-G', '--category', metavar='category',
>> action='append', dest='categoriesList', help=textwrap.dedent('''Specify
>> categories of test cases of interest. Can be specified more than once.'''))
>> -    group.add_argument('--skip-category', metavar='category',
>> action='append', dest='skipCategories', help=textwrap.dedent('''Specify
>> categories of test cases to skip. Takes precedence over -G. Can be
>> specified more than once.'''))
>> -
>> -    # Configuration options
>> -    group = parser.add_argument_group('Configuration options')
>> -    group.add_argument('-c', metavar='config-file', help='Read a config
>> file specified after this option')  # FIXME: additional doc.
>> -    group.add_argument('--framework', metavar='framework-path',
>> help='The path to LLDB.framework')
>> -    group.add_argument('--executable', metavar='executable-path',
>> help='The path to the lldb executable')
>> -    group.add_argument('--libcxx', metavar='directory', help='The path
>> to custom libc++ library')
>> -    group.add_argument('-e', metavar='benchmark-exe', help='Specify the
>> full path of an executable used for benchmark purposes (see also: -x)')
>> -    group.add_argument('-k', metavar='command', action='append',
>> help="Specify a runhook, which is an lldb command to be executed by the
>> debugger; The option can occur multiple times. The commands are executed
>> one after the other to bring the debugger to a desired state, so that, for
>> example, further benchmarking can be done")
>> -    group.add_argument('-R', metavar='dir', help='Specify a directory to
>> relocate the tests and their intermediate files to. BE WARNED THAT the
>> directory, if exists, will be deleted before running this test driver. No
>> cleanup of intermediate test files is performed in this case')
>> -    group.add_argument('-r', metavar='dir', help="Similar to '-R',
>> except that the directory must not exist before running this test driver")
>> -    group.add_argument('-s', metavar='name', help='Specify the name of
>> the dir created to store the session files of tests with errored or failed
>> status. If not specified, the test driver uses the timestamp as the session
>> dir name')
>> -    group.add_argument('-x', metavar='breakpoint-spec', help='Specify
>> the breakpoint specification for the benchmark executable')
>> -    group.add_argument('-y', type=int, metavar='count', help="Specify
>> the iteration count used to collect our benchmarks. An example is the
>> number of times to do 'thread step-over' to measure stepping speed.")
>> -    group.add_argument('-#', type=int, metavar='sharp', dest='sharp',
>> help='Repeat the test suite for a specified number of times')
>> -    group.add_argument('--channel', metavar='channel', dest='channels',
>> action='append', help=textwrap.dedent("Specify the log channels (and
>> optional categories) e.g. 'lldb all' or 'gdb-remote packets' if no
>> categories are specified, 'default' is used"))
>> -    group.add_argument('--log-success', dest='log_success',
>> action='store_true', help="Leave logs/traces even for successful test runs
>> (useful for creating reference log files during debugging.)")
>> -
>> -    # Configuration options
>> -    group = parser.add_argument_group('Remote platform options')
>> -    group.add_argument('--platform-name', dest='lldb_platform_name',
>> metavar='platform-name', help='The name of a remote platform to use')
>> -    group.add_argument('--platform-url', dest='lldb_platform_url',
>> metavar='platform-url', help='A LLDB platform URL to use when connecting to
>> a remote platform to run the test suite')
>> -    group.add_argument('--platform-working-dir',
>> dest='lldb_platform_working_dir', metavar='platform-working-dir', help='The
>> directory to use on the remote platform.')
>> -
>> -    # Test-suite behaviour
>> -    group = parser.add_argument_group('Runtime behaviour options')
>> -    X('-d', 'Suspend the process after launch to wait indefinitely for a
>> debugger to attach')
>> -    X('-F', 'Fail fast. Stop the test suite on the first error/failure')
>> -    X('-i', "Ignore (don't bailout) if 'lldb.py' module cannot be
>> located in the build tree relative to this script; use PYTHONPATH to locate
>> the module")
>> -    X('-n', "Don't print the headers like build dir, lldb version, and
>> svn info at all")
>> -    X('-P', "Use the graphic progress bar.")
>> -    X('-q', "Don't print extra output from this script.")
>> -    X('-S', "Skip the build and cleanup while running the test. Use this
>> option with care as you would need to build the inferior(s) by hand and
>> build the executable(s) with the correct name(s). This can be used with '-#
>> n' to stress test certain test cases for n number of times")
>> -    X('-t', 'Turn on tracing of lldb command and other detailed test
>> executions')
>> -    group.add_argument('-u', dest='unset_env_varnames',
>> metavar='variable', action='append', help='Specify an environment variable
>> to unset before running the test cases. e.g., -u DYLD_INSERT_LIBRARIES -u
>> MallocScribble')
>> -    group.add_argument('--env', dest='set_env_vars', metavar='variable',
>> action='append', help='Specify an environment variable to set to the given
>> value before running the test cases e.g.: --env CXXFLAGS=-O3 --env
>> DYLD_INSERT_LIBRARIES')
>> -    X('-v', 'Do verbose mode of unittest framework (print out each test
>> case invocation)')
>> -    X('-w', 'Insert some wait time (currently 0.5 sec) between
>> consecutive test cases')
>> -    X('-T', 'Obtain and dump svn information for this checkout of LLDB
>> (off by default)')
>> -    group.add_argument('--enable-crash-dialog',
>> dest='disable_crash_dialog', action='store_false', help='(Windows only)
>> When LLDB crashes, display the Windows crash dialog.')
>> -    group.add_argument('--show-inferior-console',
>> dest='hide_inferior_console', action='store_false', help='(Windows only)
>> When launching an inferior, dont hide its console window.')
>> -    group.set_defaults(disable_crash_dialog=True)
>> -    group.set_defaults(hide_inferior_console=True)
>> -
>> -    # Remove the reference to our helper function
>> -    del X
>> -
>> -    group = parser.add_argument_group('Test directories')
>> -    group.add_argument('args', metavar='test-dir', nargs='*',
>> help='Specify a list of directory names to search for test modules named
>> after Test*.py (test discovery). If empty, search from the current working
>> directory instead.')
>> -
>> -    args = parse_args(parser)
>> +    args = dotest_args.getArguments(sys.argv[1:])
>>
>>      if args.unset_env_varnames:
>>          for env_var in args.unset_env_varnames:
>>
>> Added: lldb/trunk/test/dotest_args.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest_args.py?rev=237602&view=auto
>>
>> ==============================================================================
>> --- lldb/trunk/test/dotest_args.py (added)
>> +++ lldb/trunk/test/dotest_args.py Mon May 18 14:40:54 2015
>> @@ -0,0 +1,117 @@
>> +import sys
>> +import os
>> +import textwrap
>> +
>> +if sys.version_info >= (2, 7):
>> +    argparse = __import__('argparse')
>> +else:
>> +    argparse = __import__('argparse_compat')
>> +
>> +class ArgParseNamespace(object):
>> +    pass
>> +
>> +def parse_args(parser, argv):
>> +    """ Returns an argument object. LLDB_TEST_ARGUMENTS environment
>> variable can
>> +        be used to pass additional arguments if a compatible (>=2.7)
>> argparse
>> +        library is available.
>> +    """
>> +    if sys.version_info >= (2, 7):
>> +        args = ArgParseNamespace()
>> +
>> +        if ('LLDB_TEST_ARGUMENTS' in os.environ):
>> +            print "Arguments passed through environment: '%s'" %
>> os.environ['LLDB_TEST_ARGUMENTS']
>> +            args =
>> parser.parse_args([sys.argv[0]].__add__(os.environ['LLDB_TEST_ARGUMENTS'].split()),namespace=args)
>> +
>> +        return parser.parse_args(args=argv, namespace=args)
>> +    else:
>> +        return parser.parse_args(args=argv)
>> +
>> +def getArguments(argv):
>> +
>> +    parser = argparse.ArgumentParser(description='description',
>> prefix_chars='+-', add_help=False)
>> +    group = None
>> +
>> +    # Helper function for boolean options (group will point to the
>> current group when executing X)
>> +    X = lambda optstr, helpstr, **kwargs: group.add_argument(optstr,
>> help=helpstr, action='store_true', **kwargs)
>> +
>> +    group = parser.add_argument_group('Help')
>> +    group.add_argument('-h', '--help', dest='h', action='store_true',
>> help="Print this help message and exit.  Add '-v' for more detailed help.")
>> +
>> +    # C and Python toolchain options
>> +    group = parser.add_argument_group('Toolchain options')
>> +    group.add_argument('-A', '--arch', metavar='arch', action='append',
>> dest='archs', help=textwrap.dedent('''Specify the architecture(s) to test.
>> This option can be specified more than once'''))
>> +    group.add_argument('-C', '--compiler', metavar='compiler',
>> dest='compilers', action='append', help=textwrap.dedent('''Specify the
>> compiler(s) used to build the inferior executables. The compiler path can
>> be an executable basename or a full path to a compiler executable. This
>> option can be specified multiple times.'''))
>> +    if sys.platform == 'darwin':
>> +        group.add_argument('--apple-sdk', metavar='apple_sdk',
>> dest='apple_sdk', help=textwrap.dedent('''Specify the name of the Apple SDK
>> (macosx, macosx.internal, iphoneos, iphoneos.internal, or path to SDK) and
>> use the appropriate tools from that SDK's toolchain.'''))
>> +    # FIXME? This won't work for different extra flags according to each
>> arch.
>> +    group.add_argument('-E', metavar='extra-flags',
>> help=textwrap.dedent('''Specify the extra flags to be passed to the
>> toolchain when building the inferior programs to be debugged
>> +                                                           suggestions:
>> do not lump the "-A arch1 -A arch2" together such that the -E option
>> applies to only one of the architectures'''))
>> +    X('-D', 'Dump the Python sys.path variable')
>> +
>> +    # Test filtering options
>> +    group = parser.add_argument_group('Test filtering options')
>> +    group.add_argument('-N', choices=['dwarf', 'dsym'], help="Don't do
>> test cases marked with the @dsym decorator by passing 'dsym' as the option
>> arg, or don't do test cases marked with the @dwarf decorator by passing
>> 'dwarf' as the option arg")
>> +    X('-a', "Don't do lldb Python API tests")
>> +    X('+a', "Just do lldb Python API tests. Do not specify along with
>> '-a'", dest='plus_a')
>> +    X('+b', 'Just do benchmark tests', dest='plus_b')
>> +    group.add_argument('-b', metavar='blacklist', help='Read a blacklist
>> file specified after this option')
>> +    group.add_argument('-f', metavar='filterspec', action='append',
>> help='Specify a filter, which consists of the test class name, a dot,
>> followed by the test method, to only admit such test into the test suite')
>> # FIXME: Example?
>> +    X('-g', 'If specified, the filterspec by -f is not exclusive, i.e.,
>> if a test module does not match the filterspec (testclass.testmethod), the
>> whole module is still admitted to the test suite')
>> +    X('-l', "Don't skip long running tests")
>> +    X('-m', "Don't do lldb-mi tests")
>> +    X('+m', "Just do lldb-mi tests. Do not specify along with '-m'",
>> dest='plus_m')
>> +    group.add_argument('-p', metavar='pattern', help='Specify a regexp
>> filename pattern for inclusion in the test suite')
>> +    group.add_argument('-X', metavar='directory', help="Exclude a
>> directory from consideration for test discovery. -X types => if 'types'
>> appear in the pathname components of a potential testfile, it will be
>> ignored")
>> +    group.add_argument('-G', '--category', metavar='category',
>> action='append', dest='categoriesList', help=textwrap.dedent('''Specify
>> categories of test cases of interest. Can be specified more than once.'''))
>> +    group.add_argument('--skip-category', metavar='category',
>> action='append', dest='skipCategories', help=textwrap.dedent('''Specify
>> categories of test cases to skip. Takes precedence over -G. Can be
>> specified more than once.'''))
>> +
>> +    # Configuration options
>> +    group = parser.add_argument_group('Configuration options')
>> +    group.add_argument('-c', metavar='config-file', help='Read a config
>> file specified after this option')  # FIXME: additional doc.
>> +    group.add_argument('--framework', metavar='framework-path',
>> help='The path to LLDB.framework')
>> +    group.add_argument('--executable', metavar='executable-path',
>> help='The path to the lldb executable')
>> +    group.add_argument('--libcxx', metavar='directory', help='The path
>> to custom libc++ library')
>> +    group.add_argument('-e', metavar='benchmark-exe', help='Specify the
>> full path of an executable used for benchmark purposes (see also: -x)')
>> +    group.add_argument('-k', metavar='command', action='append',
>> help="Specify a runhook, which is an lldb command to be executed by the
>> debugger; The option can occur multiple times. The commands are executed
>> one after the other to bring the debugger to a desired state, so that, for
>> example, further benchmarking can be done")
>> +    group.add_argument('-R', metavar='dir', help='Specify a directory to
>> relocate the tests and their intermediate files to. BE WARNED THAT the
>> directory, if exists, will be deleted before running this test driver. No
>> cleanup of intermediate test files is performed in this case')
>> +    group.add_argument('-r', metavar='dir', help="Similar to '-R',
>> except that the directory must not exist before running this test driver")
>> +    group.add_argument('-s', metavar='name', help='Specify the name of
>> the dir created to store the session files of tests with errored or failed
>> status. If not specified, the test driver uses the timestamp as the session
>> dir name')
>> +    group.add_argument('-x', metavar='breakpoint-spec', help='Specify
>> the breakpoint specification for the benchmark executable')
>> +    group.add_argument('-y', type=int, metavar='count', help="Specify
>> the iteration count used to collect our benchmarks. An example is the
>> number of times to do 'thread step-over' to measure stepping speed.")
>> +    group.add_argument('-#', type=int, metavar='sharp', dest='sharp',
>> help='Repeat the test suite for a specified number of times')
>> +    group.add_argument('--channel', metavar='channel', dest='channels',
>> action='append', help=textwrap.dedent("Specify the log channels (and
>> optional categories) e.g. 'lldb all' or 'gdb-remote packets' if no
>> categories are specified, 'default' is used"))
>> +    group.add_argument('--log-success', dest='log_success',
>> action='store_true', help="Leave logs/traces even for successful test runs
>> (useful for creating reference log files during debugging.)")
>> +
>> +    # Configuration options
>> +    group = parser.add_argument_group('Remote platform options')
>> +    group.add_argument('--platform-name', dest='lldb_platform_name',
>> metavar='platform-name', help='The name of a remote platform to use')
>> +    group.add_argument('--platform-url', dest='lldb_platform_url',
>> metavar='platform-url', help='A LLDB platform URL to use when connecting to
>> a remote platform to run the test suite')
>> +    group.add_argument('--platform-working-dir',
>> dest='lldb_platform_working_dir', metavar='platform-working-dir', help='The
>> directory to use on the remote platform.')
>> +
>> +    # Test-suite behaviour
>> +    group = parser.add_argument_group('Runtime behaviour options')
>> +    X('-d', 'Suspend the process after launch to wait indefinitely for a
>> debugger to attach')
>> +    X('-F', 'Fail fast. Stop the test suite on the first error/failure')
>> +    X('-i', "Ignore (don't bailout) if 'lldb.py' module cannot be
>> located in the build tree relative to this script; use PYTHONPATH to locate
>> the module")
>> +    X('-n', "Don't print the headers like build dir, lldb version, and
>> svn info at all")
>> +    X('-P', "Use the graphic progress bar.")
>> +    X('-q', "Don't print extra output from this script.")
>> +    X('-S', "Skip the build and cleanup while running the test. Use this
>> option with care as you would need to build the inferior(s) by hand and
>> build the executable(s) with the correct name(s). This can be used with '-#
>> n' to stress test certain test cases for n number of times")
>> +    X('-t', 'Turn on tracing of lldb command and other detailed test
>> executions')
>> +    group.add_argument('-u', dest='unset_env_varnames',
>> metavar='variable', action='append', help='Specify an environment variable
>> to unset before running the test cases. e.g., -u DYLD_INSERT_LIBRARIES -u
>> MallocScribble')
>> +    group.add_argument('--env', dest='set_env_vars', metavar='variable',
>> action='append', help='Specify an environment variable to set to the given
>> value before running the test cases e.g.: --env CXXFLAGS=-O3 --env
>> DYLD_INSERT_LIBRARIES')
>> +    X('-v', 'Do verbose mode of unittest framework (print out each test
>> case invocation)')
>> +    X('-w', 'Insert some wait time (currently 0.5 sec) between
>> consecutive test cases')
>> +    X('-T', 'Obtain and dump svn information for this checkout of LLDB
>> (off by default)')
>> +    group.add_argument('--enable-crash-dialog',
>> dest='disable_crash_dialog', action='store_false', help='(Windows only)
>> When LLDB crashes, display the Windows crash dialog.')
>> +    group.add_argument('--show-inferior-console',
>> dest='hide_inferior_console', action='store_false', help='(Windows only)
>> When launching an inferior, dont hide its console window.')
>> +    group.set_defaults(disable_crash_dialog=True)
>> +    group.set_defaults(hide_inferior_console=True)
>> +
>> +    # Remove the reference to our helper function
>> +    del X
>> +
>> +    group = parser.add_argument_group('Test directories')
>> +    group.add_argument('args', metavar='test-dir', nargs='*',
>> help='Specify a list of directory names to search for test modules named
>> after Test*.py (test discovery). If empty, search from the current working
>> directory instead.')
>> +
>> +    return parse_args(parser, argv)
>>
>>
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150521/b8d2fc6b/attachment.html>


More information about the lldb-commits mailing list