[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] v3: Simplify running specific tests on Windows

From: Gavin Beau Baumanis <gavin_at_thespidernet.com>
Date: Wed, 20 Jan 2010 23:11:17 +1100

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)
Received on 2010-01-20 13:13:54 CET

This is an archived mail posted to the Subversion Dev mailing list.