[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#11256: make check problems with coreutils 8.16 and earlier
From: |
Jim Meyering |
Subject: |
bug#11256: make check problems with coreutils 8.16 and earlier |
Date: |
Tue, 08 May 2012 11:55:05 +0200 |
Pádraig Brady wrote:
> On 05/08/2012 10:02 AM, Jim Meyering wrote:
>> diff --git a/tests/init.sh b/tests/init.sh
>> index ae86714..d5cd294 100644
>> --- a/tests/init.sh
>> +++ b/tests/init.sh
>> @@ -207,6 +207,9 @@ else
>> fi
>> fi
>>
>> +# If this is bash, turn off all aliases.
>> +test -n "$BASH_VERSION" && unalias -a
>> +
>> test -n "$EXEEXT" && shopt -s expand_aliases
>
> Looks good.
Thanks for the review.
> I was surprised to see that aliases are significant
> (due to the expand_aliases above).
> Why are aliases needed rather than using shell functions for example?
That deserves a comment, which I'm about to add.
The gnulib commit that introduced that shopt/expand_aliases use
87e7216daf261421a6acb43115812cccefd5dc5d
mentioned a problem with names like test-prog (note the hyphen)
because prior to that change we were using functions to support
the PROG_NAME-to-PROG_NAME.exe mapping required for transparent
EXEEXT support.
Simon reported a test failure due to the first test-PROG name,
test-acos, which prompted this thread where Ralf Wildenhues
suggested to use aliases instead:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20648/focus=20676
==================================================
Here's the proposed comment-adding patch:
>From 98d01cdfdb2f966fa7aaf9facfaaac0a4c5a3fe0 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Tue, 8 May 2012 11:54:26 +0200
Subject: [PATCH] init.sh: explain why EXEEXT support uses aliases rather than
functions
* tests/init.sh: Add a comment.
---
ChangeLog | 3 +++
tests/init.sh | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 268fbe5..e202346 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-05-08 Jim Meyering <address@hidden>
+ init.sh: explain why EXEEXT support uses aliases rather than functions
+ * tests/init.sh: Add a comment.
+
init.sh: don't let bash aliases interfere with tests
* tests/init.sh: Undefine any pre-defined aliases if the selected shell
is bash. This avoids problems for those who alias standard commands to
diff --git a/tests/init.sh b/tests/init.sh
index d5cd294..f525a7c 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -210,6 +210,11 @@ fi
# If this is bash, turn off all aliases.
test -n "$BASH_VERSION" && unalias -a
+# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to
+# PROG_NAME.exe), we want to support hyphen-containing names like test-acos.
+# That is part of the shell-selection test above. Why use aliases rather
+# than functions? Because support for hyphen-containing aliases is more
+# widespread than that for hyphen-containing function names.
test -n "$EXEEXT" && shopt -s expand_aliases
# Enable glibc's malloc-perturbing option.
--
1.7.10.1.487.ga3935e6