Disable test for RHBZ#576879 comment 5.
[libguestfs.git] / examples / to-xml.c
index 5c438f3..45994cb 100644 (file)
@@ -7,6 +7,9 @@
  *   to-xml guest.img [guest.img ...]
  */
 
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
  * to stderr already.
  */
 #define CALL(call,errcode)                     \
-  if ((call) == (errcode)) exit (1);
+  if ((call) == (errcode)) exit (EXIT_FAILURE);
 
 static void display_partition (guestfs_h *g, const char *dev);
 static void display_partitions (guestfs_h *g, const char *dev);
-static void display_ext23 (guestfs_h *g, const char *dev, const char *fstype);
+static void display_ext234 (guestfs_h *g, const char *dev, const char *fstype);
 
 int
 main (int argc, char *argv[])
@@ -36,19 +39,20 @@ main (int argc, char *argv[])
 
   if (argc < 2 || access (argv[1], F_OK) != 0) {
     fprintf (stderr, "Usage: to-xml guest.img [guest.img ...]\n");
-    exit (1);
+    exit (EXIT_FAILURE);
   }
 
   if (!(g = guestfs_create ())) {
     fprintf (stderr, "Cannot create libguestfs handle.\n");
-    exit (1);
+    exit (EXIT_FAILURE);
   }
 
   for (i = 1; i < argc; ++i)
-    CALL (guestfs_add_drive (g, argv[i]), -1);
+    CALL (guestfs_add_drive_opts (g, argv[i],
+                                  GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
+                                  -1), -1);
 
   CALL (guestfs_launch (g), -1);
-  CALL (guestfs_wait_ready (g), -1);
 
   printf ("<guestfs-system>\n");
 
@@ -86,14 +90,14 @@ main (int argc, char *argv[])
     int j;
     for (j = 0; lvs[j] != NULL; ++j) {
       if (strncmp (lvs[j], "/dev/", 5) == 0 &&
-         strncmp (&lvs[j][5], vgs[i], len) == 0 &&
-         lvs[j][len+5] == '/') {
-       int64_t size;
-       CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1);
-       printf ("<logvol name=\"%s\" size=\"%" PRIi64 "\">\n", lvs[j], size);
-       display_partition (g, lvs[j]);
-       printf ("</logvol>\n");
-       free (lvs[j]);
+          strncmp (&lvs[j][5], vgs[i], len) == 0 &&
+          lvs[j][len+5] == '/') {
+        int64_t size;
+        CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1);
+        printf ("<logvol name=\"%s\" size=\"%" PRIi64 "\">\n", lvs[j], size);
+        display_partition (g, lvs[j]);
+        printf ("</logvol>\n");
+        free (lvs[j]);
       }
     }
 
@@ -126,9 +130,11 @@ display_partition (guestfs_h *g, const char *dev)
   else if (strncmp (what, "LVM2", 4) == 0)
     printf ("<physvol/>\n");
   else if (strstr (what, "ext2 filesystem data") != NULL)
-    display_ext23 (g, dev, "ext2");
+    display_ext234 (g, dev, "ext2");
   else if (strstr (what, "ext3 filesystem data") != NULL)
-    display_ext23 (g, dev, "ext3");
+    display_ext234 (g, dev, "ext3");
+  else if (strstr (what, "ext4 filesystem data") != NULL)
+    display_ext234 (g, dev, "ext4");
   else if (strstr (what, "Linux/i386 swap file") != NULL)
     printf ("<linux-swap/>\n");
   else
@@ -172,9 +178,9 @@ display_partitions (guestfs_h *g, const char *dev)
   printf ("</partitions>\n");
 }
 
-/* Display some details on the ext2/3 filesystem on dev. */
+/* Display some details on the ext2/3/4 filesystem on dev. */
 static void
-display_ext23 (guestfs_h *g, const char *dev, const char *fstype)
+display_ext234 (guestfs_h *g, const char *dev, const char *fstype)
 {
   char **sbfields;
   int i;