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

Re: backporting r964349

From: Hyrum K. Wright <hyrum_wright_at_mail.utexas.edu>
Date: Tue, 9 Nov 2010 20:40:18 -0600

If you feel you've resolved the conflicts appropriately, go ahead and commit.

-Hyrum

On Tue, Nov 9, 2010 at 7:05 PM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
> hwright_at_apache.org wrote on Tue, Nov 09, 2010 at 20:09:53 -0000:
>> * STATUS: Add note to the r964349 group.
>
>> @@ -350,6 +350,8 @@ Approved changes:
>>     Create fails.log files for test runs.
>>     Justification:
>>       Developer convenience.
>> +   Notes:
>> +     Somewhat non-trivial merge conflicts.
>>     Votes:
>>       +1: danielsh, cmpilato, stsp
>
> Sorry about this.  I've put together a backport, but don't have
> a 1.6.x build environment for some reason.  Shall I just commit this (it
> should work...), or is someone able to test/commit this for me please?
>
> (The backport already has three +1 votes.)
>
> [[[
> Index: .
> ===================================================================
> --- .   (revision 1033278)
> +++ .   (working copy)
>
> Property changes on: .
> ___________________________________________________________________
> Modified: svn:mergeinfo
>   Merged /subversion/trunk:r964349
> Index: win-tests.py
> ===================================================================
> --- win-tests.py        (revision 1033278)
> +++ win-tests.py        (working copy)
> @@ -103,6 +103,7 @@ base_url, fs_type, verbose, cleanup = None, None,
>  repo_loc = 'local repository.'
>  objdir = 'Debug'
>  log = 'tests.log'
> +faillog = 'fails.log'
>  run_svnserve = None
>  svnserve_args = None
>  run_httpd = None
> @@ -196,13 +197,16 @@ if base_url:
>   repo_loc = 'remote repository ' + base_url + '.'
>   if base_url[:4] == 'http':
>     log = 'dav-tests.log'
> +    faillog = 'dav-fails.log'
>   elif base_url[:3] == 'svn':
>     log = 'svn-tests.log'
> +    faillog = 'svn-fails.log'
>     run_svnserve = 1
>   else:
>     # Don't know this scheme, but who're we to judge whether it's
>     # correct or not?
>     log = 'url-tests.log'
> +    faillog = 'url-fails.log'
>
>  # Have to move the executables where the tests expect them to be
>  copied_execs = []   # Store copied exec files to avoid the final dir scan
> @@ -583,6 +587,7 @@ sys.path.insert(0, os.path.join(abs_srcdir, 'build
>  import run_tests
>  th = run_tests.TestHarness(abs_srcdir, abs_builddir,
>                            os.path.join(abs_builddir, log),
> +                           os.path.join(abs_builddir, faillog),
>                            base_url, fs_type, http_library,
>                            server_minor_version, 1, cleanup,
>                            enable_sasl, parallel, config_file,
> Index: build/run_tests.py
> ===================================================================
> --- build/run_tests.py  (revision 1033278)
> +++ build/run_tests.py  (working copy)
> @@ -15,7 +15,7 @@ to the TestHarness constructor.  All other paramet
>  test programs.
>  '''
>
> -import os, sys
> +import os, re, sys
>  import time
>
>  import getopt
> @@ -28,7 +28,7 @@ class TestHarness:
>   '''Test harness for Subversion tests.
>   '''
>
> -  def __init__(self, abs_srcdir, abs_builddir, logfile,
> +  def __init__(self, abs_srcdir, abs_builddir, logfile, faillogfile,
>                base_url=None, fs_type=None, http_library=None,
>                server_minor_version=None, verbose=None,
>                cleanup=None, enable_sasl=None, parallel=None, config_file=None,
> @@ -47,6 +47,7 @@ class TestHarness:
>     self.srcdir = abs_srcdir
>     self.builddir = abs_builddir
>     self.logfile = logfile
> +    self.faillogfile = faillogfile
>     self.base_url = base_url
>     self.fs_type = fs_type
>     self.http_library = http_library
> @@ -106,6 +107,27 @@ class TestHarness:
>                                       's'*min(len(failed_list), 1)))
>       if xpassed:
>         print('  %d test%s XPASSED' % (len(xpassed), 's'*min(len(xpassed), 1)))
> +    # Copy the truly interesting verbose logs to a separate file, for easier
> +    # viewing.
> +    if xpassed or failed_list:
> +      faillog = open(self.faillogfile, 'wb')
> +      last_start_lineno = None
> +      last_start_re = re.compile('^(FAIL|SKIP|XFAIL|PASS|START|CLEANUP|END):')
> +      for lineno, line in enumerate(log_lines):
> +        # Iterate the lines.  If it ends a test we're interested in, dump that
> +        # test to FAILLOG.  If it starts a test (at all), remember the line
> +        # number (in case we need it later).
> +        if line in xpassed or line in failed_list:
> +          faillog.write('[[[\n')
> +          faillog.writelines(log_lines[last_start_lineno : lineno+1])
> +          faillog.write(']]]\n\n')
> +        if last_start_re.match(line):
> +          last_start_lineno = lineno + 1
> +      faillog.close()
> +    elif os.path.exists(self.faillogfile):
> +      print("WARNING: no failures, but '%s' exists from a previous run."
> +            % self.faillogfile)
> +
>     self._close_log()
>     return failed
>
> @@ -281,7 +303,7 @@ def main():
>       raise getopt.GetoptError
>
>   th = TestHarness(args[0], args[1],
> -                   os.path.abspath('tests.log'),
> +                   os.path.abspath('tests.log'), os.path.abspath('fails.log'),
>                    base_url, fs_type, http_library, server_minor_version,
>                    verbose, cleanup, enable_sasl, parallel, config_file,
>                    fsfs_sharding, fsfs_packing)
> ]]]
>
> Thanks,
>
> Daniel
>
Received on 2010-11-10 03:41:01 CET

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