autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

unable to escape ! in autotest stdout comparison text


From: John Calcote
Subject: unable to escape ! in autotest stdout comparison text
Date: Tue, 29 May 2018 19:25:56 -0600

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.

Another wrench in the works is that it then also adds an exclamation mark
(!) to the end of the line, so the stdout text I'm trying to compare with
ends with ! - when I run the test, the unquoting code appears to evaluate
the ! and remove the line (bash history feature, I think - there's nothing
in the history starting with my string, so it replaces the entire string
with nothing).

I've tried escaping with backslash, I've tried quoting with single quotes,
I've tried escaping within double quotes. Nothing works. It seems the
unquoting functionality will not be tricked into allowing a special
character to be escaped.

Any ideas?

Here's my testsuite.at:

AT_INIT
AT_SETUP([tg1])
AT_CHECK_UNQUOTED(["${abs_top_builddir}/src/prog"],,
        [Hello from ${abs_top_builddir}/src/prog!])
AT_CLEANUP

I'm open to using AT_CHECK also - but I haven't figured out a good way to
access my program without using the shell variables defined in atconfig.

Thanks in advance!
John


reply via email to

[Prev in Thread] Current Thread [Next in Thread]