You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2013/07/23 16:55:29 UTC

svn commit: r1506087 - /subversion/trunk/win-tests.py

Author: rhuijben
Date: Tue Jul 23 14:55:29 2013
New Revision: 1506087

URL: http://svn.apache.org/r1506087
Log:
Following up on r1506025, add a swig python test runner to win-tests.py

* win-tests.py
  (if test_swig == 'perl'): Set proper default.
  (if test_swig == 'python'): Implement copying and runner.

Modified:
    subversion/trunk/win-tests.py

Modified: subversion/trunk/win-tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/win-tests.py?rev=1506087&r1=1506086&r2=1506087&view=diff
==============================================================================
--- subversion/trunk/win-tests.py (original)
+++ subversion/trunk/win-tests.py Tue Jul 23 14:55:29 2013
@@ -814,6 +814,7 @@ elif test_javahl:
     print('[Test runner reported failure]')
     failed = True
 elif test_swig == 'perl':
+  failed = False
   swig_dir = os.path.join(abs_builddir, 'swig')
   swig_pl_dir = os.path.join(swig_dir, 'p5lib')
   swig_pl_svn = os.path.join(swig_pl_dir, 'SVN')
@@ -876,28 +877,58 @@ elif test_swig == 'perl':
     failed = True
 
 elif test_swig == 'python':
-  print('Running Swig Python tests not supported yet')
-  
-  # TODO: Implement something like
-  
-  # IF EXIST "%TESTDIR%\swig" rmdir /s /q "%TESTDIR%\swig"
-  # mkdir "%TESTDIR%\swig\py-release\libsvn"
-  # mkdir "%TESTDIR%\swig\py-release\svn"
-  # 
-  # xcopy "release\subversion\bindings\swig\python\*.pyd" "%TESTDIR%\swig\py-release\libsvn\*.pyd" > nul:
-  # xcopy "release\subversion\bindings\swig\python\libsvn_swig_py\*.dll" "%TESTDIR%\swig\py-release\libsvn\*.dll" > nul:
-  # xcopy "subversion\bindings\swig\python\*.py" "%TESTDIR%\swig\py-release\libsvn\*.py" > nul:
-  # xcopy "subversion\bindings\swig\python\svn\*.py" "%TESTDIR%\swig\py-release\svn\*.py" > nul:
-  # 
-  # SET PYTHONPATH=%TESTDIR%\swig\py-release
-  # 
-  # python subversion\bindings\swig\python\tests\run_all.py
-  # IF ERRORLEVEL 1 (
-  #   echo [Python reported error %ERRORLEVEL%]
-  #   SET result=1
-  # )
-  
   failed = False
+  swig_dir = os.path.join(abs_builddir, 'swig')
+  swig_py_dir = os.path.join(swig_dir, 'pylib')
+  swig_py_libsvn = os.path.join(swig_py_dir, 'libsvn')
+  swig_py_svn = os.path.join(swig_py_dir, 'svn')
+
+  create_target_dir(swig_py_libsvn)
+  create_target_dir(swig_py_svn)
+
+  for i in gen_obj.graph.get_all_sources(gen_base.DT_INSTALL):
+    if (isinstance(i, gen_base.TargetSWIG)
+        or isinstance(i, gen_base.TargetSWIGLib)) and i.lang == 'python':
+
+      src = os.path.join(abs_objdir, i.filename)
+      copy_changed_file(src, to_dir=swig_py_libsvn)
+
+  py_src = os.path.join(abs_srcdir, 'subversion', 'bindings', 'swig', 'python')
+
+  for py_file in os.listdir(py_src):
+    if py_file.endswith('.py'):
+      copy_changed_file(os.path.join(py_src, py_file),
+                        to_dir=swig_py_libsvn)
+
+  py_src_svn = os.path.join(py_src, 'svn')
+  for py_file in os.listdir(py_src_svn):
+    if py_file.endswith('.py'):
+      copy_changed_file(os.path.join(py_src_svn, py_file),
+                        to_dir=swig_py_svn)
+
+  print('-- Running Swig Python tests --')
+
+  pythonpath = swig_py_dir
+  if 'PYTHONPATH' in os.environ:
+    pythonpath += os.pathsep + os.environ['PYTHONPATH']
+
+  python_exe = 'python.exe'
+  old_cwd = os.getcwd()
+  try:
+    os.environ['PYTHONPATH'] = pythonpath
+
+    r = subprocess.call([
+              python_exe,
+              os.path.join(py_src, 'tests', 'run_all.py')
+              ])
+  finally:
+    os.chdir(old_cwd)
+
+    if (r != 0):
+      print()
+      print('[Test runner reported failure]')
+      failed = True
+
 elif test_swig == 'ruby':
   failed = False