Subject: Re: bug#8846: coreutils-8.12 on HP-UX 11.31: 3 of 365 tests failed

From: Jim Meyering <[email-masked]>
Date: Mon, 13 Jun 2011 15:36:57 +0200

Bruno Haible wrote:
> Jim Meyering wrote:
>> --- a/tests/init.sh
>> +++ b/tests/init.sh
>> @@ -74,7 +74,7 @@ Exit () { set +e; (exit $1); exit $1; }
>>  # the reason for skip/failure to console, rather than to the .log files.
>>  : ${stderr_fileno_=2}
>>
>> -warn_ () { echo "$@" 1>&$stderr_fileno_; }
>> +warn_ () { eval 'echo "$@" 1>&'"$stderr_fileno_"; }
>>  fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
>>  skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
>>  framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
>
> After applying this patch, here's the test-suite.log that I now get.

Thank you.
However, it looks like using "eval" didn't help at all.
What does this do on that system?

    sh -c 'e=2; warn_ () { echo "$@" 1>&$e; }; warn_ x'

This is what happens via tests/check.mk:

    printf '#!/bin/sh\ne=9; warn_ () { echo "$@" 1>&$e; }; warn_ x\n' > k
    sh -c 'exec 9>&2; /bin/sh k'

Does that evoke a warning for you?

If so, does hard-coding the "9" help?

    printf '#!/bin/sh\ne=9; warn_ () { echo "$@" 1>&9; }; warn_ x\n' > k
    sh -c 'exec 9>&2; /bin/sh k'