[PATCH] fdtget-runtest.sh: Fix failures when /bin/sh isn't bash

Stephen Warren swarren at wwwdotorg.org
Tue Nov 6 04:39:30 EST 2012


On 11/02/2012 02:26 PM, Mike Frysinger wrote:
> On Tuesday 20 March 2012 22:23:46 Stephen Warren wrote:
>> 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.
>> 
>> --- a/tests/fdtget-runtest.sh +++ b/tests/fdtget-runtest.sh
>> 
>> -echo -e $expect >$EXPECT +/bin/echo -e $expect >$EXPECT
> 
> the better fix is to use printf and %b: printf '%b\n' "$expect" >
> $EXPECT

What is the relative availability (e.g. on anything other than a
modern Linux distro) of a printf binary vs. a /bin/echo binary that
supports -e? I certainly heard about /bin/echo -e long before I knew
about /usr/bin/printf, although it's quite possible that has no
correlation with where /usr/bin/printf is actually installed.


More information about the devicetree-discuss mailing list