On 2021/02/22 13:39, Karl Fogel wrote:
> I felt I should close the loop in this thread:
> 
> I decided to leave this be for now.  Even though it is mildly annoying that 
> the Subversion test suite exhibits a few spurious failures on systems that 
> have only 'python3' and not 'python', it turns out that most of the time most 
> of my systems have 'python'. So the real-world effects here are pretty minor 
> for me, and apparently for others, and there are more important things I 
> could work on in Subversion.  If anyone wants to fix this minor problem, 
> there are enough pointers in this thread I think.

Then, I made patches. It also allows pypy to run the test without
'python'.

(A) Replace the shebang line of svneditor.py from svneditor.py
  at running the configure script. (fix-svneditor-in-test-patch-a.txt)
  As @PYTHON@ can be basename only, relative path, or absolute path,
  "/usr/bin/env" is still needed.

(B) Make a script to launch svneditor.py using @PYTHON@, svneditor.sh
  at running the configure scriptt. (fix-svneditor-in-test-patch-b.txt)

If @PYTHON@ is always absolute path, we can use shebang line without
'/usr/bin/env' in patch (A).

Cheers,
-- 
Yasuhito FUTATSUKI <futat...@yf.bsclub.org>
tests: Use PYTHON determined by the configure script.

* configure.ac:
  Add subversion/tests/cmdline/svneditor.py to SVN_CONFIG_SCRIPT.

* subversion/tests/cmdline (svn:ignore): ignore svneditor.py.

* subversion/tests/cmdline/svneditor.py.in:
  - Renamed from svneditor.py.
  - Use @PYTHON@ instead of python in the shebang, to be substituted by the
   configure script.

(svn move subversion/tests/cmdline/svneditor.py \
          subversion/tests/cmdline/svneditor.py.in)
Index: configure.ac
===================================================================
--- configure.ac        (revision 1886884)
+++ configure.ac        (working copy)
@@ -1769,6 +1769,7 @@ done
 
 SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
 SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
+SVN_CONFIG_SCRIPT(subversion/tests/cmdline/svneditor.py)
 SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
 if test -e packages/solaris/pkginfo.in; then
   SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
Index: subversion/tests/cmdline/svneditor.py (deleted)
===================================================================
Index: subversion/tests/cmdline/svneditor.py.in
===================================================================
--- subversion/tests/cmdline/svneditor.py.in    (revision 1886884)
+++ subversion/tests/cmdline/svneditor.py.in    (working copy)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env @PYTHON@
 #
 #  svneditor.py: a mock $SVN_EDITOR for the Subversion test suite
 #
Index: subversion/tests/cmdline
===================================================================
--- subversion/tests/cmdline    (revision 1886884)
+++ subversion/tests/cmdline    (working copy)

Property changes on: subversion/tests/cmdline
___________________________________________________________________
Modified: svn:ignore
## -11,3 +11,4 ##
 .libs
 .davautocheck.sh.stop
 lock-helper
+svneditor.py
tests: Add launcher for svneditor.py with specfied Python at configure. 

* configure.ac:
  Add subversion/tests/cmdline/svneditor.sh to SVN_CONFIG_SCRIPT.

* subversion/tests/cmdline (svn:ignore): ignore svneditor.sh.

* subversion/tests/cmdline/svneditor.sh.in: New script tempate,
  launching svneditor.py via @PYTHON@.

* subversion/tests/cmdline/svneditor.py:
  - Drop svn:executable.
  - Remove shebang line.

Index: configure.ac
===================================================================
--- configure.ac        (revision 1886884)
+++ configure.ac        (working copy)
@@ -1769,6 +1769,7 @@ done
 
 SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
 SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
+SVN_CONFIG_SCRIPT(subversion/tests/cmdline/svneditor.sh)
 SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
 if test -e packages/solaris/pkginfo.in; then
   SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
Index: subversion/tests/cmdline/svneditor.py
===================================================================
--- subversion/tests/cmdline/svneditor.py       (revision 1886884)
+++ subversion/tests/cmdline/svneditor.py       (working copy)
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
 #
 #  svneditor.py: a mock $SVN_EDITOR for the Subversion test suite
 #

Property changes on: subversion/tests/cmdline/svneditor.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: subversion/tests/cmdline/svneditor.sh.in
===================================================================
--- subversion/tests/cmdline/svneditor.sh.in    (nonexistent)
+++ subversion/tests/cmdline/svneditor.sh.in    (working copy)
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+#  svneditor.sh.in: a launcher of svneditor.py, used as $SVN_EDITOR
+#                   for the Subversion test suite
+#
+#  Subversion is a tool for revision control.
+#  See http://subversion.apache.org for more information.
+#
+# ====================================================================
+#    Licensed to the Apache Software Foundation (ASF) under one
+#    or more contributor license agreements.  See the NOTICE file
+#    distributed with this work for additional information
+#    regarding copyright ownership.  The ASF licenses this file
+#    to you under the Apache License, Version 2.0 (the
+#    "License"); you may not use this file except in compliance
+#    with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing,
+#    software distributed under the License is distributed on an
+#    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#    KIND, either express or implied.  See the License for the
+#    specific language governing permissions and limitations
+#    under the License.
+######################################################################
+
+exec @PYTHON@ @abs_srcdir@/svneditor.py "$@"

Property changes on: subversion/tests/cmdline/svneditor.sh.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: subversion/tests/cmdline/svntest/main.py
===================================================================
--- subversion/tests/cmdline/svntest/main.py    (revision 1886884)
+++ subversion/tests/cmdline/svntest/main.py    (working copy)
@@ -129,7 +129,7 @@ else:
 if windows:
   svneditor_script = os.path.join(sys.path[0], 'svneditor.bat')
 else:
-  svneditor_script = os.path.join(sys.path[0], 'svneditor.py')
+  svneditor_script = os.path.join(sys.path[0], 'svneditor.sh')
 
 # Username and password used by the working copies
 wc_author = 'jrandom'
Index: subversion/tests/cmdline
===================================================================
--- subversion/tests/cmdline    (revision 1886884)
+++ subversion/tests/cmdline    (working copy)

Property changes on: subversion/tests/cmdline
___________________________________________________________________
Modified: svn:ignore
## -11,3 +11,4 ##
 .libs
 .davautocheck.sh.stop
 lock-helper
+svneditor.sh

Reply via email to