[Libguestfs] [libnbd PATCH 2/2] api: Test previous patch

Eric Blake eblake at redhat.com
Wed Aug 24 02:53:41 UTC 2022


Add testsuite coverage that exposes the flaw fixed in the previous patch.

---
 tests/opt-info.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/tests/opt-info.c b/tests/opt-info.c
index b9739a5..2402a31 100644
--- a/tests/opt-info.c
+++ b/tests/opt-info.c
@@ -1,5 +1,5 @@
 /* NBD client library in userspace
- * Copyright (C) 2013-2020 Red Hat Inc.
+ * Copyright (C) 2013-2022 Red Hat Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -80,15 +80,11 @@ main (int argc, char *argv[])
     exit (EXIT_FAILURE);
   }

-  /* info on something not present fails, wipes out prior info */
+  /* changing export wipes out prior info */
   if (nbd_set_export_name (nbd, "a") == -1) {
     fprintf (stderr, "%s\n", nbd_get_error ());
     exit (EXIT_FAILURE);
   }
-  if (nbd_opt_info (nbd) != -1) {
-    fprintf (stderr, "expecting error for opt_info\n");
-    exit (EXIT_FAILURE);
-  }
   if (nbd_get_size (nbd) != -1) {
     fprintf (stderr, "expecting error for get_size\n");
     exit (EXIT_FAILURE);
@@ -102,7 +98,13 @@ main (int argc, char *argv[])
     exit (EXIT_FAILURE);
   }

-  /* info for a different export */
+  /* info on something not present fails */
+  if (nbd_opt_info (nbd) != -1) {
+    fprintf (stderr, "expecting error for opt_info\n");
+    exit (EXIT_FAILURE);
+  }
+
+  /* info for a different export; idempotent name change is no-op */
   if (nbd_set_export_name (nbd, "b") == -1) {
     fprintf (stderr, "%s\n", nbd_get_error ());
     exit (EXIT_FAILURE);
@@ -111,6 +113,10 @@ main (int argc, char *argv[])
     fprintf (stderr, "%s\n", nbd_get_error ());
     exit (EXIT_FAILURE);
   }
+  if (nbd_set_export_name (nbd, "b") == -1) {
+    fprintf (stderr, "%s\n", nbd_get_error ());
+    exit (EXIT_FAILURE);
+  }
   if ((r = nbd_get_size (nbd)) != 1) {
     fprintf (stderr, "expecting size of 1, got %" PRId64 "\n", r);
     exit (EXIT_FAILURE);
-- 
2.37.2



More information about the Libguestfs mailing list