On 4/19/23 15:37, Eric Blake wrote:
On Tue, Apr 18, 2023 at 07:26:29PM +0200, Laszlo Ersek wrote:
> Embedding a shell script in a multi-line C string literal is an exercise
> in pain. I can see why the original author (whom I shall not look up with
> git-blame :) ) went for the easy route. Still, we want the source code to
> fit in 80 columns.
>
> Note: in my "interop/test-suite.log", I see
>
>> SKIP: interop-qemu-nbd-tls-certs
>> ================================
>>
>> requires test -d /home/lacos/src/v2v/libnbd/tests/pki
>> Test skipped because prerequisite is missing or not working.
>> SKIP interop-qemu-nbd-tls-certs (exit status: 77)
>>
>> SKIP: interop-qemu-nbd-tls-psk
>> ==============================
>>
>> requires test -f /home/lacos/src/v2v/libnbd/tests/keys.psk
>> Test skipped because prerequisite is missing or not working.
>> SKIP interop-qemu-nbd-tls-psk (exit status: 77)
>
> Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=2172516
> Signed-off-by: Laszlo Ersek <lersek(a)redhat.com>
> ---
> tests/requires.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/tests/requires.c b/tests/requires.c
> index 199e30605473..cc5fd77b9f27 100644
> --- a/tests/requires.c
> +++ b/tests/requires.c
> @@ -57,7 +57,13 @@ requires_qemu_nbd_tls_support (const char *qemu_nbd)
> * interested in the error message that it prints.
> */
> snprintf (cmd, sizeof cmd,
> - "if %s --object tls-creds-x509,id=tls0 |& grep -sq 'TLS
credentials support requires GNUTLS'; then exit 1; else exit 0; fi",
> + "if %s --object tls-creds-x509,id=tls0 \\\n"
> + " |& grep -sq 'TLS credentials support requires
GNUTLS'\n"
Note: |& is a bashism; but system() might not invoke bash. So this is
already non-portable code; and we should be fixing that. (I don't
mind doing it as a followup if you end up pushing before seeing this
message).
I noticed |& too; my thought was "TIL". :)
> + "then\n"
> + " exit 1\n"
> + "else\n"
> + " exit 0\n"
> + "fi\n",
For that matter, 'if ...; then exit 1; else exit 0; fi' can be
compressed to '! ...'.
Yes, I noticed that too, but I assumed there was a finer point I was
missing. :/
I'll redo this patch then.
Thanks!
Laszlo