Ping.
This updated patch submission has received no comments.

Gavin "Beau" Baumanis


On 11/01/2010, at 10:59 PM, Chris Foote wrote:

> Hi Julian,
> 
> I've made the changes as you suggested.
> 
> Regards,
> Chris
> 
> [[[
> Make it easy to (re)run specific tests on windows by adding a --test/-t
> option. The tests can also specify specific test number(s) to run.
> 
> * win-tests.py
>  (_usage_exit): Add the --test/-t option to the help.
>  (tests_to_run): New. List of tests to be run by the TestHarness.
> 
> * build/run_tests.py
>  (_run_test): Break the progname at a '#' and use the rhs as a list of
>    test numbers to run.
> ]]]
> 
> 
> Index: win-tests.py
> ===================================================================
> --- win-tests.py      (revision 897802)
> +++ win-tests.py      (working copy)
> @@ -61,6 +61,9 @@
>   print("  -v, --verbose          : talk more")
>   print("  -f, --fs-type=type     : filesystem type to use (fsfs is default)")
>   print("  -c, --cleanup          : cleanup after running a test")
> +  print("  -t, --test=TEST        : Run the TEST test (all is default); use")
> +  print("                           TEST#n to run a particular test number,")
> +  print("                           multiples also accepted e.g. '2,4-7'")
> 
>   print("  --svnserve-args=list   : comma-separated list of arguments for")
>   print("                           svnserve")
> @@ -107,9 +110,9 @@
>     dll_basename = section.name + "-" + str(gen_obj.version) + ".dll"
>     svn_dlls.append(os.path.join("subversion", section.name, dll_basename))
> 
> -opts, args = my_getopt(sys.argv[1:], 'hrdvcpu:f:',
> -                       ['release', 'debug', 'verbose', 'cleanup', 'url=',
> -                        'svnserve-args=', 'fs-type=', 'asp.net-hack',
> +opts, args = my_getopt(sys.argv[1:], 'hrdvct:pu:f:',
> +                       ['release', 'debug', 'verbose', 'cleanup', 'test=',
> +                        'url=', 'svnserve-args=', 'fs-type=', 'asp.net-hack',
>                         'httpd-dir=', 'httpd-port=', 'httpd-daemon',
>                         'httpd-server', 'http-library=', 'help',
>                         'fsfs-packing', 'fsfs-sharding=',
> @@ -137,6 +140,7 @@
> fsfs_packing = None
> server_minor_version = None
> config_file = None
> +tests_to_run = []
> 
> for opt, val in opts:
>   if opt in ('-h', '--help'):
> @@ -149,6 +153,8 @@
>     verbose = 1
>   elif opt in ('-c', '--cleanup'):
>     cleanup = 1
> +  elif opt in ('-t', '--test'):
> +    tests_to_run.append(val)
>   elif opt in ['-r', '--release']:
>     objdir = 'Release'
>   elif opt in ['-d', '--debug']:
> @@ -599,6 +605,32 @@
> if daemon:
>   daemon.start()
> 
> +# Find the full path and filename of any test that is specified just by
> +# its base name.
> +if len(tests_to_run) != 0:
> +  tests = []
> +  for t in tests_to_run:
> +    tns = None
> +    if '#' in t:
> +      t, tns = t.split('#')
> +
> +    test = [x for x in all_tests if x.split('/')[-1] == t]
> +    if not test and not (t.endswith('-test.exe') or t.endswith('_tests.py')):
> +      # The lengths of '-test.exe' and of '_tests.py' are both 9.
> +      test = [x for x in all_tests if x.split('/')[-1][:-9] == t]
> +
> +    if not test:
> +      print("Skipping test '%s', test not found." % t)
> +    elif tns:
> +      tests.append('%s#%s' % (test[0], tns))
> +    else:
> +      tests.extend(test)
> +
> +  tests_to_run = tests
> +else:
> +  tests_to_run = all_tests
> +
> +
> print('Testing %s configuration on %s' % (objdir, repo_loc))
> sys.path.insert(0, os.path.join(abs_srcdir, 'build'))
> import run_tests
> @@ -612,7 +644,7 @@
> old_cwd = os.getcwd()
> try:
>   os.chdir(abs_builddir)
> -  failed = th.run(all_tests)
> +  failed = th.run(tests_to_run)
> except:
>   os.chdir(old_cwd)
>   raise
> Index: build/run_tests.py
> ===================================================================
> --- build/run_tests.py        (revision 897802)
> +++ build/run_tests.py        (working copy)
> @@ -216,12 +216,16 @@
>     else:
>       log = sys.stdout
> 
> +    test_nums = None
> +    if '#' in prog:
> +      prog, test_nums = prog.split('#')
> +
>     progdir, progbase = os.path.split(prog)
>     if self.log:
>       # Using write here because we don't want even a trailing space
>       test_info = '%s [%d/%d]' % (progbase, test_nr + 1, total_tests)
> -      sys.stdout.write('Running all tests in %s' % (test_info, ))
> -      sys.stdout.write('.'*(35 - len(test_info)))
> +      sys.stdout.write('Running tests in %s' % (test_info, ))
> +      sys.stdout.write('.'*(40 - len(test_info)))
> 
>     log.write('START: %s\n' % progbase)
>     log.flush()
> @@ -268,6 +272,10 @@
>     if self.fsfs_packing is not None:
>       cmdline.append('--fsfs-packing')
> 
> +    if test_nums:
> +      test_nums = test_nums.split(',')
> +      cmdline.extend(test_nums)
> +
>     old_cwd = os.getcwd()
>     try:
>       os.chdir(progdir)

Reply via email to