Re: [PATCH] fdtget-runtest.sh: use printf instead of /bin/echo -e
From: Stephen Warren <hidden>
Date: 2012-11-07 02:27:27
On 11/06/2012 05:53 PM, David Gibson wrote:
On Tue, Nov 06, 2012 at 05:26:09PM -0700, Stephen Warren wrote:quoted
On 11/06/2012 04:29 PM, David Gibson wrote:quoted
On Tue, Nov 06, 2012 at 11:00:31AM -0700, Stephen Warren wrote:quoted
From: Stephen Warren <redacted> Not all /bin/echo implementations support the -e option. Instead, use printf, which appears to be more widely available than /bin/echo -e. See commit eaec1db "fdtget-runtest.sh: Fix failures when /bin/sh isn't bash" for history. I have tested this on Ubuntu 10.04 with /bin/sh pointing to both dash and bash. Reported-by: Mike Frysinger <redacted> # and implemented-by Signed-off-by: Stephen Warren <redacted> --- Mike, should I re-write this with you as the git author? If so, could you please supply an S-o-b line for this? --- tests/fdtget-runtest.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)diff --git a/tests/fdtget-runtest.sh b/tests/fdtget-runtest.sh index c3a3559..8d8b058 100755 --- a/tests/fdtget-runtest.sh +++ b/tests/fdtget-runtest.sh@@ -8,7 +8,7 @@ rm -f $LOG $EXPECT trap "rm -f $LOG $EXPECT" 0 expect="$1" -/bin/echo -e $expect >$EXPECT +printf '%b\n' "$expect" > $EXPECTUm.. this is made to apply on top of the /bin/echo patch, but AFAICT that was never committed..I believe it's commit eaec1db "fdtget-runtest.sh: Fix failures when /bin/sh isn't bash"; my local git certainly shows Jon as the committer for that change.I just pulled from git.jdl.com and I don't see anything after e4b497f367a3b2ae99cc52089a14a221b13a76ef, which was on Oct 16.
Yes, Oct 16 is the last commit date I see too, but the patch was committed long before that:
commit eaec1dbc5946d5fd01a9ef7120f8461c74d759a0
Author: Stephen Warren [off-list ref]
AuthorDate: Tue Mar 20 20:23:46 2012 -0600
Commit: Jon Loeliger [off-list ref]
CommitDate: Sat Mar 31 09:00:29 2012 -0500
fdtget-runtest.sh: Fix failures when /bin/sh isn't bash
On Ubuntu, /bin/sh is dash (at least by default), and dash's echo doesn't
accept the -e option. This means that fdtget-runtest.sh's EXPECT file will
contain "-e foo" rather than just "foo", which causes a test failure.
To work around this, run /bin/echo instead of (builtin) echo, which has
more chance of supporting the -e option.
Another possible fix is to change all the #! lines to /bin/bash rather
than /bin/sh, and change run_tests.sh to invoke sub-scripts using $SHELL
instead of just "sh". However, that would require bash specifically, which
may not be desirable.
Signed-off-by: Stephen Warren [off-list ref]
Acked-by: David Gibson [off-list ref]