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.

At Eric's suggestion, also:

- replace the non-portable control operator "|&" with the portable
  redirection operator "2>&1" and the portable control operator "|";

- replace the "if ...; then exit 1; else exit 0; fi" constructs with "!
  ...".

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 <ler...@redhat.com>
---

Notes:
    v2:
    
    - v1: https://listman.redhat.com/archives/libguestfs/2023-April/031298.html
    
    - incorporate Eric's recommendations (commit message, code)

 tests/requires.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/requires.c b/tests/requires.c
index 199e30605473..2b7031532fe2 100644
--- a/tests/requires.c
+++ b/tests/requires.c
@@ -57,7 +57,8 @@ 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",
+            "! %s --object tls-creds-x509,id=tls0 2>&1 \\\n"
+            "  | grep -sq 'TLS credentials support requires GNUTLS'\n",
             qemu_nbd);
   requires (cmd);
 }
@@ -72,7 +73,8 @@ requires_qemu_nbd_tls_psk_support (const char *qemu_nbd)
    * interested in the error message that it prints.
    */
   snprintf (cmd, sizeof cmd,
-            "if %s --object tls-creds-psk,id=tls0 / |& grep -sq 'invalid 
object type'; then exit 1; else exit 0; fi",
+            "! %s --object tls-creds-psk,id=tls0 / 2>&1 \\\n"
+            "  | grep -sq 'invalid object type'\n",
             qemu_nbd);
   requires (cmd);
 }

base-commit: a458f0644de0fa541b055299fe6a58e1f42d0073
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to