[Lldb-commits] [lldb] r237602 - Refactored dotest arg parser so that it's accessible from dosep
Vince Harron
vince at nethacker.com
Fri May 22 07:56:24 PDT 2015
Up for review
http://reviews.llvm.org/D9937
On Thu, May 21, 2015 at 4:17 PM, Vince Harron <vince at nethacker.com> wrote:
> 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/20150522/5bb6fefa/attachment.html>
More information about the lldb-commits
mailing list