Yeah, on it. On Thu, May 21, 2015 at 4:03 PM, Zachary Turner <ztur...@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 <vi...@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@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >> >
_______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits