>From 4c7eef3bf2e364de6af1bd57029d27bce92145a3 Mon Sep 17 00:00:00 2001 Message-Id: From: Stefano Lattarini Date: Fri, 27 Jan 2012 18:35:28 +0100 Subject: [PATCH] tests: avoid spurious failure of on Cygwin of 'transform2.test' On newer Cygwin versions (at least 1.7.x), the 'transform2.test' has been failing spuriously; the gist is the following: some *purposefully* rigged install rules there tries 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 'foo.exe', 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: * tests/transform2.test: Skip the affected part of the test if the described Cygwin behaviour is detected. --- tests/transform2.test | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/tests/transform2.test b/tests/transform2.test index 0f9d5ec..07943bc 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: +# +# +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 + : -- 1.7.7.3