This change fixes the last bit of automake bug#10866.
* tests/get-sysconf.test: When Homebrew spawns a build, even if
from a project's VCS, it stages the files in a new temporary
directory, instead of building directly from a VCS checkout.
This behaviour was causing a spurious failure in this test, which
expected to find either a ChangeLog file or a .git directory in
the source directory (the former happening when the test was run
from a distribution tarball, the latter when it was run from a
git checkout). The Homebrew issue shows that these expectations
are not truly warranted, so relax the test to just give a warning,
not a failure, in case they do not hold. Since we are at it, fix
an unrelated weakness in the displaying of the git log, which
could have failed when the builddir was not a subdirectory of the
srcdir.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
st=0
if test -d "$top_testsrcdir"/.git; then
# We are running from a git checkout.
- git log -1 || st=1
-else
- # We are probably running from a distribution tarball, so
- # the ChangeLog file must be present.
+ (cd "$top_testsrcdir" && git log -1) || st=1
+elif test -f "$top_testsrcdir"/ChangeLog; then
+ # We are probably running from a distribution tarball.
awk '
BEGIN { first = 1 }
(first == 1) { print; first = 0; next; }
/^[^\t]/ { exit(0); }
{ print }
' "$top_testsrcdir"/ChangeLog || st=1
+else
+ # Some non-common but possibly valid setup (see for example the Homebrew
+ # problem reported in automake bug#10866); so just give an harmless
+ # warning instead of failing.
+ warn_ "no .git directory nor ChangeLog file found, some info won't" \
+ "be available"
fi
$PERL -V || st=1
cat "$top_testbuilddir/config.log" || st=1