diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-01-27 18:35:28 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-01-28 14:05:49 +0100 |
commit | 0436a1ed2c44b9e8b3c8f2f049e06bfac4969d3e (patch) | |
tree | 5c506e823d5bb5243857947067cefdfb334350a7 | |
parent | d55b9302515d68c178259048df592f0a80d1d67d (diff) | |
download | automake-0436a1ed2c44b9e8b3c8f2f049e06bfac4969d3e.tar.gz |
tests: avoid spurious failure of 'transform2.test' on Cygwin
On newer Cygwin versions (at least 1.7.x), the 'transform2.test'
test has been failing spuriously; the gist is the following:
some *purposefully* rigged install rules there try something
like:
install bla.exe .../inst/bin/foo.exe
install script.sh .../inst/bin/foo
and the second install command fails (trying to overwrite the
'.../inst/bin/foo.exe' file, likely due to overly aggressive
appending of '.exe' suffix when copying/renaming Windows
executables). Since this is a Cygwin issue rather than an
Automake one (and since the use case we are testing is a really
corner-case anyway, making it unworthy to attempt to work
around it in automake proper), we simply hack the test case
to avoid the failure.
Analysis by Peter Rosin and Ralf Wildenhues.
References:
<http://lists.gnu.org/archive/html/automake-patches/2010-08/msg00153.html>
<http://thread.gmane.org/gmane.os.cygwin/119380>
* tests/transform2.test: Skip the affected part of the test
if the described Cygwin behaviour is detected.
-rwxr-xr-x | tests/transform2.test | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/transform2.test b/tests/transform2.test index 0f9d5ec08..07943bc9a 100755 --- a/tests/transform2.test +++ b/tests/transform2.test @@ -1,5 +1,6 @@ #! /bin/sh -# Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2007, 2008, 2012 Free Software +# Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -74,9 +75,23 @@ $MAKE uninstall test `find inst -type f -print | wc -l` = 0 # Also squash all file types in question. + +# On newer Cygwin versions, that won't work, likely due to overly +# aggressive appending of '.exe' suffix when copying/renaming Windows +# executables). So let's skip this part of the test if we detect the +# faulty heuristic is present. See also: +# <http://lists.gnu.org/archive/html/automake-patches/2010-08/msg00153.html> +# <http://thread.gmane.org/gmane.os.cygwin/119380> +echo Foo > foo +echo Bar > bar.exe +chmod a+x foo bar.exe +cp foo bar && cmp foo bar \ + || skip_ "your Cygwin is too aggressive in tweaking '.exe' suffixes" + ./configure --program-transform-name='s/.*/foo/' --prefix "`pwd`/inst" --mandir "`pwd`/inst/man" $MAKE $MAKE test-install-foo $MAKE uninstall test `find inst -type f -print | wc -l` = 0 + : |