On Tue, May 29, 2018 at 8:10 PM, Eric Blake <ebl...@redhat.com> wrote:

> On 05/29/2018 08:25 PM, John Calcote wrote:
>
>> I'm trying to create a test using autotest that compares the stdout of my
>> program with a string. Unfortunately, the output of the program contains
>> the path of the program. As part of its output, it writes its own program
>> name (from argv[0]) to stdout, so I have to use ${abs_top_builddir} as
>> part
>> of the comparison text - which means I need to use AT_CHECK_UNQUOTED.
>>
>>
> Yeah, bash's handling of ! can be quite a misfeature when you don't want
> it to happen during scripting.  But I thought it was disabled by default in
> POSIX mode, which is what autotest scripts should be selecting, so are you
> sure that history expansion is happening?

...

>
> First, are you sure you don't want a trailing newline?  That is, did
> src/prog output "!" as it's last character, or "\n" after the "!"?  (The
> placement of the ] in AT_CHECK[_UNQUOTED] matters).
>
> I did not realize autotest was using POSIX mode - that makes it a little
harder to explain. All I know for sure is that the output in testsuite.log
showed an empty string for the comparison text when I don't use a newline
after the bang. On the other hand, when I do use a newline after the bang,
as you suggested, it works perfectly. I always think I'll look so smart by
figuring it out and explaining the situation in posts like this, then I
find that my original assumption was nowhere near the truth. :)

More research is in order.

Thanks Eric.
_______________________________________________
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf

Reply via email to