Fwd: [PATCH] Make win_tests.py work out-of-the-box
From: Suraj Barkale <surajbarkale_at_gmail.com>
Date: 2007-01-08 06:38:09 CET
Can anybody please test this patch?
--
Regards,
Suraj
---------- Forwarded message ----------
From: Suraj Barkale <surajbarkale@gmail.com>
Date: Jan 5, 2007 11:56 AM
Subject: [PATCH] Make win_tests.py work out-of-the-box
To: dev@subversion.tigris.org
Hi All,
Please ignore patch in my previous mail as I have included it in this one.
This patch removes the need to copy all Python tests as suggested in INSTALL.
Now running win-tests.py is sufficient to launch all tests.
Can somebody please test this patch independently? I have built Subversion
for the first time & I am not sure that I have done everything correctly.
[[[
Make win_tests.py work out-of-the-box
* build/run_tests.py
This file tried to cwd to non existent build_dir/subversion/tests/cmdline
directory for Python scripts. Now it passes build directory to all Python
scripts and chages to same directory before launching test.
* subversion/tests/cmdline/svntest/main.py
Added command line option '--build-dir' to change paths of executables to
ones in the build directory.
* subversion/tests/libsvn_subr/target-test.py
Added option processing code (copied from main.py) to accept different build
directory.
* win-tests.py
Copy BDB & OpenSSL dlls to build directory.
]]]
--
Suraj Barkale
Index: build/run_tests.py
===================================================================
--- build/run_tests.py (revision 22912)
+++ build/run_tests.py (working copy)
@@ -96,6 +96,8 @@
progname = sys.executable
cmdline = [quote(progname),
quote(os.path.join(self.srcdir, prog))]
+ progdir = self.builddir
+ cmdline.append(quote('--build-dir=' + self.builddir))
if self.base_url is not None:
cmdline.append(quote('--url=' + self.base_url))
if self.enable_sasl is not None:
Index: subversion/tests/cmdline/svntest/main.py
===================================================================
--- subversion/tests/cmdline/svntest/main.py (revision 22912)
+++ subversion/tests/cmdline/svntest/main.py (working copy)
@@ -825,7 +825,7 @@
opts, args = my_getopt(sys.argv[1:], 'vh',
['url=', 'fs-type=', 'verbose', 'cleanup', 'list',
- 'enable-sasl', 'help'])
+ 'enable-sasl', 'build-dir=', 'help'])
for arg in args:
if arg == "list":
@@ -860,6 +860,20 @@
elif opt == "--enable-sasl":
enable_sasl = 1
+ elif opt == "--build-dir":
+ build_dir = os.path.abspath(val)
+ global svn_binary, svnadmin_binary, svnlook_binary, svnsync_binary
+ global svnversion_binary
+ svn_binary = os.path.join(build_dir, 'subversion/svn/svn' + _exe)
+ svnadmin_binary = \
+ os.path.join(build_dir, 'subversion/svnadmin/svnadmin' + _exe)
+ svnlook_binary = \
+ os.path.join(build_dir, 'subversion/svnlook/svnlook' + _exe)
+ svnsync_binary = \
+ os.path.join(build_dir, 'subversion/svnsync/svnsync' + _exe)
+ svnversion_binary = \
+ os.path.join(build_dir, 'subversion/svnversion/svnversion' + _exe)
+
elif opt == "-h" or opt == "--help":
usage()
sys.exit(0)
Index: subversion/tests/libsvn_subr/target-test.py
===================================================================
--- subversion/tests/libsvn_subr/target-test.py (revision 22912)
+++ subversion/tests/libsvn_subr/target-test.py (working copy)
@@ -18,6 +18,27 @@
import os, sys, shutil, string
+import getopt
+try:
+ my_getopt = getopt.gnu_getopt
+except AttributeError:
+ my_getopt = getopt.getopt
+
+if sys.platform == 'win32':
+ _exe = '.exe'
+else:
+ _exe = ''
+
+progname = './target-test' + _exe
+
+# Get correct program path
+opts, args = my_getopt(sys.argv[1:], 'vbf',
+ ['verbose', 'build-dir=', 'fs-type='])
+for opt, val in opts:
+ if opt == "--build-dir":
+ progname = os.path.join(os.path.abspath(val),
+ 'subversion/tests/libsvn_subr/target-test' + _exe)
+
# The list of test cases: [(name, params, expected) ...]
cwd = os.getcwd().replace('\\', '/') # Use forward slashes on Windows
tests = [('normal use',
@@ -67,11 +88,6 @@
open('z/A/file', 'w').close()
def _run_test(cmdline):
- if sys.platform == 'win32':
- progname = '.\\target-test.exe'
- else:
- progname = './target-test'
-
infile, outfile, errfile = os.popen3(progname + ' ' + cmdline)
stdout_lines = outfile.readlines()
stderr_lines = errfile.readlines()
Index: win-tests.py
===================================================================
--- win-tests.py (revision 22912)
+++ win-tests.py (working copy)
@@ -210,10 +210,23 @@
copy_changed_file(aprutil_dll_path, abs_objdir)
copy_changed_file(apriconv_dll_path, abs_objdir)
- libintl_path = get(cp, 'options', '--with-libintl', None)
- if libintl_path is not None:
- libintl_dll_path = os.path.join(libintl_path, 'bin', 'intl3_svn.dll')
- copy_changed_file(libintl_dll_path, abs_objdir)
+ # List out all optional library dll locations as a tuple containg tuples of
+ # path to dll from base library path
+ opt_lib_dll_paths = {
+ '--with-libintl': (('bin', 'intl3_svn.dll',),),
+ '--with-berkeley-db': (('bin', 'libdb44.dll',),
+ ('bin', 'libdb44d.dll',),),
+ '--with-openssl': (('out32dll', 'libeay32.dll',),
+ ('out32dll', 'ssleay32.dll',),)
+ }
+ # Check if user has supplied any option for the library and copy
+ # the dll if present
+ for (lib_opt, lib_dlls) in opt_lib_dll_paths.iteritems():
+ lib_path = get(cp, 'options', lib_opt, None)
+ if lib_path is not None:
+ for lib_dll_info in lib_dlls:
+ lib_dll_path = os.path.join(lib_path, *lib_dll_info)
+ copy_changed_file(lib_dll_path, abs_objdir)
dll_path = reduce(lambda x, y: x + os.path.join(abs_objdir, y) + os.pathsep,
dll_paths, "")
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jan 8 06:38:19 2007
|
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.