Add 'glob-expand' command.
[libguestfs.git] / capitests / tests.c
1 /* libguestfs generated file
2  * WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
3  * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
4  *
5  * Copyright (C) 2009 Red Hat Inc.
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25 #include <unistd.h>
26 #include <sys/types.h>
27 #include <fcntl.h>
28
29 #include "guestfs.h"
30
31 static guestfs_h *g;
32 static int suppress_error = 0;
33
34 static void print_error (guestfs_h *g, void *data, const char *msg)
35 {
36   if (!suppress_error)
37     fprintf (stderr, "%s\n", msg);
38 }
39
40 static void print_strings (char * const * const argv)
41 {
42   int argc;
43
44   for (argc = 0; argv[argc] != NULL; ++argc)
45     printf ("\t%s\n", argv[argc]);
46 }
47
48 /*
49 static void print_table (char * const * const argv)
50 {
51   int i;
52
53   for (i = 0; argv[i] != NULL; i += 2)
54     printf ("%s: %s\n", argv[i], argv[i+1]);
55 }
56 */
57
58 static void no_test_warnings (void)
59 {
60   fprintf (stderr, "warning: \"guestfs_test0\" has no tests\n");
61   fprintf (stderr, "warning: \"guestfs_test0rint\" has no tests\n");
62   fprintf (stderr, "warning: \"guestfs_test0rinterr\" has no tests\n");
63   fprintf (stderr, "warning: \"guestfs_test0rint64\" has no tests\n");
64   fprintf (stderr, "warning: \"guestfs_test0rint64err\" has no tests\n");
65   fprintf (stderr, "warning: \"guestfs_test0rbool\" has no tests\n");
66   fprintf (stderr, "warning: \"guestfs_test0rboolerr\" has no tests\n");
67   fprintf (stderr, "warning: \"guestfs_test0rconststring\" has no tests\n");
68   fprintf (stderr, "warning: \"guestfs_test0rconststringerr\" has no tests\n");
69   fprintf (stderr, "warning: \"guestfs_test0rstring\" has no tests\n");
70   fprintf (stderr, "warning: \"guestfs_test0rstringerr\" has no tests\n");
71   fprintf (stderr, "warning: \"guestfs_test0rstringlist\" has no tests\n");
72   fprintf (stderr, "warning: \"guestfs_test0rstringlisterr\" has no tests\n");
73   fprintf (stderr, "warning: \"guestfs_test0rintbool\" has no tests\n");
74   fprintf (stderr, "warning: \"guestfs_test0rintboolerr\" has no tests\n");
75   fprintf (stderr, "warning: \"guestfs_test0rpvlist\" has no tests\n");
76   fprintf (stderr, "warning: \"guestfs_test0rpvlisterr\" has no tests\n");
77   fprintf (stderr, "warning: \"guestfs_test0rvglist\" has no tests\n");
78   fprintf (stderr, "warning: \"guestfs_test0rvglisterr\" has no tests\n");
79   fprintf (stderr, "warning: \"guestfs_test0rlvlist\" has no tests\n");
80   fprintf (stderr, "warning: \"guestfs_test0rlvlisterr\" has no tests\n");
81   fprintf (stderr, "warning: \"guestfs_test0rstat\" has no tests\n");
82   fprintf (stderr, "warning: \"guestfs_test0rstaterr\" has no tests\n");
83   fprintf (stderr, "warning: \"guestfs_test0rstatvfs\" has no tests\n");
84   fprintf (stderr, "warning: \"guestfs_test0rstatvfserr\" has no tests\n");
85   fprintf (stderr, "warning: \"guestfs_test0rhashtable\" has no tests\n");
86   fprintf (stderr, "warning: \"guestfs_test0rhashtableerr\" has no tests\n");
87   fprintf (stderr, "warning: \"guestfs_launch\" has no tests\n");
88   fprintf (stderr, "warning: \"guestfs_wait_ready\" has no tests\n");
89   fprintf (stderr, "warning: \"guestfs_kill_subprocess\" has no tests\n");
90   fprintf (stderr, "warning: \"guestfs_add_drive\" has no tests\n");
91   fprintf (stderr, "warning: \"guestfs_add_cdrom\" has no tests\n");
92   fprintf (stderr, "warning: \"guestfs_add_drive_ro\" has no tests\n");
93   fprintf (stderr, "warning: \"guestfs_config\" has no tests\n");
94   fprintf (stderr, "warning: \"guestfs_set_qemu\" has no tests\n");
95   fprintf (stderr, "warning: \"guestfs_get_qemu\" has no tests\n");
96   fprintf (stderr, "warning: \"guestfs_set_path\" has no tests\n");
97   fprintf (stderr, "warning: \"guestfs_get_path\" has no tests\n");
98   fprintf (stderr, "warning: \"guestfs_set_append\" has no tests\n");
99   fprintf (stderr, "warning: \"guestfs_get_append\" has no tests\n");
100   fprintf (stderr, "warning: \"guestfs_set_autosync\" has no tests\n");
101   fprintf (stderr, "warning: \"guestfs_get_autosync\" has no tests\n");
102   fprintf (stderr, "warning: \"guestfs_set_verbose\" has no tests\n");
103   fprintf (stderr, "warning: \"guestfs_get_verbose\" has no tests\n");
104   fprintf (stderr, "warning: \"guestfs_is_ready\" has no tests\n");
105   fprintf (stderr, "warning: \"guestfs_is_config\" has no tests\n");
106   fprintf (stderr, "warning: \"guestfs_is_launching\" has no tests\n");
107   fprintf (stderr, "warning: \"guestfs_is_busy\" has no tests\n");
108   fprintf (stderr, "warning: \"guestfs_get_state\" has no tests\n");
109   fprintf (stderr, "warning: \"guestfs_set_busy\" has no tests\n");
110   fprintf (stderr, "warning: \"guestfs_set_ready\" has no tests\n");
111   fprintf (stderr, "warning: \"guestfs_end_busy\" has no tests\n");
112   fprintf (stderr, "warning: \"guestfs_ll\" has no tests\n");
113   fprintf (stderr, "warning: \"guestfs_pvs_full\" has no tests\n");
114   fprintf (stderr, "warning: \"guestfs_vgs_full\" has no tests\n");
115   fprintf (stderr, "warning: \"guestfs_lvs_full\" has no tests\n");
116   fprintf (stderr, "warning: \"guestfs_aug_init\" has no tests\n");
117   fprintf (stderr, "warning: \"guestfs_aug_close\" has no tests\n");
118   fprintf (stderr, "warning: \"guestfs_aug_defvar\" has no tests\n");
119   fprintf (stderr, "warning: \"guestfs_aug_defnode\" has no tests\n");
120   fprintf (stderr, "warning: \"guestfs_aug_get\" has no tests\n");
121   fprintf (stderr, "warning: \"guestfs_aug_set\" has no tests\n");
122   fprintf (stderr, "warning: \"guestfs_aug_insert\" has no tests\n");
123   fprintf (stderr, "warning: \"guestfs_aug_rm\" has no tests\n");
124   fprintf (stderr, "warning: \"guestfs_aug_mv\" has no tests\n");
125   fprintf (stderr, "warning: \"guestfs_aug_match\" has no tests\n");
126   fprintf (stderr, "warning: \"guestfs_aug_save\" has no tests\n");
127   fprintf (stderr, "warning: \"guestfs_aug_load\" has no tests\n");
128   fprintf (stderr, "warning: \"guestfs_aug_ls\" has no tests\n");
129   fprintf (stderr, "warning: \"guestfs_chmod\" has no tests\n");
130   fprintf (stderr, "warning: \"guestfs_chown\" has no tests\n");
131   fprintf (stderr, "warning: \"guestfs_sfdisk\" has no tests\n");
132   fprintf (stderr, "warning: \"guestfs_lvm_remove_all\" has no tests\n");
133   fprintf (stderr, "warning: \"guestfs_tune2fs_l\" has no tests\n");
134   fprintf (stderr, "warning: \"guestfs_blockdev_setbsz\" has no tests\n");
135   fprintf (stderr, "warning: \"guestfs_tar_out\" has no tests\n");
136   fprintf (stderr, "warning: \"guestfs_tgz_out\" has no tests\n");
137   fprintf (stderr, "warning: \"guestfs_mount_options\" has no tests\n");
138   fprintf (stderr, "warning: \"guestfs_mount_vfs\" has no tests\n");
139   fprintf (stderr, "warning: \"guestfs_debug\" has no tests\n");
140   fprintf (stderr, "warning: \"guestfs_get_e2label\" has no tests\n");
141   fprintf (stderr, "warning: \"guestfs_get_e2uuid\" has no tests\n");
142   fprintf (stderr, "warning: \"guestfs_pvresize\" has no tests\n");
143   fprintf (stderr, "warning: \"guestfs_sfdisk_N\" has no tests\n");
144   fprintf (stderr, "warning: \"guestfs_sfdisk_l\" has no tests\n");
145   fprintf (stderr, "warning: \"guestfs_sfdisk_kernel_geometry\" has no tests\n");
146   fprintf (stderr, "warning: \"guestfs_sfdisk_disk_geometry\" has no tests\n");
147   fprintf (stderr, "warning: \"guestfs_vg_activate_all\" has no tests\n");
148   fprintf (stderr, "warning: \"guestfs_vg_activate\" has no tests\n");
149   fprintf (stderr, "warning: \"guestfs_resize2fs\" has no tests\n");
150   fprintf (stderr, "warning: \"guestfs_e2fsck_f\" has no tests\n");
151   fprintf (stderr, "warning: \"guestfs_sh\" has no tests\n");
152   fprintf (stderr, "warning: \"guestfs_sh_lines\" has no tests\n");
153 }
154
155 static int test_ntfs_3g_probe_0_skip (void)
156 {
157   const char *str;
158
159   str = getenv ("SKIP_TEST_NTFS_3G_PROBE_0");
160   if (str && strcmp (str, "1") == 0) return 1;
161   str = getenv ("SKIP_TEST_NTFS_3G_PROBE");
162   if (str && strcmp (str, "1") == 0) return 1;
163   return 0;
164 }
165
166 static int test_ntfs_3g_probe_0 (void)
167 {
168   if (test_ntfs_3g_probe_0_skip ()) {
169     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ntfs_3g_probe_0");
170     return 0;
171   }
172
173   /* InitNone|InitEmpty for test_ntfs_3g_probe_0 */
174   {
175     char device[] = "/dev/sda";
176     int r;
177     suppress_error = 0;
178     r = guestfs_blockdev_setrw (g, device);
179     if (r == -1)
180       return -1;
181   }
182   {
183     int r;
184     suppress_error = 0;
185     r = guestfs_umount_all (g);
186     if (r == -1)
187       return -1;
188   }
189   {
190     int r;
191     suppress_error = 0;
192     r = guestfs_lvm_remove_all (g);
193     if (r == -1)
194       return -1;
195   }
196   /* TestOutputInt for ntfs_3g_probe (0) */
197   {
198     char device[] = "/dev/sda";
199     char lines_0[] = ",";
200     char *lines[] = {
201       lines_0,
202       NULL
203     };
204     int r;
205     suppress_error = 0;
206     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
207     if (r == -1)
208       return -1;
209   }
210   {
211     char fstype[] = "ntfs";
212     char device[] = "/dev/sda1";
213     int r;
214     suppress_error = 0;
215     r = guestfs_mkfs (g, fstype, device);
216     if (r == -1)
217       return -1;
218   }
219   {
220     char device[] = "/dev/sda1";
221     int r;
222     suppress_error = 0;
223     r = guestfs_ntfs_3g_probe (g, 1, device);
224     if (r == -1)
225       return -1;
226     if (r != 0) {
227       fprintf (stderr, "test_ntfs_3g_probe_0: expected 0 but got %d\n",               (int) r);
228       return -1;
229     }
230   }
231   return 0;
232 }
233
234 static int test_ntfs_3g_probe_1_skip (void)
235 {
236   const char *str;
237
238   str = getenv ("SKIP_TEST_NTFS_3G_PROBE_1");
239   if (str && strcmp (str, "1") == 0) return 1;
240   str = getenv ("SKIP_TEST_NTFS_3G_PROBE");
241   if (str && strcmp (str, "1") == 0) return 1;
242   return 0;
243 }
244
245 static int test_ntfs_3g_probe_1 (void)
246 {
247   if (test_ntfs_3g_probe_1_skip ()) {
248     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ntfs_3g_probe_1");
249     return 0;
250   }
251
252   /* InitNone|InitEmpty for test_ntfs_3g_probe_1 */
253   {
254     char device[] = "/dev/sda";
255     int r;
256     suppress_error = 0;
257     r = guestfs_blockdev_setrw (g, device);
258     if (r == -1)
259       return -1;
260   }
261   {
262     int r;
263     suppress_error = 0;
264     r = guestfs_umount_all (g);
265     if (r == -1)
266       return -1;
267   }
268   {
269     int r;
270     suppress_error = 0;
271     r = guestfs_lvm_remove_all (g);
272     if (r == -1)
273       return -1;
274   }
275   /* TestOutputInt for ntfs_3g_probe (1) */
276   {
277     char device[] = "/dev/sda";
278     char lines_0[] = ",";
279     char *lines[] = {
280       lines_0,
281       NULL
282     };
283     int r;
284     suppress_error = 0;
285     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
286     if (r == -1)
287       return -1;
288   }
289   {
290     char fstype[] = "ext2";
291     char device[] = "/dev/sda1";
292     int r;
293     suppress_error = 0;
294     r = guestfs_mkfs (g, fstype, device);
295     if (r == -1)
296       return -1;
297   }
298   {
299     char device[] = "/dev/sda1";
300     int r;
301     suppress_error = 0;
302     r = guestfs_ntfs_3g_probe (g, 1, device);
303     if (r == -1)
304       return -1;
305     if (r != 12) {
306       fprintf (stderr, "test_ntfs_3g_probe_1: expected 12 but got %d\n",               (int) r);
307       return -1;
308     }
309   }
310   return 0;
311 }
312
313 static int test_sleep_0_skip (void)
314 {
315   const char *str;
316
317   str = getenv ("SKIP_TEST_SLEEP_0");
318   if (str && strcmp (str, "1") == 0) return 1;
319   str = getenv ("SKIP_TEST_SLEEP");
320   if (str && strcmp (str, "1") == 0) return 1;
321   return 0;
322 }
323
324 static int test_sleep_0 (void)
325 {
326   if (test_sleep_0_skip ()) {
327     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_sleep_0");
328     return 0;
329   }
330
331   /* InitNone|InitEmpty for test_sleep_0 */
332   {
333     char device[] = "/dev/sda";
334     int r;
335     suppress_error = 0;
336     r = guestfs_blockdev_setrw (g, device);
337     if (r == -1)
338       return -1;
339   }
340   {
341     int r;
342     suppress_error = 0;
343     r = guestfs_umount_all (g);
344     if (r == -1)
345       return -1;
346   }
347   {
348     int r;
349     suppress_error = 0;
350     r = guestfs_lvm_remove_all (g);
351     if (r == -1)
352       return -1;
353   }
354   /* TestRun for sleep (0) */
355   {
356     int r;
357     suppress_error = 0;
358     r = guestfs_sleep (g, 1);
359     if (r == -1)
360       return -1;
361   }
362   return 0;
363 }
364
365 static int test_find_0_skip (void)
366 {
367   const char *str;
368
369   str = getenv ("SKIP_TEST_FIND_0");
370   if (str && strcmp (str, "1") == 0) return 1;
371   str = getenv ("SKIP_TEST_FIND");
372   if (str && strcmp (str, "1") == 0) return 1;
373   return 0;
374 }
375
376 static int test_find_0 (void)
377 {
378   if (test_find_0_skip ()) {
379     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_0");
380     return 0;
381   }
382
383   /* InitBasicFS for test_find_0: create ext2 on /dev/sda1 */
384   {
385     char device[] = "/dev/sda";
386     int r;
387     suppress_error = 0;
388     r = guestfs_blockdev_setrw (g, device);
389     if (r == -1)
390       return -1;
391   }
392   {
393     int r;
394     suppress_error = 0;
395     r = guestfs_umount_all (g);
396     if (r == -1)
397       return -1;
398   }
399   {
400     int r;
401     suppress_error = 0;
402     r = guestfs_lvm_remove_all (g);
403     if (r == -1)
404       return -1;
405   }
406   {
407     char device[] = "/dev/sda";
408     char lines_0[] = ",";
409     char *lines[] = {
410       lines_0,
411       NULL
412     };
413     int r;
414     suppress_error = 0;
415     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
416     if (r == -1)
417       return -1;
418   }
419   {
420     char fstype[] = "ext2";
421     char device[] = "/dev/sda1";
422     int r;
423     suppress_error = 0;
424     r = guestfs_mkfs (g, fstype, device);
425     if (r == -1)
426       return -1;
427   }
428   {
429     char device[] = "/dev/sda1";
430     char mountpoint[] = "/";
431     int r;
432     suppress_error = 0;
433     r = guestfs_mount (g, device, mountpoint);
434     if (r == -1)
435       return -1;
436   }
437   /* TestOutputList for find (0) */
438   {
439     char directory[] = "/";
440     char **r;
441     int i;
442     suppress_error = 0;
443     r = guestfs_find (g, directory);
444     if (r == NULL)
445       return -1;
446     if (!r[0]) {
447       fprintf (stderr, "test_find_0: short list returned from command\n");
448       print_strings (r);
449       return -1;
450     }
451     {
452       char expected[] = "lost+found";
453       if (strcmp (r[0], expected) != 0) {
454         fprintf (stderr, "test_find_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
455         return -1;
456       }
457     }
458     if (r[1] != NULL) {
459       fprintf (stderr, "test_find_0: extra elements returned from command\n");
460       print_strings (r);
461       return -1;
462     }
463     for (i = 0; r[i] != NULL; ++i)
464       free (r[i]);
465     free (r);
466   }
467   return 0;
468 }
469
470 static int test_find_1_skip (void)
471 {
472   const char *str;
473
474   str = getenv ("SKIP_TEST_FIND_1");
475   if (str && strcmp (str, "1") == 0) return 1;
476   str = getenv ("SKIP_TEST_FIND");
477   if (str && strcmp (str, "1") == 0) return 1;
478   return 0;
479 }
480
481 static int test_find_1 (void)
482 {
483   if (test_find_1_skip ()) {
484     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_1");
485     return 0;
486   }
487
488   /* InitBasicFS for test_find_1: create ext2 on /dev/sda1 */
489   {
490     char device[] = "/dev/sda";
491     int r;
492     suppress_error = 0;
493     r = guestfs_blockdev_setrw (g, device);
494     if (r == -1)
495       return -1;
496   }
497   {
498     int r;
499     suppress_error = 0;
500     r = guestfs_umount_all (g);
501     if (r == -1)
502       return -1;
503   }
504   {
505     int r;
506     suppress_error = 0;
507     r = guestfs_lvm_remove_all (g);
508     if (r == -1)
509       return -1;
510   }
511   {
512     char device[] = "/dev/sda";
513     char lines_0[] = ",";
514     char *lines[] = {
515       lines_0,
516       NULL
517     };
518     int r;
519     suppress_error = 0;
520     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
521     if (r == -1)
522       return -1;
523   }
524   {
525     char fstype[] = "ext2";
526     char device[] = "/dev/sda1";
527     int r;
528     suppress_error = 0;
529     r = guestfs_mkfs (g, fstype, device);
530     if (r == -1)
531       return -1;
532   }
533   {
534     char device[] = "/dev/sda1";
535     char mountpoint[] = "/";
536     int r;
537     suppress_error = 0;
538     r = guestfs_mount (g, device, mountpoint);
539     if (r == -1)
540       return -1;
541   }
542   /* TestOutputList for find (1) */
543   {
544     char path[] = "/a";
545     int r;
546     suppress_error = 0;
547     r = guestfs_touch (g, path);
548     if (r == -1)
549       return -1;
550   }
551   {
552     char path[] = "/b";
553     int r;
554     suppress_error = 0;
555     r = guestfs_mkdir (g, path);
556     if (r == -1)
557       return -1;
558   }
559   {
560     char path[] = "/b/c";
561     int r;
562     suppress_error = 0;
563     r = guestfs_touch (g, path);
564     if (r == -1)
565       return -1;
566   }
567   {
568     char directory[] = "/";
569     char **r;
570     int i;
571     suppress_error = 0;
572     r = guestfs_find (g, directory);
573     if (r == NULL)
574       return -1;
575     if (!r[0]) {
576       fprintf (stderr, "test_find_1: short list returned from command\n");
577       print_strings (r);
578       return -1;
579     }
580     {
581       char expected[] = "a";
582       if (strcmp (r[0], expected) != 0) {
583         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
584         return -1;
585       }
586     }
587     if (!r[1]) {
588       fprintf (stderr, "test_find_1: short list returned from command\n");
589       print_strings (r);
590       return -1;
591     }
592     {
593       char expected[] = "b";
594       if (strcmp (r[1], expected) != 0) {
595         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
596         return -1;
597       }
598     }
599     if (!r[2]) {
600       fprintf (stderr, "test_find_1: short list returned from command\n");
601       print_strings (r);
602       return -1;
603     }
604     {
605       char expected[] = "b/c";
606       if (strcmp (r[2], expected) != 0) {
607         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
608         return -1;
609       }
610     }
611     if (!r[3]) {
612       fprintf (stderr, "test_find_1: short list returned from command\n");
613       print_strings (r);
614       return -1;
615     }
616     {
617       char expected[] = "lost+found";
618       if (strcmp (r[3], expected) != 0) {
619         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[3]);
620         return -1;
621       }
622     }
623     if (r[4] != NULL) {
624       fprintf (stderr, "test_find_1: extra elements returned from command\n");
625       print_strings (r);
626       return -1;
627     }
628     for (i = 0; r[i] != NULL; ++i)
629       free (r[i]);
630     free (r);
631   }
632   return 0;
633 }
634
635 static int test_find_2_skip (void)
636 {
637   const char *str;
638
639   str = getenv ("SKIP_TEST_FIND_2");
640   if (str && strcmp (str, "1") == 0) return 1;
641   str = getenv ("SKIP_TEST_FIND");
642   if (str && strcmp (str, "1") == 0) return 1;
643   return 0;
644 }
645
646 static int test_find_2 (void)
647 {
648   if (test_find_2_skip ()) {
649     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_find_2");
650     return 0;
651   }
652
653   /* InitBasicFS for test_find_2: create ext2 on /dev/sda1 */
654   {
655     char device[] = "/dev/sda";
656     int r;
657     suppress_error = 0;
658     r = guestfs_blockdev_setrw (g, device);
659     if (r == -1)
660       return -1;
661   }
662   {
663     int r;
664     suppress_error = 0;
665     r = guestfs_umount_all (g);
666     if (r == -1)
667       return -1;
668   }
669   {
670     int r;
671     suppress_error = 0;
672     r = guestfs_lvm_remove_all (g);
673     if (r == -1)
674       return -1;
675   }
676   {
677     char device[] = "/dev/sda";
678     char lines_0[] = ",";
679     char *lines[] = {
680       lines_0,
681       NULL
682     };
683     int r;
684     suppress_error = 0;
685     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
686     if (r == -1)
687       return -1;
688   }
689   {
690     char fstype[] = "ext2";
691     char device[] = "/dev/sda1";
692     int r;
693     suppress_error = 0;
694     r = guestfs_mkfs (g, fstype, device);
695     if (r == -1)
696       return -1;
697   }
698   {
699     char device[] = "/dev/sda1";
700     char mountpoint[] = "/";
701     int r;
702     suppress_error = 0;
703     r = guestfs_mount (g, device, mountpoint);
704     if (r == -1)
705       return -1;
706   }
707   /* TestOutputList for find (2) */
708   {
709     char path[] = "/a/b/c";
710     int r;
711     suppress_error = 0;
712     r = guestfs_mkdir_p (g, path);
713     if (r == -1)
714       return -1;
715   }
716   {
717     char path[] = "/a/b/c/d";
718     int r;
719     suppress_error = 0;
720     r = guestfs_touch (g, path);
721     if (r == -1)
722       return -1;
723   }
724   {
725     char directory[] = "/a/b/";
726     char **r;
727     int i;
728     suppress_error = 0;
729     r = guestfs_find (g, directory);
730     if (r == NULL)
731       return -1;
732     if (!r[0]) {
733       fprintf (stderr, "test_find_2: short list returned from command\n");
734       print_strings (r);
735       return -1;
736     }
737     {
738       char expected[] = "c";
739       if (strcmp (r[0], expected) != 0) {
740         fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
741         return -1;
742       }
743     }
744     if (!r[1]) {
745       fprintf (stderr, "test_find_2: short list returned from command\n");
746       print_strings (r);
747       return -1;
748     }
749     {
750       char expected[] = "c/d";
751       if (strcmp (r[1], expected) != 0) {
752         fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[1]);
753         return -1;
754       }
755     }
756     if (r[2] != NULL) {
757       fprintf (stderr, "test_find_2: extra elements returned from command\n");
758       print_strings (r);
759       return -1;
760     }
761     for (i = 0; r[i] != NULL; ++i)
762       free (r[i]);
763     free (r);
764   }
765   return 0;
766 }
767
768 static int test_lvresize_0_skip (void)
769 {
770   const char *str;
771
772   str = getenv ("SKIP_TEST_LVRESIZE_0");
773   if (str && strcmp (str, "1") == 0) return 1;
774   str = getenv ("SKIP_TEST_LVRESIZE");
775   if (str && strcmp (str, "1") == 0) return 1;
776   return 0;
777 }
778
779 static int test_lvresize_0 (void)
780 {
781   if (test_lvresize_0_skip ()) {
782     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvresize_0");
783     return 0;
784   }
785
786   /* InitNone|InitEmpty for test_lvresize_0 */
787   {
788     char device[] = "/dev/sda";
789     int r;
790     suppress_error = 0;
791     r = guestfs_blockdev_setrw (g, device);
792     if (r == -1)
793       return -1;
794   }
795   {
796     int r;
797     suppress_error = 0;
798     r = guestfs_umount_all (g);
799     if (r == -1)
800       return -1;
801   }
802   {
803     int r;
804     suppress_error = 0;
805     r = guestfs_lvm_remove_all (g);
806     if (r == -1)
807       return -1;
808   }
809   /* TestOutput for lvresize (0) */
810   char expected[] = "test content";
811   {
812     char device[] = "/dev/sda";
813     char lines_0[] = ",";
814     char *lines[] = {
815       lines_0,
816       NULL
817     };
818     int r;
819     suppress_error = 0;
820     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
821     if (r == -1)
822       return -1;
823   }
824   {
825     char device[] = "/dev/sda1";
826     int r;
827     suppress_error = 0;
828     r = guestfs_pvcreate (g, device);
829     if (r == -1)
830       return -1;
831   }
832   {
833     char volgroup[] = "VG";
834     char physvols_0[] = "/dev/sda1";
835     char *physvols[] = {
836       physvols_0,
837       NULL
838     };
839     int r;
840     suppress_error = 0;
841     r = guestfs_vgcreate (g, volgroup, physvols);
842     if (r == -1)
843       return -1;
844   }
845   {
846     char logvol[] = "LV";
847     char volgroup[] = "VG";
848     int r;
849     suppress_error = 0;
850     r = guestfs_lvcreate (g, logvol, volgroup, 10);
851     if (r == -1)
852       return -1;
853   }
854   {
855     char fstype[] = "ext2";
856     char device[] = "/dev/VG/LV";
857     int r;
858     suppress_error = 0;
859     r = guestfs_mkfs (g, fstype, device);
860     if (r == -1)
861       return -1;
862   }
863   {
864     char device[] = "/dev/VG/LV";
865     char mountpoint[] = "/";
866     int r;
867     suppress_error = 0;
868     r = guestfs_mount (g, device, mountpoint);
869     if (r == -1)
870       return -1;
871   }
872   {
873     char path[] = "/new";
874     char content[] = "test content";
875     int r;
876     suppress_error = 0;
877     r = guestfs_write_file (g, path, content, 0);
878     if (r == -1)
879       return -1;
880   }
881   {
882     char pathordevice[] = "/";
883     int r;
884     suppress_error = 0;
885     r = guestfs_umount (g, pathordevice);
886     if (r == -1)
887       return -1;
888   }
889   {
890     char device[] = "/dev/VG/LV";
891     int r;
892     suppress_error = 0;
893     r = guestfs_lvresize (g, device, 20);
894     if (r == -1)
895       return -1;
896   }
897   {
898     char device[] = "/dev/VG/LV";
899     int r;
900     suppress_error = 0;
901     r = guestfs_e2fsck_f (g, device);
902     if (r == -1)
903       return -1;
904   }
905   {
906     char device[] = "/dev/VG/LV";
907     int r;
908     suppress_error = 0;
909     r = guestfs_resize2fs (g, device);
910     if (r == -1)
911       return -1;
912   }
913   {
914     char device[] = "/dev/VG/LV";
915     char mountpoint[] = "/";
916     int r;
917     suppress_error = 0;
918     r = guestfs_mount (g, device, mountpoint);
919     if (r == -1)
920       return -1;
921   }
922   {
923     char path[] = "/new";
924     char *r;
925     suppress_error = 0;
926     r = guestfs_cat (g, path);
927     if (r == NULL)
928       return -1;
929     if (strcmp (r, expected) != 0) {
930       fprintf (stderr, "test_lvresize_0: expected \"%s\" but got \"%s\"\n", expected, r);
931       return -1;
932     }
933     free (r);
934   }
935   return 0;
936 }
937
938 static int test_zerofree_0_skip (void)
939 {
940   const char *str;
941
942   str = getenv ("SKIP_TEST_ZEROFREE_0");
943   if (str && strcmp (str, "1") == 0) return 1;
944   str = getenv ("SKIP_TEST_ZEROFREE");
945   if (str && strcmp (str, "1") == 0) return 1;
946   return 0;
947 }
948
949 static int test_zerofree_0 (void)
950 {
951   if (test_zerofree_0_skip ()) {
952     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_zerofree_0");
953     return 0;
954   }
955
956   /* InitNone|InitEmpty for test_zerofree_0 */
957   {
958     char device[] = "/dev/sda";
959     int r;
960     suppress_error = 0;
961     r = guestfs_blockdev_setrw (g, device);
962     if (r == -1)
963       return -1;
964   }
965   {
966     int r;
967     suppress_error = 0;
968     r = guestfs_umount_all (g);
969     if (r == -1)
970       return -1;
971   }
972   {
973     int r;
974     suppress_error = 0;
975     r = guestfs_lvm_remove_all (g);
976     if (r == -1)
977       return -1;
978   }
979   /* TestOutput for zerofree (0) */
980   char expected[] = "test file";
981   {
982     char device[] = "/dev/sda";
983     char lines_0[] = ",";
984     char *lines[] = {
985       lines_0,
986       NULL
987     };
988     int r;
989     suppress_error = 0;
990     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
991     if (r == -1)
992       return -1;
993   }
994   {
995     char fstype[] = "ext3";
996     char device[] = "/dev/sda1";
997     int r;
998     suppress_error = 0;
999     r = guestfs_mkfs (g, fstype, device);
1000     if (r == -1)
1001       return -1;
1002   }
1003   {
1004     char device[] = "/dev/sda1";
1005     char mountpoint[] = "/";
1006     int r;
1007     suppress_error = 0;
1008     r = guestfs_mount (g, device, mountpoint);
1009     if (r == -1)
1010       return -1;
1011   }
1012   {
1013     char path[] = "/new";
1014     char content[] = "test file";
1015     int r;
1016     suppress_error = 0;
1017     r = guestfs_write_file (g, path, content, 0);
1018     if (r == -1)
1019       return -1;
1020   }
1021   {
1022     char pathordevice[] = "/dev/sda1";
1023     int r;
1024     suppress_error = 0;
1025     r = guestfs_umount (g, pathordevice);
1026     if (r == -1)
1027       return -1;
1028   }
1029   {
1030     char device[] = "/dev/sda1";
1031     int r;
1032     suppress_error = 0;
1033     r = guestfs_zerofree (g, device);
1034     if (r == -1)
1035       return -1;
1036   }
1037   {
1038     char device[] = "/dev/sda1";
1039     char mountpoint[] = "/";
1040     int r;
1041     suppress_error = 0;
1042     r = guestfs_mount (g, device, mountpoint);
1043     if (r == -1)
1044       return -1;
1045   }
1046   {
1047     char path[] = "/new";
1048     char *r;
1049     suppress_error = 0;
1050     r = guestfs_cat (g, path);
1051     if (r == NULL)
1052       return -1;
1053     if (strcmp (r, expected) != 0) {
1054       fprintf (stderr, "test_zerofree_0: expected \"%s\" but got \"%s\"\n", expected, r);
1055       return -1;
1056     }
1057     free (r);
1058   }
1059   return 0;
1060 }
1061
1062 static int test_hexdump_0_skip (void)
1063 {
1064   const char *str;
1065
1066   str = getenv ("SKIP_TEST_HEXDUMP_0");
1067   if (str && strcmp (str, "1") == 0) return 1;
1068   str = getenv ("SKIP_TEST_HEXDUMP");
1069   if (str && strcmp (str, "1") == 0) return 1;
1070   return 0;
1071 }
1072
1073 static int test_hexdump_0 (void)
1074 {
1075   if (test_hexdump_0_skip ()) {
1076     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_hexdump_0");
1077     return 0;
1078   }
1079
1080   /* InitBasicFS for test_hexdump_0: create ext2 on /dev/sda1 */
1081   {
1082     char device[] = "/dev/sda";
1083     int r;
1084     suppress_error = 0;
1085     r = guestfs_blockdev_setrw (g, device);
1086     if (r == -1)
1087       return -1;
1088   }
1089   {
1090     int r;
1091     suppress_error = 0;
1092     r = guestfs_umount_all (g);
1093     if (r == -1)
1094       return -1;
1095   }
1096   {
1097     int r;
1098     suppress_error = 0;
1099     r = guestfs_lvm_remove_all (g);
1100     if (r == -1)
1101       return -1;
1102   }
1103   {
1104     char device[] = "/dev/sda";
1105     char lines_0[] = ",";
1106     char *lines[] = {
1107       lines_0,
1108       NULL
1109     };
1110     int r;
1111     suppress_error = 0;
1112     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1113     if (r == -1)
1114       return -1;
1115   }
1116   {
1117     char fstype[] = "ext2";
1118     char device[] = "/dev/sda1";
1119     int r;
1120     suppress_error = 0;
1121     r = guestfs_mkfs (g, fstype, device);
1122     if (r == -1)
1123       return -1;
1124   }
1125   {
1126     char device[] = "/dev/sda1";
1127     char mountpoint[] = "/";
1128     int r;
1129     suppress_error = 0;
1130     r = guestfs_mount (g, device, mountpoint);
1131     if (r == -1)
1132       return -1;
1133   }
1134   /* TestOutput for hexdump (0) */
1135   char expected[] = "00000000  68 65 6c 6c 6f 0a 77 6f  72 6c 64 0a              |hello.world.|\n0000000c\n";
1136   {
1137     char path[] = "/new";
1138     char content[] = "hello\nworld\n";
1139     int r;
1140     suppress_error = 0;
1141     r = guestfs_write_file (g, path, content, 12);
1142     if (r == -1)
1143       return -1;
1144   }
1145   {
1146     char path[] = "/new";
1147     char *r;
1148     suppress_error = 0;
1149     r = guestfs_hexdump (g, path);
1150     if (r == NULL)
1151       return -1;
1152     if (strcmp (r, expected) != 0) {
1153       fprintf (stderr, "test_hexdump_0: expected \"%s\" but got \"%s\"\n", expected, r);
1154       return -1;
1155     }
1156     free (r);
1157   }
1158   return 0;
1159 }
1160
1161 static int test_strings_e_0_skip (void)
1162 {
1163   const char *str;
1164
1165   str = getenv ("SKIP_TEST_STRINGS_E_0");
1166   if (str && strcmp (str, "1") == 0) return 1;
1167   str = getenv ("SKIP_TEST_STRINGS_E");
1168   if (str && strcmp (str, "1") == 0) return 1;
1169   return 0;
1170 }
1171
1172 static int test_strings_e_0 (void)
1173 {
1174   if (test_strings_e_0_skip ()) {
1175     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_e_0");
1176     return 0;
1177   }
1178
1179   /* InitBasicFS for test_strings_e_0: create ext2 on /dev/sda1 */
1180   {
1181     char device[] = "/dev/sda";
1182     int r;
1183     suppress_error = 0;
1184     r = guestfs_blockdev_setrw (g, device);
1185     if (r == -1)
1186       return -1;
1187   }
1188   {
1189     int r;
1190     suppress_error = 0;
1191     r = guestfs_umount_all (g);
1192     if (r == -1)
1193       return -1;
1194   }
1195   {
1196     int r;
1197     suppress_error = 0;
1198     r = guestfs_lvm_remove_all (g);
1199     if (r == -1)
1200       return -1;
1201   }
1202   {
1203     char device[] = "/dev/sda";
1204     char lines_0[] = ",";
1205     char *lines[] = {
1206       lines_0,
1207       NULL
1208     };
1209     int r;
1210     suppress_error = 0;
1211     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1212     if (r == -1)
1213       return -1;
1214   }
1215   {
1216     char fstype[] = "ext2";
1217     char device[] = "/dev/sda1";
1218     int r;
1219     suppress_error = 0;
1220     r = guestfs_mkfs (g, fstype, device);
1221     if (r == -1)
1222       return -1;
1223   }
1224   {
1225     char device[] = "/dev/sda1";
1226     char mountpoint[] = "/";
1227     int r;
1228     suppress_error = 0;
1229     r = guestfs_mount (g, device, mountpoint);
1230     if (r == -1)
1231       return -1;
1232   }
1233   /* TestOutputList for strings_e (0) */
1234   {
1235     char path[] = "/new";
1236     char content[] = "hello\nworld\n";
1237     int r;
1238     suppress_error = 0;
1239     r = guestfs_write_file (g, path, content, 0);
1240     if (r == -1)
1241       return -1;
1242   }
1243   {
1244     char encoding[] = "b";
1245     char path[] = "/new";
1246     char **r;
1247     int i;
1248     suppress_error = 0;
1249     r = guestfs_strings_e (g, encoding, path);
1250     if (r == NULL)
1251       return -1;
1252     if (r[0] != NULL) {
1253       fprintf (stderr, "test_strings_e_0: extra elements returned from command\n");
1254       print_strings (r);
1255       return -1;
1256     }
1257     for (i = 0; r[i] != NULL; ++i)
1258       free (r[i]);
1259     free (r);
1260   }
1261   return 0;
1262 }
1263
1264 static int test_strings_e_1_skip (void)
1265 {
1266   const char *str;
1267
1268   str = getenv ("SKIP_TEST_STRINGS_E_1");
1269   if (str && strcmp (str, "1") == 0) return 1;
1270   str = getenv ("SKIP_TEST_STRINGS_E");
1271   if (str && strcmp (str, "1") == 0) return 1;
1272   return 0;
1273 }
1274
1275 static int test_strings_e_1 (void)
1276 {
1277   if (test_strings_e_1_skip ()) {
1278     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_e_1");
1279     return 0;
1280   }
1281
1282   printf ("%s skipped (reason: test disabled in generator)\n", "test_strings_e_1");
1283   return 0;
1284 }
1285
1286 static int test_strings_0_skip (void)
1287 {
1288   const char *str;
1289
1290   str = getenv ("SKIP_TEST_STRINGS_0");
1291   if (str && strcmp (str, "1") == 0) return 1;
1292   str = getenv ("SKIP_TEST_STRINGS");
1293   if (str && strcmp (str, "1") == 0) return 1;
1294   return 0;
1295 }
1296
1297 static int test_strings_0 (void)
1298 {
1299   if (test_strings_0_skip ()) {
1300     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_0");
1301     return 0;
1302   }
1303
1304   /* InitBasicFS for test_strings_0: create ext2 on /dev/sda1 */
1305   {
1306     char device[] = "/dev/sda";
1307     int r;
1308     suppress_error = 0;
1309     r = guestfs_blockdev_setrw (g, device);
1310     if (r == -1)
1311       return -1;
1312   }
1313   {
1314     int r;
1315     suppress_error = 0;
1316     r = guestfs_umount_all (g);
1317     if (r == -1)
1318       return -1;
1319   }
1320   {
1321     int r;
1322     suppress_error = 0;
1323     r = guestfs_lvm_remove_all (g);
1324     if (r == -1)
1325       return -1;
1326   }
1327   {
1328     char device[] = "/dev/sda";
1329     char lines_0[] = ",";
1330     char *lines[] = {
1331       lines_0,
1332       NULL
1333     };
1334     int r;
1335     suppress_error = 0;
1336     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1337     if (r == -1)
1338       return -1;
1339   }
1340   {
1341     char fstype[] = "ext2";
1342     char device[] = "/dev/sda1";
1343     int r;
1344     suppress_error = 0;
1345     r = guestfs_mkfs (g, fstype, device);
1346     if (r == -1)
1347       return -1;
1348   }
1349   {
1350     char device[] = "/dev/sda1";
1351     char mountpoint[] = "/";
1352     int r;
1353     suppress_error = 0;
1354     r = guestfs_mount (g, device, mountpoint);
1355     if (r == -1)
1356       return -1;
1357   }
1358   /* TestOutputList for strings (0) */
1359   {
1360     char path[] = "/new";
1361     char content[] = "hello\nworld\n";
1362     int r;
1363     suppress_error = 0;
1364     r = guestfs_write_file (g, path, content, 0);
1365     if (r == -1)
1366       return -1;
1367   }
1368   {
1369     char path[] = "/new";
1370     char **r;
1371     int i;
1372     suppress_error = 0;
1373     r = guestfs_strings (g, path);
1374     if (r == NULL)
1375       return -1;
1376     if (!r[0]) {
1377       fprintf (stderr, "test_strings_0: short list returned from command\n");
1378       print_strings (r);
1379       return -1;
1380     }
1381     {
1382       char expected[] = "hello";
1383       if (strcmp (r[0], expected) != 0) {
1384         fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
1385         return -1;
1386       }
1387     }
1388     if (!r[1]) {
1389       fprintf (stderr, "test_strings_0: short list returned from command\n");
1390       print_strings (r);
1391       return -1;
1392     }
1393     {
1394       char expected[] = "world";
1395       if (strcmp (r[1], expected) != 0) {
1396         fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
1397         return -1;
1398       }
1399     }
1400     if (r[2] != NULL) {
1401       fprintf (stderr, "test_strings_0: extra elements returned from command\n");
1402       print_strings (r);
1403       return -1;
1404     }
1405     for (i = 0; r[i] != NULL; ++i)
1406       free (r[i]);
1407     free (r);
1408   }
1409   return 0;
1410 }
1411
1412 static int test_strings_1_skip (void)
1413 {
1414   const char *str;
1415
1416   str = getenv ("SKIP_TEST_STRINGS_1");
1417   if (str && strcmp (str, "1") == 0) return 1;
1418   str = getenv ("SKIP_TEST_STRINGS");
1419   if (str && strcmp (str, "1") == 0) return 1;
1420   return 0;
1421 }
1422
1423 static int test_strings_1 (void)
1424 {
1425   if (test_strings_1_skip ()) {
1426     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_strings_1");
1427     return 0;
1428   }
1429
1430   /* InitBasicFS for test_strings_1: create ext2 on /dev/sda1 */
1431   {
1432     char device[] = "/dev/sda";
1433     int r;
1434     suppress_error = 0;
1435     r = guestfs_blockdev_setrw (g, device);
1436     if (r == -1)
1437       return -1;
1438   }
1439   {
1440     int r;
1441     suppress_error = 0;
1442     r = guestfs_umount_all (g);
1443     if (r == -1)
1444       return -1;
1445   }
1446   {
1447     int r;
1448     suppress_error = 0;
1449     r = guestfs_lvm_remove_all (g);
1450     if (r == -1)
1451       return -1;
1452   }
1453   {
1454     char device[] = "/dev/sda";
1455     char lines_0[] = ",";
1456     char *lines[] = {
1457       lines_0,
1458       NULL
1459     };
1460     int r;
1461     suppress_error = 0;
1462     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1463     if (r == -1)
1464       return -1;
1465   }
1466   {
1467     char fstype[] = "ext2";
1468     char device[] = "/dev/sda1";
1469     int r;
1470     suppress_error = 0;
1471     r = guestfs_mkfs (g, fstype, device);
1472     if (r == -1)
1473       return -1;
1474   }
1475   {
1476     char device[] = "/dev/sda1";
1477     char mountpoint[] = "/";
1478     int r;
1479     suppress_error = 0;
1480     r = guestfs_mount (g, device, mountpoint);
1481     if (r == -1)
1482       return -1;
1483   }
1484   /* TestOutputList for strings (1) */
1485   {
1486     char path[] = "/new";
1487     int r;
1488     suppress_error = 0;
1489     r = guestfs_touch (g, path);
1490     if (r == -1)
1491       return -1;
1492   }
1493   {
1494     char path[] = "/new";
1495     char **r;
1496     int i;
1497     suppress_error = 0;
1498     r = guestfs_strings (g, path);
1499     if (r == NULL)
1500       return -1;
1501     if (r[0] != NULL) {
1502       fprintf (stderr, "test_strings_1: extra elements returned from command\n");
1503       print_strings (r);
1504       return -1;
1505     }
1506     for (i = 0; r[i] != NULL; ++i)
1507       free (r[i]);
1508     free (r);
1509   }
1510   return 0;
1511 }
1512
1513 static int test_equal_0_skip (void)
1514 {
1515   const char *str;
1516
1517   str = getenv ("SKIP_TEST_EQUAL_0");
1518   if (str && strcmp (str, "1") == 0) return 1;
1519   str = getenv ("SKIP_TEST_EQUAL");
1520   if (str && strcmp (str, "1") == 0) return 1;
1521   return 0;
1522 }
1523
1524 static int test_equal_0 (void)
1525 {
1526   if (test_equal_0_skip ()) {
1527     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_0");
1528     return 0;
1529   }
1530
1531   /* InitBasicFS for test_equal_0: create ext2 on /dev/sda1 */
1532   {
1533     char device[] = "/dev/sda";
1534     int r;
1535     suppress_error = 0;
1536     r = guestfs_blockdev_setrw (g, device);
1537     if (r == -1)
1538       return -1;
1539   }
1540   {
1541     int r;
1542     suppress_error = 0;
1543     r = guestfs_umount_all (g);
1544     if (r == -1)
1545       return -1;
1546   }
1547   {
1548     int r;
1549     suppress_error = 0;
1550     r = guestfs_lvm_remove_all (g);
1551     if (r == -1)
1552       return -1;
1553   }
1554   {
1555     char device[] = "/dev/sda";
1556     char lines_0[] = ",";
1557     char *lines[] = {
1558       lines_0,
1559       NULL
1560     };
1561     int r;
1562     suppress_error = 0;
1563     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1564     if (r == -1)
1565       return -1;
1566   }
1567   {
1568     char fstype[] = "ext2";
1569     char device[] = "/dev/sda1";
1570     int r;
1571     suppress_error = 0;
1572     r = guestfs_mkfs (g, fstype, device);
1573     if (r == -1)
1574       return -1;
1575   }
1576   {
1577     char device[] = "/dev/sda1";
1578     char mountpoint[] = "/";
1579     int r;
1580     suppress_error = 0;
1581     r = guestfs_mount (g, device, mountpoint);
1582     if (r == -1)
1583       return -1;
1584   }
1585   /* TestOutputTrue for equal (0) */
1586   {
1587     char path[] = "/file1";
1588     char content[] = "contents of a file";
1589     int r;
1590     suppress_error = 0;
1591     r = guestfs_write_file (g, path, content, 0);
1592     if (r == -1)
1593       return -1;
1594   }
1595   {
1596     char src[] = "/file1";
1597     char dest[] = "/file2";
1598     int r;
1599     suppress_error = 0;
1600     r = guestfs_cp (g, src, dest);
1601     if (r == -1)
1602       return -1;
1603   }
1604   {
1605     char file1[] = "/file1";
1606     char file2[] = "/file2";
1607     int r;
1608     suppress_error = 0;
1609     r = guestfs_equal (g, file1, file2);
1610     if (r == -1)
1611       return -1;
1612     if (!r) {
1613       fprintf (stderr, "test_equal_0: expected true, got false\n");
1614       return -1;
1615     }
1616   }
1617   return 0;
1618 }
1619
1620 static int test_equal_1_skip (void)
1621 {
1622   const char *str;
1623
1624   str = getenv ("SKIP_TEST_EQUAL_1");
1625   if (str && strcmp (str, "1") == 0) return 1;
1626   str = getenv ("SKIP_TEST_EQUAL");
1627   if (str && strcmp (str, "1") == 0) return 1;
1628   return 0;
1629 }
1630
1631 static int test_equal_1 (void)
1632 {
1633   if (test_equal_1_skip ()) {
1634     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_1");
1635     return 0;
1636   }
1637
1638   /* InitBasicFS for test_equal_1: create ext2 on /dev/sda1 */
1639   {
1640     char device[] = "/dev/sda";
1641     int r;
1642     suppress_error = 0;
1643     r = guestfs_blockdev_setrw (g, device);
1644     if (r == -1)
1645       return -1;
1646   }
1647   {
1648     int r;
1649     suppress_error = 0;
1650     r = guestfs_umount_all (g);
1651     if (r == -1)
1652       return -1;
1653   }
1654   {
1655     int r;
1656     suppress_error = 0;
1657     r = guestfs_lvm_remove_all (g);
1658     if (r == -1)
1659       return -1;
1660   }
1661   {
1662     char device[] = "/dev/sda";
1663     char lines_0[] = ",";
1664     char *lines[] = {
1665       lines_0,
1666       NULL
1667     };
1668     int r;
1669     suppress_error = 0;
1670     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1671     if (r == -1)
1672       return -1;
1673   }
1674   {
1675     char fstype[] = "ext2";
1676     char device[] = "/dev/sda1";
1677     int r;
1678     suppress_error = 0;
1679     r = guestfs_mkfs (g, fstype, device);
1680     if (r == -1)
1681       return -1;
1682   }
1683   {
1684     char device[] = "/dev/sda1";
1685     char mountpoint[] = "/";
1686     int r;
1687     suppress_error = 0;
1688     r = guestfs_mount (g, device, mountpoint);
1689     if (r == -1)
1690       return -1;
1691   }
1692   /* TestOutputFalse for equal (1) */
1693   {
1694     char path[] = "/file1";
1695     char content[] = "contents of a file";
1696     int r;
1697     suppress_error = 0;
1698     r = guestfs_write_file (g, path, content, 0);
1699     if (r == -1)
1700       return -1;
1701   }
1702   {
1703     char path[] = "/file2";
1704     char content[] = "contents of another file";
1705     int r;
1706     suppress_error = 0;
1707     r = guestfs_write_file (g, path, content, 0);
1708     if (r == -1)
1709       return -1;
1710   }
1711   {
1712     char file1[] = "/file1";
1713     char file2[] = "/file2";
1714     int r;
1715     suppress_error = 0;
1716     r = guestfs_equal (g, file1, file2);
1717     if (r == -1)
1718       return -1;
1719     if (r) {
1720       fprintf (stderr, "test_equal_1: expected false, got true\n");
1721       return -1;
1722     }
1723   }
1724   return 0;
1725 }
1726
1727 static int test_equal_2_skip (void)
1728 {
1729   const char *str;
1730
1731   str = getenv ("SKIP_TEST_EQUAL_2");
1732   if (str && strcmp (str, "1") == 0) return 1;
1733   str = getenv ("SKIP_TEST_EQUAL");
1734   if (str && strcmp (str, "1") == 0) return 1;
1735   return 0;
1736 }
1737
1738 static int test_equal_2 (void)
1739 {
1740   if (test_equal_2_skip ()) {
1741     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_equal_2");
1742     return 0;
1743   }
1744
1745   /* InitBasicFS for test_equal_2: create ext2 on /dev/sda1 */
1746   {
1747     char device[] = "/dev/sda";
1748     int r;
1749     suppress_error = 0;
1750     r = guestfs_blockdev_setrw (g, device);
1751     if (r == -1)
1752       return -1;
1753   }
1754   {
1755     int r;
1756     suppress_error = 0;
1757     r = guestfs_umount_all (g);
1758     if (r == -1)
1759       return -1;
1760   }
1761   {
1762     int r;
1763     suppress_error = 0;
1764     r = guestfs_lvm_remove_all (g);
1765     if (r == -1)
1766       return -1;
1767   }
1768   {
1769     char device[] = "/dev/sda";
1770     char lines_0[] = ",";
1771     char *lines[] = {
1772       lines_0,
1773       NULL
1774     };
1775     int r;
1776     suppress_error = 0;
1777     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1778     if (r == -1)
1779       return -1;
1780   }
1781   {
1782     char fstype[] = "ext2";
1783     char device[] = "/dev/sda1";
1784     int r;
1785     suppress_error = 0;
1786     r = guestfs_mkfs (g, fstype, device);
1787     if (r == -1)
1788       return -1;
1789   }
1790   {
1791     char device[] = "/dev/sda1";
1792     char mountpoint[] = "/";
1793     int r;
1794     suppress_error = 0;
1795     r = guestfs_mount (g, device, mountpoint);
1796     if (r == -1)
1797       return -1;
1798   }
1799   /* TestLastFail for equal (2) */
1800   {
1801     char file1[] = "/file1";
1802     char file2[] = "/file2";
1803     int r;
1804     suppress_error = 1;
1805     r = guestfs_equal (g, file1, file2);
1806     if (r != -1)
1807       return -1;
1808   }
1809   return 0;
1810 }
1811
1812 static int test_ping_daemon_0_skip (void)
1813 {
1814   const char *str;
1815
1816   str = getenv ("SKIP_TEST_PING_DAEMON_0");
1817   if (str && strcmp (str, "1") == 0) return 1;
1818   str = getenv ("SKIP_TEST_PING_DAEMON");
1819   if (str && strcmp (str, "1") == 0) return 1;
1820   return 0;
1821 }
1822
1823 static int test_ping_daemon_0 (void)
1824 {
1825   if (test_ping_daemon_0_skip ()) {
1826     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ping_daemon_0");
1827     return 0;
1828   }
1829
1830   /* InitNone|InitEmpty for test_ping_daemon_0 */
1831   {
1832     char device[] = "/dev/sda";
1833     int r;
1834     suppress_error = 0;
1835     r = guestfs_blockdev_setrw (g, device);
1836     if (r == -1)
1837       return -1;
1838   }
1839   {
1840     int r;
1841     suppress_error = 0;
1842     r = guestfs_umount_all (g);
1843     if (r == -1)
1844       return -1;
1845   }
1846   {
1847     int r;
1848     suppress_error = 0;
1849     r = guestfs_lvm_remove_all (g);
1850     if (r == -1)
1851       return -1;
1852   }
1853   /* TestRun for ping_daemon (0) */
1854   {
1855     int r;
1856     suppress_error = 0;
1857     r = guestfs_ping_daemon (g);
1858     if (r == -1)
1859       return -1;
1860   }
1861   return 0;
1862 }
1863
1864 static int test_dmesg_0_skip (void)
1865 {
1866   const char *str;
1867
1868   str = getenv ("SKIP_TEST_DMESG_0");
1869   if (str && strcmp (str, "1") == 0) return 1;
1870   str = getenv ("SKIP_TEST_DMESG");
1871   if (str && strcmp (str, "1") == 0) return 1;
1872   return 0;
1873 }
1874
1875 static int test_dmesg_0 (void)
1876 {
1877   if (test_dmesg_0_skip ()) {
1878     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_dmesg_0");
1879     return 0;
1880   }
1881
1882   /* InitNone|InitEmpty for test_dmesg_0 */
1883   {
1884     char device[] = "/dev/sda";
1885     int r;
1886     suppress_error = 0;
1887     r = guestfs_blockdev_setrw (g, device);
1888     if (r == -1)
1889       return -1;
1890   }
1891   {
1892     int r;
1893     suppress_error = 0;
1894     r = guestfs_umount_all (g);
1895     if (r == -1)
1896       return -1;
1897   }
1898   {
1899     int r;
1900     suppress_error = 0;
1901     r = guestfs_lvm_remove_all (g);
1902     if (r == -1)
1903       return -1;
1904   }
1905   /* TestRun for dmesg (0) */
1906   {
1907     char *r;
1908     suppress_error = 0;
1909     r = guestfs_dmesg (g);
1910     if (r == NULL)
1911       return -1;
1912     free (r);
1913   }
1914   return 0;
1915 }
1916
1917 static int test_drop_caches_0_skip (void)
1918 {
1919   const char *str;
1920
1921   str = getenv ("SKIP_TEST_DROP_CACHES_0");
1922   if (str && strcmp (str, "1") == 0) return 1;
1923   str = getenv ("SKIP_TEST_DROP_CACHES");
1924   if (str && strcmp (str, "1") == 0) return 1;
1925   return 0;
1926 }
1927
1928 static int test_drop_caches_0 (void)
1929 {
1930   if (test_drop_caches_0_skip ()) {
1931     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_drop_caches_0");
1932     return 0;
1933   }
1934
1935   /* InitNone|InitEmpty for test_drop_caches_0 */
1936   {
1937     char device[] = "/dev/sda";
1938     int r;
1939     suppress_error = 0;
1940     r = guestfs_blockdev_setrw (g, device);
1941     if (r == -1)
1942       return -1;
1943   }
1944   {
1945     int r;
1946     suppress_error = 0;
1947     r = guestfs_umount_all (g);
1948     if (r == -1)
1949       return -1;
1950   }
1951   {
1952     int r;
1953     suppress_error = 0;
1954     r = guestfs_lvm_remove_all (g);
1955     if (r == -1)
1956       return -1;
1957   }
1958   /* TestRun for drop_caches (0) */
1959   {
1960     int r;
1961     suppress_error = 0;
1962     r = guestfs_drop_caches (g, 3);
1963     if (r == -1)
1964       return -1;
1965   }
1966   return 0;
1967 }
1968
1969 static int test_mv_0_skip (void)
1970 {
1971   const char *str;
1972
1973   str = getenv ("SKIP_TEST_MV_0");
1974   if (str && strcmp (str, "1") == 0) return 1;
1975   str = getenv ("SKIP_TEST_MV");
1976   if (str && strcmp (str, "1") == 0) return 1;
1977   return 0;
1978 }
1979
1980 static int test_mv_0 (void)
1981 {
1982   if (test_mv_0_skip ()) {
1983     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mv_0");
1984     return 0;
1985   }
1986
1987   /* InitBasicFS for test_mv_0: create ext2 on /dev/sda1 */
1988   {
1989     char device[] = "/dev/sda";
1990     int r;
1991     suppress_error = 0;
1992     r = guestfs_blockdev_setrw (g, device);
1993     if (r == -1)
1994       return -1;
1995   }
1996   {
1997     int r;
1998     suppress_error = 0;
1999     r = guestfs_umount_all (g);
2000     if (r == -1)
2001       return -1;
2002   }
2003   {
2004     int r;
2005     suppress_error = 0;
2006     r = guestfs_lvm_remove_all (g);
2007     if (r == -1)
2008       return -1;
2009   }
2010   {
2011     char device[] = "/dev/sda";
2012     char lines_0[] = ",";
2013     char *lines[] = {
2014       lines_0,
2015       NULL
2016     };
2017     int r;
2018     suppress_error = 0;
2019     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2020     if (r == -1)
2021       return -1;
2022   }
2023   {
2024     char fstype[] = "ext2";
2025     char device[] = "/dev/sda1";
2026     int r;
2027     suppress_error = 0;
2028     r = guestfs_mkfs (g, fstype, device);
2029     if (r == -1)
2030       return -1;
2031   }
2032   {
2033     char device[] = "/dev/sda1";
2034     char mountpoint[] = "/";
2035     int r;
2036     suppress_error = 0;
2037     r = guestfs_mount (g, device, mountpoint);
2038     if (r == -1)
2039       return -1;
2040   }
2041   /* TestOutput for mv (0) */
2042   char expected[] = "file content";
2043   {
2044     char path[] = "/old";
2045     char content[] = "file content";
2046     int r;
2047     suppress_error = 0;
2048     r = guestfs_write_file (g, path, content, 0);
2049     if (r == -1)
2050       return -1;
2051   }
2052   {
2053     char src[] = "/old";
2054     char dest[] = "/new";
2055     int r;
2056     suppress_error = 0;
2057     r = guestfs_mv (g, src, dest);
2058     if (r == -1)
2059       return -1;
2060   }
2061   {
2062     char path[] = "/new";
2063     char *r;
2064     suppress_error = 0;
2065     r = guestfs_cat (g, path);
2066     if (r == NULL)
2067       return -1;
2068     if (strcmp (r, expected) != 0) {
2069       fprintf (stderr, "test_mv_0: expected \"%s\" but got \"%s\"\n", expected, r);
2070       return -1;
2071     }
2072     free (r);
2073   }
2074   return 0;
2075 }
2076
2077 static int test_mv_1_skip (void)
2078 {
2079   const char *str;
2080
2081   str = getenv ("SKIP_TEST_MV_1");
2082   if (str && strcmp (str, "1") == 0) return 1;
2083   str = getenv ("SKIP_TEST_MV");
2084   if (str && strcmp (str, "1") == 0) return 1;
2085   return 0;
2086 }
2087
2088 static int test_mv_1 (void)
2089 {
2090   if (test_mv_1_skip ()) {
2091     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mv_1");
2092     return 0;
2093   }
2094
2095   /* InitBasicFS for test_mv_1: create ext2 on /dev/sda1 */
2096   {
2097     char device[] = "/dev/sda";
2098     int r;
2099     suppress_error = 0;
2100     r = guestfs_blockdev_setrw (g, device);
2101     if (r == -1)
2102       return -1;
2103   }
2104   {
2105     int r;
2106     suppress_error = 0;
2107     r = guestfs_umount_all (g);
2108     if (r == -1)
2109       return -1;
2110   }
2111   {
2112     int r;
2113     suppress_error = 0;
2114     r = guestfs_lvm_remove_all (g);
2115     if (r == -1)
2116       return -1;
2117   }
2118   {
2119     char device[] = "/dev/sda";
2120     char lines_0[] = ",";
2121     char *lines[] = {
2122       lines_0,
2123       NULL
2124     };
2125     int r;
2126     suppress_error = 0;
2127     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2128     if (r == -1)
2129       return -1;
2130   }
2131   {
2132     char fstype[] = "ext2";
2133     char device[] = "/dev/sda1";
2134     int r;
2135     suppress_error = 0;
2136     r = guestfs_mkfs (g, fstype, device);
2137     if (r == -1)
2138       return -1;
2139   }
2140   {
2141     char device[] = "/dev/sda1";
2142     char mountpoint[] = "/";
2143     int r;
2144     suppress_error = 0;
2145     r = guestfs_mount (g, device, mountpoint);
2146     if (r == -1)
2147       return -1;
2148   }
2149   /* TestOutputFalse for mv (1) */
2150   {
2151     char path[] = "/old";
2152     char content[] = "file content";
2153     int r;
2154     suppress_error = 0;
2155     r = guestfs_write_file (g, path, content, 0);
2156     if (r == -1)
2157       return -1;
2158   }
2159   {
2160     char src[] = "/old";
2161     char dest[] = "/new";
2162     int r;
2163     suppress_error = 0;
2164     r = guestfs_mv (g, src, dest);
2165     if (r == -1)
2166       return -1;
2167   }
2168   {
2169     char path[] = "/old";
2170     int r;
2171     suppress_error = 0;
2172     r = guestfs_is_file (g, path);
2173     if (r == -1)
2174       return -1;
2175     if (r) {
2176       fprintf (stderr, "test_mv_1: expected false, got true\n");
2177       return -1;
2178     }
2179   }
2180   return 0;
2181 }
2182
2183 static int test_cp_a_0_skip (void)
2184 {
2185   const char *str;
2186
2187   str = getenv ("SKIP_TEST_CP_A_0");
2188   if (str && strcmp (str, "1") == 0) return 1;
2189   str = getenv ("SKIP_TEST_CP_A");
2190   if (str && strcmp (str, "1") == 0) return 1;
2191   return 0;
2192 }
2193
2194 static int test_cp_a_0 (void)
2195 {
2196   if (test_cp_a_0_skip ()) {
2197     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_a_0");
2198     return 0;
2199   }
2200
2201   /* InitBasicFS for test_cp_a_0: create ext2 on /dev/sda1 */
2202   {
2203     char device[] = "/dev/sda";
2204     int r;
2205     suppress_error = 0;
2206     r = guestfs_blockdev_setrw (g, device);
2207     if (r == -1)
2208       return -1;
2209   }
2210   {
2211     int r;
2212     suppress_error = 0;
2213     r = guestfs_umount_all (g);
2214     if (r == -1)
2215       return -1;
2216   }
2217   {
2218     int r;
2219     suppress_error = 0;
2220     r = guestfs_lvm_remove_all (g);
2221     if (r == -1)
2222       return -1;
2223   }
2224   {
2225     char device[] = "/dev/sda";
2226     char lines_0[] = ",";
2227     char *lines[] = {
2228       lines_0,
2229       NULL
2230     };
2231     int r;
2232     suppress_error = 0;
2233     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2234     if (r == -1)
2235       return -1;
2236   }
2237   {
2238     char fstype[] = "ext2";
2239     char device[] = "/dev/sda1";
2240     int r;
2241     suppress_error = 0;
2242     r = guestfs_mkfs (g, fstype, device);
2243     if (r == -1)
2244       return -1;
2245   }
2246   {
2247     char device[] = "/dev/sda1";
2248     char mountpoint[] = "/";
2249     int r;
2250     suppress_error = 0;
2251     r = guestfs_mount (g, device, mountpoint);
2252     if (r == -1)
2253       return -1;
2254   }
2255   /* TestOutput for cp_a (0) */
2256   char expected[] = "file content";
2257   {
2258     char path[] = "/olddir";
2259     int r;
2260     suppress_error = 0;
2261     r = guestfs_mkdir (g, path);
2262     if (r == -1)
2263       return -1;
2264   }
2265   {
2266     char path[] = "/newdir";
2267     int r;
2268     suppress_error = 0;
2269     r = guestfs_mkdir (g, path);
2270     if (r == -1)
2271       return -1;
2272   }
2273   {
2274     char path[] = "/olddir/file";
2275     char content[] = "file content";
2276     int r;
2277     suppress_error = 0;
2278     r = guestfs_write_file (g, path, content, 0);
2279     if (r == -1)
2280       return -1;
2281   }
2282   {
2283     char src[] = "/olddir";
2284     char dest[] = "/newdir";
2285     int r;
2286     suppress_error = 0;
2287     r = guestfs_cp_a (g, src, dest);
2288     if (r == -1)
2289       return -1;
2290   }
2291   {
2292     char path[] = "/newdir/olddir/file";
2293     char *r;
2294     suppress_error = 0;
2295     r = guestfs_cat (g, path);
2296     if (r == NULL)
2297       return -1;
2298     if (strcmp (r, expected) != 0) {
2299       fprintf (stderr, "test_cp_a_0: expected \"%s\" but got \"%s\"\n", expected, r);
2300       return -1;
2301     }
2302     free (r);
2303   }
2304   return 0;
2305 }
2306
2307 static int test_cp_0_skip (void)
2308 {
2309   const char *str;
2310
2311   str = getenv ("SKIP_TEST_CP_0");
2312   if (str && strcmp (str, "1") == 0) return 1;
2313   str = getenv ("SKIP_TEST_CP");
2314   if (str && strcmp (str, "1") == 0) return 1;
2315   return 0;
2316 }
2317
2318 static int test_cp_0 (void)
2319 {
2320   if (test_cp_0_skip ()) {
2321     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_0");
2322     return 0;
2323   }
2324
2325   /* InitBasicFS for test_cp_0: create ext2 on /dev/sda1 */
2326   {
2327     char device[] = "/dev/sda";
2328     int r;
2329     suppress_error = 0;
2330     r = guestfs_blockdev_setrw (g, device);
2331     if (r == -1)
2332       return -1;
2333   }
2334   {
2335     int r;
2336     suppress_error = 0;
2337     r = guestfs_umount_all (g);
2338     if (r == -1)
2339       return -1;
2340   }
2341   {
2342     int r;
2343     suppress_error = 0;
2344     r = guestfs_lvm_remove_all (g);
2345     if (r == -1)
2346       return -1;
2347   }
2348   {
2349     char device[] = "/dev/sda";
2350     char lines_0[] = ",";
2351     char *lines[] = {
2352       lines_0,
2353       NULL
2354     };
2355     int r;
2356     suppress_error = 0;
2357     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2358     if (r == -1)
2359       return -1;
2360   }
2361   {
2362     char fstype[] = "ext2";
2363     char device[] = "/dev/sda1";
2364     int r;
2365     suppress_error = 0;
2366     r = guestfs_mkfs (g, fstype, device);
2367     if (r == -1)
2368       return -1;
2369   }
2370   {
2371     char device[] = "/dev/sda1";
2372     char mountpoint[] = "/";
2373     int r;
2374     suppress_error = 0;
2375     r = guestfs_mount (g, device, mountpoint);
2376     if (r == -1)
2377       return -1;
2378   }
2379   /* TestOutput for cp (0) */
2380   char expected[] = "file content";
2381   {
2382     char path[] = "/old";
2383     char content[] = "file content";
2384     int r;
2385     suppress_error = 0;
2386     r = guestfs_write_file (g, path, content, 0);
2387     if (r == -1)
2388       return -1;
2389   }
2390   {
2391     char src[] = "/old";
2392     char dest[] = "/new";
2393     int r;
2394     suppress_error = 0;
2395     r = guestfs_cp (g, src, dest);
2396     if (r == -1)
2397       return -1;
2398   }
2399   {
2400     char path[] = "/new";
2401     char *r;
2402     suppress_error = 0;
2403     r = guestfs_cat (g, path);
2404     if (r == NULL)
2405       return -1;
2406     if (strcmp (r, expected) != 0) {
2407       fprintf (stderr, "test_cp_0: expected \"%s\" but got \"%s\"\n", expected, r);
2408       return -1;
2409     }
2410     free (r);
2411   }
2412   return 0;
2413 }
2414
2415 static int test_cp_1_skip (void)
2416 {
2417   const char *str;
2418
2419   str = getenv ("SKIP_TEST_CP_1");
2420   if (str && strcmp (str, "1") == 0) return 1;
2421   str = getenv ("SKIP_TEST_CP");
2422   if (str && strcmp (str, "1") == 0) return 1;
2423   return 0;
2424 }
2425
2426 static int test_cp_1 (void)
2427 {
2428   if (test_cp_1_skip ()) {
2429     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_1");
2430     return 0;
2431   }
2432
2433   /* InitBasicFS for test_cp_1: create ext2 on /dev/sda1 */
2434   {
2435     char device[] = "/dev/sda";
2436     int r;
2437     suppress_error = 0;
2438     r = guestfs_blockdev_setrw (g, device);
2439     if (r == -1)
2440       return -1;
2441   }
2442   {
2443     int r;
2444     suppress_error = 0;
2445     r = guestfs_umount_all (g);
2446     if (r == -1)
2447       return -1;
2448   }
2449   {
2450     int r;
2451     suppress_error = 0;
2452     r = guestfs_lvm_remove_all (g);
2453     if (r == -1)
2454       return -1;
2455   }
2456   {
2457     char device[] = "/dev/sda";
2458     char lines_0[] = ",";
2459     char *lines[] = {
2460       lines_0,
2461       NULL
2462     };
2463     int r;
2464     suppress_error = 0;
2465     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2466     if (r == -1)
2467       return -1;
2468   }
2469   {
2470     char fstype[] = "ext2";
2471     char device[] = "/dev/sda1";
2472     int r;
2473     suppress_error = 0;
2474     r = guestfs_mkfs (g, fstype, device);
2475     if (r == -1)
2476       return -1;
2477   }
2478   {
2479     char device[] = "/dev/sda1";
2480     char mountpoint[] = "/";
2481     int r;
2482     suppress_error = 0;
2483     r = guestfs_mount (g, device, mountpoint);
2484     if (r == -1)
2485       return -1;
2486   }
2487   /* TestOutputTrue for cp (1) */
2488   {
2489     char path[] = "/old";
2490     char content[] = "file content";
2491     int r;
2492     suppress_error = 0;
2493     r = guestfs_write_file (g, path, content, 0);
2494     if (r == -1)
2495       return -1;
2496   }
2497   {
2498     char src[] = "/old";
2499     char dest[] = "/new";
2500     int r;
2501     suppress_error = 0;
2502     r = guestfs_cp (g, src, dest);
2503     if (r == -1)
2504       return -1;
2505   }
2506   {
2507     char path[] = "/old";
2508     int r;
2509     suppress_error = 0;
2510     r = guestfs_is_file (g, path);
2511     if (r == -1)
2512       return -1;
2513     if (!r) {
2514       fprintf (stderr, "test_cp_1: expected true, got false\n");
2515       return -1;
2516     }
2517   }
2518   return 0;
2519 }
2520
2521 static int test_cp_2_skip (void)
2522 {
2523   const char *str;
2524
2525   str = getenv ("SKIP_TEST_CP_2");
2526   if (str && strcmp (str, "1") == 0) return 1;
2527   str = getenv ("SKIP_TEST_CP");
2528   if (str && strcmp (str, "1") == 0) return 1;
2529   return 0;
2530 }
2531
2532 static int test_cp_2 (void)
2533 {
2534   if (test_cp_2_skip ()) {
2535     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cp_2");
2536     return 0;
2537   }
2538
2539   /* InitBasicFS for test_cp_2: create ext2 on /dev/sda1 */
2540   {
2541     char device[] = "/dev/sda";
2542     int r;
2543     suppress_error = 0;
2544     r = guestfs_blockdev_setrw (g, device);
2545     if (r == -1)
2546       return -1;
2547   }
2548   {
2549     int r;
2550     suppress_error = 0;
2551     r = guestfs_umount_all (g);
2552     if (r == -1)
2553       return -1;
2554   }
2555   {
2556     int r;
2557     suppress_error = 0;
2558     r = guestfs_lvm_remove_all (g);
2559     if (r == -1)
2560       return -1;
2561   }
2562   {
2563     char device[] = "/dev/sda";
2564     char lines_0[] = ",";
2565     char *lines[] = {
2566       lines_0,
2567       NULL
2568     };
2569     int r;
2570     suppress_error = 0;
2571     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2572     if (r == -1)
2573       return -1;
2574   }
2575   {
2576     char fstype[] = "ext2";
2577     char device[] = "/dev/sda1";
2578     int r;
2579     suppress_error = 0;
2580     r = guestfs_mkfs (g, fstype, device);
2581     if (r == -1)
2582       return -1;
2583   }
2584   {
2585     char device[] = "/dev/sda1";
2586     char mountpoint[] = "/";
2587     int r;
2588     suppress_error = 0;
2589     r = guestfs_mount (g, device, mountpoint);
2590     if (r == -1)
2591       return -1;
2592   }
2593   /* TestOutput for cp (2) */
2594   char expected[] = "file content";
2595   {
2596     char path[] = "/old";
2597     char content[] = "file content";
2598     int r;
2599     suppress_error = 0;
2600     r = guestfs_write_file (g, path, content, 0);
2601     if (r == -1)
2602       return -1;
2603   }
2604   {
2605     char path[] = "/dir";
2606     int r;
2607     suppress_error = 0;
2608     r = guestfs_mkdir (g, path);
2609     if (r == -1)
2610       return -1;
2611   }
2612   {
2613     char src[] = "/old";
2614     char dest[] = "/dir/new";
2615     int r;
2616     suppress_error = 0;
2617     r = guestfs_cp (g, src, dest);
2618     if (r == -1)
2619       return -1;
2620   }
2621   {
2622     char path[] = "/dir/new";
2623     char *r;
2624     suppress_error = 0;
2625     r = guestfs_cat (g, path);
2626     if (r == NULL)
2627       return -1;
2628     if (strcmp (r, expected) != 0) {
2629       fprintf (stderr, "test_cp_2: expected \"%s\" but got \"%s\"\n", expected, r);
2630       return -1;
2631     }
2632     free (r);
2633   }
2634   return 0;
2635 }
2636
2637 static int test_grub_install_0_skip (void)
2638 {
2639   const char *str;
2640
2641   str = getenv ("SKIP_TEST_GRUB_INSTALL_0");
2642   if (str && strcmp (str, "1") == 0) return 1;
2643   str = getenv ("SKIP_TEST_GRUB_INSTALL");
2644   if (str && strcmp (str, "1") == 0) return 1;
2645   return 0;
2646 }
2647
2648 static int test_grub_install_0 (void)
2649 {
2650   if (test_grub_install_0_skip ()) {
2651     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_grub_install_0");
2652     return 0;
2653   }
2654
2655   /* InitBasicFS for test_grub_install_0: create ext2 on /dev/sda1 */
2656   {
2657     char device[] = "/dev/sda";
2658     int r;
2659     suppress_error = 0;
2660     r = guestfs_blockdev_setrw (g, device);
2661     if (r == -1)
2662       return -1;
2663   }
2664   {
2665     int r;
2666     suppress_error = 0;
2667     r = guestfs_umount_all (g);
2668     if (r == -1)
2669       return -1;
2670   }
2671   {
2672     int r;
2673     suppress_error = 0;
2674     r = guestfs_lvm_remove_all (g);
2675     if (r == -1)
2676       return -1;
2677   }
2678   {
2679     char device[] = "/dev/sda";
2680     char lines_0[] = ",";
2681     char *lines[] = {
2682       lines_0,
2683       NULL
2684     };
2685     int r;
2686     suppress_error = 0;
2687     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2688     if (r == -1)
2689       return -1;
2690   }
2691   {
2692     char fstype[] = "ext2";
2693     char device[] = "/dev/sda1";
2694     int r;
2695     suppress_error = 0;
2696     r = guestfs_mkfs (g, fstype, device);
2697     if (r == -1)
2698       return -1;
2699   }
2700   {
2701     char device[] = "/dev/sda1";
2702     char mountpoint[] = "/";
2703     int r;
2704     suppress_error = 0;
2705     r = guestfs_mount (g, device, mountpoint);
2706     if (r == -1)
2707       return -1;
2708   }
2709   /* TestOutputTrue for grub_install (0) */
2710   {
2711     char root[] = "/";
2712     char device[] = "/dev/sda1";
2713     int r;
2714     suppress_error = 0;
2715     r = guestfs_grub_install (g, root, device);
2716     if (r == -1)
2717       return -1;
2718   }
2719   {
2720     char path[] = "/boot";
2721     int r;
2722     suppress_error = 0;
2723     r = guestfs_is_dir (g, path);
2724     if (r == -1)
2725       return -1;
2726     if (!r) {
2727       fprintf (stderr, "test_grub_install_0: expected true, got false\n");
2728       return -1;
2729     }
2730   }
2731   return 0;
2732 }
2733
2734 static int test_zero_0_skip (void)
2735 {
2736   const char *str;
2737
2738   str = getenv ("SKIP_TEST_ZERO_0");
2739   if (str && strcmp (str, "1") == 0) return 1;
2740   str = getenv ("SKIP_TEST_ZERO");
2741   if (str && strcmp (str, "1") == 0) return 1;
2742   return 0;
2743 }
2744
2745 static int test_zero_0 (void)
2746 {
2747   if (test_zero_0_skip ()) {
2748     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_zero_0");
2749     return 0;
2750   }
2751
2752   /* InitBasicFS for test_zero_0: create ext2 on /dev/sda1 */
2753   {
2754     char device[] = "/dev/sda";
2755     int r;
2756     suppress_error = 0;
2757     r = guestfs_blockdev_setrw (g, device);
2758     if (r == -1)
2759       return -1;
2760   }
2761   {
2762     int r;
2763     suppress_error = 0;
2764     r = guestfs_umount_all (g);
2765     if (r == -1)
2766       return -1;
2767   }
2768   {
2769     int r;
2770     suppress_error = 0;
2771     r = guestfs_lvm_remove_all (g);
2772     if (r == -1)
2773       return -1;
2774   }
2775   {
2776     char device[] = "/dev/sda";
2777     char lines_0[] = ",";
2778     char *lines[] = {
2779       lines_0,
2780       NULL
2781     };
2782     int r;
2783     suppress_error = 0;
2784     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2785     if (r == -1)
2786       return -1;
2787   }
2788   {
2789     char fstype[] = "ext2";
2790     char device[] = "/dev/sda1";
2791     int r;
2792     suppress_error = 0;
2793     r = guestfs_mkfs (g, fstype, device);
2794     if (r == -1)
2795       return -1;
2796   }
2797   {
2798     char device[] = "/dev/sda1";
2799     char mountpoint[] = "/";
2800     int r;
2801     suppress_error = 0;
2802     r = guestfs_mount (g, device, mountpoint);
2803     if (r == -1)
2804       return -1;
2805   }
2806   /* TestOutput for zero (0) */
2807   char expected[] = "data";
2808   {
2809     char pathordevice[] = "/dev/sda1";
2810     int r;
2811     suppress_error = 0;
2812     r = guestfs_umount (g, pathordevice);
2813     if (r == -1)
2814       return -1;
2815   }
2816   {
2817     char device[] = "/dev/sda1";
2818     int r;
2819     suppress_error = 0;
2820     r = guestfs_zero (g, device);
2821     if (r == -1)
2822       return -1;
2823   }
2824   {
2825     char path[] = "/dev/sda1";
2826     char *r;
2827     suppress_error = 0;
2828     r = guestfs_file (g, path);
2829     if (r == NULL)
2830       return -1;
2831     if (strcmp (r, expected) != 0) {
2832       fprintf (stderr, "test_zero_0: expected \"%s\" but got \"%s\"\n", expected, r);
2833       return -1;
2834     }
2835     free (r);
2836   }
2837   return 0;
2838 }
2839
2840 static int test_fsck_0_skip (void)
2841 {
2842   const char *str;
2843
2844   str = getenv ("SKIP_TEST_FSCK_0");
2845   if (str && strcmp (str, "1") == 0) return 1;
2846   str = getenv ("SKIP_TEST_FSCK");
2847   if (str && strcmp (str, "1") == 0) return 1;
2848   return 0;
2849 }
2850
2851 static int test_fsck_0 (void)
2852 {
2853   if (test_fsck_0_skip ()) {
2854     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_fsck_0");
2855     return 0;
2856   }
2857
2858   /* InitBasicFS for test_fsck_0: create ext2 on /dev/sda1 */
2859   {
2860     char device[] = "/dev/sda";
2861     int r;
2862     suppress_error = 0;
2863     r = guestfs_blockdev_setrw (g, device);
2864     if (r == -1)
2865       return -1;
2866   }
2867   {
2868     int r;
2869     suppress_error = 0;
2870     r = guestfs_umount_all (g);
2871     if (r == -1)
2872       return -1;
2873   }
2874   {
2875     int r;
2876     suppress_error = 0;
2877     r = guestfs_lvm_remove_all (g);
2878     if (r == -1)
2879       return -1;
2880   }
2881   {
2882     char device[] = "/dev/sda";
2883     char lines_0[] = ",";
2884     char *lines[] = {
2885       lines_0,
2886       NULL
2887     };
2888     int r;
2889     suppress_error = 0;
2890     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2891     if (r == -1)
2892       return -1;
2893   }
2894   {
2895     char fstype[] = "ext2";
2896     char device[] = "/dev/sda1";
2897     int r;
2898     suppress_error = 0;
2899     r = guestfs_mkfs (g, fstype, device);
2900     if (r == -1)
2901       return -1;
2902   }
2903   {
2904     char device[] = "/dev/sda1";
2905     char mountpoint[] = "/";
2906     int r;
2907     suppress_error = 0;
2908     r = guestfs_mount (g, device, mountpoint);
2909     if (r == -1)
2910       return -1;
2911   }
2912   /* TestOutputInt for fsck (0) */
2913   {
2914     char pathordevice[] = "/dev/sda1";
2915     int r;
2916     suppress_error = 0;
2917     r = guestfs_umount (g, pathordevice);
2918     if (r == -1)
2919       return -1;
2920   }
2921   {
2922     char fstype[] = "ext2";
2923     char device[] = "/dev/sda1";
2924     int r;
2925     suppress_error = 0;
2926     r = guestfs_fsck (g, fstype, device);
2927     if (r == -1)
2928       return -1;
2929     if (r != 0) {
2930       fprintf (stderr, "test_fsck_0: expected 0 but got %d\n",               (int) r);
2931       return -1;
2932     }
2933   }
2934   return 0;
2935 }
2936
2937 static int test_fsck_1_skip (void)
2938 {
2939   const char *str;
2940
2941   str = getenv ("SKIP_TEST_FSCK_1");
2942   if (str && strcmp (str, "1") == 0) return 1;
2943   str = getenv ("SKIP_TEST_FSCK");
2944   if (str && strcmp (str, "1") == 0) return 1;
2945   return 0;
2946 }
2947
2948 static int test_fsck_1 (void)
2949 {
2950   if (test_fsck_1_skip ()) {
2951     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_fsck_1");
2952     return 0;
2953   }
2954
2955   /* InitBasicFS for test_fsck_1: create ext2 on /dev/sda1 */
2956   {
2957     char device[] = "/dev/sda";
2958     int r;
2959     suppress_error = 0;
2960     r = guestfs_blockdev_setrw (g, device);
2961     if (r == -1)
2962       return -1;
2963   }
2964   {
2965     int r;
2966     suppress_error = 0;
2967     r = guestfs_umount_all (g);
2968     if (r == -1)
2969       return -1;
2970   }
2971   {
2972     int r;
2973     suppress_error = 0;
2974     r = guestfs_lvm_remove_all (g);
2975     if (r == -1)
2976       return -1;
2977   }
2978   {
2979     char device[] = "/dev/sda";
2980     char lines_0[] = ",";
2981     char *lines[] = {
2982       lines_0,
2983       NULL
2984     };
2985     int r;
2986     suppress_error = 0;
2987     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2988     if (r == -1)
2989       return -1;
2990   }
2991   {
2992     char fstype[] = "ext2";
2993     char device[] = "/dev/sda1";
2994     int r;
2995     suppress_error = 0;
2996     r = guestfs_mkfs (g, fstype, device);
2997     if (r == -1)
2998       return -1;
2999   }
3000   {
3001     char device[] = "/dev/sda1";
3002     char mountpoint[] = "/";
3003     int r;
3004     suppress_error = 0;
3005     r = guestfs_mount (g, device, mountpoint);
3006     if (r == -1)
3007       return -1;
3008   }
3009   /* TestOutputInt for fsck (1) */
3010   {
3011     char pathordevice[] = "/dev/sda1";
3012     int r;
3013     suppress_error = 0;
3014     r = guestfs_umount (g, pathordevice);
3015     if (r == -1)
3016       return -1;
3017   }
3018   {
3019     char device[] = "/dev/sda1";
3020     int r;
3021     suppress_error = 0;
3022     r = guestfs_zero (g, device);
3023     if (r == -1)
3024       return -1;
3025   }
3026   {
3027     char fstype[] = "ext2";
3028     char device[] = "/dev/sda1";
3029     int r;
3030     suppress_error = 0;
3031     r = guestfs_fsck (g, fstype, device);
3032     if (r == -1)
3033       return -1;
3034     if (r != 8) {
3035       fprintf (stderr, "test_fsck_1: expected 8 but got %d\n",               (int) r);
3036       return -1;
3037     }
3038   }
3039   return 0;
3040 }
3041
3042 static int test_set_e2uuid_0_skip (void)
3043 {
3044   const char *str;
3045
3046   str = getenv ("SKIP_TEST_SET_E2UUID_0");
3047   if (str && strcmp (str, "1") == 0) return 1;
3048   str = getenv ("SKIP_TEST_SET_E2UUID");
3049   if (str && strcmp (str, "1") == 0) return 1;
3050   return 0;
3051 }
3052
3053 static int test_set_e2uuid_0 (void)
3054 {
3055   if (test_set_e2uuid_0_skip ()) {
3056     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_0");
3057     return 0;
3058   }
3059
3060   /* InitBasicFS for test_set_e2uuid_0: create ext2 on /dev/sda1 */
3061   {
3062     char device[] = "/dev/sda";
3063     int r;
3064     suppress_error = 0;
3065     r = guestfs_blockdev_setrw (g, device);
3066     if (r == -1)
3067       return -1;
3068   }
3069   {
3070     int r;
3071     suppress_error = 0;
3072     r = guestfs_umount_all (g);
3073     if (r == -1)
3074       return -1;
3075   }
3076   {
3077     int r;
3078     suppress_error = 0;
3079     r = guestfs_lvm_remove_all (g);
3080     if (r == -1)
3081       return -1;
3082   }
3083   {
3084     char device[] = "/dev/sda";
3085     char lines_0[] = ",";
3086     char *lines[] = {
3087       lines_0,
3088       NULL
3089     };
3090     int r;
3091     suppress_error = 0;
3092     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3093     if (r == -1)
3094       return -1;
3095   }
3096   {
3097     char fstype[] = "ext2";
3098     char device[] = "/dev/sda1";
3099     int r;
3100     suppress_error = 0;
3101     r = guestfs_mkfs (g, fstype, device);
3102     if (r == -1)
3103       return -1;
3104   }
3105   {
3106     char device[] = "/dev/sda1";
3107     char mountpoint[] = "/";
3108     int r;
3109     suppress_error = 0;
3110     r = guestfs_mount (g, device, mountpoint);
3111     if (r == -1)
3112       return -1;
3113   }
3114   /* TestOutput for set_e2uuid (0) */
3115   char expected[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d";
3116   {
3117     char device[] = "/dev/sda1";
3118     char uuid[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d";
3119     int r;
3120     suppress_error = 0;
3121     r = guestfs_set_e2uuid (g, device, uuid);
3122     if (r == -1)
3123       return -1;
3124   }
3125   {
3126     char device[] = "/dev/sda1";
3127     char *r;
3128     suppress_error = 0;
3129     r = guestfs_get_e2uuid (g, device);
3130     if (r == NULL)
3131       return -1;
3132     if (strcmp (r, expected) != 0) {
3133       fprintf (stderr, "test_set_e2uuid_0: expected \"%s\" but got \"%s\"\n", expected, r);
3134       return -1;
3135     }
3136     free (r);
3137   }
3138   return 0;
3139 }
3140
3141 static int test_set_e2uuid_1_skip (void)
3142 {
3143   const char *str;
3144
3145   str = getenv ("SKIP_TEST_SET_E2UUID_1");
3146   if (str && strcmp (str, "1") == 0) return 1;
3147   str = getenv ("SKIP_TEST_SET_E2UUID");
3148   if (str && strcmp (str, "1") == 0) return 1;
3149   return 0;
3150 }
3151
3152 static int test_set_e2uuid_1 (void)
3153 {
3154   if (test_set_e2uuid_1_skip ()) {
3155     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_1");
3156     return 0;
3157   }
3158
3159   /* InitBasicFS for test_set_e2uuid_1: create ext2 on /dev/sda1 */
3160   {
3161     char device[] = "/dev/sda";
3162     int r;
3163     suppress_error = 0;
3164     r = guestfs_blockdev_setrw (g, device);
3165     if (r == -1)
3166       return -1;
3167   }
3168   {
3169     int r;
3170     suppress_error = 0;
3171     r = guestfs_umount_all (g);
3172     if (r == -1)
3173       return -1;
3174   }
3175   {
3176     int r;
3177     suppress_error = 0;
3178     r = guestfs_lvm_remove_all (g);
3179     if (r == -1)
3180       return -1;
3181   }
3182   {
3183     char device[] = "/dev/sda";
3184     char lines_0[] = ",";
3185     char *lines[] = {
3186       lines_0,
3187       NULL
3188     };
3189     int r;
3190     suppress_error = 0;
3191     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3192     if (r == -1)
3193       return -1;
3194   }
3195   {
3196     char fstype[] = "ext2";
3197     char device[] = "/dev/sda1";
3198     int r;
3199     suppress_error = 0;
3200     r = guestfs_mkfs (g, fstype, device);
3201     if (r == -1)
3202       return -1;
3203   }
3204   {
3205     char device[] = "/dev/sda1";
3206     char mountpoint[] = "/";
3207     int r;
3208     suppress_error = 0;
3209     r = guestfs_mount (g, device, mountpoint);
3210     if (r == -1)
3211       return -1;
3212   }
3213   /* TestOutput for set_e2uuid (1) */
3214   char expected[] = "";
3215   {
3216     char device[] = "/dev/sda1";
3217     char uuid[] = "clear";
3218     int r;
3219     suppress_error = 0;
3220     r = guestfs_set_e2uuid (g, device, uuid);
3221     if (r == -1)
3222       return -1;
3223   }
3224   {
3225     char device[] = "/dev/sda1";
3226     char *r;
3227     suppress_error = 0;
3228     r = guestfs_get_e2uuid (g, device);
3229     if (r == NULL)
3230       return -1;
3231     if (strcmp (r, expected) != 0) {
3232       fprintf (stderr, "test_set_e2uuid_1: expected \"%s\" but got \"%s\"\n", expected, r);
3233       return -1;
3234     }
3235     free (r);
3236   }
3237   return 0;
3238 }
3239
3240 static int test_set_e2uuid_2_skip (void)
3241 {
3242   const char *str;
3243
3244   str = getenv ("SKIP_TEST_SET_E2UUID_2");
3245   if (str && strcmp (str, "1") == 0) return 1;
3246   str = getenv ("SKIP_TEST_SET_E2UUID");
3247   if (str && strcmp (str, "1") == 0) return 1;
3248   return 0;
3249 }
3250
3251 static int test_set_e2uuid_2 (void)
3252 {
3253   if (test_set_e2uuid_2_skip ()) {
3254     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_2");
3255     return 0;
3256   }
3257
3258   /* InitBasicFS for test_set_e2uuid_2: create ext2 on /dev/sda1 */
3259   {
3260     char device[] = "/dev/sda";
3261     int r;
3262     suppress_error = 0;
3263     r = guestfs_blockdev_setrw (g, device);
3264     if (r == -1)
3265       return -1;
3266   }
3267   {
3268     int r;
3269     suppress_error = 0;
3270     r = guestfs_umount_all (g);
3271     if (r == -1)
3272       return -1;
3273   }
3274   {
3275     int r;
3276     suppress_error = 0;
3277     r = guestfs_lvm_remove_all (g);
3278     if (r == -1)
3279       return -1;
3280   }
3281   {
3282     char device[] = "/dev/sda";
3283     char lines_0[] = ",";
3284     char *lines[] = {
3285       lines_0,
3286       NULL
3287     };
3288     int r;
3289     suppress_error = 0;
3290     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3291     if (r == -1)
3292       return -1;
3293   }
3294   {
3295     char fstype[] = "ext2";
3296     char device[] = "/dev/sda1";
3297     int r;
3298     suppress_error = 0;
3299     r = guestfs_mkfs (g, fstype, device);
3300     if (r == -1)
3301       return -1;
3302   }
3303   {
3304     char device[] = "/dev/sda1";
3305     char mountpoint[] = "/";
3306     int r;
3307     suppress_error = 0;
3308     r = guestfs_mount (g, device, mountpoint);
3309     if (r == -1)
3310       return -1;
3311   }
3312   /* TestRun for set_e2uuid (2) */
3313   {
3314     char device[] = "/dev/sda1";
3315     char uuid[] = "random";
3316     int r;
3317     suppress_error = 0;
3318     r = guestfs_set_e2uuid (g, device, uuid);
3319     if (r == -1)
3320       return -1;
3321   }
3322   return 0;
3323 }
3324
3325 static int test_set_e2uuid_3_skip (void)
3326 {
3327   const char *str;
3328
3329   str = getenv ("SKIP_TEST_SET_E2UUID_3");
3330   if (str && strcmp (str, "1") == 0) return 1;
3331   str = getenv ("SKIP_TEST_SET_E2UUID");
3332   if (str && strcmp (str, "1") == 0) return 1;
3333   return 0;
3334 }
3335
3336 static int test_set_e2uuid_3 (void)
3337 {
3338   if (test_set_e2uuid_3_skip ()) {
3339     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2uuid_3");
3340     return 0;
3341   }
3342
3343   /* InitBasicFS for test_set_e2uuid_3: create ext2 on /dev/sda1 */
3344   {
3345     char device[] = "/dev/sda";
3346     int r;
3347     suppress_error = 0;
3348     r = guestfs_blockdev_setrw (g, device);
3349     if (r == -1)
3350       return -1;
3351   }
3352   {
3353     int r;
3354     suppress_error = 0;
3355     r = guestfs_umount_all (g);
3356     if (r == -1)
3357       return -1;
3358   }
3359   {
3360     int r;
3361     suppress_error = 0;
3362     r = guestfs_lvm_remove_all (g);
3363     if (r == -1)
3364       return -1;
3365   }
3366   {
3367     char device[] = "/dev/sda";
3368     char lines_0[] = ",";
3369     char *lines[] = {
3370       lines_0,
3371       NULL
3372     };
3373     int r;
3374     suppress_error = 0;
3375     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3376     if (r == -1)
3377       return -1;
3378   }
3379   {
3380     char fstype[] = "ext2";
3381     char device[] = "/dev/sda1";
3382     int r;
3383     suppress_error = 0;
3384     r = guestfs_mkfs (g, fstype, device);
3385     if (r == -1)
3386       return -1;
3387   }
3388   {
3389     char device[] = "/dev/sda1";
3390     char mountpoint[] = "/";
3391     int r;
3392     suppress_error = 0;
3393     r = guestfs_mount (g, device, mountpoint);
3394     if (r == -1)
3395       return -1;
3396   }
3397   /* TestRun for set_e2uuid (3) */
3398   {
3399     char device[] = "/dev/sda1";
3400     char uuid[] = "time";
3401     int r;
3402     suppress_error = 0;
3403     r = guestfs_set_e2uuid (g, device, uuid);
3404     if (r == -1)
3405       return -1;
3406   }
3407   return 0;
3408 }
3409
3410 static int test_set_e2label_0_skip (void)
3411 {
3412   const char *str;
3413
3414   str = getenv ("SKIP_TEST_SET_E2LABEL_0");
3415   if (str && strcmp (str, "1") == 0) return 1;
3416   str = getenv ("SKIP_TEST_SET_E2LABEL");
3417   if (str && strcmp (str, "1") == 0) return 1;
3418   return 0;
3419 }
3420
3421 static int test_set_e2label_0 (void)
3422 {
3423   if (test_set_e2label_0_skip ()) {
3424     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_set_e2label_0");
3425     return 0;
3426   }
3427
3428   /* InitBasicFS for test_set_e2label_0: create ext2 on /dev/sda1 */
3429   {
3430     char device[] = "/dev/sda";
3431     int r;
3432     suppress_error = 0;
3433     r = guestfs_blockdev_setrw (g, device);
3434     if (r == -1)
3435       return -1;
3436   }
3437   {
3438     int r;
3439     suppress_error = 0;
3440     r = guestfs_umount_all (g);
3441     if (r == -1)
3442       return -1;
3443   }
3444   {
3445     int r;
3446     suppress_error = 0;
3447     r = guestfs_lvm_remove_all (g);
3448     if (r == -1)
3449       return -1;
3450   }
3451   {
3452     char device[] = "/dev/sda";
3453     char lines_0[] = ",";
3454     char *lines[] = {
3455       lines_0,
3456       NULL
3457     };
3458     int r;
3459     suppress_error = 0;
3460     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3461     if (r == -1)
3462       return -1;
3463   }
3464   {
3465     char fstype[] = "ext2";
3466     char device[] = "/dev/sda1";
3467     int r;
3468     suppress_error = 0;
3469     r = guestfs_mkfs (g, fstype, device);
3470     if (r == -1)
3471       return -1;
3472   }
3473   {
3474     char device[] = "/dev/sda1";
3475     char mountpoint[] = "/";
3476     int r;
3477     suppress_error = 0;
3478     r = guestfs_mount (g, device, mountpoint);
3479     if (r == -1)
3480       return -1;
3481   }
3482   /* TestOutput for set_e2label (0) */
3483   char expected[] = "testlabel";
3484   {
3485     char device[] = "/dev/sda1";
3486     char label[] = "testlabel";
3487     int r;
3488     suppress_error = 0;
3489     r = guestfs_set_e2label (g, device, label);
3490     if (r == -1)
3491       return -1;
3492   }
3493   {
3494     char device[] = "/dev/sda1";
3495     char *r;
3496     suppress_error = 0;
3497     r = guestfs_get_e2label (g, device);
3498     if (r == NULL)
3499       return -1;
3500     if (strcmp (r, expected) != 0) {
3501       fprintf (stderr, "test_set_e2label_0: expected \"%s\" but got \"%s\"\n", expected, r);
3502       return -1;
3503     }
3504     free (r);
3505   }
3506   return 0;
3507 }
3508
3509 static int test_pvremove_0_skip (void)
3510 {
3511   const char *str;
3512
3513   str = getenv ("SKIP_TEST_PVREMOVE_0");
3514   if (str && strcmp (str, "1") == 0) return 1;
3515   str = getenv ("SKIP_TEST_PVREMOVE");
3516   if (str && strcmp (str, "1") == 0) return 1;
3517   return 0;
3518 }
3519
3520 static int test_pvremove_0 (void)
3521 {
3522   if (test_pvremove_0_skip ()) {
3523     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_0");
3524     return 0;
3525   }
3526
3527   /* InitNone|InitEmpty for test_pvremove_0 */
3528   {
3529     char device[] = "/dev/sda";
3530     int r;
3531     suppress_error = 0;
3532     r = guestfs_blockdev_setrw (g, device);
3533     if (r == -1)
3534       return -1;
3535   }
3536   {
3537     int r;
3538     suppress_error = 0;
3539     r = guestfs_umount_all (g);
3540     if (r == -1)
3541       return -1;
3542   }
3543   {
3544     int r;
3545     suppress_error = 0;
3546     r = guestfs_lvm_remove_all (g);
3547     if (r == -1)
3548       return -1;
3549   }
3550   /* TestOutputListOfDevices for pvremove (0) */
3551   {
3552     char device[] = "/dev/sda";
3553     char lines_0[] = ",";
3554     char *lines[] = {
3555       lines_0,
3556       NULL
3557     };
3558     int r;
3559     suppress_error = 0;
3560     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3561     if (r == -1)
3562       return -1;
3563   }
3564   {
3565     char device[] = "/dev/sda1";
3566     int r;
3567     suppress_error = 0;
3568     r = guestfs_pvcreate (g, device);
3569     if (r == -1)
3570       return -1;
3571   }
3572   {
3573     char volgroup[] = "VG";
3574     char physvols_0[] = "/dev/sda1";
3575     char *physvols[] = {
3576       physvols_0,
3577       NULL
3578     };
3579     int r;
3580     suppress_error = 0;
3581     r = guestfs_vgcreate (g, volgroup, physvols);
3582     if (r == -1)
3583       return -1;
3584   }
3585   {
3586     char logvol[] = "LV1";
3587     char volgroup[] = "VG";
3588     int r;
3589     suppress_error = 0;
3590     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3591     if (r == -1)
3592       return -1;
3593   }
3594   {
3595     char logvol[] = "LV2";
3596     char volgroup[] = "VG";
3597     int r;
3598     suppress_error = 0;
3599     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3600     if (r == -1)
3601       return -1;
3602   }
3603   {
3604     char vgname[] = "VG";
3605     int r;
3606     suppress_error = 0;
3607     r = guestfs_vgremove (g, vgname);
3608     if (r == -1)
3609       return -1;
3610   }
3611   {
3612     char device[] = "/dev/sda1";
3613     int r;
3614     suppress_error = 0;
3615     r = guestfs_pvremove (g, device);
3616     if (r == -1)
3617       return -1;
3618   }
3619   {
3620     char **r;
3621     int i;
3622     suppress_error = 0;
3623     r = guestfs_lvs (g);
3624     if (r == NULL)
3625       return -1;
3626     if (r[0] != NULL) {
3627       fprintf (stderr, "test_pvremove_0: extra elements returned from command\n");
3628       print_strings (r);
3629       return -1;
3630     }
3631     for (i = 0; r[i] != NULL; ++i)
3632       free (r[i]);
3633     free (r);
3634   }
3635   return 0;
3636 }
3637
3638 static int test_pvremove_1_skip (void)
3639 {
3640   const char *str;
3641
3642   str = getenv ("SKIP_TEST_PVREMOVE_1");
3643   if (str && strcmp (str, "1") == 0) return 1;
3644   str = getenv ("SKIP_TEST_PVREMOVE");
3645   if (str && strcmp (str, "1") == 0) return 1;
3646   return 0;
3647 }
3648
3649 static int test_pvremove_1 (void)
3650 {
3651   if (test_pvremove_1_skip ()) {
3652     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_1");
3653     return 0;
3654   }
3655
3656   /* InitNone|InitEmpty for test_pvremove_1 */
3657   {
3658     char device[] = "/dev/sda";
3659     int r;
3660     suppress_error = 0;
3661     r = guestfs_blockdev_setrw (g, device);
3662     if (r == -1)
3663       return -1;
3664   }
3665   {
3666     int r;
3667     suppress_error = 0;
3668     r = guestfs_umount_all (g);
3669     if (r == -1)
3670       return -1;
3671   }
3672   {
3673     int r;
3674     suppress_error = 0;
3675     r = guestfs_lvm_remove_all (g);
3676     if (r == -1)
3677       return -1;
3678   }
3679   /* TestOutputListOfDevices for pvremove (1) */
3680   {
3681     char device[] = "/dev/sda";
3682     char lines_0[] = ",";
3683     char *lines[] = {
3684       lines_0,
3685       NULL
3686     };
3687     int r;
3688     suppress_error = 0;
3689     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3690     if (r == -1)
3691       return -1;
3692   }
3693   {
3694     char device[] = "/dev/sda1";
3695     int r;
3696     suppress_error = 0;
3697     r = guestfs_pvcreate (g, device);
3698     if (r == -1)
3699       return -1;
3700   }
3701   {
3702     char volgroup[] = "VG";
3703     char physvols_0[] = "/dev/sda1";
3704     char *physvols[] = {
3705       physvols_0,
3706       NULL
3707     };
3708     int r;
3709     suppress_error = 0;
3710     r = guestfs_vgcreate (g, volgroup, physvols);
3711     if (r == -1)
3712       return -1;
3713   }
3714   {
3715     char logvol[] = "LV1";
3716     char volgroup[] = "VG";
3717     int r;
3718     suppress_error = 0;
3719     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3720     if (r == -1)
3721       return -1;
3722   }
3723   {
3724     char logvol[] = "LV2";
3725     char volgroup[] = "VG";
3726     int r;
3727     suppress_error = 0;
3728     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3729     if (r == -1)
3730       return -1;
3731   }
3732   {
3733     char vgname[] = "VG";
3734     int r;
3735     suppress_error = 0;
3736     r = guestfs_vgremove (g, vgname);
3737     if (r == -1)
3738       return -1;
3739   }
3740   {
3741     char device[] = "/dev/sda1";
3742     int r;
3743     suppress_error = 0;
3744     r = guestfs_pvremove (g, device);
3745     if (r == -1)
3746       return -1;
3747   }
3748   {
3749     char **r;
3750     int i;
3751     suppress_error = 0;
3752     r = guestfs_vgs (g);
3753     if (r == NULL)
3754       return -1;
3755     if (r[0] != NULL) {
3756       fprintf (stderr, "test_pvremove_1: extra elements returned from command\n");
3757       print_strings (r);
3758       return -1;
3759     }
3760     for (i = 0; r[i] != NULL; ++i)
3761       free (r[i]);
3762     free (r);
3763   }
3764   return 0;
3765 }
3766
3767 static int test_pvremove_2_skip (void)
3768 {
3769   const char *str;
3770
3771   str = getenv ("SKIP_TEST_PVREMOVE_2");
3772   if (str && strcmp (str, "1") == 0) return 1;
3773   str = getenv ("SKIP_TEST_PVREMOVE");
3774   if (str && strcmp (str, "1") == 0) return 1;
3775   return 0;
3776 }
3777
3778 static int test_pvremove_2 (void)
3779 {
3780   if (test_pvremove_2_skip ()) {
3781     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvremove_2");
3782     return 0;
3783   }
3784
3785   /* InitNone|InitEmpty for test_pvremove_2 */
3786   {
3787     char device[] = "/dev/sda";
3788     int r;
3789     suppress_error = 0;
3790     r = guestfs_blockdev_setrw (g, device);
3791     if (r == -1)
3792       return -1;
3793   }
3794   {
3795     int r;
3796     suppress_error = 0;
3797     r = guestfs_umount_all (g);
3798     if (r == -1)
3799       return -1;
3800   }
3801   {
3802     int r;
3803     suppress_error = 0;
3804     r = guestfs_lvm_remove_all (g);
3805     if (r == -1)
3806       return -1;
3807   }
3808   /* TestOutputListOfDevices for pvremove (2) */
3809   {
3810     char device[] = "/dev/sda";
3811     char lines_0[] = ",";
3812     char *lines[] = {
3813       lines_0,
3814       NULL
3815     };
3816     int r;
3817     suppress_error = 0;
3818     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3819     if (r == -1)
3820       return -1;
3821   }
3822   {
3823     char device[] = "/dev/sda1";
3824     int r;
3825     suppress_error = 0;
3826     r = guestfs_pvcreate (g, device);
3827     if (r == -1)
3828       return -1;
3829   }
3830   {
3831     char volgroup[] = "VG";
3832     char physvols_0[] = "/dev/sda1";
3833     char *physvols[] = {
3834       physvols_0,
3835       NULL
3836     };
3837     int r;
3838     suppress_error = 0;
3839     r = guestfs_vgcreate (g, volgroup, physvols);
3840     if (r == -1)
3841       return -1;
3842   }
3843   {
3844     char logvol[] = "LV1";
3845     char volgroup[] = "VG";
3846     int r;
3847     suppress_error = 0;
3848     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3849     if (r == -1)
3850       return -1;
3851   }
3852   {
3853     char logvol[] = "LV2";
3854     char volgroup[] = "VG";
3855     int r;
3856     suppress_error = 0;
3857     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3858     if (r == -1)
3859       return -1;
3860   }
3861   {
3862     char vgname[] = "VG";
3863     int r;
3864     suppress_error = 0;
3865     r = guestfs_vgremove (g, vgname);
3866     if (r == -1)
3867       return -1;
3868   }
3869   {
3870     char device[] = "/dev/sda1";
3871     int r;
3872     suppress_error = 0;
3873     r = guestfs_pvremove (g, device);
3874     if (r == -1)
3875       return -1;
3876   }
3877   {
3878     char **r;
3879     int i;
3880     suppress_error = 0;
3881     r = guestfs_pvs (g);
3882     if (r == NULL)
3883       return -1;
3884     if (r[0] != NULL) {
3885       fprintf (stderr, "test_pvremove_2: extra elements returned from command\n");
3886       print_strings (r);
3887       return -1;
3888     }
3889     for (i = 0; r[i] != NULL; ++i)
3890       free (r[i]);
3891     free (r);
3892   }
3893   return 0;
3894 }
3895
3896 static int test_vgremove_0_skip (void)
3897 {
3898   const char *str;
3899
3900   str = getenv ("SKIP_TEST_VGREMOVE_0");
3901   if (str && strcmp (str, "1") == 0) return 1;
3902   str = getenv ("SKIP_TEST_VGREMOVE");
3903   if (str && strcmp (str, "1") == 0) return 1;
3904   return 0;
3905 }
3906
3907 static int test_vgremove_0 (void)
3908 {
3909   if (test_vgremove_0_skip ()) {
3910     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgremove_0");
3911     return 0;
3912   }
3913
3914   /* InitNone|InitEmpty for test_vgremove_0 */
3915   {
3916     char device[] = "/dev/sda";
3917     int r;
3918     suppress_error = 0;
3919     r = guestfs_blockdev_setrw (g, device);
3920     if (r == -1)
3921       return -1;
3922   }
3923   {
3924     int r;
3925     suppress_error = 0;
3926     r = guestfs_umount_all (g);
3927     if (r == -1)
3928       return -1;
3929   }
3930   {
3931     int r;
3932     suppress_error = 0;
3933     r = guestfs_lvm_remove_all (g);
3934     if (r == -1)
3935       return -1;
3936   }
3937   /* TestOutputList for vgremove (0) */
3938   {
3939     char device[] = "/dev/sda";
3940     char lines_0[] = ",";
3941     char *lines[] = {
3942       lines_0,
3943       NULL
3944     };
3945     int r;
3946     suppress_error = 0;
3947     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3948     if (r == -1)
3949       return -1;
3950   }
3951   {
3952     char device[] = "/dev/sda1";
3953     int r;
3954     suppress_error = 0;
3955     r = guestfs_pvcreate (g, device);
3956     if (r == -1)
3957       return -1;
3958   }
3959   {
3960     char volgroup[] = "VG";
3961     char physvols_0[] = "/dev/sda1";
3962     char *physvols[] = {
3963       physvols_0,
3964       NULL
3965     };
3966     int r;
3967     suppress_error = 0;
3968     r = guestfs_vgcreate (g, volgroup, physvols);
3969     if (r == -1)
3970       return -1;
3971   }
3972   {
3973     char logvol[] = "LV1";
3974     char volgroup[] = "VG";
3975     int r;
3976     suppress_error = 0;
3977     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3978     if (r == -1)
3979       return -1;
3980   }
3981   {
3982     char logvol[] = "LV2";
3983     char volgroup[] = "VG";
3984     int r;
3985     suppress_error = 0;
3986     r = guestfs_lvcreate (g, logvol, volgroup, 50);
3987     if (r == -1)
3988       return -1;
3989   }
3990   {
3991     char vgname[] = "VG";
3992     int r;
3993     suppress_error = 0;
3994     r = guestfs_vgremove (g, vgname);
3995     if (r == -1)
3996       return -1;
3997   }
3998   {
3999     char **r;
4000     int i;
4001     suppress_error = 0;
4002     r = guestfs_lvs (g);
4003     if (r == NULL)
4004       return -1;
4005     if (r[0] != NULL) {
4006       fprintf (stderr, "test_vgremove_0: extra elements returned from command\n");
4007       print_strings (r);
4008       return -1;
4009     }
4010     for (i = 0; r[i] != NULL; ++i)
4011       free (r[i]);
4012     free (r);
4013   }
4014   return 0;
4015 }
4016
4017 static int test_vgremove_1_skip (void)
4018 {
4019   const char *str;
4020
4021   str = getenv ("SKIP_TEST_VGREMOVE_1");
4022   if (str && strcmp (str, "1") == 0) return 1;
4023   str = getenv ("SKIP_TEST_VGREMOVE");
4024   if (str && strcmp (str, "1") == 0) return 1;
4025   return 0;
4026 }
4027
4028 static int test_vgremove_1 (void)
4029 {
4030   if (test_vgremove_1_skip ()) {
4031     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgremove_1");
4032     return 0;
4033   }
4034
4035   /* InitNone|InitEmpty for test_vgremove_1 */
4036   {
4037     char device[] = "/dev/sda";
4038     int r;
4039     suppress_error = 0;
4040     r = guestfs_blockdev_setrw (g, device);
4041     if (r == -1)
4042       return -1;
4043   }
4044   {
4045     int r;
4046     suppress_error = 0;
4047     r = guestfs_umount_all (g);
4048     if (r == -1)
4049       return -1;
4050   }
4051   {
4052     int r;
4053     suppress_error = 0;
4054     r = guestfs_lvm_remove_all (g);
4055     if (r == -1)
4056       return -1;
4057   }
4058   /* TestOutputList for vgremove (1) */
4059   {
4060     char device[] = "/dev/sda";
4061     char lines_0[] = ",";
4062     char *lines[] = {
4063       lines_0,
4064       NULL
4065     };
4066     int r;
4067     suppress_error = 0;
4068     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4069     if (r == -1)
4070       return -1;
4071   }
4072   {
4073     char device[] = "/dev/sda1";
4074     int r;
4075     suppress_error = 0;
4076     r = guestfs_pvcreate (g, device);
4077     if (r == -1)
4078       return -1;
4079   }
4080   {
4081     char volgroup[] = "VG";
4082     char physvols_0[] = "/dev/sda1";
4083     char *physvols[] = {
4084       physvols_0,
4085       NULL
4086     };
4087     int r;
4088     suppress_error = 0;
4089     r = guestfs_vgcreate (g, volgroup, physvols);
4090     if (r == -1)
4091       return -1;
4092   }
4093   {
4094     char logvol[] = "LV1";
4095     char volgroup[] = "VG";
4096     int r;
4097     suppress_error = 0;
4098     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4099     if (r == -1)
4100       return -1;
4101   }
4102   {
4103     char logvol[] = "LV2";
4104     char volgroup[] = "VG";
4105     int r;
4106     suppress_error = 0;
4107     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4108     if (r == -1)
4109       return -1;
4110   }
4111   {
4112     char vgname[] = "VG";
4113     int r;
4114     suppress_error = 0;
4115     r = guestfs_vgremove (g, vgname);
4116     if (r == -1)
4117       return -1;
4118   }
4119   {
4120     char **r;
4121     int i;
4122     suppress_error = 0;
4123     r = guestfs_vgs (g);
4124     if (r == NULL)
4125       return -1;
4126     if (r[0] != NULL) {
4127       fprintf (stderr, "test_vgremove_1: extra elements returned from command\n");
4128       print_strings (r);
4129       return -1;
4130     }
4131     for (i = 0; r[i] != NULL; ++i)
4132       free (r[i]);
4133     free (r);
4134   }
4135   return 0;
4136 }
4137
4138 static int test_lvremove_0_skip (void)
4139 {
4140   const char *str;
4141
4142   str = getenv ("SKIP_TEST_LVREMOVE_0");
4143   if (str && strcmp (str, "1") == 0) return 1;
4144   str = getenv ("SKIP_TEST_LVREMOVE");
4145   if (str && strcmp (str, "1") == 0) return 1;
4146   return 0;
4147 }
4148
4149 static int test_lvremove_0 (void)
4150 {
4151   if (test_lvremove_0_skip ()) {
4152     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_0");
4153     return 0;
4154   }
4155
4156   /* InitNone|InitEmpty for test_lvremove_0 */
4157   {
4158     char device[] = "/dev/sda";
4159     int r;
4160     suppress_error = 0;
4161     r = guestfs_blockdev_setrw (g, device);
4162     if (r == -1)
4163       return -1;
4164   }
4165   {
4166     int r;
4167     suppress_error = 0;
4168     r = guestfs_umount_all (g);
4169     if (r == -1)
4170       return -1;
4171   }
4172   {
4173     int r;
4174     suppress_error = 0;
4175     r = guestfs_lvm_remove_all (g);
4176     if (r == -1)
4177       return -1;
4178   }
4179   /* TestOutputList for lvremove (0) */
4180   {
4181     char device[] = "/dev/sda";
4182     char lines_0[] = ",";
4183     char *lines[] = {
4184       lines_0,
4185       NULL
4186     };
4187     int r;
4188     suppress_error = 0;
4189     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4190     if (r == -1)
4191       return -1;
4192   }
4193   {
4194     char device[] = "/dev/sda1";
4195     int r;
4196     suppress_error = 0;
4197     r = guestfs_pvcreate (g, device);
4198     if (r == -1)
4199       return -1;
4200   }
4201   {
4202     char volgroup[] = "VG";
4203     char physvols_0[] = "/dev/sda1";
4204     char *physvols[] = {
4205       physvols_0,
4206       NULL
4207     };
4208     int r;
4209     suppress_error = 0;
4210     r = guestfs_vgcreate (g, volgroup, physvols);
4211     if (r == -1)
4212       return -1;
4213   }
4214   {
4215     char logvol[] = "LV1";
4216     char volgroup[] = "VG";
4217     int r;
4218     suppress_error = 0;
4219     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4220     if (r == -1)
4221       return -1;
4222   }
4223   {
4224     char logvol[] = "LV2";
4225     char volgroup[] = "VG";
4226     int r;
4227     suppress_error = 0;
4228     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4229     if (r == -1)
4230       return -1;
4231   }
4232   {
4233     char device[] = "/dev/VG/LV1";
4234     int r;
4235     suppress_error = 0;
4236     r = guestfs_lvremove (g, device);
4237     if (r == -1)
4238       return -1;
4239   }
4240   {
4241     char **r;
4242     int i;
4243     suppress_error = 0;
4244     r = guestfs_lvs (g);
4245     if (r == NULL)
4246       return -1;
4247     if (!r[0]) {
4248       fprintf (stderr, "test_lvremove_0: short list returned from command\n");
4249       print_strings (r);
4250       return -1;
4251     }
4252     {
4253       char expected[] = "/dev/VG/LV2";
4254       if (strcmp (r[0], expected) != 0) {
4255         fprintf (stderr, "test_lvremove_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
4256         return -1;
4257       }
4258     }
4259     if (r[1] != NULL) {
4260       fprintf (stderr, "test_lvremove_0: extra elements returned from command\n");
4261       print_strings (r);
4262       return -1;
4263     }
4264     for (i = 0; r[i] != NULL; ++i)
4265       free (r[i]);
4266     free (r);
4267   }
4268   return 0;
4269 }
4270
4271 static int test_lvremove_1_skip (void)
4272 {
4273   const char *str;
4274
4275   str = getenv ("SKIP_TEST_LVREMOVE_1");
4276   if (str && strcmp (str, "1") == 0) return 1;
4277   str = getenv ("SKIP_TEST_LVREMOVE");
4278   if (str && strcmp (str, "1") == 0) return 1;
4279   return 0;
4280 }
4281
4282 static int test_lvremove_1 (void)
4283 {
4284   if (test_lvremove_1_skip ()) {
4285     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_1");
4286     return 0;
4287   }
4288
4289   /* InitNone|InitEmpty for test_lvremove_1 */
4290   {
4291     char device[] = "/dev/sda";
4292     int r;
4293     suppress_error = 0;
4294     r = guestfs_blockdev_setrw (g, device);
4295     if (r == -1)
4296       return -1;
4297   }
4298   {
4299     int r;
4300     suppress_error = 0;
4301     r = guestfs_umount_all (g);
4302     if (r == -1)
4303       return -1;
4304   }
4305   {
4306     int r;
4307     suppress_error = 0;
4308     r = guestfs_lvm_remove_all (g);
4309     if (r == -1)
4310       return -1;
4311   }
4312   /* TestOutputList for lvremove (1) */
4313   {
4314     char device[] = "/dev/sda";
4315     char lines_0[] = ",";
4316     char *lines[] = {
4317       lines_0,
4318       NULL
4319     };
4320     int r;
4321     suppress_error = 0;
4322     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4323     if (r == -1)
4324       return -1;
4325   }
4326   {
4327     char device[] = "/dev/sda1";
4328     int r;
4329     suppress_error = 0;
4330     r = guestfs_pvcreate (g, device);
4331     if (r == -1)
4332       return -1;
4333   }
4334   {
4335     char volgroup[] = "VG";
4336     char physvols_0[] = "/dev/sda1";
4337     char *physvols[] = {
4338       physvols_0,
4339       NULL
4340     };
4341     int r;
4342     suppress_error = 0;
4343     r = guestfs_vgcreate (g, volgroup, physvols);
4344     if (r == -1)
4345       return -1;
4346   }
4347   {
4348     char logvol[] = "LV1";
4349     char volgroup[] = "VG";
4350     int r;
4351     suppress_error = 0;
4352     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4353     if (r == -1)
4354       return -1;
4355   }
4356   {
4357     char logvol[] = "LV2";
4358     char volgroup[] = "VG";
4359     int r;
4360     suppress_error = 0;
4361     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4362     if (r == -1)
4363       return -1;
4364   }
4365   {
4366     char device[] = "/dev/VG";
4367     int r;
4368     suppress_error = 0;
4369     r = guestfs_lvremove (g, device);
4370     if (r == -1)
4371       return -1;
4372   }
4373   {
4374     char **r;
4375     int i;
4376     suppress_error = 0;
4377     r = guestfs_lvs (g);
4378     if (r == NULL)
4379       return -1;
4380     if (r[0] != NULL) {
4381       fprintf (stderr, "test_lvremove_1: extra elements returned from command\n");
4382       print_strings (r);
4383       return -1;
4384     }
4385     for (i = 0; r[i] != NULL; ++i)
4386       free (r[i]);
4387     free (r);
4388   }
4389   return 0;
4390 }
4391
4392 static int test_lvremove_2_skip (void)
4393 {
4394   const char *str;
4395
4396   str = getenv ("SKIP_TEST_LVREMOVE_2");
4397   if (str && strcmp (str, "1") == 0) return 1;
4398   str = getenv ("SKIP_TEST_LVREMOVE");
4399   if (str && strcmp (str, "1") == 0) return 1;
4400   return 0;
4401 }
4402
4403 static int test_lvremove_2 (void)
4404 {
4405   if (test_lvremove_2_skip ()) {
4406     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvremove_2");
4407     return 0;
4408   }
4409
4410   /* InitNone|InitEmpty for test_lvremove_2 */
4411   {
4412     char device[] = "/dev/sda";
4413     int r;
4414     suppress_error = 0;
4415     r = guestfs_blockdev_setrw (g, device);
4416     if (r == -1)
4417       return -1;
4418   }
4419   {
4420     int r;
4421     suppress_error = 0;
4422     r = guestfs_umount_all (g);
4423     if (r == -1)
4424       return -1;
4425   }
4426   {
4427     int r;
4428     suppress_error = 0;
4429     r = guestfs_lvm_remove_all (g);
4430     if (r == -1)
4431       return -1;
4432   }
4433   /* TestOutputList for lvremove (2) */
4434   {
4435     char device[] = "/dev/sda";
4436     char lines_0[] = ",";
4437     char *lines[] = {
4438       lines_0,
4439       NULL
4440     };
4441     int r;
4442     suppress_error = 0;
4443     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4444     if (r == -1)
4445       return -1;
4446   }
4447   {
4448     char device[] = "/dev/sda1";
4449     int r;
4450     suppress_error = 0;
4451     r = guestfs_pvcreate (g, device);
4452     if (r == -1)
4453       return -1;
4454   }
4455   {
4456     char volgroup[] = "VG";
4457     char physvols_0[] = "/dev/sda1";
4458     char *physvols[] = {
4459       physvols_0,
4460       NULL
4461     };
4462     int r;
4463     suppress_error = 0;
4464     r = guestfs_vgcreate (g, volgroup, physvols);
4465     if (r == -1)
4466       return -1;
4467   }
4468   {
4469     char logvol[] = "LV1";
4470     char volgroup[] = "VG";
4471     int r;
4472     suppress_error = 0;
4473     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4474     if (r == -1)
4475       return -1;
4476   }
4477   {
4478     char logvol[] = "LV2";
4479     char volgroup[] = "VG";
4480     int r;
4481     suppress_error = 0;
4482     r = guestfs_lvcreate (g, logvol, volgroup, 50);
4483     if (r == -1)
4484       return -1;
4485   }
4486   {
4487     char device[] = "/dev/VG";
4488     int r;
4489     suppress_error = 0;
4490     r = guestfs_lvremove (g, device);
4491     if (r == -1)
4492       return -1;
4493   }
4494   {
4495     char **r;
4496     int i;
4497     suppress_error = 0;
4498     r = guestfs_vgs (g);
4499     if (r == NULL)
4500       return -1;
4501     if (!r[0]) {
4502       fprintf (stderr, "test_lvremove_2: short list returned from command\n");
4503       print_strings (r);
4504       return -1;
4505     }
4506     {
4507       char expected[] = "VG";
4508       if (strcmp (r[0], expected) != 0) {
4509         fprintf (stderr, "test_lvremove_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
4510         return -1;
4511       }
4512     }
4513     if (r[1] != NULL) {
4514       fprintf (stderr, "test_lvremove_2: extra elements returned from command\n");
4515       print_strings (r);
4516       return -1;
4517     }
4518     for (i = 0; r[i] != NULL; ++i)
4519       free (r[i]);
4520     free (r);
4521   }
4522   return 0;
4523 }
4524
4525 static int test_mount_ro_0_skip (void)
4526 {
4527   const char *str;
4528
4529   str = getenv ("SKIP_TEST_MOUNT_RO_0");
4530   if (str && strcmp (str, "1") == 0) return 1;
4531   str = getenv ("SKIP_TEST_MOUNT_RO");
4532   if (str && strcmp (str, "1") == 0) return 1;
4533   return 0;
4534 }
4535
4536 static int test_mount_ro_0 (void)
4537 {
4538   if (test_mount_ro_0_skip ()) {
4539     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_ro_0");
4540     return 0;
4541   }
4542
4543   /* InitBasicFS for test_mount_ro_0: create ext2 on /dev/sda1 */
4544   {
4545     char device[] = "/dev/sda";
4546     int r;
4547     suppress_error = 0;
4548     r = guestfs_blockdev_setrw (g, device);
4549     if (r == -1)
4550       return -1;
4551   }
4552   {
4553     int r;
4554     suppress_error = 0;
4555     r = guestfs_umount_all (g);
4556     if (r == -1)
4557       return -1;
4558   }
4559   {
4560     int r;
4561     suppress_error = 0;
4562     r = guestfs_lvm_remove_all (g);
4563     if (r == -1)
4564       return -1;
4565   }
4566   {
4567     char device[] = "/dev/sda";
4568     char lines_0[] = ",";
4569     char *lines[] = {
4570       lines_0,
4571       NULL
4572     };
4573     int r;
4574     suppress_error = 0;
4575     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4576     if (r == -1)
4577       return -1;
4578   }
4579   {
4580     char fstype[] = "ext2";
4581     char device[] = "/dev/sda1";
4582     int r;
4583     suppress_error = 0;
4584     r = guestfs_mkfs (g, fstype, device);
4585     if (r == -1)
4586       return -1;
4587   }
4588   {
4589     char device[] = "/dev/sda1";
4590     char mountpoint[] = "/";
4591     int r;
4592     suppress_error = 0;
4593     r = guestfs_mount (g, device, mountpoint);
4594     if (r == -1)
4595       return -1;
4596   }
4597   /* TestLastFail for mount_ro (0) */
4598   {
4599     char pathordevice[] = "/";
4600     int r;
4601     suppress_error = 0;
4602     r = guestfs_umount (g, pathordevice);
4603     if (r == -1)
4604       return -1;
4605   }
4606   {
4607     char device[] = "/dev/sda1";
4608     char mountpoint[] = "/";
4609     int r;
4610     suppress_error = 0;
4611     r = guestfs_mount_ro (g, device, mountpoint);
4612     if (r == -1)
4613       return -1;
4614   }
4615   {
4616     char path[] = "/new";
4617     int r;
4618     suppress_error = 1;
4619     r = guestfs_touch (g, path);
4620     if (r != -1)
4621       return -1;
4622   }
4623   return 0;
4624 }
4625
4626 static int test_mount_ro_1_skip (void)
4627 {
4628   const char *str;
4629
4630   str = getenv ("SKIP_TEST_MOUNT_RO_1");
4631   if (str && strcmp (str, "1") == 0) return 1;
4632   str = getenv ("SKIP_TEST_MOUNT_RO");
4633   if (str && strcmp (str, "1") == 0) return 1;
4634   return 0;
4635 }
4636
4637 static int test_mount_ro_1 (void)
4638 {
4639   if (test_mount_ro_1_skip ()) {
4640     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_ro_1");
4641     return 0;
4642   }
4643
4644   /* InitBasicFS for test_mount_ro_1: create ext2 on /dev/sda1 */
4645   {
4646     char device[] = "/dev/sda";
4647     int r;
4648     suppress_error = 0;
4649     r = guestfs_blockdev_setrw (g, device);
4650     if (r == -1)
4651       return -1;
4652   }
4653   {
4654     int r;
4655     suppress_error = 0;
4656     r = guestfs_umount_all (g);
4657     if (r == -1)
4658       return -1;
4659   }
4660   {
4661     int r;
4662     suppress_error = 0;
4663     r = guestfs_lvm_remove_all (g);
4664     if (r == -1)
4665       return -1;
4666   }
4667   {
4668     char device[] = "/dev/sda";
4669     char lines_0[] = ",";
4670     char *lines[] = {
4671       lines_0,
4672       NULL
4673     };
4674     int r;
4675     suppress_error = 0;
4676     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4677     if (r == -1)
4678       return -1;
4679   }
4680   {
4681     char fstype[] = "ext2";
4682     char device[] = "/dev/sda1";
4683     int r;
4684     suppress_error = 0;
4685     r = guestfs_mkfs (g, fstype, device);
4686     if (r == -1)
4687       return -1;
4688   }
4689   {
4690     char device[] = "/dev/sda1";
4691     char mountpoint[] = "/";
4692     int r;
4693     suppress_error = 0;
4694     r = guestfs_mount (g, device, mountpoint);
4695     if (r == -1)
4696       return -1;
4697   }
4698   /* TestOutput for mount_ro (1) */
4699   char expected[] = "data";
4700   {
4701     char path[] = "/new";
4702     char content[] = "data";
4703     int r;
4704     suppress_error = 0;
4705     r = guestfs_write_file (g, path, content, 0);
4706     if (r == -1)
4707       return -1;
4708   }
4709   {
4710     char pathordevice[] = "/";
4711     int r;
4712     suppress_error = 0;
4713     r = guestfs_umount (g, pathordevice);
4714     if (r == -1)
4715       return -1;
4716   }
4717   {
4718     char device[] = "/dev/sda1";
4719     char mountpoint[] = "/";
4720     int r;
4721     suppress_error = 0;
4722     r = guestfs_mount_ro (g, device, mountpoint);
4723     if (r == -1)
4724       return -1;
4725   }
4726   {
4727     char path[] = "/new";
4728     char *r;
4729     suppress_error = 0;
4730     r = guestfs_cat (g, path);
4731     if (r == NULL)
4732       return -1;
4733     if (strcmp (r, expected) != 0) {
4734       fprintf (stderr, "test_mount_ro_1: expected \"%s\" but got \"%s\"\n", expected, r);
4735       return -1;
4736     }
4737     free (r);
4738   }
4739   return 0;
4740 }
4741
4742 static int test_tgz_in_0_skip (void)
4743 {
4744   const char *str;
4745
4746   str = getenv ("SKIP_TEST_TGZ_IN_0");
4747   if (str && strcmp (str, "1") == 0) return 1;
4748   str = getenv ("SKIP_TEST_TGZ_IN");
4749   if (str && strcmp (str, "1") == 0) return 1;
4750   return 0;
4751 }
4752
4753 static int test_tgz_in_0 (void)
4754 {
4755   if (test_tgz_in_0_skip ()) {
4756     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_tgz_in_0");
4757     return 0;
4758   }
4759
4760   /* InitBasicFS for test_tgz_in_0: create ext2 on /dev/sda1 */
4761   {
4762     char device[] = "/dev/sda";
4763     int r;
4764     suppress_error = 0;
4765     r = guestfs_blockdev_setrw (g, device);
4766     if (r == -1)
4767       return -1;
4768   }
4769   {
4770     int r;
4771     suppress_error = 0;
4772     r = guestfs_umount_all (g);
4773     if (r == -1)
4774       return -1;
4775   }
4776   {
4777     int r;
4778     suppress_error = 0;
4779     r = guestfs_lvm_remove_all (g);
4780     if (r == -1)
4781       return -1;
4782   }
4783   {
4784     char device[] = "/dev/sda";
4785     char lines_0[] = ",";
4786     char *lines[] = {
4787       lines_0,
4788       NULL
4789     };
4790     int r;
4791     suppress_error = 0;
4792     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4793     if (r == -1)
4794       return -1;
4795   }
4796   {
4797     char fstype[] = "ext2";
4798     char device[] = "/dev/sda1";
4799     int r;
4800     suppress_error = 0;
4801     r = guestfs_mkfs (g, fstype, device);
4802     if (r == -1)
4803       return -1;
4804   }
4805   {
4806     char device[] = "/dev/sda1";
4807     char mountpoint[] = "/";
4808     int r;
4809     suppress_error = 0;
4810     r = guestfs_mount (g, device, mountpoint);
4811     if (r == -1)
4812       return -1;
4813   }
4814   /* TestOutput for tgz_in (0) */
4815   char expected[] = "hello\n";
4816   {
4817     char directory[] = "/";
4818     int r;
4819     suppress_error = 0;
4820     r = guestfs_tgz_in (g, "../images/helloworld.tar.gz", directory);
4821     if (r == -1)
4822       return -1;
4823   }
4824   {
4825     char path[] = "/hello";
4826     char *r;
4827     suppress_error = 0;
4828     r = guestfs_cat (g, path);
4829     if (r == NULL)
4830       return -1;
4831     if (strcmp (r, expected) != 0) {
4832       fprintf (stderr, "test_tgz_in_0: expected \"%s\" but got \"%s\"\n", expected, r);
4833       return -1;
4834     }
4835     free (r);
4836   }
4837   return 0;
4838 }
4839
4840 static int test_tar_in_0_skip (void)
4841 {
4842   const char *str;
4843
4844   str = getenv ("SKIP_TEST_TAR_IN_0");
4845   if (str && strcmp (str, "1") == 0) return 1;
4846   str = getenv ("SKIP_TEST_TAR_IN");
4847   if (str && strcmp (str, "1") == 0) return 1;
4848   return 0;
4849 }
4850
4851 static int test_tar_in_0 (void)
4852 {
4853   if (test_tar_in_0_skip ()) {
4854     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_tar_in_0");
4855     return 0;
4856   }
4857
4858   /* InitBasicFS for test_tar_in_0: create ext2 on /dev/sda1 */
4859   {
4860     char device[] = "/dev/sda";
4861     int r;
4862     suppress_error = 0;
4863     r = guestfs_blockdev_setrw (g, device);
4864     if (r == -1)
4865       return -1;
4866   }
4867   {
4868     int r;
4869     suppress_error = 0;
4870     r = guestfs_umount_all (g);
4871     if (r == -1)
4872       return -1;
4873   }
4874   {
4875     int r;
4876     suppress_error = 0;
4877     r = guestfs_lvm_remove_all (g);
4878     if (r == -1)
4879       return -1;
4880   }
4881   {
4882     char device[] = "/dev/sda";
4883     char lines_0[] = ",";
4884     char *lines[] = {
4885       lines_0,
4886       NULL
4887     };
4888     int r;
4889     suppress_error = 0;
4890     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4891     if (r == -1)
4892       return -1;
4893   }
4894   {
4895     char fstype[] = "ext2";
4896     char device[] = "/dev/sda1";
4897     int r;
4898     suppress_error = 0;
4899     r = guestfs_mkfs (g, fstype, device);
4900     if (r == -1)
4901       return -1;
4902   }
4903   {
4904     char device[] = "/dev/sda1";
4905     char mountpoint[] = "/";
4906     int r;
4907     suppress_error = 0;
4908     r = guestfs_mount (g, device, mountpoint);
4909     if (r == -1)
4910       return -1;
4911   }
4912   /* TestOutput for tar_in (0) */
4913   char expected[] = "hello\n";
4914   {
4915     char directory[] = "/";
4916     int r;
4917     suppress_error = 0;
4918     r = guestfs_tar_in (g, "../images/helloworld.tar", directory);
4919     if (r == -1)
4920       return -1;
4921   }
4922   {
4923     char path[] = "/hello";
4924     char *r;
4925     suppress_error = 0;
4926     r = guestfs_cat (g, path);
4927     if (r == NULL)
4928       return -1;
4929     if (strcmp (r, expected) != 0) {
4930       fprintf (stderr, "test_tar_in_0: expected \"%s\" but got \"%s\"\n", expected, r);
4931       return -1;
4932     }
4933     free (r);
4934   }
4935   return 0;
4936 }
4937
4938 static int test_checksum_0_skip (void)
4939 {
4940   const char *str;
4941
4942   str = getenv ("SKIP_TEST_CHECKSUM_0");
4943   if (str && strcmp (str, "1") == 0) return 1;
4944   str = getenv ("SKIP_TEST_CHECKSUM");
4945   if (str && strcmp (str, "1") == 0) return 1;
4946   return 0;
4947 }
4948
4949 static int test_checksum_0 (void)
4950 {
4951   if (test_checksum_0_skip ()) {
4952     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_0");
4953     return 0;
4954   }
4955
4956   /* InitBasicFS for test_checksum_0: create ext2 on /dev/sda1 */
4957   {
4958     char device[] = "/dev/sda";
4959     int r;
4960     suppress_error = 0;
4961     r = guestfs_blockdev_setrw (g, device);
4962     if (r == -1)
4963       return -1;
4964   }
4965   {
4966     int r;
4967     suppress_error = 0;
4968     r = guestfs_umount_all (g);
4969     if (r == -1)
4970       return -1;
4971   }
4972   {
4973     int r;
4974     suppress_error = 0;
4975     r = guestfs_lvm_remove_all (g);
4976     if (r == -1)
4977       return -1;
4978   }
4979   {
4980     char device[] = "/dev/sda";
4981     char lines_0[] = ",";
4982     char *lines[] = {
4983       lines_0,
4984       NULL
4985     };
4986     int r;
4987     suppress_error = 0;
4988     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4989     if (r == -1)
4990       return -1;
4991   }
4992   {
4993     char fstype[] = "ext2";
4994     char device[] = "/dev/sda1";
4995     int r;
4996     suppress_error = 0;
4997     r = guestfs_mkfs (g, fstype, device);
4998     if (r == -1)
4999       return -1;
5000   }
5001   {
5002     char device[] = "/dev/sda1";
5003     char mountpoint[] = "/";
5004     int r;
5005     suppress_error = 0;
5006     r = guestfs_mount (g, device, mountpoint);
5007     if (r == -1)
5008       return -1;
5009   }
5010   /* TestOutput for checksum (0) */
5011   char expected[] = "935282863";
5012   {
5013     char path[] = "/new";
5014     char content[] = "test\n";
5015     int r;
5016     suppress_error = 0;
5017     r = guestfs_write_file (g, path, content, 0);
5018     if (r == -1)
5019       return -1;
5020   }
5021   {
5022     char csumtype[] = "crc";
5023     char path[] = "/new";
5024     char *r;
5025     suppress_error = 0;
5026     r = guestfs_checksum (g, csumtype, path);
5027     if (r == NULL)
5028       return -1;
5029     if (strcmp (r, expected) != 0) {
5030       fprintf (stderr, "test_checksum_0: expected \"%s\" but got \"%s\"\n", expected, r);
5031       return -1;
5032     }
5033     free (r);
5034   }
5035   return 0;
5036 }
5037
5038 static int test_checksum_1_skip (void)
5039 {
5040   const char *str;
5041
5042   str = getenv ("SKIP_TEST_CHECKSUM_1");
5043   if (str && strcmp (str, "1") == 0) return 1;
5044   str = getenv ("SKIP_TEST_CHECKSUM");
5045   if (str && strcmp (str, "1") == 0) return 1;
5046   return 0;
5047 }
5048
5049 static int test_checksum_1 (void)
5050 {
5051   if (test_checksum_1_skip ()) {
5052     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_1");
5053     return 0;
5054   }
5055
5056   /* InitBasicFS for test_checksum_1: create ext2 on /dev/sda1 */
5057   {
5058     char device[] = "/dev/sda";
5059     int r;
5060     suppress_error = 0;
5061     r = guestfs_blockdev_setrw (g, device);
5062     if (r == -1)
5063       return -1;
5064   }
5065   {
5066     int r;
5067     suppress_error = 0;
5068     r = guestfs_umount_all (g);
5069     if (r == -1)
5070       return -1;
5071   }
5072   {
5073     int r;
5074     suppress_error = 0;
5075     r = guestfs_lvm_remove_all (g);
5076     if (r == -1)
5077       return -1;
5078   }
5079   {
5080     char device[] = "/dev/sda";
5081     char lines_0[] = ",";
5082     char *lines[] = {
5083       lines_0,
5084       NULL
5085     };
5086     int r;
5087     suppress_error = 0;
5088     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5089     if (r == -1)
5090       return -1;
5091   }
5092   {
5093     char fstype[] = "ext2";
5094     char device[] = "/dev/sda1";
5095     int r;
5096     suppress_error = 0;
5097     r = guestfs_mkfs (g, fstype, device);
5098     if (r == -1)
5099       return -1;
5100   }
5101   {
5102     char device[] = "/dev/sda1";
5103     char mountpoint[] = "/";
5104     int r;
5105     suppress_error = 0;
5106     r = guestfs_mount (g, device, mountpoint);
5107     if (r == -1)
5108       return -1;
5109   }
5110   /* TestLastFail for checksum (1) */
5111   {
5112     char csumtype[] = "crc";
5113     char path[] = "/new";
5114     char *r;
5115     suppress_error = 1;
5116     r = guestfs_checksum (g, csumtype, path);
5117     if (r != NULL)
5118       return -1;
5119     free (r);
5120   }
5121   return 0;
5122 }
5123
5124 static int test_checksum_2_skip (void)
5125 {
5126   const char *str;
5127
5128   str = getenv ("SKIP_TEST_CHECKSUM_2");
5129   if (str && strcmp (str, "1") == 0) return 1;
5130   str = getenv ("SKIP_TEST_CHECKSUM");
5131   if (str && strcmp (str, "1") == 0) return 1;
5132   return 0;
5133 }
5134
5135 static int test_checksum_2 (void)
5136 {
5137   if (test_checksum_2_skip ()) {
5138     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_2");
5139     return 0;
5140   }
5141
5142   /* InitBasicFS for test_checksum_2: create ext2 on /dev/sda1 */
5143   {
5144     char device[] = "/dev/sda";
5145     int r;
5146     suppress_error = 0;
5147     r = guestfs_blockdev_setrw (g, device);
5148     if (r == -1)
5149       return -1;
5150   }
5151   {
5152     int r;
5153     suppress_error = 0;
5154     r = guestfs_umount_all (g);
5155     if (r == -1)
5156       return -1;
5157   }
5158   {
5159     int r;
5160     suppress_error = 0;
5161     r = guestfs_lvm_remove_all (g);
5162     if (r == -1)
5163       return -1;
5164   }
5165   {
5166     char device[] = "/dev/sda";
5167     char lines_0[] = ",";
5168     char *lines[] = {
5169       lines_0,
5170       NULL
5171     };
5172     int r;
5173     suppress_error = 0;
5174     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5175     if (r == -1)
5176       return -1;
5177   }
5178   {
5179     char fstype[] = "ext2";
5180     char device[] = "/dev/sda1";
5181     int r;
5182     suppress_error = 0;
5183     r = guestfs_mkfs (g, fstype, device);
5184     if (r == -1)
5185       return -1;
5186   }
5187   {
5188     char device[] = "/dev/sda1";
5189     char mountpoint[] = "/";
5190     int r;
5191     suppress_error = 0;
5192     r = guestfs_mount (g, device, mountpoint);
5193     if (r == -1)
5194       return -1;
5195   }
5196   /* TestOutput for checksum (2) */
5197   char expected[] = "d8e8fca2dc0f896fd7cb4cb0031ba249";
5198   {
5199     char path[] = "/new";
5200     char content[] = "test\n";
5201     int r;
5202     suppress_error = 0;
5203     r = guestfs_write_file (g, path, content, 0);
5204     if (r == -1)
5205       return -1;
5206   }
5207   {
5208     char csumtype[] = "md5";
5209     char path[] = "/new";
5210     char *r;
5211     suppress_error = 0;
5212     r = guestfs_checksum (g, csumtype, path);
5213     if (r == NULL)
5214       return -1;
5215     if (strcmp (r, expected) != 0) {
5216       fprintf (stderr, "test_checksum_2: expected \"%s\" but got \"%s\"\n", expected, r);
5217       return -1;
5218     }
5219     free (r);
5220   }
5221   return 0;
5222 }
5223
5224 static int test_checksum_3_skip (void)
5225 {
5226   const char *str;
5227
5228   str = getenv ("SKIP_TEST_CHECKSUM_3");
5229   if (str && strcmp (str, "1") == 0) return 1;
5230   str = getenv ("SKIP_TEST_CHECKSUM");
5231   if (str && strcmp (str, "1") == 0) return 1;
5232   return 0;
5233 }
5234
5235 static int test_checksum_3 (void)
5236 {
5237   if (test_checksum_3_skip ()) {
5238     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_3");
5239     return 0;
5240   }
5241
5242   /* InitBasicFS for test_checksum_3: create ext2 on /dev/sda1 */
5243   {
5244     char device[] = "/dev/sda";
5245     int r;
5246     suppress_error = 0;
5247     r = guestfs_blockdev_setrw (g, device);
5248     if (r == -1)
5249       return -1;
5250   }
5251   {
5252     int r;
5253     suppress_error = 0;
5254     r = guestfs_umount_all (g);
5255     if (r == -1)
5256       return -1;
5257   }
5258   {
5259     int r;
5260     suppress_error = 0;
5261     r = guestfs_lvm_remove_all (g);
5262     if (r == -1)
5263       return -1;
5264   }
5265   {
5266     char device[] = "/dev/sda";
5267     char lines_0[] = ",";
5268     char *lines[] = {
5269       lines_0,
5270       NULL
5271     };
5272     int r;
5273     suppress_error = 0;
5274     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5275     if (r == -1)
5276       return -1;
5277   }
5278   {
5279     char fstype[] = "ext2";
5280     char device[] = "/dev/sda1";
5281     int r;
5282     suppress_error = 0;
5283     r = guestfs_mkfs (g, fstype, device);
5284     if (r == -1)
5285       return -1;
5286   }
5287   {
5288     char device[] = "/dev/sda1";
5289     char mountpoint[] = "/";
5290     int r;
5291     suppress_error = 0;
5292     r = guestfs_mount (g, device, mountpoint);
5293     if (r == -1)
5294       return -1;
5295   }
5296   /* TestOutput for checksum (3) */
5297   char expected[] = "4e1243bd22c66e76c2ba9eddc1f91394e57f9f83";
5298   {
5299     char path[] = "/new";
5300     char content[] = "test\n";
5301     int r;
5302     suppress_error = 0;
5303     r = guestfs_write_file (g, path, content, 0);
5304     if (r == -1)
5305       return -1;
5306   }
5307   {
5308     char csumtype[] = "sha1";
5309     char path[] = "/new";
5310     char *r;
5311     suppress_error = 0;
5312     r = guestfs_checksum (g, csumtype, path);
5313     if (r == NULL)
5314       return -1;
5315     if (strcmp (r, expected) != 0) {
5316       fprintf (stderr, "test_checksum_3: expected \"%s\" but got \"%s\"\n", expected, r);
5317       return -1;
5318     }
5319     free (r);
5320   }
5321   return 0;
5322 }
5323
5324 static int test_checksum_4_skip (void)
5325 {
5326   const char *str;
5327
5328   str = getenv ("SKIP_TEST_CHECKSUM_4");
5329   if (str && strcmp (str, "1") == 0) return 1;
5330   str = getenv ("SKIP_TEST_CHECKSUM");
5331   if (str && strcmp (str, "1") == 0) return 1;
5332   return 0;
5333 }
5334
5335 static int test_checksum_4 (void)
5336 {
5337   if (test_checksum_4_skip ()) {
5338     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_4");
5339     return 0;
5340   }
5341
5342   /* InitBasicFS for test_checksum_4: create ext2 on /dev/sda1 */
5343   {
5344     char device[] = "/dev/sda";
5345     int r;
5346     suppress_error = 0;
5347     r = guestfs_blockdev_setrw (g, device);
5348     if (r == -1)
5349       return -1;
5350   }
5351   {
5352     int r;
5353     suppress_error = 0;
5354     r = guestfs_umount_all (g);
5355     if (r == -1)
5356       return -1;
5357   }
5358   {
5359     int r;
5360     suppress_error = 0;
5361     r = guestfs_lvm_remove_all (g);
5362     if (r == -1)
5363       return -1;
5364   }
5365   {
5366     char device[] = "/dev/sda";
5367     char lines_0[] = ",";
5368     char *lines[] = {
5369       lines_0,
5370       NULL
5371     };
5372     int r;
5373     suppress_error = 0;
5374     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5375     if (r == -1)
5376       return -1;
5377   }
5378   {
5379     char fstype[] = "ext2";
5380     char device[] = "/dev/sda1";
5381     int r;
5382     suppress_error = 0;
5383     r = guestfs_mkfs (g, fstype, device);
5384     if (r == -1)
5385       return -1;
5386   }
5387   {
5388     char device[] = "/dev/sda1";
5389     char mountpoint[] = "/";
5390     int r;
5391     suppress_error = 0;
5392     r = guestfs_mount (g, device, mountpoint);
5393     if (r == -1)
5394       return -1;
5395   }
5396   /* TestOutput for checksum (4) */
5397   char expected[] = "52f1bf093f4b7588726035c176c0cdb4376cfea53819f1395ac9e6ec";
5398   {
5399     char path[] = "/new";
5400     char content[] = "test\n";
5401     int r;
5402     suppress_error = 0;
5403     r = guestfs_write_file (g, path, content, 0);
5404     if (r == -1)
5405       return -1;
5406   }
5407   {
5408     char csumtype[] = "sha224";
5409     char path[] = "/new";
5410     char *r;
5411     suppress_error = 0;
5412     r = guestfs_checksum (g, csumtype, path);
5413     if (r == NULL)
5414       return -1;
5415     if (strcmp (r, expected) != 0) {
5416       fprintf (stderr, "test_checksum_4: expected \"%s\" but got \"%s\"\n", expected, r);
5417       return -1;
5418     }
5419     free (r);
5420   }
5421   return 0;
5422 }
5423
5424 static int test_checksum_5_skip (void)
5425 {
5426   const char *str;
5427
5428   str = getenv ("SKIP_TEST_CHECKSUM_5");
5429   if (str && strcmp (str, "1") == 0) return 1;
5430   str = getenv ("SKIP_TEST_CHECKSUM");
5431   if (str && strcmp (str, "1") == 0) return 1;
5432   return 0;
5433 }
5434
5435 static int test_checksum_5 (void)
5436 {
5437   if (test_checksum_5_skip ()) {
5438     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_5");
5439     return 0;
5440   }
5441
5442   /* InitBasicFS for test_checksum_5: create ext2 on /dev/sda1 */
5443   {
5444     char device[] = "/dev/sda";
5445     int r;
5446     suppress_error = 0;
5447     r = guestfs_blockdev_setrw (g, device);
5448     if (r == -1)
5449       return -1;
5450   }
5451   {
5452     int r;
5453     suppress_error = 0;
5454     r = guestfs_umount_all (g);
5455     if (r == -1)
5456       return -1;
5457   }
5458   {
5459     int r;
5460     suppress_error = 0;
5461     r = guestfs_lvm_remove_all (g);
5462     if (r == -1)
5463       return -1;
5464   }
5465   {
5466     char device[] = "/dev/sda";
5467     char lines_0[] = ",";
5468     char *lines[] = {
5469       lines_0,
5470       NULL
5471     };
5472     int r;
5473     suppress_error = 0;
5474     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5475     if (r == -1)
5476       return -1;
5477   }
5478   {
5479     char fstype[] = "ext2";
5480     char device[] = "/dev/sda1";
5481     int r;
5482     suppress_error = 0;
5483     r = guestfs_mkfs (g, fstype, device);
5484     if (r == -1)
5485       return -1;
5486   }
5487   {
5488     char device[] = "/dev/sda1";
5489     char mountpoint[] = "/";
5490     int r;
5491     suppress_error = 0;
5492     r = guestfs_mount (g, device, mountpoint);
5493     if (r == -1)
5494       return -1;
5495   }
5496   /* TestOutput for checksum (5) */
5497   char expected[] = "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2";
5498   {
5499     char path[] = "/new";
5500     char content[] = "test\n";
5501     int r;
5502     suppress_error = 0;
5503     r = guestfs_write_file (g, path, content, 0);
5504     if (r == -1)
5505       return -1;
5506   }
5507   {
5508     char csumtype[] = "sha256";
5509     char path[] = "/new";
5510     char *r;
5511     suppress_error = 0;
5512     r = guestfs_checksum (g, csumtype, path);
5513     if (r == NULL)
5514       return -1;
5515     if (strcmp (r, expected) != 0) {
5516       fprintf (stderr, "test_checksum_5: expected \"%s\" but got \"%s\"\n", expected, r);
5517       return -1;
5518     }
5519     free (r);
5520   }
5521   return 0;
5522 }
5523
5524 static int test_checksum_6_skip (void)
5525 {
5526   const char *str;
5527
5528   str = getenv ("SKIP_TEST_CHECKSUM_6");
5529   if (str && strcmp (str, "1") == 0) return 1;
5530   str = getenv ("SKIP_TEST_CHECKSUM");
5531   if (str && strcmp (str, "1") == 0) return 1;
5532   return 0;
5533 }
5534
5535 static int test_checksum_6 (void)
5536 {
5537   if (test_checksum_6_skip ()) {
5538     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_6");
5539     return 0;
5540   }
5541
5542   /* InitBasicFS for test_checksum_6: create ext2 on /dev/sda1 */
5543   {
5544     char device[] = "/dev/sda";
5545     int r;
5546     suppress_error = 0;
5547     r = guestfs_blockdev_setrw (g, device);
5548     if (r == -1)
5549       return -1;
5550   }
5551   {
5552     int r;
5553     suppress_error = 0;
5554     r = guestfs_umount_all (g);
5555     if (r == -1)
5556       return -1;
5557   }
5558   {
5559     int r;
5560     suppress_error = 0;
5561     r = guestfs_lvm_remove_all (g);
5562     if (r == -1)
5563       return -1;
5564   }
5565   {
5566     char device[] = "/dev/sda";
5567     char lines_0[] = ",";
5568     char *lines[] = {
5569       lines_0,
5570       NULL
5571     };
5572     int r;
5573     suppress_error = 0;
5574     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5575     if (r == -1)
5576       return -1;
5577   }
5578   {
5579     char fstype[] = "ext2";
5580     char device[] = "/dev/sda1";
5581     int r;
5582     suppress_error = 0;
5583     r = guestfs_mkfs (g, fstype, device);
5584     if (r == -1)
5585       return -1;
5586   }
5587   {
5588     char device[] = "/dev/sda1";
5589     char mountpoint[] = "/";
5590     int r;
5591     suppress_error = 0;
5592     r = guestfs_mount (g, device, mountpoint);
5593     if (r == -1)
5594       return -1;
5595   }
5596   /* TestOutput for checksum (6) */
5597   char expected[] = "109bb6b5b6d5547c1ce03c7a8bd7d8f80c1cb0957f50c4f7fda04692079917e4f9cad52b878f3d8234e1a170b154b72d";
5598   {
5599     char path[] = "/new";
5600     char content[] = "test\n";
5601     int r;
5602     suppress_error = 0;
5603     r = guestfs_write_file (g, path, content, 0);
5604     if (r == -1)
5605       return -1;
5606   }
5607   {
5608     char csumtype[] = "sha384";
5609     char path[] = "/new";
5610     char *r;
5611     suppress_error = 0;
5612     r = guestfs_checksum (g, csumtype, path);
5613     if (r == NULL)
5614       return -1;
5615     if (strcmp (r, expected) != 0) {
5616       fprintf (stderr, "test_checksum_6: expected \"%s\" but got \"%s\"\n", expected, r);
5617       return -1;
5618     }
5619     free (r);
5620   }
5621   return 0;
5622 }
5623
5624 static int test_checksum_7_skip (void)
5625 {
5626   const char *str;
5627
5628   str = getenv ("SKIP_TEST_CHECKSUM_7");
5629   if (str && strcmp (str, "1") == 0) return 1;
5630   str = getenv ("SKIP_TEST_CHECKSUM");
5631   if (str && strcmp (str, "1") == 0) return 1;
5632   return 0;
5633 }
5634
5635 static int test_checksum_7 (void)
5636 {
5637   if (test_checksum_7_skip ()) {
5638     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_7");
5639     return 0;
5640   }
5641
5642   /* InitBasicFS for test_checksum_7: create ext2 on /dev/sda1 */
5643   {
5644     char device[] = "/dev/sda";
5645     int r;
5646     suppress_error = 0;
5647     r = guestfs_blockdev_setrw (g, device);
5648     if (r == -1)
5649       return -1;
5650   }
5651   {
5652     int r;
5653     suppress_error = 0;
5654     r = guestfs_umount_all (g);
5655     if (r == -1)
5656       return -1;
5657   }
5658   {
5659     int r;
5660     suppress_error = 0;
5661     r = guestfs_lvm_remove_all (g);
5662     if (r == -1)
5663       return -1;
5664   }
5665   {
5666     char device[] = "/dev/sda";
5667     char lines_0[] = ",";
5668     char *lines[] = {
5669       lines_0,
5670       NULL
5671     };
5672     int r;
5673     suppress_error = 0;
5674     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5675     if (r == -1)
5676       return -1;
5677   }
5678   {
5679     char fstype[] = "ext2";
5680     char device[] = "/dev/sda1";
5681     int r;
5682     suppress_error = 0;
5683     r = guestfs_mkfs (g, fstype, device);
5684     if (r == -1)
5685       return -1;
5686   }
5687   {
5688     char device[] = "/dev/sda1";
5689     char mountpoint[] = "/";
5690     int r;
5691     suppress_error = 0;
5692     r = guestfs_mount (g, device, mountpoint);
5693     if (r == -1)
5694       return -1;
5695   }
5696   /* TestOutput for checksum (7) */
5697   char expected[] = "0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123";
5698   {
5699     char path[] = "/new";
5700     char content[] = "test\n";
5701     int r;
5702     suppress_error = 0;
5703     r = guestfs_write_file (g, path, content, 0);
5704     if (r == -1)
5705       return -1;
5706   }
5707   {
5708     char csumtype[] = "sha512";
5709     char path[] = "/new";
5710     char *r;
5711     suppress_error = 0;
5712     r = guestfs_checksum (g, csumtype, path);
5713     if (r == NULL)
5714       return -1;
5715     if (strcmp (r, expected) != 0) {
5716       fprintf (stderr, "test_checksum_7: expected \"%s\" but got \"%s\"\n", expected, r);
5717       return -1;
5718     }
5719     free (r);
5720   }
5721   return 0;
5722 }
5723
5724 static int test_checksum_8_skip (void)
5725 {
5726   const char *str;
5727
5728   str = getenv ("SKIP_TEST_CHECKSUM_8");
5729   if (str && strcmp (str, "1") == 0) return 1;
5730   str = getenv ("SKIP_TEST_CHECKSUM");
5731   if (str && strcmp (str, "1") == 0) return 1;
5732   return 0;
5733 }
5734
5735 static int test_checksum_8 (void)
5736 {
5737   if (test_checksum_8_skip ()) {
5738     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_checksum_8");
5739     return 0;
5740   }
5741
5742   /* InitBasicFS for test_checksum_8: create ext2 on /dev/sda1 */
5743   {
5744     char device[] = "/dev/sda";
5745     int r;
5746     suppress_error = 0;
5747     r = guestfs_blockdev_setrw (g, device);
5748     if (r == -1)
5749       return -1;
5750   }
5751   {
5752     int r;
5753     suppress_error = 0;
5754     r = guestfs_umount_all (g);
5755     if (r == -1)
5756       return -1;
5757   }
5758   {
5759     int r;
5760     suppress_error = 0;
5761     r = guestfs_lvm_remove_all (g);
5762     if (r == -1)
5763       return -1;
5764   }
5765   {
5766     char device[] = "/dev/sda";
5767     char lines_0[] = ",";
5768     char *lines[] = {
5769       lines_0,
5770       NULL
5771     };
5772     int r;
5773     suppress_error = 0;
5774     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5775     if (r == -1)
5776       return -1;
5777   }
5778   {
5779     char fstype[] = "ext2";
5780     char device[] = "/dev/sda1";
5781     int r;
5782     suppress_error = 0;
5783     r = guestfs_mkfs (g, fstype, device);
5784     if (r == -1)
5785       return -1;
5786   }
5787   {
5788     char device[] = "/dev/sda1";
5789     char mountpoint[] = "/";
5790     int r;
5791     suppress_error = 0;
5792     r = guestfs_mount (g, device, mountpoint);
5793     if (r == -1)
5794       return -1;
5795   }
5796   /* TestOutput for checksum (8) */
5797   char expected[] = "46d6ca27ee07cdc6fa99c2e138cc522c";
5798   {
5799     char options[] = "ro";
5800     char vfstype[] = "squashfs";
5801     char device[] = "/dev/sdd";
5802     char mountpoint[] = "/";
5803     int r;
5804     suppress_error = 0;
5805     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
5806     if (r == -1)
5807       return -1;
5808   }
5809   {
5810     char csumtype[] = "md5";
5811     char path[] = "/known-3";
5812     char *r;
5813     suppress_error = 0;
5814     r = guestfs_checksum (g, csumtype, path);
5815     if (r == NULL)
5816       return -1;
5817     if (strcmp (r, expected) != 0) {
5818       fprintf (stderr, "test_checksum_8: expected \"%s\" but got \"%s\"\n", expected, r);
5819       return -1;
5820     }
5821     free (r);
5822   }
5823   return 0;
5824 }
5825
5826 static int test_download_0_skip (void)
5827 {
5828   const char *str;
5829
5830   str = getenv ("SKIP_TEST_DOWNLOAD_0");
5831   if (str && strcmp (str, "1") == 0) return 1;
5832   str = getenv ("SKIP_TEST_DOWNLOAD");
5833   if (str && strcmp (str, "1") == 0) return 1;
5834   return 0;
5835 }
5836
5837 static int test_download_0 (void)
5838 {
5839   if (test_download_0_skip ()) {
5840     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_download_0");
5841     return 0;
5842   }
5843
5844   /* InitBasicFS for test_download_0: create ext2 on /dev/sda1 */
5845   {
5846     char device[] = "/dev/sda";
5847     int r;
5848     suppress_error = 0;
5849     r = guestfs_blockdev_setrw (g, device);
5850     if (r == -1)
5851       return -1;
5852   }
5853   {
5854     int r;
5855     suppress_error = 0;
5856     r = guestfs_umount_all (g);
5857     if (r == -1)
5858       return -1;
5859   }
5860   {
5861     int r;
5862     suppress_error = 0;
5863     r = guestfs_lvm_remove_all (g);
5864     if (r == -1)
5865       return -1;
5866   }
5867   {
5868     char device[] = "/dev/sda";
5869     char lines_0[] = ",";
5870     char *lines[] = {
5871       lines_0,
5872       NULL
5873     };
5874     int r;
5875     suppress_error = 0;
5876     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5877     if (r == -1)
5878       return -1;
5879   }
5880   {
5881     char fstype[] = "ext2";
5882     char device[] = "/dev/sda1";
5883     int r;
5884     suppress_error = 0;
5885     r = guestfs_mkfs (g, fstype, device);
5886     if (r == -1)
5887       return -1;
5888   }
5889   {
5890     char device[] = "/dev/sda1";
5891     char mountpoint[] = "/";
5892     int r;
5893     suppress_error = 0;
5894     r = guestfs_mount (g, device, mountpoint);
5895     if (r == -1)
5896       return -1;
5897   }
5898   /* TestOutput for download (0) */
5899   char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06";
5900   {
5901     char remotefilename[] = "/COPYING.LIB";
5902     int r;
5903     suppress_error = 0;
5904     r = guestfs_upload (g, "../COPYING.LIB", remotefilename);
5905     if (r == -1)
5906       return -1;
5907   }
5908   {
5909     char remotefilename[] = "/COPYING.LIB";
5910     int r;
5911     suppress_error = 0;
5912     r = guestfs_download (g, remotefilename, "testdownload.tmp");
5913     if (r == -1)
5914       return -1;
5915   }
5916   {
5917     char remotefilename[] = "/upload";
5918     int r;
5919     suppress_error = 0;
5920     r = guestfs_upload (g, "testdownload.tmp", remotefilename);
5921     if (r == -1)
5922       return -1;
5923   }
5924   {
5925     char csumtype[] = "md5";
5926     char path[] = "/upload";
5927     char *r;
5928     suppress_error = 0;
5929     r = guestfs_checksum (g, csumtype, path);
5930     if (r == NULL)
5931       return -1;
5932     if (strcmp (r, expected) != 0) {
5933       fprintf (stderr, "test_download_0: expected \"%s\" but got \"%s\"\n", expected, r);
5934       return -1;
5935     }
5936     free (r);
5937   }
5938   return 0;
5939 }
5940
5941 static int test_upload_0_skip (void)
5942 {
5943   const char *str;
5944
5945   str = getenv ("SKIP_TEST_UPLOAD_0");
5946   if (str && strcmp (str, "1") == 0) return 1;
5947   str = getenv ("SKIP_TEST_UPLOAD");
5948   if (str && strcmp (str, "1") == 0) return 1;
5949   return 0;
5950 }
5951
5952 static int test_upload_0 (void)
5953 {
5954   if (test_upload_0_skip ()) {
5955     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_upload_0");
5956     return 0;
5957   }
5958
5959   /* InitBasicFS for test_upload_0: create ext2 on /dev/sda1 */
5960   {
5961     char device[] = "/dev/sda";
5962     int r;
5963     suppress_error = 0;
5964     r = guestfs_blockdev_setrw (g, device);
5965     if (r == -1)
5966       return -1;
5967   }
5968   {
5969     int r;
5970     suppress_error = 0;
5971     r = guestfs_umount_all (g);
5972     if (r == -1)
5973       return -1;
5974   }
5975   {
5976     int r;
5977     suppress_error = 0;
5978     r = guestfs_lvm_remove_all (g);
5979     if (r == -1)
5980       return -1;
5981   }
5982   {
5983     char device[] = "/dev/sda";
5984     char lines_0[] = ",";
5985     char *lines[] = {
5986       lines_0,
5987       NULL
5988     };
5989     int r;
5990     suppress_error = 0;
5991     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5992     if (r == -1)
5993       return -1;
5994   }
5995   {
5996     char fstype[] = "ext2";
5997     char device[] = "/dev/sda1";
5998     int r;
5999     suppress_error = 0;
6000     r = guestfs_mkfs (g, fstype, device);
6001     if (r == -1)
6002       return -1;
6003   }
6004   {
6005     char device[] = "/dev/sda1";
6006     char mountpoint[] = "/";
6007     int r;
6008     suppress_error = 0;
6009     r = guestfs_mount (g, device, mountpoint);
6010     if (r == -1)
6011       return -1;
6012   }
6013   /* TestOutput for upload (0) */
6014   char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06";
6015   {
6016     char remotefilename[] = "/COPYING.LIB";
6017     int r;
6018     suppress_error = 0;
6019     r = guestfs_upload (g, "../COPYING.LIB", remotefilename);
6020     if (r == -1)
6021       return -1;
6022   }
6023   {
6024     char csumtype[] = "md5";
6025     char path[] = "/COPYING.LIB";
6026     char *r;
6027     suppress_error = 0;
6028     r = guestfs_checksum (g, csumtype, path);
6029     if (r == NULL)
6030       return -1;
6031     if (strcmp (r, expected) != 0) {
6032       fprintf (stderr, "test_upload_0: expected \"%s\" but got \"%s\"\n", expected, r);
6033       return -1;
6034     }
6035     free (r);
6036   }
6037   return 0;
6038 }
6039
6040 static int test_blockdev_rereadpt_0_skip (void)
6041 {
6042   const char *str;
6043
6044   str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT_0");
6045   if (str && strcmp (str, "1") == 0) return 1;
6046   str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT");
6047   if (str && strcmp (str, "1") == 0) return 1;
6048   return 0;
6049 }
6050
6051 static int test_blockdev_rereadpt_0 (void)
6052 {
6053   if (test_blockdev_rereadpt_0_skip ()) {
6054     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_rereadpt_0");
6055     return 0;
6056   }
6057
6058   /* InitNone|InitEmpty for test_blockdev_rereadpt_0 */
6059   {
6060     char device[] = "/dev/sda";
6061     int r;
6062     suppress_error = 0;
6063     r = guestfs_blockdev_setrw (g, device);
6064     if (r == -1)
6065       return -1;
6066   }
6067   {
6068     int r;
6069     suppress_error = 0;
6070     r = guestfs_umount_all (g);
6071     if (r == -1)
6072       return -1;
6073   }
6074   {
6075     int r;
6076     suppress_error = 0;
6077     r = guestfs_lvm_remove_all (g);
6078     if (r == -1)
6079       return -1;
6080   }
6081   /* TestRun for blockdev_rereadpt (0) */
6082   {
6083     char device[] = "/dev/sda";
6084     int r;
6085     suppress_error = 0;
6086     r = guestfs_blockdev_rereadpt (g, device);
6087     if (r == -1)
6088       return -1;
6089   }
6090   return 0;
6091 }
6092
6093 static int test_blockdev_flushbufs_0_skip (void)
6094 {
6095   const char *str;
6096
6097   str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS_0");
6098   if (str && strcmp (str, "1") == 0) return 1;
6099   str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS");
6100   if (str && strcmp (str, "1") == 0) return 1;
6101   return 0;
6102 }
6103
6104 static int test_blockdev_flushbufs_0 (void)
6105 {
6106   if (test_blockdev_flushbufs_0_skip ()) {
6107     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_flushbufs_0");
6108     return 0;
6109   }
6110
6111   /* InitNone|InitEmpty for test_blockdev_flushbufs_0 */
6112   {
6113     char device[] = "/dev/sda";
6114     int r;
6115     suppress_error = 0;
6116     r = guestfs_blockdev_setrw (g, device);
6117     if (r == -1)
6118       return -1;
6119   }
6120   {
6121     int r;
6122     suppress_error = 0;
6123     r = guestfs_umount_all (g);
6124     if (r == -1)
6125       return -1;
6126   }
6127   {
6128     int r;
6129     suppress_error = 0;
6130     r = guestfs_lvm_remove_all (g);
6131     if (r == -1)
6132       return -1;
6133   }
6134   /* TestRun for blockdev_flushbufs (0) */
6135   {
6136     char device[] = "/dev/sda";
6137     int r;
6138     suppress_error = 0;
6139     r = guestfs_blockdev_flushbufs (g, device);
6140     if (r == -1)
6141       return -1;
6142   }
6143   return 0;
6144 }
6145
6146 static int test_blockdev_getsize64_0_skip (void)
6147 {
6148   const char *str;
6149
6150   str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64_0");
6151   if (str && strcmp (str, "1") == 0) return 1;
6152   str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64");
6153   if (str && strcmp (str, "1") == 0) return 1;
6154   return 0;
6155 }
6156
6157 static int test_blockdev_getsize64_0 (void)
6158 {
6159   if (test_blockdev_getsize64_0_skip ()) {
6160     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getsize64_0");
6161     return 0;
6162   }
6163
6164   /* InitNone|InitEmpty for test_blockdev_getsize64_0 */
6165   {
6166     char device[] = "/dev/sda";
6167     int r;
6168     suppress_error = 0;
6169     r = guestfs_blockdev_setrw (g, device);
6170     if (r == -1)
6171       return -1;
6172   }
6173   {
6174     int r;
6175     suppress_error = 0;
6176     r = guestfs_umount_all (g);
6177     if (r == -1)
6178       return -1;
6179   }
6180   {
6181     int r;
6182     suppress_error = 0;
6183     r = guestfs_lvm_remove_all (g);
6184     if (r == -1)
6185       return -1;
6186   }
6187   /* TestOutputInt for blockdev_getsize64 (0) */
6188   {
6189     char device[] = "/dev/sda";
6190     int64_t r;
6191     suppress_error = 0;
6192     r = guestfs_blockdev_getsize64 (g, device);
6193     if (r == -1)
6194       return -1;
6195     if (r != 524288000) {
6196       fprintf (stderr, "test_blockdev_getsize64_0: expected 524288000 but got %d\n",               (int) r);
6197       return -1;
6198     }
6199   }
6200   return 0;
6201 }
6202
6203 static int test_blockdev_getsz_0_skip (void)
6204 {
6205   const char *str;
6206
6207   str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ_0");
6208   if (str && strcmp (str, "1") == 0) return 1;
6209   str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ");
6210   if (str && strcmp (str, "1") == 0) return 1;
6211   return 0;
6212 }
6213
6214 static int test_blockdev_getsz_0 (void)
6215 {
6216   if (test_blockdev_getsz_0_skip ()) {
6217     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getsz_0");
6218     return 0;
6219   }
6220
6221   /* InitNone|InitEmpty for test_blockdev_getsz_0 */
6222   {
6223     char device[] = "/dev/sda";
6224     int r;
6225     suppress_error = 0;
6226     r = guestfs_blockdev_setrw (g, device);
6227     if (r == -1)
6228       return -1;
6229   }
6230   {
6231     int r;
6232     suppress_error = 0;
6233     r = guestfs_umount_all (g);
6234     if (r == -1)
6235       return -1;
6236   }
6237   {
6238     int r;
6239     suppress_error = 0;
6240     r = guestfs_lvm_remove_all (g);
6241     if (r == -1)
6242       return -1;
6243   }
6244   /* TestOutputInt for blockdev_getsz (0) */
6245   {
6246     char device[] = "/dev/sda";
6247     int64_t r;
6248     suppress_error = 0;
6249     r = guestfs_blockdev_getsz (g, device);
6250     if (r == -1)
6251       return -1;
6252     if (r != 1024000) {
6253       fprintf (stderr, "test_blockdev_getsz_0: expected 1024000 but got %d\n",               (int) r);
6254       return -1;
6255     }
6256   }
6257   return 0;
6258 }
6259
6260 static int test_blockdev_getbsz_0_skip (void)
6261 {
6262   const char *str;
6263
6264   str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ_0");
6265   if (str && strcmp (str, "1") == 0) return 1;
6266   str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ");
6267   if (str && strcmp (str, "1") == 0) return 1;
6268   return 0;
6269 }
6270
6271 static int test_blockdev_getbsz_0 (void)
6272 {
6273   if (test_blockdev_getbsz_0_skip ()) {
6274     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getbsz_0");
6275     return 0;
6276   }
6277
6278   /* InitNone|InitEmpty for test_blockdev_getbsz_0 */
6279   {
6280     char device[] = "/dev/sda";
6281     int r;
6282     suppress_error = 0;
6283     r = guestfs_blockdev_setrw (g, device);
6284     if (r == -1)
6285       return -1;
6286   }
6287   {
6288     int r;
6289     suppress_error = 0;
6290     r = guestfs_umount_all (g);
6291     if (r == -1)
6292       return -1;
6293   }
6294   {
6295     int r;
6296     suppress_error = 0;
6297     r = guestfs_lvm_remove_all (g);
6298     if (r == -1)
6299       return -1;
6300   }
6301   /* TestOutputInt for blockdev_getbsz (0) */
6302   {
6303     char device[] = "/dev/sda";
6304     int r;
6305     suppress_error = 0;
6306     r = guestfs_blockdev_getbsz (g, device);
6307     if (r == -1)
6308       return -1;
6309     if (r != 4096) {
6310       fprintf (stderr, "test_blockdev_getbsz_0: expected 4096 but got %d\n",               (int) r);
6311       return -1;
6312     }
6313   }
6314   return 0;
6315 }
6316
6317 static int test_blockdev_getss_0_skip (void)
6318 {
6319   const char *str;
6320
6321   str = getenv ("SKIP_TEST_BLOCKDEV_GETSS_0");
6322   if (str && strcmp (str, "1") == 0) return 1;
6323   str = getenv ("SKIP_TEST_BLOCKDEV_GETSS");
6324   if (str && strcmp (str, "1") == 0) return 1;
6325   return 0;
6326 }
6327
6328 static int test_blockdev_getss_0 (void)
6329 {
6330   if (test_blockdev_getss_0_skip ()) {
6331     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getss_0");
6332     return 0;
6333   }
6334
6335   /* InitNone|InitEmpty for test_blockdev_getss_0 */
6336   {
6337     char device[] = "/dev/sda";
6338     int r;
6339     suppress_error = 0;
6340     r = guestfs_blockdev_setrw (g, device);
6341     if (r == -1)
6342       return -1;
6343   }
6344   {
6345     int r;
6346     suppress_error = 0;
6347     r = guestfs_umount_all (g);
6348     if (r == -1)
6349       return -1;
6350   }
6351   {
6352     int r;
6353     suppress_error = 0;
6354     r = guestfs_lvm_remove_all (g);
6355     if (r == -1)
6356       return -1;
6357   }
6358   /* TestOutputInt for blockdev_getss (0) */
6359   {
6360     char device[] = "/dev/sda";
6361     int r;
6362     suppress_error = 0;
6363     r = guestfs_blockdev_getss (g, device);
6364     if (r == -1)
6365       return -1;
6366     if (r != 512) {
6367       fprintf (stderr, "test_blockdev_getss_0: expected 512 but got %d\n",               (int) r);
6368       return -1;
6369     }
6370   }
6371   return 0;
6372 }
6373
6374 static int test_blockdev_getro_0_skip (void)
6375 {
6376   const char *str;
6377
6378   str = getenv ("SKIP_TEST_BLOCKDEV_GETRO_0");
6379   if (str && strcmp (str, "1") == 0) return 1;
6380   str = getenv ("SKIP_TEST_BLOCKDEV_GETRO");
6381   if (str && strcmp (str, "1") == 0) return 1;
6382   return 0;
6383 }
6384
6385 static int test_blockdev_getro_0 (void)
6386 {
6387   if (test_blockdev_getro_0_skip ()) {
6388     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_getro_0");
6389     return 0;
6390   }
6391
6392   /* InitNone|InitEmpty for test_blockdev_getro_0 */
6393   {
6394     char device[] = "/dev/sda";
6395     int r;
6396     suppress_error = 0;
6397     r = guestfs_blockdev_setrw (g, device);
6398     if (r == -1)
6399       return -1;
6400   }
6401   {
6402     int r;
6403     suppress_error = 0;
6404     r = guestfs_umount_all (g);
6405     if (r == -1)
6406       return -1;
6407   }
6408   {
6409     int r;
6410     suppress_error = 0;
6411     r = guestfs_lvm_remove_all (g);
6412     if (r == -1)
6413       return -1;
6414   }
6415   /* TestOutputTrue for blockdev_getro (0) */
6416   {
6417     char device[] = "/dev/sda";
6418     int r;
6419     suppress_error = 0;
6420     r = guestfs_blockdev_setro (g, device);
6421     if (r == -1)
6422       return -1;
6423   }
6424   {
6425     char device[] = "/dev/sda";
6426     int r;
6427     suppress_error = 0;
6428     r = guestfs_blockdev_getro (g, device);
6429     if (r == -1)
6430       return -1;
6431     if (!r) {
6432       fprintf (stderr, "test_blockdev_getro_0: expected true, got false\n");
6433       return -1;
6434     }
6435   }
6436   return 0;
6437 }
6438
6439 static int test_blockdev_setrw_0_skip (void)
6440 {
6441   const char *str;
6442
6443   str = getenv ("SKIP_TEST_BLOCKDEV_SETRW_0");
6444   if (str && strcmp (str, "1") == 0) return 1;
6445   str = getenv ("SKIP_TEST_BLOCKDEV_SETRW");
6446   if (str && strcmp (str, "1") == 0) return 1;
6447   return 0;
6448 }
6449
6450 static int test_blockdev_setrw_0 (void)
6451 {
6452   if (test_blockdev_setrw_0_skip ()) {
6453     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_setrw_0");
6454     return 0;
6455   }
6456
6457   /* InitNone|InitEmpty for test_blockdev_setrw_0 */
6458   {
6459     char device[] = "/dev/sda";
6460     int r;
6461     suppress_error = 0;
6462     r = guestfs_blockdev_setrw (g, device);
6463     if (r == -1)
6464       return -1;
6465   }
6466   {
6467     int r;
6468     suppress_error = 0;
6469     r = guestfs_umount_all (g);
6470     if (r == -1)
6471       return -1;
6472   }
6473   {
6474     int r;
6475     suppress_error = 0;
6476     r = guestfs_lvm_remove_all (g);
6477     if (r == -1)
6478       return -1;
6479   }
6480   /* TestOutputFalse for blockdev_setrw (0) */
6481   {
6482     char device[] = "/dev/sda";
6483     int r;
6484     suppress_error = 0;
6485     r = guestfs_blockdev_setrw (g, device);
6486     if (r == -1)
6487       return -1;
6488   }
6489   {
6490     char device[] = "/dev/sda";
6491     int r;
6492     suppress_error = 0;
6493     r = guestfs_blockdev_getro (g, device);
6494     if (r == -1)
6495       return -1;
6496     if (r) {
6497       fprintf (stderr, "test_blockdev_setrw_0: expected false, got true\n");
6498       return -1;
6499     }
6500   }
6501   return 0;
6502 }
6503
6504 static int test_blockdev_setro_0_skip (void)
6505 {
6506   const char *str;
6507
6508   str = getenv ("SKIP_TEST_BLOCKDEV_SETRO_0");
6509   if (str && strcmp (str, "1") == 0) return 1;
6510   str = getenv ("SKIP_TEST_BLOCKDEV_SETRO");
6511   if (str && strcmp (str, "1") == 0) return 1;
6512   return 0;
6513 }
6514
6515 static int test_blockdev_setro_0 (void)
6516 {
6517   if (test_blockdev_setro_0_skip ()) {
6518     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_blockdev_setro_0");
6519     return 0;
6520   }
6521
6522   /* InitNone|InitEmpty for test_blockdev_setro_0 */
6523   {
6524     char device[] = "/dev/sda";
6525     int r;
6526     suppress_error = 0;
6527     r = guestfs_blockdev_setrw (g, device);
6528     if (r == -1)
6529       return -1;
6530   }
6531   {
6532     int r;
6533     suppress_error = 0;
6534     r = guestfs_umount_all (g);
6535     if (r == -1)
6536       return -1;
6537   }
6538   {
6539     int r;
6540     suppress_error = 0;
6541     r = guestfs_lvm_remove_all (g);
6542     if (r == -1)
6543       return -1;
6544   }
6545   /* TestOutputTrue for blockdev_setro (0) */
6546   {
6547     char device[] = "/dev/sda";
6548     int r;
6549     suppress_error = 0;
6550     r = guestfs_blockdev_setro (g, device);
6551     if (r == -1)
6552       return -1;
6553   }
6554   {
6555     char device[] = "/dev/sda";
6556     int r;
6557     suppress_error = 0;
6558     r = guestfs_blockdev_getro (g, device);
6559     if (r == -1)
6560       return -1;
6561     if (!r) {
6562       fprintf (stderr, "test_blockdev_setro_0: expected true, got false\n");
6563       return -1;
6564     }
6565   }
6566   return 0;
6567 }
6568
6569 static int test_statvfs_0_skip (void)
6570 {
6571   const char *str;
6572
6573   str = getenv ("SKIP_TEST_STATVFS_0");
6574   if (str && strcmp (str, "1") == 0) return 1;
6575   str = getenv ("SKIP_TEST_STATVFS");
6576   if (str && strcmp (str, "1") == 0) return 1;
6577   return 0;
6578 }
6579
6580 static int test_statvfs_0 (void)
6581 {
6582   if (test_statvfs_0_skip ()) {
6583     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_statvfs_0");
6584     return 0;
6585   }
6586
6587   /* InitBasicFS for test_statvfs_0: create ext2 on /dev/sda1 */
6588   {
6589     char device[] = "/dev/sda";
6590     int r;
6591     suppress_error = 0;
6592     r = guestfs_blockdev_setrw (g, device);
6593     if (r == -1)
6594       return -1;
6595   }
6596   {
6597     int r;
6598     suppress_error = 0;
6599     r = guestfs_umount_all (g);
6600     if (r == -1)
6601       return -1;
6602   }
6603   {
6604     int r;
6605     suppress_error = 0;
6606     r = guestfs_lvm_remove_all (g);
6607     if (r == -1)
6608       return -1;
6609   }
6610   {
6611     char device[] = "/dev/sda";
6612     char lines_0[] = ",";
6613     char *lines[] = {
6614       lines_0,
6615       NULL
6616     };
6617     int r;
6618     suppress_error = 0;
6619     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6620     if (r == -1)
6621       return -1;
6622   }
6623   {
6624     char fstype[] = "ext2";
6625     char device[] = "/dev/sda1";
6626     int r;
6627     suppress_error = 0;
6628     r = guestfs_mkfs (g, fstype, device);
6629     if (r == -1)
6630       return -1;
6631   }
6632   {
6633     char device[] = "/dev/sda1";
6634     char mountpoint[] = "/";
6635     int r;
6636     suppress_error = 0;
6637     r = guestfs_mount (g, device, mountpoint);
6638     if (r == -1)
6639       return -1;
6640   }
6641   /* TestOutputStruct for statvfs (0) */
6642   {
6643     char path[] = "/";
6644     struct guestfs_statvfs *r;
6645     suppress_error = 0;
6646     r = guestfs_statvfs (g, path);
6647     if (r == NULL)
6648       return -1;
6649     if (r->bfree != 487702) {
6650       fprintf (stderr, "test_statvfs_0: bfree was %d, expected 487702\n",
6651                (int) r->bfree);
6652       return -1;
6653     }
6654     if (r->blocks != 490020) {
6655       fprintf (stderr, "test_statvfs_0: blocks was %d, expected 490020\n",
6656                (int) r->blocks);
6657       return -1;
6658     }
6659     if (r->bsize != 1024) {
6660       fprintf (stderr, "test_statvfs_0: bsize was %d, expected 1024\n",
6661                (int) r->bsize);
6662       return -1;
6663     }
6664     free (r);
6665   }
6666   return 0;
6667 }
6668
6669 static int test_lstat_0_skip (void)
6670 {
6671   const char *str;
6672
6673   str = getenv ("SKIP_TEST_LSTAT_0");
6674   if (str && strcmp (str, "1") == 0) return 1;
6675   str = getenv ("SKIP_TEST_LSTAT");
6676   if (str && strcmp (str, "1") == 0) return 1;
6677   return 0;
6678 }
6679
6680 static int test_lstat_0 (void)
6681 {
6682   if (test_lstat_0_skip ()) {
6683     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lstat_0");
6684     return 0;
6685   }
6686
6687   /* InitBasicFS for test_lstat_0: create ext2 on /dev/sda1 */
6688   {
6689     char device[] = "/dev/sda";
6690     int r;
6691     suppress_error = 0;
6692     r = guestfs_blockdev_setrw (g, device);
6693     if (r == -1)
6694       return -1;
6695   }
6696   {
6697     int r;
6698     suppress_error = 0;
6699     r = guestfs_umount_all (g);
6700     if (r == -1)
6701       return -1;
6702   }
6703   {
6704     int r;
6705     suppress_error = 0;
6706     r = guestfs_lvm_remove_all (g);
6707     if (r == -1)
6708       return -1;
6709   }
6710   {
6711     char device[] = "/dev/sda";
6712     char lines_0[] = ",";
6713     char *lines[] = {
6714       lines_0,
6715       NULL
6716     };
6717     int r;
6718     suppress_error = 0;
6719     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6720     if (r == -1)
6721       return -1;
6722   }
6723   {
6724     char fstype[] = "ext2";
6725     char device[] = "/dev/sda1";
6726     int r;
6727     suppress_error = 0;
6728     r = guestfs_mkfs (g, fstype, device);
6729     if (r == -1)
6730       return -1;
6731   }
6732   {
6733     char device[] = "/dev/sda1";
6734     char mountpoint[] = "/";
6735     int r;
6736     suppress_error = 0;
6737     r = guestfs_mount (g, device, mountpoint);
6738     if (r == -1)
6739       return -1;
6740   }
6741   /* TestOutputStruct for lstat (0) */
6742   {
6743     char path[] = "/new";
6744     int r;
6745     suppress_error = 0;
6746     r = guestfs_touch (g, path);
6747     if (r == -1)
6748       return -1;
6749   }
6750   {
6751     char path[] = "/new";
6752     struct guestfs_stat *r;
6753     suppress_error = 0;
6754     r = guestfs_lstat (g, path);
6755     if (r == NULL)
6756       return -1;
6757     if (r->size != 0) {
6758       fprintf (stderr, "test_lstat_0: size was %d, expected 0\n",
6759                (int) r->size);
6760       return -1;
6761     }
6762     free (r);
6763   }
6764   return 0;
6765 }
6766
6767 static int test_stat_0_skip (void)
6768 {
6769   const char *str;
6770
6771   str = getenv ("SKIP_TEST_STAT_0");
6772   if (str && strcmp (str, "1") == 0) return 1;
6773   str = getenv ("SKIP_TEST_STAT");
6774   if (str && strcmp (str, "1") == 0) return 1;
6775   return 0;
6776 }
6777
6778 static int test_stat_0 (void)
6779 {
6780   if (test_stat_0_skip ()) {
6781     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_stat_0");
6782     return 0;
6783   }
6784
6785   /* InitBasicFS for test_stat_0: create ext2 on /dev/sda1 */
6786   {
6787     char device[] = "/dev/sda";
6788     int r;
6789     suppress_error = 0;
6790     r = guestfs_blockdev_setrw (g, device);
6791     if (r == -1)
6792       return -1;
6793   }
6794   {
6795     int r;
6796     suppress_error = 0;
6797     r = guestfs_umount_all (g);
6798     if (r == -1)
6799       return -1;
6800   }
6801   {
6802     int r;
6803     suppress_error = 0;
6804     r = guestfs_lvm_remove_all (g);
6805     if (r == -1)
6806       return -1;
6807   }
6808   {
6809     char device[] = "/dev/sda";
6810     char lines_0[] = ",";
6811     char *lines[] = {
6812       lines_0,
6813       NULL
6814     };
6815     int r;
6816     suppress_error = 0;
6817     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6818     if (r == -1)
6819       return -1;
6820   }
6821   {
6822     char fstype[] = "ext2";
6823     char device[] = "/dev/sda1";
6824     int r;
6825     suppress_error = 0;
6826     r = guestfs_mkfs (g, fstype, device);
6827     if (r == -1)
6828       return -1;
6829   }
6830   {
6831     char device[] = "/dev/sda1";
6832     char mountpoint[] = "/";
6833     int r;
6834     suppress_error = 0;
6835     r = guestfs_mount (g, device, mountpoint);
6836     if (r == -1)
6837       return -1;
6838   }
6839   /* TestOutputStruct for stat (0) */
6840   {
6841     char path[] = "/new";
6842     int r;
6843     suppress_error = 0;
6844     r = guestfs_touch (g, path);
6845     if (r == -1)
6846       return -1;
6847   }
6848   {
6849     char path[] = "/new";
6850     struct guestfs_stat *r;
6851     suppress_error = 0;
6852     r = guestfs_stat (g, path);
6853     if (r == NULL)
6854       return -1;
6855     if (r->size != 0) {
6856       fprintf (stderr, "test_stat_0: size was %d, expected 0\n",
6857                (int) r->size);
6858       return -1;
6859     }
6860     free (r);
6861   }
6862   return 0;
6863 }
6864
6865 static int test_command_lines_0_skip (void)
6866 {
6867   const char *str;
6868
6869   str = getenv ("SKIP_TEST_COMMAND_LINES_0");
6870   if (str && strcmp (str, "1") == 0) return 1;
6871   str = getenv ("SKIP_TEST_COMMAND_LINES");
6872   if (str && strcmp (str, "1") == 0) return 1;
6873   return 0;
6874 }
6875
6876 static int test_command_lines_0 (void)
6877 {
6878   if (test_command_lines_0_skip ()) {
6879     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_0");
6880     return 0;
6881   }
6882
6883   /* InitBasicFS for test_command_lines_0: create ext2 on /dev/sda1 */
6884   {
6885     char device[] = "/dev/sda";
6886     int r;
6887     suppress_error = 0;
6888     r = guestfs_blockdev_setrw (g, device);
6889     if (r == -1)
6890       return -1;
6891   }
6892   {
6893     int r;
6894     suppress_error = 0;
6895     r = guestfs_umount_all (g);
6896     if (r == -1)
6897       return -1;
6898   }
6899   {
6900     int r;
6901     suppress_error = 0;
6902     r = guestfs_lvm_remove_all (g);
6903     if (r == -1)
6904       return -1;
6905   }
6906   {
6907     char device[] = "/dev/sda";
6908     char lines_0[] = ",";
6909     char *lines[] = {
6910       lines_0,
6911       NULL
6912     };
6913     int r;
6914     suppress_error = 0;
6915     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6916     if (r == -1)
6917       return -1;
6918   }
6919   {
6920     char fstype[] = "ext2";
6921     char device[] = "/dev/sda1";
6922     int r;
6923     suppress_error = 0;
6924     r = guestfs_mkfs (g, fstype, device);
6925     if (r == -1)
6926       return -1;
6927   }
6928   {
6929     char device[] = "/dev/sda1";
6930     char mountpoint[] = "/";
6931     int r;
6932     suppress_error = 0;
6933     r = guestfs_mount (g, device, mountpoint);
6934     if (r == -1)
6935       return -1;
6936   }
6937   /* TestOutputList for command_lines (0) */
6938   {
6939     char remotefilename[] = "/test-command";
6940     int r;
6941     suppress_error = 0;
6942     r = guestfs_upload (g, "test-command", remotefilename);
6943     if (r == -1)
6944       return -1;
6945   }
6946   {
6947     char path[] = "/test-command";
6948     int r;
6949     suppress_error = 0;
6950     r = guestfs_chmod (g, 493, path);
6951     if (r == -1)
6952       return -1;
6953   }
6954   {
6955     char arguments_0[] = "/test-command";
6956     char arguments_1[] = "1";
6957     char *arguments[] = {
6958       arguments_0,
6959       arguments_1,
6960       NULL
6961     };
6962     char **r;
6963     int i;
6964     suppress_error = 0;
6965     r = guestfs_command_lines (g, arguments);
6966     if (r == NULL)
6967       return -1;
6968     if (!r[0]) {
6969       fprintf (stderr, "test_command_lines_0: short list returned from command\n");
6970       print_strings (r);
6971       return -1;
6972     }
6973     {
6974       char expected[] = "Result1";
6975       if (strcmp (r[0], expected) != 0) {
6976         fprintf (stderr, "test_command_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
6977         return -1;
6978       }
6979     }
6980     if (r[1] != NULL) {
6981       fprintf (stderr, "test_command_lines_0: extra elements returned from command\n");
6982       print_strings (r);
6983       return -1;
6984     }
6985     for (i = 0; r[i] != NULL; ++i)
6986       free (r[i]);
6987     free (r);
6988   }
6989   return 0;
6990 }
6991
6992 static int test_command_lines_1_skip (void)
6993 {
6994   const char *str;
6995
6996   str = getenv ("SKIP_TEST_COMMAND_LINES_1");
6997   if (str && strcmp (str, "1") == 0) return 1;
6998   str = getenv ("SKIP_TEST_COMMAND_LINES");
6999   if (str && strcmp (str, "1") == 0) return 1;
7000   return 0;
7001 }
7002
7003 static int test_command_lines_1 (void)
7004 {
7005   if (test_command_lines_1_skip ()) {
7006     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_1");
7007     return 0;
7008   }
7009
7010   /* InitBasicFS for test_command_lines_1: create ext2 on /dev/sda1 */
7011   {
7012     char device[] = "/dev/sda";
7013     int r;
7014     suppress_error = 0;
7015     r = guestfs_blockdev_setrw (g, device);
7016     if (r == -1)
7017       return -1;
7018   }
7019   {
7020     int r;
7021     suppress_error = 0;
7022     r = guestfs_umount_all (g);
7023     if (r == -1)
7024       return -1;
7025   }
7026   {
7027     int r;
7028     suppress_error = 0;
7029     r = guestfs_lvm_remove_all (g);
7030     if (r == -1)
7031       return -1;
7032   }
7033   {
7034     char device[] = "/dev/sda";
7035     char lines_0[] = ",";
7036     char *lines[] = {
7037       lines_0,
7038       NULL
7039     };
7040     int r;
7041     suppress_error = 0;
7042     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7043     if (r == -1)
7044       return -1;
7045   }
7046   {
7047     char fstype[] = "ext2";
7048     char device[] = "/dev/sda1";
7049     int r;
7050     suppress_error = 0;
7051     r = guestfs_mkfs (g, fstype, device);
7052     if (r == -1)
7053       return -1;
7054   }
7055   {
7056     char device[] = "/dev/sda1";
7057     char mountpoint[] = "/";
7058     int r;
7059     suppress_error = 0;
7060     r = guestfs_mount (g, device, mountpoint);
7061     if (r == -1)
7062       return -1;
7063   }
7064   /* TestOutputList for command_lines (1) */
7065   {
7066     char remotefilename[] = "/test-command";
7067     int r;
7068     suppress_error = 0;
7069     r = guestfs_upload (g, "test-command", remotefilename);
7070     if (r == -1)
7071       return -1;
7072   }
7073   {
7074     char path[] = "/test-command";
7075     int r;
7076     suppress_error = 0;
7077     r = guestfs_chmod (g, 493, path);
7078     if (r == -1)
7079       return -1;
7080   }
7081   {
7082     char arguments_0[] = "/test-command";
7083     char arguments_1[] = "2";
7084     char *arguments[] = {
7085       arguments_0,
7086       arguments_1,
7087       NULL
7088     };
7089     char **r;
7090     int i;
7091     suppress_error = 0;
7092     r = guestfs_command_lines (g, arguments);
7093     if (r == NULL)
7094       return -1;
7095     if (!r[0]) {
7096       fprintf (stderr, "test_command_lines_1: short list returned from command\n");
7097       print_strings (r);
7098       return -1;
7099     }
7100     {
7101       char expected[] = "Result2";
7102       if (strcmp (r[0], expected) != 0) {
7103         fprintf (stderr, "test_command_lines_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7104         return -1;
7105       }
7106     }
7107     if (r[1] != NULL) {
7108       fprintf (stderr, "test_command_lines_1: extra elements returned from command\n");
7109       print_strings (r);
7110       return -1;
7111     }
7112     for (i = 0; r[i] != NULL; ++i)
7113       free (r[i]);
7114     free (r);
7115   }
7116   return 0;
7117 }
7118
7119 static int test_command_lines_2_skip (void)
7120 {
7121   const char *str;
7122
7123   str = getenv ("SKIP_TEST_COMMAND_LINES_2");
7124   if (str && strcmp (str, "1") == 0) return 1;
7125   str = getenv ("SKIP_TEST_COMMAND_LINES");
7126   if (str && strcmp (str, "1") == 0) return 1;
7127   return 0;
7128 }
7129
7130 static int test_command_lines_2 (void)
7131 {
7132   if (test_command_lines_2_skip ()) {
7133     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_2");
7134     return 0;
7135   }
7136
7137   /* InitBasicFS for test_command_lines_2: create ext2 on /dev/sda1 */
7138   {
7139     char device[] = "/dev/sda";
7140     int r;
7141     suppress_error = 0;
7142     r = guestfs_blockdev_setrw (g, device);
7143     if (r == -1)
7144       return -1;
7145   }
7146   {
7147     int r;
7148     suppress_error = 0;
7149     r = guestfs_umount_all (g);
7150     if (r == -1)
7151       return -1;
7152   }
7153   {
7154     int r;
7155     suppress_error = 0;
7156     r = guestfs_lvm_remove_all (g);
7157     if (r == -1)
7158       return -1;
7159   }
7160   {
7161     char device[] = "/dev/sda";
7162     char lines_0[] = ",";
7163     char *lines[] = {
7164       lines_0,
7165       NULL
7166     };
7167     int r;
7168     suppress_error = 0;
7169     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7170     if (r == -1)
7171       return -1;
7172   }
7173   {
7174     char fstype[] = "ext2";
7175     char device[] = "/dev/sda1";
7176     int r;
7177     suppress_error = 0;
7178     r = guestfs_mkfs (g, fstype, device);
7179     if (r == -1)
7180       return -1;
7181   }
7182   {
7183     char device[] = "/dev/sda1";
7184     char mountpoint[] = "/";
7185     int r;
7186     suppress_error = 0;
7187     r = guestfs_mount (g, device, mountpoint);
7188     if (r == -1)
7189       return -1;
7190   }
7191   /* TestOutputList for command_lines (2) */
7192   {
7193     char remotefilename[] = "/test-command";
7194     int r;
7195     suppress_error = 0;
7196     r = guestfs_upload (g, "test-command", remotefilename);
7197     if (r == -1)
7198       return -1;
7199   }
7200   {
7201     char path[] = "/test-command";
7202     int r;
7203     suppress_error = 0;
7204     r = guestfs_chmod (g, 493, path);
7205     if (r == -1)
7206       return -1;
7207   }
7208   {
7209     char arguments_0[] = "/test-command";
7210     char arguments_1[] = "3";
7211     char *arguments[] = {
7212       arguments_0,
7213       arguments_1,
7214       NULL
7215     };
7216     char **r;
7217     int i;
7218     suppress_error = 0;
7219     r = guestfs_command_lines (g, arguments);
7220     if (r == NULL)
7221       return -1;
7222     if (!r[0]) {
7223       fprintf (stderr, "test_command_lines_2: short list returned from command\n");
7224       print_strings (r);
7225       return -1;
7226     }
7227     {
7228       char expected[] = "";
7229       if (strcmp (r[0], expected) != 0) {
7230         fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7231         return -1;
7232       }
7233     }
7234     if (!r[1]) {
7235       fprintf (stderr, "test_command_lines_2: short list returned from command\n");
7236       print_strings (r);
7237       return -1;
7238     }
7239     {
7240       char expected[] = "Result3";
7241       if (strcmp (r[1], expected) != 0) {
7242         fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[1]);
7243         return -1;
7244       }
7245     }
7246     if (r[2] != NULL) {
7247       fprintf (stderr, "test_command_lines_2: extra elements returned from command\n");
7248       print_strings (r);
7249       return -1;
7250     }
7251     for (i = 0; r[i] != NULL; ++i)
7252       free (r[i]);
7253     free (r);
7254   }
7255   return 0;
7256 }
7257
7258 static int test_command_lines_3_skip (void)
7259 {
7260   const char *str;
7261
7262   str = getenv ("SKIP_TEST_COMMAND_LINES_3");
7263   if (str && strcmp (str, "1") == 0) return 1;
7264   str = getenv ("SKIP_TEST_COMMAND_LINES");
7265   if (str && strcmp (str, "1") == 0) return 1;
7266   return 0;
7267 }
7268
7269 static int test_command_lines_3 (void)
7270 {
7271   if (test_command_lines_3_skip ()) {
7272     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_3");
7273     return 0;
7274   }
7275
7276   /* InitBasicFS for test_command_lines_3: create ext2 on /dev/sda1 */
7277   {
7278     char device[] = "/dev/sda";
7279     int r;
7280     suppress_error = 0;
7281     r = guestfs_blockdev_setrw (g, device);
7282     if (r == -1)
7283       return -1;
7284   }
7285   {
7286     int r;
7287     suppress_error = 0;
7288     r = guestfs_umount_all (g);
7289     if (r == -1)
7290       return -1;
7291   }
7292   {
7293     int r;
7294     suppress_error = 0;
7295     r = guestfs_lvm_remove_all (g);
7296     if (r == -1)
7297       return -1;
7298   }
7299   {
7300     char device[] = "/dev/sda";
7301     char lines_0[] = ",";
7302     char *lines[] = {
7303       lines_0,
7304       NULL
7305     };
7306     int r;
7307     suppress_error = 0;
7308     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7309     if (r == -1)
7310       return -1;
7311   }
7312   {
7313     char fstype[] = "ext2";
7314     char device[] = "/dev/sda1";
7315     int r;
7316     suppress_error = 0;
7317     r = guestfs_mkfs (g, fstype, device);
7318     if (r == -1)
7319       return -1;
7320   }
7321   {
7322     char device[] = "/dev/sda1";
7323     char mountpoint[] = "/";
7324     int r;
7325     suppress_error = 0;
7326     r = guestfs_mount (g, device, mountpoint);
7327     if (r == -1)
7328       return -1;
7329   }
7330   /* TestOutputList for command_lines (3) */
7331   {
7332     char remotefilename[] = "/test-command";
7333     int r;
7334     suppress_error = 0;
7335     r = guestfs_upload (g, "test-command", remotefilename);
7336     if (r == -1)
7337       return -1;
7338   }
7339   {
7340     char path[] = "/test-command";
7341     int r;
7342     suppress_error = 0;
7343     r = guestfs_chmod (g, 493, path);
7344     if (r == -1)
7345       return -1;
7346   }
7347   {
7348     char arguments_0[] = "/test-command";
7349     char arguments_1[] = "4";
7350     char *arguments[] = {
7351       arguments_0,
7352       arguments_1,
7353       NULL
7354     };
7355     char **r;
7356     int i;
7357     suppress_error = 0;
7358     r = guestfs_command_lines (g, arguments);
7359     if (r == NULL)
7360       return -1;
7361     if (!r[0]) {
7362       fprintf (stderr, "test_command_lines_3: short list returned from command\n");
7363       print_strings (r);
7364       return -1;
7365     }
7366     {
7367       char expected[] = "";
7368       if (strcmp (r[0], expected) != 0) {
7369         fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7370         return -1;
7371       }
7372     }
7373     if (!r[1]) {
7374       fprintf (stderr, "test_command_lines_3: short list returned from command\n");
7375       print_strings (r);
7376       return -1;
7377     }
7378     {
7379       char expected[] = "Result4";
7380       if (strcmp (r[1], expected) != 0) {
7381         fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[1]);
7382         return -1;
7383       }
7384     }
7385     if (r[2] != NULL) {
7386       fprintf (stderr, "test_command_lines_3: extra elements returned from command\n");
7387       print_strings (r);
7388       return -1;
7389     }
7390     for (i = 0; r[i] != NULL; ++i)
7391       free (r[i]);
7392     free (r);
7393   }
7394   return 0;
7395 }
7396
7397 static int test_command_lines_4_skip (void)
7398 {
7399   const char *str;
7400
7401   str = getenv ("SKIP_TEST_COMMAND_LINES_4");
7402   if (str && strcmp (str, "1") == 0) return 1;
7403   str = getenv ("SKIP_TEST_COMMAND_LINES");
7404   if (str && strcmp (str, "1") == 0) return 1;
7405   return 0;
7406 }
7407
7408 static int test_command_lines_4 (void)
7409 {
7410   if (test_command_lines_4_skip ()) {
7411     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_4");
7412     return 0;
7413   }
7414
7415   /* InitBasicFS for test_command_lines_4: create ext2 on /dev/sda1 */
7416   {
7417     char device[] = "/dev/sda";
7418     int r;
7419     suppress_error = 0;
7420     r = guestfs_blockdev_setrw (g, device);
7421     if (r == -1)
7422       return -1;
7423   }
7424   {
7425     int r;
7426     suppress_error = 0;
7427     r = guestfs_umount_all (g);
7428     if (r == -1)
7429       return -1;
7430   }
7431   {
7432     int r;
7433     suppress_error = 0;
7434     r = guestfs_lvm_remove_all (g);
7435     if (r == -1)
7436       return -1;
7437   }
7438   {
7439     char device[] = "/dev/sda";
7440     char lines_0[] = ",";
7441     char *lines[] = {
7442       lines_0,
7443       NULL
7444     };
7445     int r;
7446     suppress_error = 0;
7447     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7448     if (r == -1)
7449       return -1;
7450   }
7451   {
7452     char fstype[] = "ext2";
7453     char device[] = "/dev/sda1";
7454     int r;
7455     suppress_error = 0;
7456     r = guestfs_mkfs (g, fstype, device);
7457     if (r == -1)
7458       return -1;
7459   }
7460   {
7461     char device[] = "/dev/sda1";
7462     char mountpoint[] = "/";
7463     int r;
7464     suppress_error = 0;
7465     r = guestfs_mount (g, device, mountpoint);
7466     if (r == -1)
7467       return -1;
7468   }
7469   /* TestOutputList for command_lines (4) */
7470   {
7471     char remotefilename[] = "/test-command";
7472     int r;
7473     suppress_error = 0;
7474     r = guestfs_upload (g, "test-command", remotefilename);
7475     if (r == -1)
7476       return -1;
7477   }
7478   {
7479     char path[] = "/test-command";
7480     int r;
7481     suppress_error = 0;
7482     r = guestfs_chmod (g, 493, path);
7483     if (r == -1)
7484       return -1;
7485   }
7486   {
7487     char arguments_0[] = "/test-command";
7488     char arguments_1[] = "5";
7489     char *arguments[] = {
7490       arguments_0,
7491       arguments_1,
7492       NULL
7493     };
7494     char **r;
7495     int i;
7496     suppress_error = 0;
7497     r = guestfs_command_lines (g, arguments);
7498     if (r == NULL)
7499       return -1;
7500     if (!r[0]) {
7501       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
7502       print_strings (r);
7503       return -1;
7504     }
7505     {
7506       char expected[] = "";
7507       if (strcmp (r[0], expected) != 0) {
7508         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7509         return -1;
7510       }
7511     }
7512     if (!r[1]) {
7513       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
7514       print_strings (r);
7515       return -1;
7516     }
7517     {
7518       char expected[] = "Result5";
7519       if (strcmp (r[1], expected) != 0) {
7520         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[1]);
7521         return -1;
7522       }
7523     }
7524     if (!r[2]) {
7525       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
7526       print_strings (r);
7527       return -1;
7528     }
7529     {
7530       char expected[] = "";
7531       if (strcmp (r[2], expected) != 0) {
7532         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[2]);
7533         return -1;
7534       }
7535     }
7536     if (r[3] != NULL) {
7537       fprintf (stderr, "test_command_lines_4: extra elements returned from command\n");
7538       print_strings (r);
7539       return -1;
7540     }
7541     for (i = 0; r[i] != NULL; ++i)
7542       free (r[i]);
7543     free (r);
7544   }
7545   return 0;
7546 }
7547
7548 static int test_command_lines_5_skip (void)
7549 {
7550   const char *str;
7551
7552   str = getenv ("SKIP_TEST_COMMAND_LINES_5");
7553   if (str && strcmp (str, "1") == 0) return 1;
7554   str = getenv ("SKIP_TEST_COMMAND_LINES");
7555   if (str && strcmp (str, "1") == 0) return 1;
7556   return 0;
7557 }
7558
7559 static int test_command_lines_5 (void)
7560 {
7561   if (test_command_lines_5_skip ()) {
7562     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_5");
7563     return 0;
7564   }
7565
7566   /* InitBasicFS for test_command_lines_5: create ext2 on /dev/sda1 */
7567   {
7568     char device[] = "/dev/sda";
7569     int r;
7570     suppress_error = 0;
7571     r = guestfs_blockdev_setrw (g, device);
7572     if (r == -1)
7573       return -1;
7574   }
7575   {
7576     int r;
7577     suppress_error = 0;
7578     r = guestfs_umount_all (g);
7579     if (r == -1)
7580       return -1;
7581   }
7582   {
7583     int r;
7584     suppress_error = 0;
7585     r = guestfs_lvm_remove_all (g);
7586     if (r == -1)
7587       return -1;
7588   }
7589   {
7590     char device[] = "/dev/sda";
7591     char lines_0[] = ",";
7592     char *lines[] = {
7593       lines_0,
7594       NULL
7595     };
7596     int r;
7597     suppress_error = 0;
7598     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7599     if (r == -1)
7600       return -1;
7601   }
7602   {
7603     char fstype[] = "ext2";
7604     char device[] = "/dev/sda1";
7605     int r;
7606     suppress_error = 0;
7607     r = guestfs_mkfs (g, fstype, device);
7608     if (r == -1)
7609       return -1;
7610   }
7611   {
7612     char device[] = "/dev/sda1";
7613     char mountpoint[] = "/";
7614     int r;
7615     suppress_error = 0;
7616     r = guestfs_mount (g, device, mountpoint);
7617     if (r == -1)
7618       return -1;
7619   }
7620   /* TestOutputList for command_lines (5) */
7621   {
7622     char remotefilename[] = "/test-command";
7623     int r;
7624     suppress_error = 0;
7625     r = guestfs_upload (g, "test-command", remotefilename);
7626     if (r == -1)
7627       return -1;
7628   }
7629   {
7630     char path[] = "/test-command";
7631     int r;
7632     suppress_error = 0;
7633     r = guestfs_chmod (g, 493, path);
7634     if (r == -1)
7635       return -1;
7636   }
7637   {
7638     char arguments_0[] = "/test-command";
7639     char arguments_1[] = "6";
7640     char *arguments[] = {
7641       arguments_0,
7642       arguments_1,
7643       NULL
7644     };
7645     char **r;
7646     int i;
7647     suppress_error = 0;
7648     r = guestfs_command_lines (g, arguments);
7649     if (r == NULL)
7650       return -1;
7651     if (!r[0]) {
7652       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
7653       print_strings (r);
7654       return -1;
7655     }
7656     {
7657       char expected[] = "";
7658       if (strcmp (r[0], expected) != 0) {
7659         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7660         return -1;
7661       }
7662     }
7663     if (!r[1]) {
7664       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
7665       print_strings (r);
7666       return -1;
7667     }
7668     {
7669       char expected[] = "";
7670       if (strcmp (r[1], expected) != 0) {
7671         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[1]);
7672         return -1;
7673       }
7674     }
7675     if (!r[2]) {
7676       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
7677       print_strings (r);
7678       return -1;
7679     }
7680     {
7681       char expected[] = "Result6";
7682       if (strcmp (r[2], expected) != 0) {
7683         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[2]);
7684         return -1;
7685       }
7686     }
7687     if (!r[3]) {
7688       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
7689       print_strings (r);
7690       return -1;
7691     }
7692     {
7693       char expected[] = "";
7694       if (strcmp (r[3], expected) != 0) {
7695         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[3]);
7696         return -1;
7697       }
7698     }
7699     if (r[4] != NULL) {
7700       fprintf (stderr, "test_command_lines_5: extra elements returned from command\n");
7701       print_strings (r);
7702       return -1;
7703     }
7704     for (i = 0; r[i] != NULL; ++i)
7705       free (r[i]);
7706     free (r);
7707   }
7708   return 0;
7709 }
7710
7711 static int test_command_lines_6_skip (void)
7712 {
7713   const char *str;
7714
7715   str = getenv ("SKIP_TEST_COMMAND_LINES_6");
7716   if (str && strcmp (str, "1") == 0) return 1;
7717   str = getenv ("SKIP_TEST_COMMAND_LINES");
7718   if (str && strcmp (str, "1") == 0) return 1;
7719   return 0;
7720 }
7721
7722 static int test_command_lines_6 (void)
7723 {
7724   if (test_command_lines_6_skip ()) {
7725     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_6");
7726     return 0;
7727   }
7728
7729   /* InitBasicFS for test_command_lines_6: create ext2 on /dev/sda1 */
7730   {
7731     char device[] = "/dev/sda";
7732     int r;
7733     suppress_error = 0;
7734     r = guestfs_blockdev_setrw (g, device);
7735     if (r == -1)
7736       return -1;
7737   }
7738   {
7739     int r;
7740     suppress_error = 0;
7741     r = guestfs_umount_all (g);
7742     if (r == -1)
7743       return -1;
7744   }
7745   {
7746     int r;
7747     suppress_error = 0;
7748     r = guestfs_lvm_remove_all (g);
7749     if (r == -1)
7750       return -1;
7751   }
7752   {
7753     char device[] = "/dev/sda";
7754     char lines_0[] = ",";
7755     char *lines[] = {
7756       lines_0,
7757       NULL
7758     };
7759     int r;
7760     suppress_error = 0;
7761     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7762     if (r == -1)
7763       return -1;
7764   }
7765   {
7766     char fstype[] = "ext2";
7767     char device[] = "/dev/sda1";
7768     int r;
7769     suppress_error = 0;
7770     r = guestfs_mkfs (g, fstype, device);
7771     if (r == -1)
7772       return -1;
7773   }
7774   {
7775     char device[] = "/dev/sda1";
7776     char mountpoint[] = "/";
7777     int r;
7778     suppress_error = 0;
7779     r = guestfs_mount (g, device, mountpoint);
7780     if (r == -1)
7781       return -1;
7782   }
7783   /* TestOutputList for command_lines (6) */
7784   {
7785     char remotefilename[] = "/test-command";
7786     int r;
7787     suppress_error = 0;
7788     r = guestfs_upload (g, "test-command", remotefilename);
7789     if (r == -1)
7790       return -1;
7791   }
7792   {
7793     char path[] = "/test-command";
7794     int r;
7795     suppress_error = 0;
7796     r = guestfs_chmod (g, 493, path);
7797     if (r == -1)
7798       return -1;
7799   }
7800   {
7801     char arguments_0[] = "/test-command";
7802     char arguments_1[] = "7";
7803     char *arguments[] = {
7804       arguments_0,
7805       arguments_1,
7806       NULL
7807     };
7808     char **r;
7809     int i;
7810     suppress_error = 0;
7811     r = guestfs_command_lines (g, arguments);
7812     if (r == NULL)
7813       return -1;
7814     if (r[0] != NULL) {
7815       fprintf (stderr, "test_command_lines_6: extra elements returned from command\n");
7816       print_strings (r);
7817       return -1;
7818     }
7819     for (i = 0; r[i] != NULL; ++i)
7820       free (r[i]);
7821     free (r);
7822   }
7823   return 0;
7824 }
7825
7826 static int test_command_lines_7_skip (void)
7827 {
7828   const char *str;
7829
7830   str = getenv ("SKIP_TEST_COMMAND_LINES_7");
7831   if (str && strcmp (str, "1") == 0) return 1;
7832   str = getenv ("SKIP_TEST_COMMAND_LINES");
7833   if (str && strcmp (str, "1") == 0) return 1;
7834   return 0;
7835 }
7836
7837 static int test_command_lines_7 (void)
7838 {
7839   if (test_command_lines_7_skip ()) {
7840     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_7");
7841     return 0;
7842   }
7843
7844   /* InitBasicFS for test_command_lines_7: create ext2 on /dev/sda1 */
7845   {
7846     char device[] = "/dev/sda";
7847     int r;
7848     suppress_error = 0;
7849     r = guestfs_blockdev_setrw (g, device);
7850     if (r == -1)
7851       return -1;
7852   }
7853   {
7854     int r;
7855     suppress_error = 0;
7856     r = guestfs_umount_all (g);
7857     if (r == -1)
7858       return -1;
7859   }
7860   {
7861     int r;
7862     suppress_error = 0;
7863     r = guestfs_lvm_remove_all (g);
7864     if (r == -1)
7865       return -1;
7866   }
7867   {
7868     char device[] = "/dev/sda";
7869     char lines_0[] = ",";
7870     char *lines[] = {
7871       lines_0,
7872       NULL
7873     };
7874     int r;
7875     suppress_error = 0;
7876     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7877     if (r == -1)
7878       return -1;
7879   }
7880   {
7881     char fstype[] = "ext2";
7882     char device[] = "/dev/sda1";
7883     int r;
7884     suppress_error = 0;
7885     r = guestfs_mkfs (g, fstype, device);
7886     if (r == -1)
7887       return -1;
7888   }
7889   {
7890     char device[] = "/dev/sda1";
7891     char mountpoint[] = "/";
7892     int r;
7893     suppress_error = 0;
7894     r = guestfs_mount (g, device, mountpoint);
7895     if (r == -1)
7896       return -1;
7897   }
7898   /* TestOutputList for command_lines (7) */
7899   {
7900     char remotefilename[] = "/test-command";
7901     int r;
7902     suppress_error = 0;
7903     r = guestfs_upload (g, "test-command", remotefilename);
7904     if (r == -1)
7905       return -1;
7906   }
7907   {
7908     char path[] = "/test-command";
7909     int r;
7910     suppress_error = 0;
7911     r = guestfs_chmod (g, 493, path);
7912     if (r == -1)
7913       return -1;
7914   }
7915   {
7916     char arguments_0[] = "/test-command";
7917     char arguments_1[] = "8";
7918     char *arguments[] = {
7919       arguments_0,
7920       arguments_1,
7921       NULL
7922     };
7923     char **r;
7924     int i;
7925     suppress_error = 0;
7926     r = guestfs_command_lines (g, arguments);
7927     if (r == NULL)
7928       return -1;
7929     if (!r[0]) {
7930       fprintf (stderr, "test_command_lines_7: short list returned from command\n");
7931       print_strings (r);
7932       return -1;
7933     }
7934     {
7935       char expected[] = "";
7936       if (strcmp (r[0], expected) != 0) {
7937         fprintf (stderr, "test_command_lines_7: expected \"%s\" but got \"%s\"\n", expected, r[0]);
7938         return -1;
7939       }
7940     }
7941     if (r[1] != NULL) {
7942       fprintf (stderr, "test_command_lines_7: extra elements returned from command\n");
7943       print_strings (r);
7944       return -1;
7945     }
7946     for (i = 0; r[i] != NULL; ++i)
7947       free (r[i]);
7948     free (r);
7949   }
7950   return 0;
7951 }
7952
7953 static int test_command_lines_8_skip (void)
7954 {
7955   const char *str;
7956
7957   str = getenv ("SKIP_TEST_COMMAND_LINES_8");
7958   if (str && strcmp (str, "1") == 0) return 1;
7959   str = getenv ("SKIP_TEST_COMMAND_LINES");
7960   if (str && strcmp (str, "1") == 0) return 1;
7961   return 0;
7962 }
7963
7964 static int test_command_lines_8 (void)
7965 {
7966   if (test_command_lines_8_skip ()) {
7967     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_8");
7968     return 0;
7969   }
7970
7971   /* InitBasicFS for test_command_lines_8: create ext2 on /dev/sda1 */
7972   {
7973     char device[] = "/dev/sda";
7974     int r;
7975     suppress_error = 0;
7976     r = guestfs_blockdev_setrw (g, device);
7977     if (r == -1)
7978       return -1;
7979   }
7980   {
7981     int r;
7982     suppress_error = 0;
7983     r = guestfs_umount_all (g);
7984     if (r == -1)
7985       return -1;
7986   }
7987   {
7988     int r;
7989     suppress_error = 0;
7990     r = guestfs_lvm_remove_all (g);
7991     if (r == -1)
7992       return -1;
7993   }
7994   {
7995     char device[] = "/dev/sda";
7996     char lines_0[] = ",";
7997     char *lines[] = {
7998       lines_0,
7999       NULL
8000     };
8001     int r;
8002     suppress_error = 0;
8003     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8004     if (r == -1)
8005       return -1;
8006   }
8007   {
8008     char fstype[] = "ext2";
8009     char device[] = "/dev/sda1";
8010     int r;
8011     suppress_error = 0;
8012     r = guestfs_mkfs (g, fstype, device);
8013     if (r == -1)
8014       return -1;
8015   }
8016   {
8017     char device[] = "/dev/sda1";
8018     char mountpoint[] = "/";
8019     int r;
8020     suppress_error = 0;
8021     r = guestfs_mount (g, device, mountpoint);
8022     if (r == -1)
8023       return -1;
8024   }
8025   /* TestOutputList for command_lines (8) */
8026   {
8027     char remotefilename[] = "/test-command";
8028     int r;
8029     suppress_error = 0;
8030     r = guestfs_upload (g, "test-command", remotefilename);
8031     if (r == -1)
8032       return -1;
8033   }
8034   {
8035     char path[] = "/test-command";
8036     int r;
8037     suppress_error = 0;
8038     r = guestfs_chmod (g, 493, path);
8039     if (r == -1)
8040       return -1;
8041   }
8042   {
8043     char arguments_0[] = "/test-command";
8044     char arguments_1[] = "9";
8045     char *arguments[] = {
8046       arguments_0,
8047       arguments_1,
8048       NULL
8049     };
8050     char **r;
8051     int i;
8052     suppress_error = 0;
8053     r = guestfs_command_lines (g, arguments);
8054     if (r == NULL)
8055       return -1;
8056     if (!r[0]) {
8057       fprintf (stderr, "test_command_lines_8: short list returned from command\n");
8058       print_strings (r);
8059       return -1;
8060     }
8061     {
8062       char expected[] = "";
8063       if (strcmp (r[0], expected) != 0) {
8064         fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[0]);
8065         return -1;
8066       }
8067     }
8068     if (!r[1]) {
8069       fprintf (stderr, "test_command_lines_8: short list returned from command\n");
8070       print_strings (r);
8071       return -1;
8072     }
8073     {
8074       char expected[] = "";
8075       if (strcmp (r[1], expected) != 0) {
8076         fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[1]);
8077         return -1;
8078       }
8079     }
8080     if (r[2] != NULL) {
8081       fprintf (stderr, "test_command_lines_8: extra elements returned from command\n");
8082       print_strings (r);
8083       return -1;
8084     }
8085     for (i = 0; r[i] != NULL; ++i)
8086       free (r[i]);
8087     free (r);
8088   }
8089   return 0;
8090 }
8091
8092 static int test_command_lines_9_skip (void)
8093 {
8094   const char *str;
8095
8096   str = getenv ("SKIP_TEST_COMMAND_LINES_9");
8097   if (str && strcmp (str, "1") == 0) return 1;
8098   str = getenv ("SKIP_TEST_COMMAND_LINES");
8099   if (str && strcmp (str, "1") == 0) return 1;
8100   return 0;
8101 }
8102
8103 static int test_command_lines_9 (void)
8104 {
8105   if (test_command_lines_9_skip ()) {
8106     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_9");
8107     return 0;
8108   }
8109
8110   /* InitBasicFS for test_command_lines_9: create ext2 on /dev/sda1 */
8111   {
8112     char device[] = "/dev/sda";
8113     int r;
8114     suppress_error = 0;
8115     r = guestfs_blockdev_setrw (g, device);
8116     if (r == -1)
8117       return -1;
8118   }
8119   {
8120     int r;
8121     suppress_error = 0;
8122     r = guestfs_umount_all (g);
8123     if (r == -1)
8124       return -1;
8125   }
8126   {
8127     int r;
8128     suppress_error = 0;
8129     r = guestfs_lvm_remove_all (g);
8130     if (r == -1)
8131       return -1;
8132   }
8133   {
8134     char device[] = "/dev/sda";
8135     char lines_0[] = ",";
8136     char *lines[] = {
8137       lines_0,
8138       NULL
8139     };
8140     int r;
8141     suppress_error = 0;
8142     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8143     if (r == -1)
8144       return -1;
8145   }
8146   {
8147     char fstype[] = "ext2";
8148     char device[] = "/dev/sda1";
8149     int r;
8150     suppress_error = 0;
8151     r = guestfs_mkfs (g, fstype, device);
8152     if (r == -1)
8153       return -1;
8154   }
8155   {
8156     char device[] = "/dev/sda1";
8157     char mountpoint[] = "/";
8158     int r;
8159     suppress_error = 0;
8160     r = guestfs_mount (g, device, mountpoint);
8161     if (r == -1)
8162       return -1;
8163   }
8164   /* TestOutputList for command_lines (9) */
8165   {
8166     char remotefilename[] = "/test-command";
8167     int r;
8168     suppress_error = 0;
8169     r = guestfs_upload (g, "test-command", remotefilename);
8170     if (r == -1)
8171       return -1;
8172   }
8173   {
8174     char path[] = "/test-command";
8175     int r;
8176     suppress_error = 0;
8177     r = guestfs_chmod (g, 493, path);
8178     if (r == -1)
8179       return -1;
8180   }
8181   {
8182     char arguments_0[] = "/test-command";
8183     char arguments_1[] = "10";
8184     char *arguments[] = {
8185       arguments_0,
8186       arguments_1,
8187       NULL
8188     };
8189     char **r;
8190     int i;
8191     suppress_error = 0;
8192     r = guestfs_command_lines (g, arguments);
8193     if (r == NULL)
8194       return -1;
8195     if (!r[0]) {
8196       fprintf (stderr, "test_command_lines_9: short list returned from command\n");
8197       print_strings (r);
8198       return -1;
8199     }
8200     {
8201       char expected[] = "Result10-1";
8202       if (strcmp (r[0], expected) != 0) {
8203         fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[0]);
8204         return -1;
8205       }
8206     }
8207     if (!r[1]) {
8208       fprintf (stderr, "test_command_lines_9: short list returned from command\n");
8209       print_strings (r);
8210       return -1;
8211     }
8212     {
8213       char expected[] = "Result10-2";
8214       if (strcmp (r[1], expected) != 0) {
8215         fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[1]);
8216         return -1;
8217       }
8218     }
8219     if (r[2] != NULL) {
8220       fprintf (stderr, "test_command_lines_9: extra elements returned from command\n");
8221       print_strings (r);
8222       return -1;
8223     }
8224     for (i = 0; r[i] != NULL; ++i)
8225       free (r[i]);
8226     free (r);
8227   }
8228   return 0;
8229 }
8230
8231 static int test_command_lines_10_skip (void)
8232 {
8233   const char *str;
8234
8235   str = getenv ("SKIP_TEST_COMMAND_LINES_10");
8236   if (str && strcmp (str, "1") == 0) return 1;
8237   str = getenv ("SKIP_TEST_COMMAND_LINES");
8238   if (str && strcmp (str, "1") == 0) return 1;
8239   return 0;
8240 }
8241
8242 static int test_command_lines_10 (void)
8243 {
8244   if (test_command_lines_10_skip ()) {
8245     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_lines_10");
8246     return 0;
8247   }
8248
8249   /* InitBasicFS for test_command_lines_10: create ext2 on /dev/sda1 */
8250   {
8251     char device[] = "/dev/sda";
8252     int r;
8253     suppress_error = 0;
8254     r = guestfs_blockdev_setrw (g, device);
8255     if (r == -1)
8256       return -1;
8257   }
8258   {
8259     int r;
8260     suppress_error = 0;
8261     r = guestfs_umount_all (g);
8262     if (r == -1)
8263       return -1;
8264   }
8265   {
8266     int r;
8267     suppress_error = 0;
8268     r = guestfs_lvm_remove_all (g);
8269     if (r == -1)
8270       return -1;
8271   }
8272   {
8273     char device[] = "/dev/sda";
8274     char lines_0[] = ",";
8275     char *lines[] = {
8276       lines_0,
8277       NULL
8278     };
8279     int r;
8280     suppress_error = 0;
8281     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8282     if (r == -1)
8283       return -1;
8284   }
8285   {
8286     char fstype[] = "ext2";
8287     char device[] = "/dev/sda1";
8288     int r;
8289     suppress_error = 0;
8290     r = guestfs_mkfs (g, fstype, device);
8291     if (r == -1)
8292       return -1;
8293   }
8294   {
8295     char device[] = "/dev/sda1";
8296     char mountpoint[] = "/";
8297     int r;
8298     suppress_error = 0;
8299     r = guestfs_mount (g, device, mountpoint);
8300     if (r == -1)
8301       return -1;
8302   }
8303   /* TestOutputList for command_lines (10) */
8304   {
8305     char remotefilename[] = "/test-command";
8306     int r;
8307     suppress_error = 0;
8308     r = guestfs_upload (g, "test-command", remotefilename);
8309     if (r == -1)
8310       return -1;
8311   }
8312   {
8313     char path[] = "/test-command";
8314     int r;
8315     suppress_error = 0;
8316     r = guestfs_chmod (g, 493, path);
8317     if (r == -1)
8318       return -1;
8319   }
8320   {
8321     char arguments_0[] = "/test-command";
8322     char arguments_1[] = "11";
8323     char *arguments[] = {
8324       arguments_0,
8325       arguments_1,
8326       NULL
8327     };
8328     char **r;
8329     int i;
8330     suppress_error = 0;
8331     r = guestfs_command_lines (g, arguments);
8332     if (r == NULL)
8333       return -1;
8334     if (!r[0]) {
8335       fprintf (stderr, "test_command_lines_10: short list returned from command\n");
8336       print_strings (r);
8337       return -1;
8338     }
8339     {
8340       char expected[] = "Result11-1";
8341       if (strcmp (r[0], expected) != 0) {
8342         fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[0]);
8343         return -1;
8344       }
8345     }
8346     if (!r[1]) {
8347       fprintf (stderr, "test_command_lines_10: short list returned from command\n");
8348       print_strings (r);
8349       return -1;
8350     }
8351     {
8352       char expected[] = "Result11-2";
8353       if (strcmp (r[1], expected) != 0) {
8354         fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[1]);
8355         return -1;
8356       }
8357     }
8358     if (r[2] != NULL) {
8359       fprintf (stderr, "test_command_lines_10: extra elements returned from command\n");
8360       print_strings (r);
8361       return -1;
8362     }
8363     for (i = 0; r[i] != NULL; ++i)
8364       free (r[i]);
8365     free (r);
8366   }
8367   return 0;
8368 }
8369
8370 static int test_command_0_skip (void)
8371 {
8372   const char *str;
8373
8374   str = getenv ("SKIP_TEST_COMMAND_0");
8375   if (str && strcmp (str, "1") == 0) return 1;
8376   str = getenv ("SKIP_TEST_COMMAND");
8377   if (str && strcmp (str, "1") == 0) return 1;
8378   return 0;
8379 }
8380
8381 static int test_command_0 (void)
8382 {
8383   if (test_command_0_skip ()) {
8384     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_0");
8385     return 0;
8386   }
8387
8388   /* InitBasicFS for test_command_0: create ext2 on /dev/sda1 */
8389   {
8390     char device[] = "/dev/sda";
8391     int r;
8392     suppress_error = 0;
8393     r = guestfs_blockdev_setrw (g, device);
8394     if (r == -1)
8395       return -1;
8396   }
8397   {
8398     int r;
8399     suppress_error = 0;
8400     r = guestfs_umount_all (g);
8401     if (r == -1)
8402       return -1;
8403   }
8404   {
8405     int r;
8406     suppress_error = 0;
8407     r = guestfs_lvm_remove_all (g);
8408     if (r == -1)
8409       return -1;
8410   }
8411   {
8412     char device[] = "/dev/sda";
8413     char lines_0[] = ",";
8414     char *lines[] = {
8415       lines_0,
8416       NULL
8417     };
8418     int r;
8419     suppress_error = 0;
8420     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8421     if (r == -1)
8422       return -1;
8423   }
8424   {
8425     char fstype[] = "ext2";
8426     char device[] = "/dev/sda1";
8427     int r;
8428     suppress_error = 0;
8429     r = guestfs_mkfs (g, fstype, device);
8430     if (r == -1)
8431       return -1;
8432   }
8433   {
8434     char device[] = "/dev/sda1";
8435     char mountpoint[] = "/";
8436     int r;
8437     suppress_error = 0;
8438     r = guestfs_mount (g, device, mountpoint);
8439     if (r == -1)
8440       return -1;
8441   }
8442   /* TestOutput for command (0) */
8443   char expected[] = "Result1";
8444   {
8445     char remotefilename[] = "/test-command";
8446     int r;
8447     suppress_error = 0;
8448     r = guestfs_upload (g, "test-command", remotefilename);
8449     if (r == -1)
8450       return -1;
8451   }
8452   {
8453     char path[] = "/test-command";
8454     int r;
8455     suppress_error = 0;
8456     r = guestfs_chmod (g, 493, path);
8457     if (r == -1)
8458       return -1;
8459   }
8460   {
8461     char arguments_0[] = "/test-command";
8462     char arguments_1[] = "1";
8463     char *arguments[] = {
8464       arguments_0,
8465       arguments_1,
8466       NULL
8467     };
8468     char *r;
8469     suppress_error = 0;
8470     r = guestfs_command (g, arguments);
8471     if (r == NULL)
8472       return -1;
8473     if (strcmp (r, expected) != 0) {
8474       fprintf (stderr, "test_command_0: expected \"%s\" but got \"%s\"\n", expected, r);
8475       return -1;
8476     }
8477     free (r);
8478   }
8479   return 0;
8480 }
8481
8482 static int test_command_1_skip (void)
8483 {
8484   const char *str;
8485
8486   str = getenv ("SKIP_TEST_COMMAND_1");
8487   if (str && strcmp (str, "1") == 0) return 1;
8488   str = getenv ("SKIP_TEST_COMMAND");
8489   if (str && strcmp (str, "1") == 0) return 1;
8490   return 0;
8491 }
8492
8493 static int test_command_1 (void)
8494 {
8495   if (test_command_1_skip ()) {
8496     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_1");
8497     return 0;
8498   }
8499
8500   /* InitBasicFS for test_command_1: create ext2 on /dev/sda1 */
8501   {
8502     char device[] = "/dev/sda";
8503     int r;
8504     suppress_error = 0;
8505     r = guestfs_blockdev_setrw (g, device);
8506     if (r == -1)
8507       return -1;
8508   }
8509   {
8510     int r;
8511     suppress_error = 0;
8512     r = guestfs_umount_all (g);
8513     if (r == -1)
8514       return -1;
8515   }
8516   {
8517     int r;
8518     suppress_error = 0;
8519     r = guestfs_lvm_remove_all (g);
8520     if (r == -1)
8521       return -1;
8522   }
8523   {
8524     char device[] = "/dev/sda";
8525     char lines_0[] = ",";
8526     char *lines[] = {
8527       lines_0,
8528       NULL
8529     };
8530     int r;
8531     suppress_error = 0;
8532     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8533     if (r == -1)
8534       return -1;
8535   }
8536   {
8537     char fstype[] = "ext2";
8538     char device[] = "/dev/sda1";
8539     int r;
8540     suppress_error = 0;
8541     r = guestfs_mkfs (g, fstype, device);
8542     if (r == -1)
8543       return -1;
8544   }
8545   {
8546     char device[] = "/dev/sda1";
8547     char mountpoint[] = "/";
8548     int r;
8549     suppress_error = 0;
8550     r = guestfs_mount (g, device, mountpoint);
8551     if (r == -1)
8552       return -1;
8553   }
8554   /* TestOutput for command (1) */
8555   char expected[] = "Result2\n";
8556   {
8557     char remotefilename[] = "/test-command";
8558     int r;
8559     suppress_error = 0;
8560     r = guestfs_upload (g, "test-command", remotefilename);
8561     if (r == -1)
8562       return -1;
8563   }
8564   {
8565     char path[] = "/test-command";
8566     int r;
8567     suppress_error = 0;
8568     r = guestfs_chmod (g, 493, path);
8569     if (r == -1)
8570       return -1;
8571   }
8572   {
8573     char arguments_0[] = "/test-command";
8574     char arguments_1[] = "2";
8575     char *arguments[] = {
8576       arguments_0,
8577       arguments_1,
8578       NULL
8579     };
8580     char *r;
8581     suppress_error = 0;
8582     r = guestfs_command (g, arguments);
8583     if (r == NULL)
8584       return -1;
8585     if (strcmp (r, expected) != 0) {
8586       fprintf (stderr, "test_command_1: expected \"%s\" but got \"%s\"\n", expected, r);
8587       return -1;
8588     }
8589     free (r);
8590   }
8591   return 0;
8592 }
8593
8594 static int test_command_2_skip (void)
8595 {
8596   const char *str;
8597
8598   str = getenv ("SKIP_TEST_COMMAND_2");
8599   if (str && strcmp (str, "1") == 0) return 1;
8600   str = getenv ("SKIP_TEST_COMMAND");
8601   if (str && strcmp (str, "1") == 0) return 1;
8602   return 0;
8603 }
8604
8605 static int test_command_2 (void)
8606 {
8607   if (test_command_2_skip ()) {
8608     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_2");
8609     return 0;
8610   }
8611
8612   /* InitBasicFS for test_command_2: create ext2 on /dev/sda1 */
8613   {
8614     char device[] = "/dev/sda";
8615     int r;
8616     suppress_error = 0;
8617     r = guestfs_blockdev_setrw (g, device);
8618     if (r == -1)
8619       return -1;
8620   }
8621   {
8622     int r;
8623     suppress_error = 0;
8624     r = guestfs_umount_all (g);
8625     if (r == -1)
8626       return -1;
8627   }
8628   {
8629     int r;
8630     suppress_error = 0;
8631     r = guestfs_lvm_remove_all (g);
8632     if (r == -1)
8633       return -1;
8634   }
8635   {
8636     char device[] = "/dev/sda";
8637     char lines_0[] = ",";
8638     char *lines[] = {
8639       lines_0,
8640       NULL
8641     };
8642     int r;
8643     suppress_error = 0;
8644     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8645     if (r == -1)
8646       return -1;
8647   }
8648   {
8649     char fstype[] = "ext2";
8650     char device[] = "/dev/sda1";
8651     int r;
8652     suppress_error = 0;
8653     r = guestfs_mkfs (g, fstype, device);
8654     if (r == -1)
8655       return -1;
8656   }
8657   {
8658     char device[] = "/dev/sda1";
8659     char mountpoint[] = "/";
8660     int r;
8661     suppress_error = 0;
8662     r = guestfs_mount (g, device, mountpoint);
8663     if (r == -1)
8664       return -1;
8665   }
8666   /* TestOutput for command (2) */
8667   char expected[] = "\nResult3";
8668   {
8669     char remotefilename[] = "/test-command";
8670     int r;
8671     suppress_error = 0;
8672     r = guestfs_upload (g, "test-command", remotefilename);
8673     if (r == -1)
8674       return -1;
8675   }
8676   {
8677     char path[] = "/test-command";
8678     int r;
8679     suppress_error = 0;
8680     r = guestfs_chmod (g, 493, path);
8681     if (r == -1)
8682       return -1;
8683   }
8684   {
8685     char arguments_0[] = "/test-command";
8686     char arguments_1[] = "3";
8687     char *arguments[] = {
8688       arguments_0,
8689       arguments_1,
8690       NULL
8691     };
8692     char *r;
8693     suppress_error = 0;
8694     r = guestfs_command (g, arguments);
8695     if (r == NULL)
8696       return -1;
8697     if (strcmp (r, expected) != 0) {
8698       fprintf (stderr, "test_command_2: expected \"%s\" but got \"%s\"\n", expected, r);
8699       return -1;
8700     }
8701     free (r);
8702   }
8703   return 0;
8704 }
8705
8706 static int test_command_3_skip (void)
8707 {
8708   const char *str;
8709
8710   str = getenv ("SKIP_TEST_COMMAND_3");
8711   if (str && strcmp (str, "1") == 0) return 1;
8712   str = getenv ("SKIP_TEST_COMMAND");
8713   if (str && strcmp (str, "1") == 0) return 1;
8714   return 0;
8715 }
8716
8717 static int test_command_3 (void)
8718 {
8719   if (test_command_3_skip ()) {
8720     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_3");
8721     return 0;
8722   }
8723
8724   /* InitBasicFS for test_command_3: create ext2 on /dev/sda1 */
8725   {
8726     char device[] = "/dev/sda";
8727     int r;
8728     suppress_error = 0;
8729     r = guestfs_blockdev_setrw (g, device);
8730     if (r == -1)
8731       return -1;
8732   }
8733   {
8734     int r;
8735     suppress_error = 0;
8736     r = guestfs_umount_all (g);
8737     if (r == -1)
8738       return -1;
8739   }
8740   {
8741     int r;
8742     suppress_error = 0;
8743     r = guestfs_lvm_remove_all (g);
8744     if (r == -1)
8745       return -1;
8746   }
8747   {
8748     char device[] = "/dev/sda";
8749     char lines_0[] = ",";
8750     char *lines[] = {
8751       lines_0,
8752       NULL
8753     };
8754     int r;
8755     suppress_error = 0;
8756     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8757     if (r == -1)
8758       return -1;
8759   }
8760   {
8761     char fstype[] = "ext2";
8762     char device[] = "/dev/sda1";
8763     int r;
8764     suppress_error = 0;
8765     r = guestfs_mkfs (g, fstype, device);
8766     if (r == -1)
8767       return -1;
8768   }
8769   {
8770     char device[] = "/dev/sda1";
8771     char mountpoint[] = "/";
8772     int r;
8773     suppress_error = 0;
8774     r = guestfs_mount (g, device, mountpoint);
8775     if (r == -1)
8776       return -1;
8777   }
8778   /* TestOutput for command (3) */
8779   char expected[] = "\nResult4\n";
8780   {
8781     char remotefilename[] = "/test-command";
8782     int r;
8783     suppress_error = 0;
8784     r = guestfs_upload (g, "test-command", remotefilename);
8785     if (r == -1)
8786       return -1;
8787   }
8788   {
8789     char path[] = "/test-command";
8790     int r;
8791     suppress_error = 0;
8792     r = guestfs_chmod (g, 493, path);
8793     if (r == -1)
8794       return -1;
8795   }
8796   {
8797     char arguments_0[] = "/test-command";
8798     char arguments_1[] = "4";
8799     char *arguments[] = {
8800       arguments_0,
8801       arguments_1,
8802       NULL
8803     };
8804     char *r;
8805     suppress_error = 0;
8806     r = guestfs_command (g, arguments);
8807     if (r == NULL)
8808       return -1;
8809     if (strcmp (r, expected) != 0) {
8810       fprintf (stderr, "test_command_3: expected \"%s\" but got \"%s\"\n", expected, r);
8811       return -1;
8812     }
8813     free (r);
8814   }
8815   return 0;
8816 }
8817
8818 static int test_command_4_skip (void)
8819 {
8820   const char *str;
8821
8822   str = getenv ("SKIP_TEST_COMMAND_4");
8823   if (str && strcmp (str, "1") == 0) return 1;
8824   str = getenv ("SKIP_TEST_COMMAND");
8825   if (str && strcmp (str, "1") == 0) return 1;
8826   return 0;
8827 }
8828
8829 static int test_command_4 (void)
8830 {
8831   if (test_command_4_skip ()) {
8832     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_4");
8833     return 0;
8834   }
8835
8836   /* InitBasicFS for test_command_4: create ext2 on /dev/sda1 */
8837   {
8838     char device[] = "/dev/sda";
8839     int r;
8840     suppress_error = 0;
8841     r = guestfs_blockdev_setrw (g, device);
8842     if (r == -1)
8843       return -1;
8844   }
8845   {
8846     int r;
8847     suppress_error = 0;
8848     r = guestfs_umount_all (g);
8849     if (r == -1)
8850       return -1;
8851   }
8852   {
8853     int r;
8854     suppress_error = 0;
8855     r = guestfs_lvm_remove_all (g);
8856     if (r == -1)
8857       return -1;
8858   }
8859   {
8860     char device[] = "/dev/sda";
8861     char lines_0[] = ",";
8862     char *lines[] = {
8863       lines_0,
8864       NULL
8865     };
8866     int r;
8867     suppress_error = 0;
8868     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8869     if (r == -1)
8870       return -1;
8871   }
8872   {
8873     char fstype[] = "ext2";
8874     char device[] = "/dev/sda1";
8875     int r;
8876     suppress_error = 0;
8877     r = guestfs_mkfs (g, fstype, device);
8878     if (r == -1)
8879       return -1;
8880   }
8881   {
8882     char device[] = "/dev/sda1";
8883     char mountpoint[] = "/";
8884     int r;
8885     suppress_error = 0;
8886     r = guestfs_mount (g, device, mountpoint);
8887     if (r == -1)
8888       return -1;
8889   }
8890   /* TestOutput for command (4) */
8891   char expected[] = "\nResult5\n\n";
8892   {
8893     char remotefilename[] = "/test-command";
8894     int r;
8895     suppress_error = 0;
8896     r = guestfs_upload (g, "test-command", remotefilename);
8897     if (r == -1)
8898       return -1;
8899   }
8900   {
8901     char path[] = "/test-command";
8902     int r;
8903     suppress_error = 0;
8904     r = guestfs_chmod (g, 493, path);
8905     if (r == -1)
8906       return -1;
8907   }
8908   {
8909     char arguments_0[] = "/test-command";
8910     char arguments_1[] = "5";
8911     char *arguments[] = {
8912       arguments_0,
8913       arguments_1,
8914       NULL
8915     };
8916     char *r;
8917     suppress_error = 0;
8918     r = guestfs_command (g, arguments);
8919     if (r == NULL)
8920       return -1;
8921     if (strcmp (r, expected) != 0) {
8922       fprintf (stderr, "test_command_4: expected \"%s\" but got \"%s\"\n", expected, r);
8923       return -1;
8924     }
8925     free (r);
8926   }
8927   return 0;
8928 }
8929
8930 static int test_command_5_skip (void)
8931 {
8932   const char *str;
8933
8934   str = getenv ("SKIP_TEST_COMMAND_5");
8935   if (str && strcmp (str, "1") == 0) return 1;
8936   str = getenv ("SKIP_TEST_COMMAND");
8937   if (str && strcmp (str, "1") == 0) return 1;
8938   return 0;
8939 }
8940
8941 static int test_command_5 (void)
8942 {
8943   if (test_command_5_skip ()) {
8944     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_5");
8945     return 0;
8946   }
8947
8948   /* InitBasicFS for test_command_5: create ext2 on /dev/sda1 */
8949   {
8950     char device[] = "/dev/sda";
8951     int r;
8952     suppress_error = 0;
8953     r = guestfs_blockdev_setrw (g, device);
8954     if (r == -1)
8955       return -1;
8956   }
8957   {
8958     int r;
8959     suppress_error = 0;
8960     r = guestfs_umount_all (g);
8961     if (r == -1)
8962       return -1;
8963   }
8964   {
8965     int r;
8966     suppress_error = 0;
8967     r = guestfs_lvm_remove_all (g);
8968     if (r == -1)
8969       return -1;
8970   }
8971   {
8972     char device[] = "/dev/sda";
8973     char lines_0[] = ",";
8974     char *lines[] = {
8975       lines_0,
8976       NULL
8977     };
8978     int r;
8979     suppress_error = 0;
8980     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8981     if (r == -1)
8982       return -1;
8983   }
8984   {
8985     char fstype[] = "ext2";
8986     char device[] = "/dev/sda1";
8987     int r;
8988     suppress_error = 0;
8989     r = guestfs_mkfs (g, fstype, device);
8990     if (r == -1)
8991       return -1;
8992   }
8993   {
8994     char device[] = "/dev/sda1";
8995     char mountpoint[] = "/";
8996     int r;
8997     suppress_error = 0;
8998     r = guestfs_mount (g, device, mountpoint);
8999     if (r == -1)
9000       return -1;
9001   }
9002   /* TestOutput for command (5) */
9003   char expected[] = "\n\nResult6\n\n";
9004   {
9005     char remotefilename[] = "/test-command";
9006     int r;
9007     suppress_error = 0;
9008     r = guestfs_upload (g, "test-command", remotefilename);
9009     if (r == -1)
9010       return -1;
9011   }
9012   {
9013     char path[] = "/test-command";
9014     int r;
9015     suppress_error = 0;
9016     r = guestfs_chmod (g, 493, path);
9017     if (r == -1)
9018       return -1;
9019   }
9020   {
9021     char arguments_0[] = "/test-command";
9022     char arguments_1[] = "6";
9023     char *arguments[] = {
9024       arguments_0,
9025       arguments_1,
9026       NULL
9027     };
9028     char *r;
9029     suppress_error = 0;
9030     r = guestfs_command (g, arguments);
9031     if (r == NULL)
9032       return -1;
9033     if (strcmp (r, expected) != 0) {
9034       fprintf (stderr, "test_command_5: expected \"%s\" but got \"%s\"\n", expected, r);
9035       return -1;
9036     }
9037     free (r);
9038   }
9039   return 0;
9040 }
9041
9042 static int test_command_6_skip (void)
9043 {
9044   const char *str;
9045
9046   str = getenv ("SKIP_TEST_COMMAND_6");
9047   if (str && strcmp (str, "1") == 0) return 1;
9048   str = getenv ("SKIP_TEST_COMMAND");
9049   if (str && strcmp (str, "1") == 0) return 1;
9050   return 0;
9051 }
9052
9053 static int test_command_6 (void)
9054 {
9055   if (test_command_6_skip ()) {
9056     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_6");
9057     return 0;
9058   }
9059
9060   /* InitBasicFS for test_command_6: create ext2 on /dev/sda1 */
9061   {
9062     char device[] = "/dev/sda";
9063     int r;
9064     suppress_error = 0;
9065     r = guestfs_blockdev_setrw (g, device);
9066     if (r == -1)
9067       return -1;
9068   }
9069   {
9070     int r;
9071     suppress_error = 0;
9072     r = guestfs_umount_all (g);
9073     if (r == -1)
9074       return -1;
9075   }
9076   {
9077     int r;
9078     suppress_error = 0;
9079     r = guestfs_lvm_remove_all (g);
9080     if (r == -1)
9081       return -1;
9082   }
9083   {
9084     char device[] = "/dev/sda";
9085     char lines_0[] = ",";
9086     char *lines[] = {
9087       lines_0,
9088       NULL
9089     };
9090     int r;
9091     suppress_error = 0;
9092     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9093     if (r == -1)
9094       return -1;
9095   }
9096   {
9097     char fstype[] = "ext2";
9098     char device[] = "/dev/sda1";
9099     int r;
9100     suppress_error = 0;
9101     r = guestfs_mkfs (g, fstype, device);
9102     if (r == -1)
9103       return -1;
9104   }
9105   {
9106     char device[] = "/dev/sda1";
9107     char mountpoint[] = "/";
9108     int r;
9109     suppress_error = 0;
9110     r = guestfs_mount (g, device, mountpoint);
9111     if (r == -1)
9112       return -1;
9113   }
9114   /* TestOutput for command (6) */
9115   char expected[] = "";
9116   {
9117     char remotefilename[] = "/test-command";
9118     int r;
9119     suppress_error = 0;
9120     r = guestfs_upload (g, "test-command", remotefilename);
9121     if (r == -1)
9122       return -1;
9123   }
9124   {
9125     char path[] = "/test-command";
9126     int r;
9127     suppress_error = 0;
9128     r = guestfs_chmod (g, 493, path);
9129     if (r == -1)
9130       return -1;
9131   }
9132   {
9133     char arguments_0[] = "/test-command";
9134     char arguments_1[] = "7";
9135     char *arguments[] = {
9136       arguments_0,
9137       arguments_1,
9138       NULL
9139     };
9140     char *r;
9141     suppress_error = 0;
9142     r = guestfs_command (g, arguments);
9143     if (r == NULL)
9144       return -1;
9145     if (strcmp (r, expected) != 0) {
9146       fprintf (stderr, "test_command_6: expected \"%s\" but got \"%s\"\n", expected, r);
9147       return -1;
9148     }
9149     free (r);
9150   }
9151   return 0;
9152 }
9153
9154 static int test_command_7_skip (void)
9155 {
9156   const char *str;
9157
9158   str = getenv ("SKIP_TEST_COMMAND_7");
9159   if (str && strcmp (str, "1") == 0) return 1;
9160   str = getenv ("SKIP_TEST_COMMAND");
9161   if (str && strcmp (str, "1") == 0) return 1;
9162   return 0;
9163 }
9164
9165 static int test_command_7 (void)
9166 {
9167   if (test_command_7_skip ()) {
9168     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_7");
9169     return 0;
9170   }
9171
9172   /* InitBasicFS for test_command_7: create ext2 on /dev/sda1 */
9173   {
9174     char device[] = "/dev/sda";
9175     int r;
9176     suppress_error = 0;
9177     r = guestfs_blockdev_setrw (g, device);
9178     if (r == -1)
9179       return -1;
9180   }
9181   {
9182     int r;
9183     suppress_error = 0;
9184     r = guestfs_umount_all (g);
9185     if (r == -1)
9186       return -1;
9187   }
9188   {
9189     int r;
9190     suppress_error = 0;
9191     r = guestfs_lvm_remove_all (g);
9192     if (r == -1)
9193       return -1;
9194   }
9195   {
9196     char device[] = "/dev/sda";
9197     char lines_0[] = ",";
9198     char *lines[] = {
9199       lines_0,
9200       NULL
9201     };
9202     int r;
9203     suppress_error = 0;
9204     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9205     if (r == -1)
9206       return -1;
9207   }
9208   {
9209     char fstype[] = "ext2";
9210     char device[] = "/dev/sda1";
9211     int r;
9212     suppress_error = 0;
9213     r = guestfs_mkfs (g, fstype, device);
9214     if (r == -1)
9215       return -1;
9216   }
9217   {
9218     char device[] = "/dev/sda1";
9219     char mountpoint[] = "/";
9220     int r;
9221     suppress_error = 0;
9222     r = guestfs_mount (g, device, mountpoint);
9223     if (r == -1)
9224       return -1;
9225   }
9226   /* TestOutput for command (7) */
9227   char expected[] = "\n";
9228   {
9229     char remotefilename[] = "/test-command";
9230     int r;
9231     suppress_error = 0;
9232     r = guestfs_upload (g, "test-command", remotefilename);
9233     if (r == -1)
9234       return -1;
9235   }
9236   {
9237     char path[] = "/test-command";
9238     int r;
9239     suppress_error = 0;
9240     r = guestfs_chmod (g, 493, path);
9241     if (r == -1)
9242       return -1;
9243   }
9244   {
9245     char arguments_0[] = "/test-command";
9246     char arguments_1[] = "8";
9247     char *arguments[] = {
9248       arguments_0,
9249       arguments_1,
9250       NULL
9251     };
9252     char *r;
9253     suppress_error = 0;
9254     r = guestfs_command (g, arguments);
9255     if (r == NULL)
9256       return -1;
9257     if (strcmp (r, expected) != 0) {
9258       fprintf (stderr, "test_command_7: expected \"%s\" but got \"%s\"\n", expected, r);
9259       return -1;
9260     }
9261     free (r);
9262   }
9263   return 0;
9264 }
9265
9266 static int test_command_8_skip (void)
9267 {
9268   const char *str;
9269
9270   str = getenv ("SKIP_TEST_COMMAND_8");
9271   if (str && strcmp (str, "1") == 0) return 1;
9272   str = getenv ("SKIP_TEST_COMMAND");
9273   if (str && strcmp (str, "1") == 0) return 1;
9274   return 0;
9275 }
9276
9277 static int test_command_8 (void)
9278 {
9279   if (test_command_8_skip ()) {
9280     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_8");
9281     return 0;
9282   }
9283
9284   /* InitBasicFS for test_command_8: create ext2 on /dev/sda1 */
9285   {
9286     char device[] = "/dev/sda";
9287     int r;
9288     suppress_error = 0;
9289     r = guestfs_blockdev_setrw (g, device);
9290     if (r == -1)
9291       return -1;
9292   }
9293   {
9294     int r;
9295     suppress_error = 0;
9296     r = guestfs_umount_all (g);
9297     if (r == -1)
9298       return -1;
9299   }
9300   {
9301     int r;
9302     suppress_error = 0;
9303     r = guestfs_lvm_remove_all (g);
9304     if (r == -1)
9305       return -1;
9306   }
9307   {
9308     char device[] = "/dev/sda";
9309     char lines_0[] = ",";
9310     char *lines[] = {
9311       lines_0,
9312       NULL
9313     };
9314     int r;
9315     suppress_error = 0;
9316     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9317     if (r == -1)
9318       return -1;
9319   }
9320   {
9321     char fstype[] = "ext2";
9322     char device[] = "/dev/sda1";
9323     int r;
9324     suppress_error = 0;
9325     r = guestfs_mkfs (g, fstype, device);
9326     if (r == -1)
9327       return -1;
9328   }
9329   {
9330     char device[] = "/dev/sda1";
9331     char mountpoint[] = "/";
9332     int r;
9333     suppress_error = 0;
9334     r = guestfs_mount (g, device, mountpoint);
9335     if (r == -1)
9336       return -1;
9337   }
9338   /* TestOutput for command (8) */
9339   char expected[] = "\n\n";
9340   {
9341     char remotefilename[] = "/test-command";
9342     int r;
9343     suppress_error = 0;
9344     r = guestfs_upload (g, "test-command", remotefilename);
9345     if (r == -1)
9346       return -1;
9347   }
9348   {
9349     char path[] = "/test-command";
9350     int r;
9351     suppress_error = 0;
9352     r = guestfs_chmod (g, 493, path);
9353     if (r == -1)
9354       return -1;
9355   }
9356   {
9357     char arguments_0[] = "/test-command";
9358     char arguments_1[] = "9";
9359     char *arguments[] = {
9360       arguments_0,
9361       arguments_1,
9362       NULL
9363     };
9364     char *r;
9365     suppress_error = 0;
9366     r = guestfs_command (g, arguments);
9367     if (r == NULL)
9368       return -1;
9369     if (strcmp (r, expected) != 0) {
9370       fprintf (stderr, "test_command_8: expected \"%s\" but got \"%s\"\n", expected, r);
9371       return -1;
9372     }
9373     free (r);
9374   }
9375   return 0;
9376 }
9377
9378 static int test_command_9_skip (void)
9379 {
9380   const char *str;
9381
9382   str = getenv ("SKIP_TEST_COMMAND_9");
9383   if (str && strcmp (str, "1") == 0) return 1;
9384   str = getenv ("SKIP_TEST_COMMAND");
9385   if (str && strcmp (str, "1") == 0) return 1;
9386   return 0;
9387 }
9388
9389 static int test_command_9 (void)
9390 {
9391   if (test_command_9_skip ()) {
9392     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_9");
9393     return 0;
9394   }
9395
9396   /* InitBasicFS for test_command_9: create ext2 on /dev/sda1 */
9397   {
9398     char device[] = "/dev/sda";
9399     int r;
9400     suppress_error = 0;
9401     r = guestfs_blockdev_setrw (g, device);
9402     if (r == -1)
9403       return -1;
9404   }
9405   {
9406     int r;
9407     suppress_error = 0;
9408     r = guestfs_umount_all (g);
9409     if (r == -1)
9410       return -1;
9411   }
9412   {
9413     int r;
9414     suppress_error = 0;
9415     r = guestfs_lvm_remove_all (g);
9416     if (r == -1)
9417       return -1;
9418   }
9419   {
9420     char device[] = "/dev/sda";
9421     char lines_0[] = ",";
9422     char *lines[] = {
9423       lines_0,
9424       NULL
9425     };
9426     int r;
9427     suppress_error = 0;
9428     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9429     if (r == -1)
9430       return -1;
9431   }
9432   {
9433     char fstype[] = "ext2";
9434     char device[] = "/dev/sda1";
9435     int r;
9436     suppress_error = 0;
9437     r = guestfs_mkfs (g, fstype, device);
9438     if (r == -1)
9439       return -1;
9440   }
9441   {
9442     char device[] = "/dev/sda1";
9443     char mountpoint[] = "/";
9444     int r;
9445     suppress_error = 0;
9446     r = guestfs_mount (g, device, mountpoint);
9447     if (r == -1)
9448       return -1;
9449   }
9450   /* TestOutput for command (9) */
9451   char expected[] = "Result10-1\nResult10-2\n";
9452   {
9453     char remotefilename[] = "/test-command";
9454     int r;
9455     suppress_error = 0;
9456     r = guestfs_upload (g, "test-command", remotefilename);
9457     if (r == -1)
9458       return -1;
9459   }
9460   {
9461     char path[] = "/test-command";
9462     int r;
9463     suppress_error = 0;
9464     r = guestfs_chmod (g, 493, path);
9465     if (r == -1)
9466       return -1;
9467   }
9468   {
9469     char arguments_0[] = "/test-command";
9470     char arguments_1[] = "10";
9471     char *arguments[] = {
9472       arguments_0,
9473       arguments_1,
9474       NULL
9475     };
9476     char *r;
9477     suppress_error = 0;
9478     r = guestfs_command (g, arguments);
9479     if (r == NULL)
9480       return -1;
9481     if (strcmp (r, expected) != 0) {
9482       fprintf (stderr, "test_command_9: expected \"%s\" but got \"%s\"\n", expected, r);
9483       return -1;
9484     }
9485     free (r);
9486   }
9487   return 0;
9488 }
9489
9490 static int test_command_10_skip (void)
9491 {
9492   const char *str;
9493
9494   str = getenv ("SKIP_TEST_COMMAND_10");
9495   if (str && strcmp (str, "1") == 0) return 1;
9496   str = getenv ("SKIP_TEST_COMMAND");
9497   if (str && strcmp (str, "1") == 0) return 1;
9498   return 0;
9499 }
9500
9501 static int test_command_10 (void)
9502 {
9503   if (test_command_10_skip ()) {
9504     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_10");
9505     return 0;
9506   }
9507
9508   /* InitBasicFS for test_command_10: create ext2 on /dev/sda1 */
9509   {
9510     char device[] = "/dev/sda";
9511     int r;
9512     suppress_error = 0;
9513     r = guestfs_blockdev_setrw (g, device);
9514     if (r == -1)
9515       return -1;
9516   }
9517   {
9518     int r;
9519     suppress_error = 0;
9520     r = guestfs_umount_all (g);
9521     if (r == -1)
9522       return -1;
9523   }
9524   {
9525     int r;
9526     suppress_error = 0;
9527     r = guestfs_lvm_remove_all (g);
9528     if (r == -1)
9529       return -1;
9530   }
9531   {
9532     char device[] = "/dev/sda";
9533     char lines_0[] = ",";
9534     char *lines[] = {
9535       lines_0,
9536       NULL
9537     };
9538     int r;
9539     suppress_error = 0;
9540     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9541     if (r == -1)
9542       return -1;
9543   }
9544   {
9545     char fstype[] = "ext2";
9546     char device[] = "/dev/sda1";
9547     int r;
9548     suppress_error = 0;
9549     r = guestfs_mkfs (g, fstype, device);
9550     if (r == -1)
9551       return -1;
9552   }
9553   {
9554     char device[] = "/dev/sda1";
9555     char mountpoint[] = "/";
9556     int r;
9557     suppress_error = 0;
9558     r = guestfs_mount (g, device, mountpoint);
9559     if (r == -1)
9560       return -1;
9561   }
9562   /* TestOutput for command (10) */
9563   char expected[] = "Result11-1\nResult11-2";
9564   {
9565     char remotefilename[] = "/test-command";
9566     int r;
9567     suppress_error = 0;
9568     r = guestfs_upload (g, "test-command", remotefilename);
9569     if (r == -1)
9570       return -1;
9571   }
9572   {
9573     char path[] = "/test-command";
9574     int r;
9575     suppress_error = 0;
9576     r = guestfs_chmod (g, 493, path);
9577     if (r == -1)
9578       return -1;
9579   }
9580   {
9581     char arguments_0[] = "/test-command";
9582     char arguments_1[] = "11";
9583     char *arguments[] = {
9584       arguments_0,
9585       arguments_1,
9586       NULL
9587     };
9588     char *r;
9589     suppress_error = 0;
9590     r = guestfs_command (g, arguments);
9591     if (r == NULL)
9592       return -1;
9593     if (strcmp (r, expected) != 0) {
9594       fprintf (stderr, "test_command_10: expected \"%s\" but got \"%s\"\n", expected, r);
9595       return -1;
9596     }
9597     free (r);
9598   }
9599   return 0;
9600 }
9601
9602 static int test_command_11_skip (void)
9603 {
9604   const char *str;
9605
9606   str = getenv ("SKIP_TEST_COMMAND_11");
9607   if (str && strcmp (str, "1") == 0) return 1;
9608   str = getenv ("SKIP_TEST_COMMAND");
9609   if (str && strcmp (str, "1") == 0) return 1;
9610   return 0;
9611 }
9612
9613 static int test_command_11 (void)
9614 {
9615   if (test_command_11_skip ()) {
9616     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_command_11");
9617     return 0;
9618   }
9619
9620   /* InitBasicFS for test_command_11: create ext2 on /dev/sda1 */
9621   {
9622     char device[] = "/dev/sda";
9623     int r;
9624     suppress_error = 0;
9625     r = guestfs_blockdev_setrw (g, device);
9626     if (r == -1)
9627       return -1;
9628   }
9629   {
9630     int r;
9631     suppress_error = 0;
9632     r = guestfs_umount_all (g);
9633     if (r == -1)
9634       return -1;
9635   }
9636   {
9637     int r;
9638     suppress_error = 0;
9639     r = guestfs_lvm_remove_all (g);
9640     if (r == -1)
9641       return -1;
9642   }
9643   {
9644     char device[] = "/dev/sda";
9645     char lines_0[] = ",";
9646     char *lines[] = {
9647       lines_0,
9648       NULL
9649     };
9650     int r;
9651     suppress_error = 0;
9652     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9653     if (r == -1)
9654       return -1;
9655   }
9656   {
9657     char fstype[] = "ext2";
9658     char device[] = "/dev/sda1";
9659     int r;
9660     suppress_error = 0;
9661     r = guestfs_mkfs (g, fstype, device);
9662     if (r == -1)
9663       return -1;
9664   }
9665   {
9666     char device[] = "/dev/sda1";
9667     char mountpoint[] = "/";
9668     int r;
9669     suppress_error = 0;
9670     r = guestfs_mount (g, device, mountpoint);
9671     if (r == -1)
9672       return -1;
9673   }
9674   /* TestLastFail for command (11) */
9675   {
9676     char remotefilename[] = "/test-command";
9677     int r;
9678     suppress_error = 0;
9679     r = guestfs_upload (g, "test-command", remotefilename);
9680     if (r == -1)
9681       return -1;
9682   }
9683   {
9684     char path[] = "/test-command";
9685     int r;
9686     suppress_error = 0;
9687     r = guestfs_chmod (g, 493, path);
9688     if (r == -1)
9689       return -1;
9690   }
9691   {
9692     char arguments_0[] = "/test-command";
9693     char *arguments[] = {
9694       arguments_0,
9695       NULL
9696     };
9697     char *r;
9698     suppress_error = 1;
9699     r = guestfs_command (g, arguments);
9700     if (r != NULL)
9701       return -1;
9702     free (r);
9703   }
9704   return 0;
9705 }
9706
9707 static int test_file_0_skip (void)
9708 {
9709   const char *str;
9710
9711   str = getenv ("SKIP_TEST_FILE_0");
9712   if (str && strcmp (str, "1") == 0) return 1;
9713   str = getenv ("SKIP_TEST_FILE");
9714   if (str && strcmp (str, "1") == 0) return 1;
9715   return 0;
9716 }
9717
9718 static int test_file_0 (void)
9719 {
9720   if (test_file_0_skip ()) {
9721     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_0");
9722     return 0;
9723   }
9724
9725   /* InitBasicFS for test_file_0: create ext2 on /dev/sda1 */
9726   {
9727     char device[] = "/dev/sda";
9728     int r;
9729     suppress_error = 0;
9730     r = guestfs_blockdev_setrw (g, device);
9731     if (r == -1)
9732       return -1;
9733   }
9734   {
9735     int r;
9736     suppress_error = 0;
9737     r = guestfs_umount_all (g);
9738     if (r == -1)
9739       return -1;
9740   }
9741   {
9742     int r;
9743     suppress_error = 0;
9744     r = guestfs_lvm_remove_all (g);
9745     if (r == -1)
9746       return -1;
9747   }
9748   {
9749     char device[] = "/dev/sda";
9750     char lines_0[] = ",";
9751     char *lines[] = {
9752       lines_0,
9753       NULL
9754     };
9755     int r;
9756     suppress_error = 0;
9757     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9758     if (r == -1)
9759       return -1;
9760   }
9761   {
9762     char fstype[] = "ext2";
9763     char device[] = "/dev/sda1";
9764     int r;
9765     suppress_error = 0;
9766     r = guestfs_mkfs (g, fstype, device);
9767     if (r == -1)
9768       return -1;
9769   }
9770   {
9771     char device[] = "/dev/sda1";
9772     char mountpoint[] = "/";
9773     int r;
9774     suppress_error = 0;
9775     r = guestfs_mount (g, device, mountpoint);
9776     if (r == -1)
9777       return -1;
9778   }
9779   /* TestOutput for file (0) */
9780   char expected[] = "empty";
9781   {
9782     char path[] = "/new";
9783     int r;
9784     suppress_error = 0;
9785     r = guestfs_touch (g, path);
9786     if (r == -1)
9787       return -1;
9788   }
9789   {
9790     char path[] = "/new";
9791     char *r;
9792     suppress_error = 0;
9793     r = guestfs_file (g, path);
9794     if (r == NULL)
9795       return -1;
9796     if (strcmp (r, expected) != 0) {
9797       fprintf (stderr, "test_file_0: expected \"%s\" but got \"%s\"\n", expected, r);
9798       return -1;
9799     }
9800     free (r);
9801   }
9802   return 0;
9803 }
9804
9805 static int test_file_1_skip (void)
9806 {
9807   const char *str;
9808
9809   str = getenv ("SKIP_TEST_FILE_1");
9810   if (str && strcmp (str, "1") == 0) return 1;
9811   str = getenv ("SKIP_TEST_FILE");
9812   if (str && strcmp (str, "1") == 0) return 1;
9813   return 0;
9814 }
9815
9816 static int test_file_1 (void)
9817 {
9818   if (test_file_1_skip ()) {
9819     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_1");
9820     return 0;
9821   }
9822
9823   /* InitBasicFS for test_file_1: create ext2 on /dev/sda1 */
9824   {
9825     char device[] = "/dev/sda";
9826     int r;
9827     suppress_error = 0;
9828     r = guestfs_blockdev_setrw (g, device);
9829     if (r == -1)
9830       return -1;
9831   }
9832   {
9833     int r;
9834     suppress_error = 0;
9835     r = guestfs_umount_all (g);
9836     if (r == -1)
9837       return -1;
9838   }
9839   {
9840     int r;
9841     suppress_error = 0;
9842     r = guestfs_lvm_remove_all (g);
9843     if (r == -1)
9844       return -1;
9845   }
9846   {
9847     char device[] = "/dev/sda";
9848     char lines_0[] = ",";
9849     char *lines[] = {
9850       lines_0,
9851       NULL
9852     };
9853     int r;
9854     suppress_error = 0;
9855     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9856     if (r == -1)
9857       return -1;
9858   }
9859   {
9860     char fstype[] = "ext2";
9861     char device[] = "/dev/sda1";
9862     int r;
9863     suppress_error = 0;
9864     r = guestfs_mkfs (g, fstype, device);
9865     if (r == -1)
9866       return -1;
9867   }
9868   {
9869     char device[] = "/dev/sda1";
9870     char mountpoint[] = "/";
9871     int r;
9872     suppress_error = 0;
9873     r = guestfs_mount (g, device, mountpoint);
9874     if (r == -1)
9875       return -1;
9876   }
9877   /* TestOutput for file (1) */
9878   char expected[] = "ASCII text";
9879   {
9880     char path[] = "/new";
9881     char content[] = "some content\n";
9882     int r;
9883     suppress_error = 0;
9884     r = guestfs_write_file (g, path, content, 0);
9885     if (r == -1)
9886       return -1;
9887   }
9888   {
9889     char path[] = "/new";
9890     char *r;
9891     suppress_error = 0;
9892     r = guestfs_file (g, path);
9893     if (r == NULL)
9894       return -1;
9895     if (strcmp (r, expected) != 0) {
9896       fprintf (stderr, "test_file_1: expected \"%s\" but got \"%s\"\n", expected, r);
9897       return -1;
9898     }
9899     free (r);
9900   }
9901   return 0;
9902 }
9903
9904 static int test_file_2_skip (void)
9905 {
9906   const char *str;
9907
9908   str = getenv ("SKIP_TEST_FILE_2");
9909   if (str && strcmp (str, "1") == 0) return 1;
9910   str = getenv ("SKIP_TEST_FILE");
9911   if (str && strcmp (str, "1") == 0) return 1;
9912   return 0;
9913 }
9914
9915 static int test_file_2 (void)
9916 {
9917   if (test_file_2_skip ()) {
9918     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_file_2");
9919     return 0;
9920   }
9921
9922   /* InitBasicFS for test_file_2: create ext2 on /dev/sda1 */
9923   {
9924     char device[] = "/dev/sda";
9925     int r;
9926     suppress_error = 0;
9927     r = guestfs_blockdev_setrw (g, device);
9928     if (r == -1)
9929       return -1;
9930   }
9931   {
9932     int r;
9933     suppress_error = 0;
9934     r = guestfs_umount_all (g);
9935     if (r == -1)
9936       return -1;
9937   }
9938   {
9939     int r;
9940     suppress_error = 0;
9941     r = guestfs_lvm_remove_all (g);
9942     if (r == -1)
9943       return -1;
9944   }
9945   {
9946     char device[] = "/dev/sda";
9947     char lines_0[] = ",";
9948     char *lines[] = {
9949       lines_0,
9950       NULL
9951     };
9952     int r;
9953     suppress_error = 0;
9954     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9955     if (r == -1)
9956       return -1;
9957   }
9958   {
9959     char fstype[] = "ext2";
9960     char device[] = "/dev/sda1";
9961     int r;
9962     suppress_error = 0;
9963     r = guestfs_mkfs (g, fstype, device);
9964     if (r == -1)
9965       return -1;
9966   }
9967   {
9968     char device[] = "/dev/sda1";
9969     char mountpoint[] = "/";
9970     int r;
9971     suppress_error = 0;
9972     r = guestfs_mount (g, device, mountpoint);
9973     if (r == -1)
9974       return -1;
9975   }
9976   /* TestLastFail for file (2) */
9977   {
9978     char path[] = "/nofile";
9979     char *r;
9980     suppress_error = 1;
9981     r = guestfs_file (g, path);
9982     if (r != NULL)
9983       return -1;
9984     free (r);
9985   }
9986   return 0;
9987 }
9988
9989 static int test_umount_all_0_skip (void)
9990 {
9991   const char *str;
9992
9993   str = getenv ("SKIP_TEST_UMOUNT_ALL_0");
9994   if (str && strcmp (str, "1") == 0) return 1;
9995   str = getenv ("SKIP_TEST_UMOUNT_ALL");
9996   if (str && strcmp (str, "1") == 0) return 1;
9997   return 0;
9998 }
9999
10000 static int test_umount_all_0 (void)
10001 {
10002   if (test_umount_all_0_skip ()) {
10003     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_all_0");
10004     return 0;
10005   }
10006
10007   /* InitBasicFS for test_umount_all_0: create ext2 on /dev/sda1 */
10008   {
10009     char device[] = "/dev/sda";
10010     int r;
10011     suppress_error = 0;
10012     r = guestfs_blockdev_setrw (g, device);
10013     if (r == -1)
10014       return -1;
10015   }
10016   {
10017     int r;
10018     suppress_error = 0;
10019     r = guestfs_umount_all (g);
10020     if (r == -1)
10021       return -1;
10022   }
10023   {
10024     int r;
10025     suppress_error = 0;
10026     r = guestfs_lvm_remove_all (g);
10027     if (r == -1)
10028       return -1;
10029   }
10030   {
10031     char device[] = "/dev/sda";
10032     char lines_0[] = ",";
10033     char *lines[] = {
10034       lines_0,
10035       NULL
10036     };
10037     int r;
10038     suppress_error = 0;
10039     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10040     if (r == -1)
10041       return -1;
10042   }
10043   {
10044     char fstype[] = "ext2";
10045     char device[] = "/dev/sda1";
10046     int r;
10047     suppress_error = 0;
10048     r = guestfs_mkfs (g, fstype, device);
10049     if (r == -1)
10050       return -1;
10051   }
10052   {
10053     char device[] = "/dev/sda1";
10054     char mountpoint[] = "/";
10055     int r;
10056     suppress_error = 0;
10057     r = guestfs_mount (g, device, mountpoint);
10058     if (r == -1)
10059       return -1;
10060   }
10061   /* TestOutputList for umount_all (0) */
10062   {
10063     int r;
10064     suppress_error = 0;
10065     r = guestfs_umount_all (g);
10066     if (r == -1)
10067       return -1;
10068   }
10069   {
10070     char **r;
10071     int i;
10072     suppress_error = 0;
10073     r = guestfs_mounts (g);
10074     if (r == NULL)
10075       return -1;
10076     if (r[0] != NULL) {
10077       fprintf (stderr, "test_umount_all_0: extra elements returned from command\n");
10078       print_strings (r);
10079       return -1;
10080     }
10081     for (i = 0; r[i] != NULL; ++i)
10082       free (r[i]);
10083     free (r);
10084   }
10085   return 0;
10086 }
10087
10088 static int test_umount_all_1_skip (void)
10089 {
10090   const char *str;
10091
10092   str = getenv ("SKIP_TEST_UMOUNT_ALL_1");
10093   if (str && strcmp (str, "1") == 0) return 1;
10094   str = getenv ("SKIP_TEST_UMOUNT_ALL");
10095   if (str && strcmp (str, "1") == 0) return 1;
10096   return 0;
10097 }
10098
10099 static int test_umount_all_1 (void)
10100 {
10101   if (test_umount_all_1_skip ()) {
10102     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_all_1");
10103     return 0;
10104   }
10105
10106   /* InitNone|InitEmpty for test_umount_all_1 */
10107   {
10108     char device[] = "/dev/sda";
10109     int r;
10110     suppress_error = 0;
10111     r = guestfs_blockdev_setrw (g, device);
10112     if (r == -1)
10113       return -1;
10114   }
10115   {
10116     int r;
10117     suppress_error = 0;
10118     r = guestfs_umount_all (g);
10119     if (r == -1)
10120       return -1;
10121   }
10122   {
10123     int r;
10124     suppress_error = 0;
10125     r = guestfs_lvm_remove_all (g);
10126     if (r == -1)
10127       return -1;
10128   }
10129   /* TestOutputList for umount_all (1) */
10130   {
10131     char device[] = "/dev/sda";
10132     char lines_0[] = ",10";
10133     char lines_1[] = ",20";
10134     char lines_2[] = ",";
10135     char *lines[] = {
10136       lines_0,
10137       lines_1,
10138       lines_2,
10139       NULL
10140     };
10141     int r;
10142     suppress_error = 0;
10143     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10144     if (r == -1)
10145       return -1;
10146   }
10147   {
10148     char fstype[] = "ext2";
10149     char device[] = "/dev/sda1";
10150     int r;
10151     suppress_error = 0;
10152     r = guestfs_mkfs (g, fstype, device);
10153     if (r == -1)
10154       return -1;
10155   }
10156   {
10157     char fstype[] = "ext2";
10158     char device[] = "/dev/sda2";
10159     int r;
10160     suppress_error = 0;
10161     r = guestfs_mkfs (g, fstype, device);
10162     if (r == -1)
10163       return -1;
10164   }
10165   {
10166     char fstype[] = "ext2";
10167     char device[] = "/dev/sda3";
10168     int r;
10169     suppress_error = 0;
10170     r = guestfs_mkfs (g, fstype, device);
10171     if (r == -1)
10172       return -1;
10173   }
10174   {
10175     char device[] = "/dev/sda1";
10176     char mountpoint[] = "/";
10177     int r;
10178     suppress_error = 0;
10179     r = guestfs_mount (g, device, mountpoint);
10180     if (r == -1)
10181       return -1;
10182   }
10183   {
10184     char path[] = "/mp1";
10185     int r;
10186     suppress_error = 0;
10187     r = guestfs_mkdir (g, path);
10188     if (r == -1)
10189       return -1;
10190   }
10191   {
10192     char device[] = "/dev/sda2";
10193     char mountpoint[] = "/mp1";
10194     int r;
10195     suppress_error = 0;
10196     r = guestfs_mount (g, device, mountpoint);
10197     if (r == -1)
10198       return -1;
10199   }
10200   {
10201     char path[] = "/mp1/mp2";
10202     int r;
10203     suppress_error = 0;
10204     r = guestfs_mkdir (g, path);
10205     if (r == -1)
10206       return -1;
10207   }
10208   {
10209     char device[] = "/dev/sda3";
10210     char mountpoint[] = "/mp1/mp2";
10211     int r;
10212     suppress_error = 0;
10213     r = guestfs_mount (g, device, mountpoint);
10214     if (r == -1)
10215       return -1;
10216   }
10217   {
10218     char path[] = "/mp1/mp2/mp3";
10219     int r;
10220     suppress_error = 0;
10221     r = guestfs_mkdir (g, path);
10222     if (r == -1)
10223       return -1;
10224   }
10225   {
10226     int r;
10227     suppress_error = 0;
10228     r = guestfs_umount_all (g);
10229     if (r == -1)
10230       return -1;
10231   }
10232   {
10233     char **r;
10234     int i;
10235     suppress_error = 0;
10236     r = guestfs_mounts (g);
10237     if (r == NULL)
10238       return -1;
10239     if (r[0] != NULL) {
10240       fprintf (stderr, "test_umount_all_1: extra elements returned from command\n");
10241       print_strings (r);
10242       return -1;
10243     }
10244     for (i = 0; r[i] != NULL; ++i)
10245       free (r[i]);
10246     free (r);
10247   }
10248   return 0;
10249 }
10250
10251 static int test_mounts_0_skip (void)
10252 {
10253   const char *str;
10254
10255   str = getenv ("SKIP_TEST_MOUNTS_0");
10256   if (str && strcmp (str, "1") == 0) return 1;
10257   str = getenv ("SKIP_TEST_MOUNTS");
10258   if (str && strcmp (str, "1") == 0) return 1;
10259   return 0;
10260 }
10261
10262 static int test_mounts_0 (void)
10263 {
10264   if (test_mounts_0_skip ()) {
10265     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mounts_0");
10266     return 0;
10267   }
10268
10269   /* InitBasicFS for test_mounts_0: create ext2 on /dev/sda1 */
10270   {
10271     char device[] = "/dev/sda";
10272     int r;
10273     suppress_error = 0;
10274     r = guestfs_blockdev_setrw (g, device);
10275     if (r == -1)
10276       return -1;
10277   }
10278   {
10279     int r;
10280     suppress_error = 0;
10281     r = guestfs_umount_all (g);
10282     if (r == -1)
10283       return -1;
10284   }
10285   {
10286     int r;
10287     suppress_error = 0;
10288     r = guestfs_lvm_remove_all (g);
10289     if (r == -1)
10290       return -1;
10291   }
10292   {
10293     char device[] = "/dev/sda";
10294     char lines_0[] = ",";
10295     char *lines[] = {
10296       lines_0,
10297       NULL
10298     };
10299     int r;
10300     suppress_error = 0;
10301     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10302     if (r == -1)
10303       return -1;
10304   }
10305   {
10306     char fstype[] = "ext2";
10307     char device[] = "/dev/sda1";
10308     int r;
10309     suppress_error = 0;
10310     r = guestfs_mkfs (g, fstype, device);
10311     if (r == -1)
10312       return -1;
10313   }
10314   {
10315     char device[] = "/dev/sda1";
10316     char mountpoint[] = "/";
10317     int r;
10318     suppress_error = 0;
10319     r = guestfs_mount (g, device, mountpoint);
10320     if (r == -1)
10321       return -1;
10322   }
10323   /* TestOutputListOfDevices for mounts (0) */
10324   {
10325     char **r;
10326     int i;
10327     suppress_error = 0;
10328     r = guestfs_mounts (g);
10329     if (r == NULL)
10330       return -1;
10331     if (!r[0]) {
10332       fprintf (stderr, "test_mounts_0: short list returned from command\n");
10333       print_strings (r);
10334       return -1;
10335     }
10336     {
10337       char expected[] = "/dev/sda1";
10338       r[0][5] = 's';
10339       if (strcmp (r[0], expected) != 0) {
10340         fprintf (stderr, "test_mounts_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10341         return -1;
10342       }
10343     }
10344     if (r[1] != NULL) {
10345       fprintf (stderr, "test_mounts_0: extra elements returned from command\n");
10346       print_strings (r);
10347       return -1;
10348     }
10349     for (i = 0; r[i] != NULL; ++i)
10350       free (r[i]);
10351     free (r);
10352   }
10353   return 0;
10354 }
10355
10356 static int test_umount_0_skip (void)
10357 {
10358   const char *str;
10359
10360   str = getenv ("SKIP_TEST_UMOUNT_0");
10361   if (str && strcmp (str, "1") == 0) return 1;
10362   str = getenv ("SKIP_TEST_UMOUNT");
10363   if (str && strcmp (str, "1") == 0) return 1;
10364   return 0;
10365 }
10366
10367 static int test_umount_0 (void)
10368 {
10369   if (test_umount_0_skip ()) {
10370     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_0");
10371     return 0;
10372   }
10373
10374   /* InitNone|InitEmpty for test_umount_0 */
10375   {
10376     char device[] = "/dev/sda";
10377     int r;
10378     suppress_error = 0;
10379     r = guestfs_blockdev_setrw (g, device);
10380     if (r == -1)
10381       return -1;
10382   }
10383   {
10384     int r;
10385     suppress_error = 0;
10386     r = guestfs_umount_all (g);
10387     if (r == -1)
10388       return -1;
10389   }
10390   {
10391     int r;
10392     suppress_error = 0;
10393     r = guestfs_lvm_remove_all (g);
10394     if (r == -1)
10395       return -1;
10396   }
10397   /* TestOutputListOfDevices for umount (0) */
10398   {
10399     char device[] = "/dev/sda";
10400     char lines_0[] = ",";
10401     char *lines[] = {
10402       lines_0,
10403       NULL
10404     };
10405     int r;
10406     suppress_error = 0;
10407     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10408     if (r == -1)
10409       return -1;
10410   }
10411   {
10412     char fstype[] = "ext2";
10413     char device[] = "/dev/sda1";
10414     int r;
10415     suppress_error = 0;
10416     r = guestfs_mkfs (g, fstype, device);
10417     if (r == -1)
10418       return -1;
10419   }
10420   {
10421     char device[] = "/dev/sda1";
10422     char mountpoint[] = "/";
10423     int r;
10424     suppress_error = 0;
10425     r = guestfs_mount (g, device, mountpoint);
10426     if (r == -1)
10427       return -1;
10428   }
10429   {
10430     char **r;
10431     int i;
10432     suppress_error = 0;
10433     r = guestfs_mounts (g);
10434     if (r == NULL)
10435       return -1;
10436     if (!r[0]) {
10437       fprintf (stderr, "test_umount_0: short list returned from command\n");
10438       print_strings (r);
10439       return -1;
10440     }
10441     {
10442       char expected[] = "/dev/sda1";
10443       r[0][5] = 's';
10444       if (strcmp (r[0], expected) != 0) {
10445         fprintf (stderr, "test_umount_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10446         return -1;
10447       }
10448     }
10449     if (r[1] != NULL) {
10450       fprintf (stderr, "test_umount_0: extra elements returned from command\n");
10451       print_strings (r);
10452       return -1;
10453     }
10454     for (i = 0; r[i] != NULL; ++i)
10455       free (r[i]);
10456     free (r);
10457   }
10458   return 0;
10459 }
10460
10461 static int test_umount_1_skip (void)
10462 {
10463   const char *str;
10464
10465   str = getenv ("SKIP_TEST_UMOUNT_1");
10466   if (str && strcmp (str, "1") == 0) return 1;
10467   str = getenv ("SKIP_TEST_UMOUNT");
10468   if (str && strcmp (str, "1") == 0) return 1;
10469   return 0;
10470 }
10471
10472 static int test_umount_1 (void)
10473 {
10474   if (test_umount_1_skip ()) {
10475     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_umount_1");
10476     return 0;
10477   }
10478
10479   /* InitNone|InitEmpty for test_umount_1 */
10480   {
10481     char device[] = "/dev/sda";
10482     int r;
10483     suppress_error = 0;
10484     r = guestfs_blockdev_setrw (g, device);
10485     if (r == -1)
10486       return -1;
10487   }
10488   {
10489     int r;
10490     suppress_error = 0;
10491     r = guestfs_umount_all (g);
10492     if (r == -1)
10493       return -1;
10494   }
10495   {
10496     int r;
10497     suppress_error = 0;
10498     r = guestfs_lvm_remove_all (g);
10499     if (r == -1)
10500       return -1;
10501   }
10502   /* TestOutputList for umount (1) */
10503   {
10504     char device[] = "/dev/sda";
10505     char lines_0[] = ",";
10506     char *lines[] = {
10507       lines_0,
10508       NULL
10509     };
10510     int r;
10511     suppress_error = 0;
10512     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10513     if (r == -1)
10514       return -1;
10515   }
10516   {
10517     char fstype[] = "ext2";
10518     char device[] = "/dev/sda1";
10519     int r;
10520     suppress_error = 0;
10521     r = guestfs_mkfs (g, fstype, device);
10522     if (r == -1)
10523       return -1;
10524   }
10525   {
10526     char device[] = "/dev/sda1";
10527     char mountpoint[] = "/";
10528     int r;
10529     suppress_error = 0;
10530     r = guestfs_mount (g, device, mountpoint);
10531     if (r == -1)
10532       return -1;
10533   }
10534   {
10535     char pathordevice[] = "/";
10536     int r;
10537     suppress_error = 0;
10538     r = guestfs_umount (g, pathordevice);
10539     if (r == -1)
10540       return -1;
10541   }
10542   {
10543     char **r;
10544     int i;
10545     suppress_error = 0;
10546     r = guestfs_mounts (g);
10547     if (r == NULL)
10548       return -1;
10549     if (r[0] != NULL) {
10550       fprintf (stderr, "test_umount_1: extra elements returned from command\n");
10551       print_strings (r);
10552       return -1;
10553     }
10554     for (i = 0; r[i] != NULL; ++i)
10555       free (r[i]);
10556     free (r);
10557   }
10558   return 0;
10559 }
10560
10561 static int test_write_file_0_skip (void)
10562 {
10563   const char *str;
10564
10565   str = getenv ("SKIP_TEST_WRITE_FILE_0");
10566   if (str && strcmp (str, "1") == 0) return 1;
10567   str = getenv ("SKIP_TEST_WRITE_FILE");
10568   if (str && strcmp (str, "1") == 0) return 1;
10569   return 0;
10570 }
10571
10572 static int test_write_file_0 (void)
10573 {
10574   if (test_write_file_0_skip ()) {
10575     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_0");
10576     return 0;
10577   }
10578
10579   /* InitBasicFS for test_write_file_0: create ext2 on /dev/sda1 */
10580   {
10581     char device[] = "/dev/sda";
10582     int r;
10583     suppress_error = 0;
10584     r = guestfs_blockdev_setrw (g, device);
10585     if (r == -1)
10586       return -1;
10587   }
10588   {
10589     int r;
10590     suppress_error = 0;
10591     r = guestfs_umount_all (g);
10592     if (r == -1)
10593       return -1;
10594   }
10595   {
10596     int r;
10597     suppress_error = 0;
10598     r = guestfs_lvm_remove_all (g);
10599     if (r == -1)
10600       return -1;
10601   }
10602   {
10603     char device[] = "/dev/sda";
10604     char lines_0[] = ",";
10605     char *lines[] = {
10606       lines_0,
10607       NULL
10608     };
10609     int r;
10610     suppress_error = 0;
10611     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10612     if (r == -1)
10613       return -1;
10614   }
10615   {
10616     char fstype[] = "ext2";
10617     char device[] = "/dev/sda1";
10618     int r;
10619     suppress_error = 0;
10620     r = guestfs_mkfs (g, fstype, device);
10621     if (r == -1)
10622       return -1;
10623   }
10624   {
10625     char device[] = "/dev/sda1";
10626     char mountpoint[] = "/";
10627     int r;
10628     suppress_error = 0;
10629     r = guestfs_mount (g, device, mountpoint);
10630     if (r == -1)
10631       return -1;
10632   }
10633   /* TestOutput for write_file (0) */
10634   char expected[] = "new file contents";
10635   {
10636     char path[] = "/new";
10637     char content[] = "new file contents";
10638     int r;
10639     suppress_error = 0;
10640     r = guestfs_write_file (g, path, content, 0);
10641     if (r == -1)
10642       return -1;
10643   }
10644   {
10645     char path[] = "/new";
10646     char *r;
10647     suppress_error = 0;
10648     r = guestfs_cat (g, path);
10649     if (r == NULL)
10650       return -1;
10651     if (strcmp (r, expected) != 0) {
10652       fprintf (stderr, "test_write_file_0: expected \"%s\" but got \"%s\"\n", expected, r);
10653       return -1;
10654     }
10655     free (r);
10656   }
10657   return 0;
10658 }
10659
10660 static int test_write_file_1_skip (void)
10661 {
10662   const char *str;
10663
10664   str = getenv ("SKIP_TEST_WRITE_FILE_1");
10665   if (str && strcmp (str, "1") == 0) return 1;
10666   str = getenv ("SKIP_TEST_WRITE_FILE");
10667   if (str && strcmp (str, "1") == 0) return 1;
10668   return 0;
10669 }
10670
10671 static int test_write_file_1 (void)
10672 {
10673   if (test_write_file_1_skip ()) {
10674     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_1");
10675     return 0;
10676   }
10677
10678   /* InitBasicFS for test_write_file_1: create ext2 on /dev/sda1 */
10679   {
10680     char device[] = "/dev/sda";
10681     int r;
10682     suppress_error = 0;
10683     r = guestfs_blockdev_setrw (g, device);
10684     if (r == -1)
10685       return -1;
10686   }
10687   {
10688     int r;
10689     suppress_error = 0;
10690     r = guestfs_umount_all (g);
10691     if (r == -1)
10692       return -1;
10693   }
10694   {
10695     int r;
10696     suppress_error = 0;
10697     r = guestfs_lvm_remove_all (g);
10698     if (r == -1)
10699       return -1;
10700   }
10701   {
10702     char device[] = "/dev/sda";
10703     char lines_0[] = ",";
10704     char *lines[] = {
10705       lines_0,
10706       NULL
10707     };
10708     int r;
10709     suppress_error = 0;
10710     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10711     if (r == -1)
10712       return -1;
10713   }
10714   {
10715     char fstype[] = "ext2";
10716     char device[] = "/dev/sda1";
10717     int r;
10718     suppress_error = 0;
10719     r = guestfs_mkfs (g, fstype, device);
10720     if (r == -1)
10721       return -1;
10722   }
10723   {
10724     char device[] = "/dev/sda1";
10725     char mountpoint[] = "/";
10726     int r;
10727     suppress_error = 0;
10728     r = guestfs_mount (g, device, mountpoint);
10729     if (r == -1)
10730       return -1;
10731   }
10732   /* TestOutput for write_file (1) */
10733   char expected[] = "\nnew file contents\n";
10734   {
10735     char path[] = "/new";
10736     char content[] = "\nnew file contents\n";
10737     int r;
10738     suppress_error = 0;
10739     r = guestfs_write_file (g, path, content, 0);
10740     if (r == -1)
10741       return -1;
10742   }
10743   {
10744     char path[] = "/new";
10745     char *r;
10746     suppress_error = 0;
10747     r = guestfs_cat (g, path);
10748     if (r == NULL)
10749       return -1;
10750     if (strcmp (r, expected) != 0) {
10751       fprintf (stderr, "test_write_file_1: expected \"%s\" but got \"%s\"\n", expected, r);
10752       return -1;
10753     }
10754     free (r);
10755   }
10756   return 0;
10757 }
10758
10759 static int test_write_file_2_skip (void)
10760 {
10761   const char *str;
10762
10763   str = getenv ("SKIP_TEST_WRITE_FILE_2");
10764   if (str && strcmp (str, "1") == 0) return 1;
10765   str = getenv ("SKIP_TEST_WRITE_FILE");
10766   if (str && strcmp (str, "1") == 0) return 1;
10767   return 0;
10768 }
10769
10770 static int test_write_file_2 (void)
10771 {
10772   if (test_write_file_2_skip ()) {
10773     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_2");
10774     return 0;
10775   }
10776
10777   /* InitBasicFS for test_write_file_2: create ext2 on /dev/sda1 */
10778   {
10779     char device[] = "/dev/sda";
10780     int r;
10781     suppress_error = 0;
10782     r = guestfs_blockdev_setrw (g, device);
10783     if (r == -1)
10784       return -1;
10785   }
10786   {
10787     int r;
10788     suppress_error = 0;
10789     r = guestfs_umount_all (g);
10790     if (r == -1)
10791       return -1;
10792   }
10793   {
10794     int r;
10795     suppress_error = 0;
10796     r = guestfs_lvm_remove_all (g);
10797     if (r == -1)
10798       return -1;
10799   }
10800   {
10801     char device[] = "/dev/sda";
10802     char lines_0[] = ",";
10803     char *lines[] = {
10804       lines_0,
10805       NULL
10806     };
10807     int r;
10808     suppress_error = 0;
10809     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10810     if (r == -1)
10811       return -1;
10812   }
10813   {
10814     char fstype[] = "ext2";
10815     char device[] = "/dev/sda1";
10816     int r;
10817     suppress_error = 0;
10818     r = guestfs_mkfs (g, fstype, device);
10819     if (r == -1)
10820       return -1;
10821   }
10822   {
10823     char device[] = "/dev/sda1";
10824     char mountpoint[] = "/";
10825     int r;
10826     suppress_error = 0;
10827     r = guestfs_mount (g, device, mountpoint);
10828     if (r == -1)
10829       return -1;
10830   }
10831   /* TestOutput for write_file (2) */
10832   char expected[] = "\n\n";
10833   {
10834     char path[] = "/new";
10835     char content[] = "\n\n";
10836     int r;
10837     suppress_error = 0;
10838     r = guestfs_write_file (g, path, content, 0);
10839     if (r == -1)
10840       return -1;
10841   }
10842   {
10843     char path[] = "/new";
10844     char *r;
10845     suppress_error = 0;
10846     r = guestfs_cat (g, path);
10847     if (r == NULL)
10848       return -1;
10849     if (strcmp (r, expected) != 0) {
10850       fprintf (stderr, "test_write_file_2: expected \"%s\" but got \"%s\"\n", expected, r);
10851       return -1;
10852     }
10853     free (r);
10854   }
10855   return 0;
10856 }
10857
10858 static int test_write_file_3_skip (void)
10859 {
10860   const char *str;
10861
10862   str = getenv ("SKIP_TEST_WRITE_FILE_3");
10863   if (str && strcmp (str, "1") == 0) return 1;
10864   str = getenv ("SKIP_TEST_WRITE_FILE");
10865   if (str && strcmp (str, "1") == 0) return 1;
10866   return 0;
10867 }
10868
10869 static int test_write_file_3 (void)
10870 {
10871   if (test_write_file_3_skip ()) {
10872     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_3");
10873     return 0;
10874   }
10875
10876   /* InitBasicFS for test_write_file_3: create ext2 on /dev/sda1 */
10877   {
10878     char device[] = "/dev/sda";
10879     int r;
10880     suppress_error = 0;
10881     r = guestfs_blockdev_setrw (g, device);
10882     if (r == -1)
10883       return -1;
10884   }
10885   {
10886     int r;
10887     suppress_error = 0;
10888     r = guestfs_umount_all (g);
10889     if (r == -1)
10890       return -1;
10891   }
10892   {
10893     int r;
10894     suppress_error = 0;
10895     r = guestfs_lvm_remove_all (g);
10896     if (r == -1)
10897       return -1;
10898   }
10899   {
10900     char device[] = "/dev/sda";
10901     char lines_0[] = ",";
10902     char *lines[] = {
10903       lines_0,
10904       NULL
10905     };
10906     int r;
10907     suppress_error = 0;
10908     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10909     if (r == -1)
10910       return -1;
10911   }
10912   {
10913     char fstype[] = "ext2";
10914     char device[] = "/dev/sda1";
10915     int r;
10916     suppress_error = 0;
10917     r = guestfs_mkfs (g, fstype, device);
10918     if (r == -1)
10919       return -1;
10920   }
10921   {
10922     char device[] = "/dev/sda1";
10923     char mountpoint[] = "/";
10924     int r;
10925     suppress_error = 0;
10926     r = guestfs_mount (g, device, mountpoint);
10927     if (r == -1)
10928       return -1;
10929   }
10930   /* TestOutput for write_file (3) */
10931   char expected[] = "";
10932   {
10933     char path[] = "/new";
10934     char content[] = "";
10935     int r;
10936     suppress_error = 0;
10937     r = guestfs_write_file (g, path, content, 0);
10938     if (r == -1)
10939       return -1;
10940   }
10941   {
10942     char path[] = "/new";
10943     char *r;
10944     suppress_error = 0;
10945     r = guestfs_cat (g, path);
10946     if (r == NULL)
10947       return -1;
10948     if (strcmp (r, expected) != 0) {
10949       fprintf (stderr, "test_write_file_3: expected \"%s\" but got \"%s\"\n", expected, r);
10950       return -1;
10951     }
10952     free (r);
10953   }
10954   return 0;
10955 }
10956
10957 static int test_write_file_4_skip (void)
10958 {
10959   const char *str;
10960
10961   str = getenv ("SKIP_TEST_WRITE_FILE_4");
10962   if (str && strcmp (str, "1") == 0) return 1;
10963   str = getenv ("SKIP_TEST_WRITE_FILE");
10964   if (str && strcmp (str, "1") == 0) return 1;
10965   return 0;
10966 }
10967
10968 static int test_write_file_4 (void)
10969 {
10970   if (test_write_file_4_skip ()) {
10971     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_4");
10972     return 0;
10973   }
10974
10975   /* InitBasicFS for test_write_file_4: create ext2 on /dev/sda1 */
10976   {
10977     char device[] = "/dev/sda";
10978     int r;
10979     suppress_error = 0;
10980     r = guestfs_blockdev_setrw (g, device);
10981     if (r == -1)
10982       return -1;
10983   }
10984   {
10985     int r;
10986     suppress_error = 0;
10987     r = guestfs_umount_all (g);
10988     if (r == -1)
10989       return -1;
10990   }
10991   {
10992     int r;
10993     suppress_error = 0;
10994     r = guestfs_lvm_remove_all (g);
10995     if (r == -1)
10996       return -1;
10997   }
10998   {
10999     char device[] = "/dev/sda";
11000     char lines_0[] = ",";
11001     char *lines[] = {
11002       lines_0,
11003       NULL
11004     };
11005     int r;
11006     suppress_error = 0;
11007     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11008     if (r == -1)
11009       return -1;
11010   }
11011   {
11012     char fstype[] = "ext2";
11013     char device[] = "/dev/sda1";
11014     int r;
11015     suppress_error = 0;
11016     r = guestfs_mkfs (g, fstype, device);
11017     if (r == -1)
11018       return -1;
11019   }
11020   {
11021     char device[] = "/dev/sda1";
11022     char mountpoint[] = "/";
11023     int r;
11024     suppress_error = 0;
11025     r = guestfs_mount (g, device, mountpoint);
11026     if (r == -1)
11027       return -1;
11028   }
11029   /* TestOutput for write_file (4) */
11030   char expected[] = "\n\n\n";
11031   {
11032     char path[] = "/new";
11033     char content[] = "\n\n\n";
11034     int r;
11035     suppress_error = 0;
11036     r = guestfs_write_file (g, path, content, 0);
11037     if (r == -1)
11038       return -1;
11039   }
11040   {
11041     char path[] = "/new";
11042     char *r;
11043     suppress_error = 0;
11044     r = guestfs_cat (g, path);
11045     if (r == NULL)
11046       return -1;
11047     if (strcmp (r, expected) != 0) {
11048       fprintf (stderr, "test_write_file_4: expected \"%s\" but got \"%s\"\n", expected, r);
11049       return -1;
11050     }
11051     free (r);
11052   }
11053   return 0;
11054 }
11055
11056 static int test_write_file_5_skip (void)
11057 {
11058   const char *str;
11059
11060   str = getenv ("SKIP_TEST_WRITE_FILE_5");
11061   if (str && strcmp (str, "1") == 0) return 1;
11062   str = getenv ("SKIP_TEST_WRITE_FILE");
11063   if (str && strcmp (str, "1") == 0) return 1;
11064   return 0;
11065 }
11066
11067 static int test_write_file_5 (void)
11068 {
11069   if (test_write_file_5_skip ()) {
11070     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_write_file_5");
11071     return 0;
11072   }
11073
11074   /* InitBasicFS for test_write_file_5: create ext2 on /dev/sda1 */
11075   {
11076     char device[] = "/dev/sda";
11077     int r;
11078     suppress_error = 0;
11079     r = guestfs_blockdev_setrw (g, device);
11080     if (r == -1)
11081       return -1;
11082   }
11083   {
11084     int r;
11085     suppress_error = 0;
11086     r = guestfs_umount_all (g);
11087     if (r == -1)
11088       return -1;
11089   }
11090   {
11091     int r;
11092     suppress_error = 0;
11093     r = guestfs_lvm_remove_all (g);
11094     if (r == -1)
11095       return -1;
11096   }
11097   {
11098     char device[] = "/dev/sda";
11099     char lines_0[] = ",";
11100     char *lines[] = {
11101       lines_0,
11102       NULL
11103     };
11104     int r;
11105     suppress_error = 0;
11106     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11107     if (r == -1)
11108       return -1;
11109   }
11110   {
11111     char fstype[] = "ext2";
11112     char device[] = "/dev/sda1";
11113     int r;
11114     suppress_error = 0;
11115     r = guestfs_mkfs (g, fstype, device);
11116     if (r == -1)
11117       return -1;
11118   }
11119   {
11120     char device[] = "/dev/sda1";
11121     char mountpoint[] = "/";
11122     int r;
11123     suppress_error = 0;
11124     r = guestfs_mount (g, device, mountpoint);
11125     if (r == -1)
11126       return -1;
11127   }
11128   /* TestOutput for write_file (5) */
11129   char expected[] = "\n";
11130   {
11131     char path[] = "/new";
11132     char content[] = "\n";
11133     int r;
11134     suppress_error = 0;
11135     r = guestfs_write_file (g, path, content, 0);
11136     if (r == -1)
11137       return -1;
11138   }
11139   {
11140     char path[] = "/new";
11141     char *r;
11142     suppress_error = 0;
11143     r = guestfs_cat (g, path);
11144     if (r == NULL)
11145       return -1;
11146     if (strcmp (r, expected) != 0) {
11147       fprintf (stderr, "test_write_file_5: expected \"%s\" but got \"%s\"\n", expected, r);
11148       return -1;
11149     }
11150     free (r);
11151   }
11152   return 0;
11153 }
11154
11155 static int test_mkfs_0_skip (void)
11156 {
11157   const char *str;
11158
11159   str = getenv ("SKIP_TEST_MKFS_0");
11160   if (str && strcmp (str, "1") == 0) return 1;
11161   str = getenv ("SKIP_TEST_MKFS");
11162   if (str && strcmp (str, "1") == 0) return 1;
11163   return 0;
11164 }
11165
11166 static int test_mkfs_0 (void)
11167 {
11168   if (test_mkfs_0_skip ()) {
11169     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkfs_0");
11170     return 0;
11171   }
11172
11173   /* InitNone|InitEmpty for test_mkfs_0 */
11174   {
11175     char device[] = "/dev/sda";
11176     int r;
11177     suppress_error = 0;
11178     r = guestfs_blockdev_setrw (g, device);
11179     if (r == -1)
11180       return -1;
11181   }
11182   {
11183     int r;
11184     suppress_error = 0;
11185     r = guestfs_umount_all (g);
11186     if (r == -1)
11187       return -1;
11188   }
11189   {
11190     int r;
11191     suppress_error = 0;
11192     r = guestfs_lvm_remove_all (g);
11193     if (r == -1)
11194       return -1;
11195   }
11196   /* TestOutput for mkfs (0) */
11197   char expected[] = "new file contents";
11198   {
11199     char device[] = "/dev/sda";
11200     char lines_0[] = ",";
11201     char *lines[] = {
11202       lines_0,
11203       NULL
11204     };
11205     int r;
11206     suppress_error = 0;
11207     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11208     if (r == -1)
11209       return -1;
11210   }
11211   {
11212     char fstype[] = "ext2";
11213     char device[] = "/dev/sda1";
11214     int r;
11215     suppress_error = 0;
11216     r = guestfs_mkfs (g, fstype, device);
11217     if (r == -1)
11218       return -1;
11219   }
11220   {
11221     char device[] = "/dev/sda1";
11222     char mountpoint[] = "/";
11223     int r;
11224     suppress_error = 0;
11225     r = guestfs_mount (g, device, mountpoint);
11226     if (r == -1)
11227       return -1;
11228   }
11229   {
11230     char path[] = "/new";
11231     char content[] = "new file contents";
11232     int r;
11233     suppress_error = 0;
11234     r = guestfs_write_file (g, path, content, 0);
11235     if (r == -1)
11236       return -1;
11237   }
11238   {
11239     char path[] = "/new";
11240     char *r;
11241     suppress_error = 0;
11242     r = guestfs_cat (g, path);
11243     if (r == NULL)
11244       return -1;
11245     if (strcmp (r, expected) != 0) {
11246       fprintf (stderr, "test_mkfs_0: expected \"%s\" but got \"%s\"\n", expected, r);
11247       return -1;
11248     }
11249     free (r);
11250   }
11251   return 0;
11252 }
11253
11254 static int test_lvcreate_0_skip (void)
11255 {
11256   const char *str;
11257
11258   str = getenv ("SKIP_TEST_LVCREATE_0");
11259   if (str && strcmp (str, "1") == 0) return 1;
11260   str = getenv ("SKIP_TEST_LVCREATE");
11261   if (str && strcmp (str, "1") == 0) return 1;
11262   return 0;
11263 }
11264
11265 static int test_lvcreate_0 (void)
11266 {
11267   if (test_lvcreate_0_skip ()) {
11268     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvcreate_0");
11269     return 0;
11270   }
11271
11272   /* InitNone|InitEmpty for test_lvcreate_0 */
11273   {
11274     char device[] = "/dev/sda";
11275     int r;
11276     suppress_error = 0;
11277     r = guestfs_blockdev_setrw (g, device);
11278     if (r == -1)
11279       return -1;
11280   }
11281   {
11282     int r;
11283     suppress_error = 0;
11284     r = guestfs_umount_all (g);
11285     if (r == -1)
11286       return -1;
11287   }
11288   {
11289     int r;
11290     suppress_error = 0;
11291     r = guestfs_lvm_remove_all (g);
11292     if (r == -1)
11293       return -1;
11294   }
11295   /* TestOutputList for lvcreate (0) */
11296   {
11297     char device[] = "/dev/sda";
11298     char lines_0[] = ",10";
11299     char lines_1[] = ",20";
11300     char lines_2[] = ",";
11301     char *lines[] = {
11302       lines_0,
11303       lines_1,
11304       lines_2,
11305       NULL
11306     };
11307     int r;
11308     suppress_error = 0;
11309     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11310     if (r == -1)
11311       return -1;
11312   }
11313   {
11314     char device[] = "/dev/sda1";
11315     int r;
11316     suppress_error = 0;
11317     r = guestfs_pvcreate (g, device);
11318     if (r == -1)
11319       return -1;
11320   }
11321   {
11322     char device[] = "/dev/sda2";
11323     int r;
11324     suppress_error = 0;
11325     r = guestfs_pvcreate (g, device);
11326     if (r == -1)
11327       return -1;
11328   }
11329   {
11330     char device[] = "/dev/sda3";
11331     int r;
11332     suppress_error = 0;
11333     r = guestfs_pvcreate (g, device);
11334     if (r == -1)
11335       return -1;
11336   }
11337   {
11338     char volgroup[] = "VG1";
11339     char physvols_0[] = "/dev/sda1";
11340     char physvols_1[] = "/dev/sda2";
11341     char *physvols[] = {
11342       physvols_0,
11343       physvols_1,
11344       NULL
11345     };
11346     int r;
11347     suppress_error = 0;
11348     r = guestfs_vgcreate (g, volgroup, physvols);
11349     if (r == -1)
11350       return -1;
11351   }
11352   {
11353     char volgroup[] = "VG2";
11354     char physvols_0[] = "/dev/sda3";
11355     char *physvols[] = {
11356       physvols_0,
11357       NULL
11358     };
11359     int r;
11360     suppress_error = 0;
11361     r = guestfs_vgcreate (g, volgroup, physvols);
11362     if (r == -1)
11363       return -1;
11364   }
11365   {
11366     char logvol[] = "LV1";
11367     char volgroup[] = "VG1";
11368     int r;
11369     suppress_error = 0;
11370     r = guestfs_lvcreate (g, logvol, volgroup, 50);
11371     if (r == -1)
11372       return -1;
11373   }
11374   {
11375     char logvol[] = "LV2";
11376     char volgroup[] = "VG1";
11377     int r;
11378     suppress_error = 0;
11379     r = guestfs_lvcreate (g, logvol, volgroup, 50);
11380     if (r == -1)
11381       return -1;
11382   }
11383   {
11384     char logvol[] = "LV3";
11385     char volgroup[] = "VG2";
11386     int r;
11387     suppress_error = 0;
11388     r = guestfs_lvcreate (g, logvol, volgroup, 50);
11389     if (r == -1)
11390       return -1;
11391   }
11392   {
11393     char logvol[] = "LV4";
11394     char volgroup[] = "VG2";
11395     int r;
11396     suppress_error = 0;
11397     r = guestfs_lvcreate (g, logvol, volgroup, 50);
11398     if (r == -1)
11399       return -1;
11400   }
11401   {
11402     char logvol[] = "LV5";
11403     char volgroup[] = "VG2";
11404     int r;
11405     suppress_error = 0;
11406     r = guestfs_lvcreate (g, logvol, volgroup, 50);
11407     if (r == -1)
11408       return -1;
11409   }
11410   {
11411     char **r;
11412     int i;
11413     suppress_error = 0;
11414     r = guestfs_lvs (g);
11415     if (r == NULL)
11416       return -1;
11417     if (!r[0]) {
11418       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
11419       print_strings (r);
11420       return -1;
11421     }
11422     {
11423       char expected[] = "/dev/VG1/LV1";
11424       if (strcmp (r[0], expected) != 0) {
11425         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
11426         return -1;
11427       }
11428     }
11429     if (!r[1]) {
11430       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
11431       print_strings (r);
11432       return -1;
11433     }
11434     {
11435       char expected[] = "/dev/VG1/LV2";
11436       if (strcmp (r[1], expected) != 0) {
11437         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
11438         return -1;
11439       }
11440     }
11441     if (!r[2]) {
11442       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
11443       print_strings (r);
11444       return -1;
11445     }
11446     {
11447       char expected[] = "/dev/VG2/LV3";
11448       if (strcmp (r[2], expected) != 0) {
11449         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
11450         return -1;
11451       }
11452     }
11453     if (!r[3]) {
11454       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
11455       print_strings (r);
11456       return -1;
11457     }
11458     {
11459       char expected[] = "/dev/VG2/LV4";
11460       if (strcmp (r[3], expected) != 0) {
11461         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
11462         return -1;
11463       }
11464     }
11465     if (!r[4]) {
11466       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
11467       print_strings (r);
11468       return -1;
11469     }
11470     {
11471       char expected[] = "/dev/VG2/LV5";
11472       if (strcmp (r[4], expected) != 0) {
11473         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[4]);
11474         return -1;
11475       }
11476     }
11477     if (r[5] != NULL) {
11478       fprintf (stderr, "test_lvcreate_0: extra elements returned from command\n");
11479       print_strings (r);
11480       return -1;
11481     }
11482     for (i = 0; r[i] != NULL; ++i)
11483       free (r[i]);
11484     free (r);
11485   }
11486   return 0;
11487 }
11488
11489 static int test_vgcreate_0_skip (void)
11490 {
11491   const char *str;
11492
11493   str = getenv ("SKIP_TEST_VGCREATE_0");
11494   if (str && strcmp (str, "1") == 0) return 1;
11495   str = getenv ("SKIP_TEST_VGCREATE");
11496   if (str && strcmp (str, "1") == 0) return 1;
11497   return 0;
11498 }
11499
11500 static int test_vgcreate_0 (void)
11501 {
11502   if (test_vgcreate_0_skip ()) {
11503     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgcreate_0");
11504     return 0;
11505   }
11506
11507   /* InitNone|InitEmpty for test_vgcreate_0 */
11508   {
11509     char device[] = "/dev/sda";
11510     int r;
11511     suppress_error = 0;
11512     r = guestfs_blockdev_setrw (g, device);
11513     if (r == -1)
11514       return -1;
11515   }
11516   {
11517     int r;
11518     suppress_error = 0;
11519     r = guestfs_umount_all (g);
11520     if (r == -1)
11521       return -1;
11522   }
11523   {
11524     int r;
11525     suppress_error = 0;
11526     r = guestfs_lvm_remove_all (g);
11527     if (r == -1)
11528       return -1;
11529   }
11530   /* TestOutputList for vgcreate (0) */
11531   {
11532     char device[] = "/dev/sda";
11533     char lines_0[] = ",10";
11534     char lines_1[] = ",20";
11535     char lines_2[] = ",";
11536     char *lines[] = {
11537       lines_0,
11538       lines_1,
11539       lines_2,
11540       NULL
11541     };
11542     int r;
11543     suppress_error = 0;
11544     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11545     if (r == -1)
11546       return -1;
11547   }
11548   {
11549     char device[] = "/dev/sda1";
11550     int r;
11551     suppress_error = 0;
11552     r = guestfs_pvcreate (g, device);
11553     if (r == -1)
11554       return -1;
11555   }
11556   {
11557     char device[] = "/dev/sda2";
11558     int r;
11559     suppress_error = 0;
11560     r = guestfs_pvcreate (g, device);
11561     if (r == -1)
11562       return -1;
11563   }
11564   {
11565     char device[] = "/dev/sda3";
11566     int r;
11567     suppress_error = 0;
11568     r = guestfs_pvcreate (g, device);
11569     if (r == -1)
11570       return -1;
11571   }
11572   {
11573     char volgroup[] = "VG1";
11574     char physvols_0[] = "/dev/sda1";
11575     char physvols_1[] = "/dev/sda2";
11576     char *physvols[] = {
11577       physvols_0,
11578       physvols_1,
11579       NULL
11580     };
11581     int r;
11582     suppress_error = 0;
11583     r = guestfs_vgcreate (g, volgroup, physvols);
11584     if (r == -1)
11585       return -1;
11586   }
11587   {
11588     char volgroup[] = "VG2";
11589     char physvols_0[] = "/dev/sda3";
11590     char *physvols[] = {
11591       physvols_0,
11592       NULL
11593     };
11594     int r;
11595     suppress_error = 0;
11596     r = guestfs_vgcreate (g, volgroup, physvols);
11597     if (r == -1)
11598       return -1;
11599   }
11600   {
11601     char **r;
11602     int i;
11603     suppress_error = 0;
11604     r = guestfs_vgs (g);
11605     if (r == NULL)
11606       return -1;
11607     if (!r[0]) {
11608       fprintf (stderr, "test_vgcreate_0: short list returned from command\n");
11609       print_strings (r);
11610       return -1;
11611     }
11612     {
11613       char expected[] = "VG1";
11614       if (strcmp (r[0], expected) != 0) {
11615         fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
11616         return -1;
11617       }
11618     }
11619     if (!r[1]) {
11620       fprintf (stderr, "test_vgcreate_0: short list returned from command\n");
11621       print_strings (r);
11622       return -1;
11623     }
11624     {
11625       char expected[] = "VG2";
11626       if (strcmp (r[1], expected) != 0) {
11627         fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
11628         return -1;
11629       }
11630     }
11631     if (r[2] != NULL) {
11632       fprintf (stderr, "test_vgcreate_0: extra elements returned from command\n");
11633       print_strings (r);
11634       return -1;
11635     }
11636     for (i = 0; r[i] != NULL; ++i)
11637       free (r[i]);
11638     free (r);
11639   }
11640   return 0;
11641 }
11642
11643 static int test_pvcreate_0_skip (void)
11644 {
11645   const char *str;
11646
11647   str = getenv ("SKIP_TEST_PVCREATE_0");
11648   if (str && strcmp (str, "1") == 0) return 1;
11649   str = getenv ("SKIP_TEST_PVCREATE");
11650   if (str && strcmp (str, "1") == 0) return 1;
11651   return 0;
11652 }
11653
11654 static int test_pvcreate_0 (void)
11655 {
11656   if (test_pvcreate_0_skip ()) {
11657     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvcreate_0");
11658     return 0;
11659   }
11660
11661   /* InitNone|InitEmpty for test_pvcreate_0 */
11662   {
11663     char device[] = "/dev/sda";
11664     int r;
11665     suppress_error = 0;
11666     r = guestfs_blockdev_setrw (g, device);
11667     if (r == -1)
11668       return -1;
11669   }
11670   {
11671     int r;
11672     suppress_error = 0;
11673     r = guestfs_umount_all (g);
11674     if (r == -1)
11675       return -1;
11676   }
11677   {
11678     int r;
11679     suppress_error = 0;
11680     r = guestfs_lvm_remove_all (g);
11681     if (r == -1)
11682       return -1;
11683   }
11684   /* TestOutputListOfDevices for pvcreate (0) */
11685   {
11686     char device[] = "/dev/sda";
11687     char lines_0[] = ",10";
11688     char lines_1[] = ",20";
11689     char lines_2[] = ",";
11690     char *lines[] = {
11691       lines_0,
11692       lines_1,
11693       lines_2,
11694       NULL
11695     };
11696     int r;
11697     suppress_error = 0;
11698     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11699     if (r == -1)
11700       return -1;
11701   }
11702   {
11703     char device[] = "/dev/sda1";
11704     int r;
11705     suppress_error = 0;
11706     r = guestfs_pvcreate (g, device);
11707     if (r == -1)
11708       return -1;
11709   }
11710   {
11711     char device[] = "/dev/sda2";
11712     int r;
11713     suppress_error = 0;
11714     r = guestfs_pvcreate (g, device);
11715     if (r == -1)
11716       return -1;
11717   }
11718   {
11719     char device[] = "/dev/sda3";
11720     int r;
11721     suppress_error = 0;
11722     r = guestfs_pvcreate (g, device);
11723     if (r == -1)
11724       return -1;
11725   }
11726   {
11727     char **r;
11728     int i;
11729     suppress_error = 0;
11730     r = guestfs_pvs (g);
11731     if (r == NULL)
11732       return -1;
11733     if (!r[0]) {
11734       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
11735       print_strings (r);
11736       return -1;
11737     }
11738     {
11739       char expected[] = "/dev/sda1";
11740       r[0][5] = 's';
11741       if (strcmp (r[0], expected) != 0) {
11742         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
11743         return -1;
11744       }
11745     }
11746     if (!r[1]) {
11747       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
11748       print_strings (r);
11749       return -1;
11750     }
11751     {
11752       char expected[] = "/dev/sda2";
11753       r[1][5] = 's';
11754       if (strcmp (r[1], expected) != 0) {
11755         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
11756         return -1;
11757       }
11758     }
11759     if (!r[2]) {
11760       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
11761       print_strings (r);
11762       return -1;
11763     }
11764     {
11765       char expected[] = "/dev/sda3";
11766       r[2][5] = 's';
11767       if (strcmp (r[2], expected) != 0) {
11768         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
11769         return -1;
11770       }
11771     }
11772     if (r[3] != NULL) {
11773       fprintf (stderr, "test_pvcreate_0: extra elements returned from command\n");
11774       print_strings (r);
11775       return -1;
11776     }
11777     for (i = 0; r[i] != NULL; ++i)
11778       free (r[i]);
11779     free (r);
11780   }
11781   return 0;
11782 }
11783
11784 static int test_is_dir_0_skip (void)
11785 {
11786   const char *str;
11787
11788   str = getenv ("SKIP_TEST_IS_DIR_0");
11789   if (str && strcmp (str, "1") == 0) return 1;
11790   str = getenv ("SKIP_TEST_IS_DIR");
11791   if (str && strcmp (str, "1") == 0) return 1;
11792   return 0;
11793 }
11794
11795 static int test_is_dir_0 (void)
11796 {
11797   if (test_is_dir_0_skip ()) {
11798     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_dir_0");
11799     return 0;
11800   }
11801
11802   /* InitBasicFS for test_is_dir_0: create ext2 on /dev/sda1 */
11803   {
11804     char device[] = "/dev/sda";
11805     int r;
11806     suppress_error = 0;
11807     r = guestfs_blockdev_setrw (g, device);
11808     if (r == -1)
11809       return -1;
11810   }
11811   {
11812     int r;
11813     suppress_error = 0;
11814     r = guestfs_umount_all (g);
11815     if (r == -1)
11816       return -1;
11817   }
11818   {
11819     int r;
11820     suppress_error = 0;
11821     r = guestfs_lvm_remove_all (g);
11822     if (r == -1)
11823       return -1;
11824   }
11825   {
11826     char device[] = "/dev/sda";
11827     char lines_0[] = ",";
11828     char *lines[] = {
11829       lines_0,
11830       NULL
11831     };
11832     int r;
11833     suppress_error = 0;
11834     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11835     if (r == -1)
11836       return -1;
11837   }
11838   {
11839     char fstype[] = "ext2";
11840     char device[] = "/dev/sda1";
11841     int r;
11842     suppress_error = 0;
11843     r = guestfs_mkfs (g, fstype, device);
11844     if (r == -1)
11845       return -1;
11846   }
11847   {
11848     char device[] = "/dev/sda1";
11849     char mountpoint[] = "/";
11850     int r;
11851     suppress_error = 0;
11852     r = guestfs_mount (g, device, mountpoint);
11853     if (r == -1)
11854       return -1;
11855   }
11856   /* TestOutputFalse for is_dir (0) */
11857   {
11858     char path[] = "/new";
11859     int r;
11860     suppress_error = 0;
11861     r = guestfs_touch (g, path);
11862     if (r == -1)
11863       return -1;
11864   }
11865   {
11866     char path[] = "/new";
11867     int r;
11868     suppress_error = 0;
11869     r = guestfs_is_dir (g, path);
11870     if (r == -1)
11871       return -1;
11872     if (r) {
11873       fprintf (stderr, "test_is_dir_0: expected false, got true\n");
11874       return -1;
11875     }
11876   }
11877   return 0;
11878 }
11879
11880 static int test_is_dir_1_skip (void)
11881 {
11882   const char *str;
11883
11884   str = getenv ("SKIP_TEST_IS_DIR_1");
11885   if (str && strcmp (str, "1") == 0) return 1;
11886   str = getenv ("SKIP_TEST_IS_DIR");
11887   if (str && strcmp (str, "1") == 0) return 1;
11888   return 0;
11889 }
11890
11891 static int test_is_dir_1 (void)
11892 {
11893   if (test_is_dir_1_skip ()) {
11894     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_dir_1");
11895     return 0;
11896   }
11897
11898   /* InitBasicFS for test_is_dir_1: create ext2 on /dev/sda1 */
11899   {
11900     char device[] = "/dev/sda";
11901     int r;
11902     suppress_error = 0;
11903     r = guestfs_blockdev_setrw (g, device);
11904     if (r == -1)
11905       return -1;
11906   }
11907   {
11908     int r;
11909     suppress_error = 0;
11910     r = guestfs_umount_all (g);
11911     if (r == -1)
11912       return -1;
11913   }
11914   {
11915     int r;
11916     suppress_error = 0;
11917     r = guestfs_lvm_remove_all (g);
11918     if (r == -1)
11919       return -1;
11920   }
11921   {
11922     char device[] = "/dev/sda";
11923     char lines_0[] = ",";
11924     char *lines[] = {
11925       lines_0,
11926       NULL
11927     };
11928     int r;
11929     suppress_error = 0;
11930     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11931     if (r == -1)
11932       return -1;
11933   }
11934   {
11935     char fstype[] = "ext2";
11936     char device[] = "/dev/sda1";
11937     int r;
11938     suppress_error = 0;
11939     r = guestfs_mkfs (g, fstype, device);
11940     if (r == -1)
11941       return -1;
11942   }
11943   {
11944     char device[] = "/dev/sda1";
11945     char mountpoint[] = "/";
11946     int r;
11947     suppress_error = 0;
11948     r = guestfs_mount (g, device, mountpoint);
11949     if (r == -1)
11950       return -1;
11951   }
11952   /* TestOutputTrue for is_dir (1) */
11953   {
11954     char path[] = "/new";
11955     int r;
11956     suppress_error = 0;
11957     r = guestfs_mkdir (g, path);
11958     if (r == -1)
11959       return -1;
11960   }
11961   {
11962     char path[] = "/new";
11963     int r;
11964     suppress_error = 0;
11965     r = guestfs_is_dir (g, path);
11966     if (r == -1)
11967       return -1;
11968     if (!r) {
11969       fprintf (stderr, "test_is_dir_1: expected true, got false\n");
11970       return -1;
11971     }
11972   }
11973   return 0;
11974 }
11975
11976 static int test_is_file_0_skip (void)
11977 {
11978   const char *str;
11979
11980   str = getenv ("SKIP_TEST_IS_FILE_0");
11981   if (str && strcmp (str, "1") == 0) return 1;
11982   str = getenv ("SKIP_TEST_IS_FILE");
11983   if (str && strcmp (str, "1") == 0) return 1;
11984   return 0;
11985 }
11986
11987 static int test_is_file_0 (void)
11988 {
11989   if (test_is_file_0_skip ()) {
11990     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_file_0");
11991     return 0;
11992   }
11993
11994   /* InitBasicFS for test_is_file_0: create ext2 on /dev/sda1 */
11995   {
11996     char device[] = "/dev/sda";
11997     int r;
11998     suppress_error = 0;
11999     r = guestfs_blockdev_setrw (g, device);
12000     if (r == -1)
12001       return -1;
12002   }
12003   {
12004     int r;
12005     suppress_error = 0;
12006     r = guestfs_umount_all (g);
12007     if (r == -1)
12008       return -1;
12009   }
12010   {
12011     int r;
12012     suppress_error = 0;
12013     r = guestfs_lvm_remove_all (g);
12014     if (r == -1)
12015       return -1;
12016   }
12017   {
12018     char device[] = "/dev/sda";
12019     char lines_0[] = ",";
12020     char *lines[] = {
12021       lines_0,
12022       NULL
12023     };
12024     int r;
12025     suppress_error = 0;
12026     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12027     if (r == -1)
12028       return -1;
12029   }
12030   {
12031     char fstype[] = "ext2";
12032     char device[] = "/dev/sda1";
12033     int r;
12034     suppress_error = 0;
12035     r = guestfs_mkfs (g, fstype, device);
12036     if (r == -1)
12037       return -1;
12038   }
12039   {
12040     char device[] = "/dev/sda1";
12041     char mountpoint[] = "/";
12042     int r;
12043     suppress_error = 0;
12044     r = guestfs_mount (g, device, mountpoint);
12045     if (r == -1)
12046       return -1;
12047   }
12048   /* TestOutputTrue for is_file (0) */
12049   {
12050     char path[] = "/new";
12051     int r;
12052     suppress_error = 0;
12053     r = guestfs_touch (g, path);
12054     if (r == -1)
12055       return -1;
12056   }
12057   {
12058     char path[] = "/new";
12059     int r;
12060     suppress_error = 0;
12061     r = guestfs_is_file (g, path);
12062     if (r == -1)
12063       return -1;
12064     if (!r) {
12065       fprintf (stderr, "test_is_file_0: expected true, got false\n");
12066       return -1;
12067     }
12068   }
12069   return 0;
12070 }
12071
12072 static int test_is_file_1_skip (void)
12073 {
12074   const char *str;
12075
12076   str = getenv ("SKIP_TEST_IS_FILE_1");
12077   if (str && strcmp (str, "1") == 0) return 1;
12078   str = getenv ("SKIP_TEST_IS_FILE");
12079   if (str && strcmp (str, "1") == 0) return 1;
12080   return 0;
12081 }
12082
12083 static int test_is_file_1 (void)
12084 {
12085   if (test_is_file_1_skip ()) {
12086     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_is_file_1");
12087     return 0;
12088   }
12089
12090   /* InitBasicFS for test_is_file_1: create ext2 on /dev/sda1 */
12091   {
12092     char device[] = "/dev/sda";
12093     int r;
12094     suppress_error = 0;
12095     r = guestfs_blockdev_setrw (g, device);
12096     if (r == -1)
12097       return -1;
12098   }
12099   {
12100     int r;
12101     suppress_error = 0;
12102     r = guestfs_umount_all (g);
12103     if (r == -1)
12104       return -1;
12105   }
12106   {
12107     int r;
12108     suppress_error = 0;
12109     r = guestfs_lvm_remove_all (g);
12110     if (r == -1)
12111       return -1;
12112   }
12113   {
12114     char device[] = "/dev/sda";
12115     char lines_0[] = ",";
12116     char *lines[] = {
12117       lines_0,
12118       NULL
12119     };
12120     int r;
12121     suppress_error = 0;
12122     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12123     if (r == -1)
12124       return -1;
12125   }
12126   {
12127     char fstype[] = "ext2";
12128     char device[] = "/dev/sda1";
12129     int r;
12130     suppress_error = 0;
12131     r = guestfs_mkfs (g, fstype, device);
12132     if (r == -1)
12133       return -1;
12134   }
12135   {
12136     char device[] = "/dev/sda1";
12137     char mountpoint[] = "/";
12138     int r;
12139     suppress_error = 0;
12140     r = guestfs_mount (g, device, mountpoint);
12141     if (r == -1)
12142       return -1;
12143   }
12144   /* TestOutputFalse for is_file (1) */
12145   {
12146     char path[] = "/new";
12147     int r;
12148     suppress_error = 0;
12149     r = guestfs_mkdir (g, path);
12150     if (r == -1)
12151       return -1;
12152   }
12153   {
12154     char path[] = "/new";
12155     int r;
12156     suppress_error = 0;
12157     r = guestfs_is_file (g, path);
12158     if (r == -1)
12159       return -1;
12160     if (r) {
12161       fprintf (stderr, "test_is_file_1: expected false, got true\n");
12162       return -1;
12163     }
12164   }
12165   return 0;
12166 }
12167
12168 static int test_exists_0_skip (void)
12169 {
12170   const char *str;
12171
12172   str = getenv ("SKIP_TEST_EXISTS_0");
12173   if (str && strcmp (str, "1") == 0) return 1;
12174   str = getenv ("SKIP_TEST_EXISTS");
12175   if (str && strcmp (str, "1") == 0) return 1;
12176   return 0;
12177 }
12178
12179 static int test_exists_0 (void)
12180 {
12181   if (test_exists_0_skip ()) {
12182     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_exists_0");
12183     return 0;
12184   }
12185
12186   /* InitBasicFS for test_exists_0: create ext2 on /dev/sda1 */
12187   {
12188     char device[] = "/dev/sda";
12189     int r;
12190     suppress_error = 0;
12191     r = guestfs_blockdev_setrw (g, device);
12192     if (r == -1)
12193       return -1;
12194   }
12195   {
12196     int r;
12197     suppress_error = 0;
12198     r = guestfs_umount_all (g);
12199     if (r == -1)
12200       return -1;
12201   }
12202   {
12203     int r;
12204     suppress_error = 0;
12205     r = guestfs_lvm_remove_all (g);
12206     if (r == -1)
12207       return -1;
12208   }
12209   {
12210     char device[] = "/dev/sda";
12211     char lines_0[] = ",";
12212     char *lines[] = {
12213       lines_0,
12214       NULL
12215     };
12216     int r;
12217     suppress_error = 0;
12218     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12219     if (r == -1)
12220       return -1;
12221   }
12222   {
12223     char fstype[] = "ext2";
12224     char device[] = "/dev/sda1";
12225     int r;
12226     suppress_error = 0;
12227     r = guestfs_mkfs (g, fstype, device);
12228     if (r == -1)
12229       return -1;
12230   }
12231   {
12232     char device[] = "/dev/sda1";
12233     char mountpoint[] = "/";
12234     int r;
12235     suppress_error = 0;
12236     r = guestfs_mount (g, device, mountpoint);
12237     if (r == -1)
12238       return -1;
12239   }
12240   /* TestOutputTrue for exists (0) */
12241   {
12242     char path[] = "/new";
12243     int r;
12244     suppress_error = 0;
12245     r = guestfs_touch (g, path);
12246     if (r == -1)
12247       return -1;
12248   }
12249   {
12250     char path[] = "/new";
12251     int r;
12252     suppress_error = 0;
12253     r = guestfs_exists (g, path);
12254     if (r == -1)
12255       return -1;
12256     if (!r) {
12257       fprintf (stderr, "test_exists_0: expected true, got false\n");
12258       return -1;
12259     }
12260   }
12261   return 0;
12262 }
12263
12264 static int test_exists_1_skip (void)
12265 {
12266   const char *str;
12267
12268   str = getenv ("SKIP_TEST_EXISTS_1");
12269   if (str && strcmp (str, "1") == 0) return 1;
12270   str = getenv ("SKIP_TEST_EXISTS");
12271   if (str && strcmp (str, "1") == 0) return 1;
12272   return 0;
12273 }
12274
12275 static int test_exists_1 (void)
12276 {
12277   if (test_exists_1_skip ()) {
12278     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_exists_1");
12279     return 0;
12280   }
12281
12282   /* InitBasicFS for test_exists_1: create ext2 on /dev/sda1 */
12283   {
12284     char device[] = "/dev/sda";
12285     int r;
12286     suppress_error = 0;
12287     r = guestfs_blockdev_setrw (g, device);
12288     if (r == -1)
12289       return -1;
12290   }
12291   {
12292     int r;
12293     suppress_error = 0;
12294     r = guestfs_umount_all (g);
12295     if (r == -1)
12296       return -1;
12297   }
12298   {
12299     int r;
12300     suppress_error = 0;
12301     r = guestfs_lvm_remove_all (g);
12302     if (r == -1)
12303       return -1;
12304   }
12305   {
12306     char device[] = "/dev/sda";
12307     char lines_0[] = ",";
12308     char *lines[] = {
12309       lines_0,
12310       NULL
12311     };
12312     int r;
12313     suppress_error = 0;
12314     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12315     if (r == -1)
12316       return -1;
12317   }
12318   {
12319     char fstype[] = "ext2";
12320     char device[] = "/dev/sda1";
12321     int r;
12322     suppress_error = 0;
12323     r = guestfs_mkfs (g, fstype, device);
12324     if (r == -1)
12325       return -1;
12326   }
12327   {
12328     char device[] = "/dev/sda1";
12329     char mountpoint[] = "/";
12330     int r;
12331     suppress_error = 0;
12332     r = guestfs_mount (g, device, mountpoint);
12333     if (r == -1)
12334       return -1;
12335   }
12336   /* TestOutputTrue for exists (1) */
12337   {
12338     char path[] = "/new";
12339     int r;
12340     suppress_error = 0;
12341     r = guestfs_mkdir (g, path);
12342     if (r == -1)
12343       return -1;
12344   }
12345   {
12346     char path[] = "/new";
12347     int r;
12348     suppress_error = 0;
12349     r = guestfs_exists (g, path);
12350     if (r == -1)
12351       return -1;
12352     if (!r) {
12353       fprintf (stderr, "test_exists_1: expected true, got false\n");
12354       return -1;
12355     }
12356   }
12357   return 0;
12358 }
12359
12360 static int test_mkdir_p_0_skip (void)
12361 {
12362   const char *str;
12363
12364   str = getenv ("SKIP_TEST_MKDIR_P_0");
12365   if (str && strcmp (str, "1") == 0) return 1;
12366   str = getenv ("SKIP_TEST_MKDIR_P");
12367   if (str && strcmp (str, "1") == 0) return 1;
12368   return 0;
12369 }
12370
12371 static int test_mkdir_p_0 (void)
12372 {
12373   if (test_mkdir_p_0_skip ()) {
12374     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_0");
12375     return 0;
12376   }
12377
12378   /* InitBasicFS for test_mkdir_p_0: create ext2 on /dev/sda1 */
12379   {
12380     char device[] = "/dev/sda";
12381     int r;
12382     suppress_error = 0;
12383     r = guestfs_blockdev_setrw (g, device);
12384     if (r == -1)
12385       return -1;
12386   }
12387   {
12388     int r;
12389     suppress_error = 0;
12390     r = guestfs_umount_all (g);
12391     if (r == -1)
12392       return -1;
12393   }
12394   {
12395     int r;
12396     suppress_error = 0;
12397     r = guestfs_lvm_remove_all (g);
12398     if (r == -1)
12399       return -1;
12400   }
12401   {
12402     char device[] = "/dev/sda";
12403     char lines_0[] = ",";
12404     char *lines[] = {
12405       lines_0,
12406       NULL
12407     };
12408     int r;
12409     suppress_error = 0;
12410     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12411     if (r == -1)
12412       return -1;
12413   }
12414   {
12415     char fstype[] = "ext2";
12416     char device[] = "/dev/sda1";
12417     int r;
12418     suppress_error = 0;
12419     r = guestfs_mkfs (g, fstype, device);
12420     if (r == -1)
12421       return -1;
12422   }
12423   {
12424     char device[] = "/dev/sda1";
12425     char mountpoint[] = "/";
12426     int r;
12427     suppress_error = 0;
12428     r = guestfs_mount (g, device, mountpoint);
12429     if (r == -1)
12430       return -1;
12431   }
12432   /* TestOutputTrue for mkdir_p (0) */
12433   {
12434     char path[] = "/new/foo/bar";
12435     int r;
12436     suppress_error = 0;
12437     r = guestfs_mkdir_p (g, path);
12438     if (r == -1)
12439       return -1;
12440   }
12441   {
12442     char path[] = "/new/foo/bar";
12443     int r;
12444     suppress_error = 0;
12445     r = guestfs_is_dir (g, path);
12446     if (r == -1)
12447       return -1;
12448     if (!r) {
12449       fprintf (stderr, "test_mkdir_p_0: expected true, got false\n");
12450       return -1;
12451     }
12452   }
12453   return 0;
12454 }
12455
12456 static int test_mkdir_p_1_skip (void)
12457 {
12458   const char *str;
12459
12460   str = getenv ("SKIP_TEST_MKDIR_P_1");
12461   if (str && strcmp (str, "1") == 0) return 1;
12462   str = getenv ("SKIP_TEST_MKDIR_P");
12463   if (str && strcmp (str, "1") == 0) return 1;
12464   return 0;
12465 }
12466
12467 static int test_mkdir_p_1 (void)
12468 {
12469   if (test_mkdir_p_1_skip ()) {
12470     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_1");
12471     return 0;
12472   }
12473
12474   /* InitBasicFS for test_mkdir_p_1: create ext2 on /dev/sda1 */
12475   {
12476     char device[] = "/dev/sda";
12477     int r;
12478     suppress_error = 0;
12479     r = guestfs_blockdev_setrw (g, device);
12480     if (r == -1)
12481       return -1;
12482   }
12483   {
12484     int r;
12485     suppress_error = 0;
12486     r = guestfs_umount_all (g);
12487     if (r == -1)
12488       return -1;
12489   }
12490   {
12491     int r;
12492     suppress_error = 0;
12493     r = guestfs_lvm_remove_all (g);
12494     if (r == -1)
12495       return -1;
12496   }
12497   {
12498     char device[] = "/dev/sda";
12499     char lines_0[] = ",";
12500     char *lines[] = {
12501       lines_0,
12502       NULL
12503     };
12504     int r;
12505     suppress_error = 0;
12506     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12507     if (r == -1)
12508       return -1;
12509   }
12510   {
12511     char fstype[] = "ext2";
12512     char device[] = "/dev/sda1";
12513     int r;
12514     suppress_error = 0;
12515     r = guestfs_mkfs (g, fstype, device);
12516     if (r == -1)
12517       return -1;
12518   }
12519   {
12520     char device[] = "/dev/sda1";
12521     char mountpoint[] = "/";
12522     int r;
12523     suppress_error = 0;
12524     r = guestfs_mount (g, device, mountpoint);
12525     if (r == -1)
12526       return -1;
12527   }
12528   /* TestOutputTrue for mkdir_p (1) */
12529   {
12530     char path[] = "/new/foo/bar";
12531     int r;
12532     suppress_error = 0;
12533     r = guestfs_mkdir_p (g, path);
12534     if (r == -1)
12535       return -1;
12536   }
12537   {
12538     char path[] = "/new/foo";
12539     int r;
12540     suppress_error = 0;
12541     r = guestfs_is_dir (g, path);
12542     if (r == -1)
12543       return -1;
12544     if (!r) {
12545       fprintf (stderr, "test_mkdir_p_1: expected true, got false\n");
12546       return -1;
12547     }
12548   }
12549   return 0;
12550 }
12551
12552 static int test_mkdir_p_2_skip (void)
12553 {
12554   const char *str;
12555
12556   str = getenv ("SKIP_TEST_MKDIR_P_2");
12557   if (str && strcmp (str, "1") == 0) return 1;
12558   str = getenv ("SKIP_TEST_MKDIR_P");
12559   if (str && strcmp (str, "1") == 0) return 1;
12560   return 0;
12561 }
12562
12563 static int test_mkdir_p_2 (void)
12564 {
12565   if (test_mkdir_p_2_skip ()) {
12566     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_2");
12567     return 0;
12568   }
12569
12570   /* InitBasicFS for test_mkdir_p_2: create ext2 on /dev/sda1 */
12571   {
12572     char device[] = "/dev/sda";
12573     int r;
12574     suppress_error = 0;
12575     r = guestfs_blockdev_setrw (g, device);
12576     if (r == -1)
12577       return -1;
12578   }
12579   {
12580     int r;
12581     suppress_error = 0;
12582     r = guestfs_umount_all (g);
12583     if (r == -1)
12584       return -1;
12585   }
12586   {
12587     int r;
12588     suppress_error = 0;
12589     r = guestfs_lvm_remove_all (g);
12590     if (r == -1)
12591       return -1;
12592   }
12593   {
12594     char device[] = "/dev/sda";
12595     char lines_0[] = ",";
12596     char *lines[] = {
12597       lines_0,
12598       NULL
12599     };
12600     int r;
12601     suppress_error = 0;
12602     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12603     if (r == -1)
12604       return -1;
12605   }
12606   {
12607     char fstype[] = "ext2";
12608     char device[] = "/dev/sda1";
12609     int r;
12610     suppress_error = 0;
12611     r = guestfs_mkfs (g, fstype, device);
12612     if (r == -1)
12613       return -1;
12614   }
12615   {
12616     char device[] = "/dev/sda1";
12617     char mountpoint[] = "/";
12618     int r;
12619     suppress_error = 0;
12620     r = guestfs_mount (g, device, mountpoint);
12621     if (r == -1)
12622       return -1;
12623   }
12624   /* TestOutputTrue for mkdir_p (2) */
12625   {
12626     char path[] = "/new/foo/bar";
12627     int r;
12628     suppress_error = 0;
12629     r = guestfs_mkdir_p (g, path);
12630     if (r == -1)
12631       return -1;
12632   }
12633   {
12634     char path[] = "/new";
12635     int r;
12636     suppress_error = 0;
12637     r = guestfs_is_dir (g, path);
12638     if (r == -1)
12639       return -1;
12640     if (!r) {
12641       fprintf (stderr, "test_mkdir_p_2: expected true, got false\n");
12642       return -1;
12643     }
12644   }
12645   return 0;
12646 }
12647
12648 static int test_mkdir_p_3_skip (void)
12649 {
12650   const char *str;
12651
12652   str = getenv ("SKIP_TEST_MKDIR_P_3");
12653   if (str && strcmp (str, "1") == 0) return 1;
12654   str = getenv ("SKIP_TEST_MKDIR_P");
12655   if (str && strcmp (str, "1") == 0) return 1;
12656   return 0;
12657 }
12658
12659 static int test_mkdir_p_3 (void)
12660 {
12661   if (test_mkdir_p_3_skip ()) {
12662     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_3");
12663     return 0;
12664   }
12665
12666   /* InitBasicFS for test_mkdir_p_3: create ext2 on /dev/sda1 */
12667   {
12668     char device[] = "/dev/sda";
12669     int r;
12670     suppress_error = 0;
12671     r = guestfs_blockdev_setrw (g, device);
12672     if (r == -1)
12673       return -1;
12674   }
12675   {
12676     int r;
12677     suppress_error = 0;
12678     r = guestfs_umount_all (g);
12679     if (r == -1)
12680       return -1;
12681   }
12682   {
12683     int r;
12684     suppress_error = 0;
12685     r = guestfs_lvm_remove_all (g);
12686     if (r == -1)
12687       return -1;
12688   }
12689   {
12690     char device[] = "/dev/sda";
12691     char lines_0[] = ",";
12692     char *lines[] = {
12693       lines_0,
12694       NULL
12695     };
12696     int r;
12697     suppress_error = 0;
12698     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12699     if (r == -1)
12700       return -1;
12701   }
12702   {
12703     char fstype[] = "ext2";
12704     char device[] = "/dev/sda1";
12705     int r;
12706     suppress_error = 0;
12707     r = guestfs_mkfs (g, fstype, device);
12708     if (r == -1)
12709       return -1;
12710   }
12711   {
12712     char device[] = "/dev/sda1";
12713     char mountpoint[] = "/";
12714     int r;
12715     suppress_error = 0;
12716     r = guestfs_mount (g, device, mountpoint);
12717     if (r == -1)
12718       return -1;
12719   }
12720   /* TestRun for mkdir_p (3) */
12721   {
12722     char path[] = "/new";
12723     int r;
12724     suppress_error = 0;
12725     r = guestfs_mkdir (g, path);
12726     if (r == -1)
12727       return -1;
12728   }
12729   {
12730     char path[] = "/new";
12731     int r;
12732     suppress_error = 0;
12733     r = guestfs_mkdir_p (g, path);
12734     if (r == -1)
12735       return -1;
12736   }
12737   return 0;
12738 }
12739
12740 static int test_mkdir_p_4_skip (void)
12741 {
12742   const char *str;
12743
12744   str = getenv ("SKIP_TEST_MKDIR_P_4");
12745   if (str && strcmp (str, "1") == 0) return 1;
12746   str = getenv ("SKIP_TEST_MKDIR_P");
12747   if (str && strcmp (str, "1") == 0) return 1;
12748   return 0;
12749 }
12750
12751 static int test_mkdir_p_4 (void)
12752 {
12753   if (test_mkdir_p_4_skip ()) {
12754     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_p_4");
12755     return 0;
12756   }
12757
12758   /* InitBasicFS for test_mkdir_p_4: create ext2 on /dev/sda1 */
12759   {
12760     char device[] = "/dev/sda";
12761     int r;
12762     suppress_error = 0;
12763     r = guestfs_blockdev_setrw (g, device);
12764     if (r == -1)
12765       return -1;
12766   }
12767   {
12768     int r;
12769     suppress_error = 0;
12770     r = guestfs_umount_all (g);
12771     if (r == -1)
12772       return -1;
12773   }
12774   {
12775     int r;
12776     suppress_error = 0;
12777     r = guestfs_lvm_remove_all (g);
12778     if (r == -1)
12779       return -1;
12780   }
12781   {
12782     char device[] = "/dev/sda";
12783     char lines_0[] = ",";
12784     char *lines[] = {
12785       lines_0,
12786       NULL
12787     };
12788     int r;
12789     suppress_error = 0;
12790     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12791     if (r == -1)
12792       return -1;
12793   }
12794   {
12795     char fstype[] = "ext2";
12796     char device[] = "/dev/sda1";
12797     int r;
12798     suppress_error = 0;
12799     r = guestfs_mkfs (g, fstype, device);
12800     if (r == -1)
12801       return -1;
12802   }
12803   {
12804     char device[] = "/dev/sda1";
12805     char mountpoint[] = "/";
12806     int r;
12807     suppress_error = 0;
12808     r = guestfs_mount (g, device, mountpoint);
12809     if (r == -1)
12810       return -1;
12811   }
12812   /* TestLastFail for mkdir_p (4) */
12813   {
12814     char path[] = "/new";
12815     int r;
12816     suppress_error = 0;
12817     r = guestfs_touch (g, path);
12818     if (r == -1)
12819       return -1;
12820   }
12821   {
12822     char path[] = "/new";
12823     int r;
12824     suppress_error = 1;
12825     r = guestfs_mkdir_p (g, path);
12826     if (r != -1)
12827       return -1;
12828   }
12829   return 0;
12830 }
12831
12832 static int test_mkdir_0_skip (void)
12833 {
12834   const char *str;
12835
12836   str = getenv ("SKIP_TEST_MKDIR_0");
12837   if (str && strcmp (str, "1") == 0) return 1;
12838   str = getenv ("SKIP_TEST_MKDIR");
12839   if (str && strcmp (str, "1") == 0) return 1;
12840   return 0;
12841 }
12842
12843 static int test_mkdir_0 (void)
12844 {
12845   if (test_mkdir_0_skip ()) {
12846     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_0");
12847     return 0;
12848   }
12849
12850   /* InitBasicFS for test_mkdir_0: create ext2 on /dev/sda1 */
12851   {
12852     char device[] = "/dev/sda";
12853     int r;
12854     suppress_error = 0;
12855     r = guestfs_blockdev_setrw (g, device);
12856     if (r == -1)
12857       return -1;
12858   }
12859   {
12860     int r;
12861     suppress_error = 0;
12862     r = guestfs_umount_all (g);
12863     if (r == -1)
12864       return -1;
12865   }
12866   {
12867     int r;
12868     suppress_error = 0;
12869     r = guestfs_lvm_remove_all (g);
12870     if (r == -1)
12871       return -1;
12872   }
12873   {
12874     char device[] = "/dev/sda";
12875     char lines_0[] = ",";
12876     char *lines[] = {
12877       lines_0,
12878       NULL
12879     };
12880     int r;
12881     suppress_error = 0;
12882     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12883     if (r == -1)
12884       return -1;
12885   }
12886   {
12887     char fstype[] = "ext2";
12888     char device[] = "/dev/sda1";
12889     int r;
12890     suppress_error = 0;
12891     r = guestfs_mkfs (g, fstype, device);
12892     if (r == -1)
12893       return -1;
12894   }
12895   {
12896     char device[] = "/dev/sda1";
12897     char mountpoint[] = "/";
12898     int r;
12899     suppress_error = 0;
12900     r = guestfs_mount (g, device, mountpoint);
12901     if (r == -1)
12902       return -1;
12903   }
12904   /* TestOutputTrue for mkdir (0) */
12905   {
12906     char path[] = "/new";
12907     int r;
12908     suppress_error = 0;
12909     r = guestfs_mkdir (g, path);
12910     if (r == -1)
12911       return -1;
12912   }
12913   {
12914     char path[] = "/new";
12915     int r;
12916     suppress_error = 0;
12917     r = guestfs_is_dir (g, path);
12918     if (r == -1)
12919       return -1;
12920     if (!r) {
12921       fprintf (stderr, "test_mkdir_0: expected true, got false\n");
12922       return -1;
12923     }
12924   }
12925   return 0;
12926 }
12927
12928 static int test_mkdir_1_skip (void)
12929 {
12930   const char *str;
12931
12932   str = getenv ("SKIP_TEST_MKDIR_1");
12933   if (str && strcmp (str, "1") == 0) return 1;
12934   str = getenv ("SKIP_TEST_MKDIR");
12935   if (str && strcmp (str, "1") == 0) return 1;
12936   return 0;
12937 }
12938
12939 static int test_mkdir_1 (void)
12940 {
12941   if (test_mkdir_1_skip ()) {
12942     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mkdir_1");
12943     return 0;
12944   }
12945
12946   /* InitBasicFS for test_mkdir_1: create ext2 on /dev/sda1 */
12947   {
12948     char device[] = "/dev/sda";
12949     int r;
12950     suppress_error = 0;
12951     r = guestfs_blockdev_setrw (g, device);
12952     if (r == -1)
12953       return -1;
12954   }
12955   {
12956     int r;
12957     suppress_error = 0;
12958     r = guestfs_umount_all (g);
12959     if (r == -1)
12960       return -1;
12961   }
12962   {
12963     int r;
12964     suppress_error = 0;
12965     r = guestfs_lvm_remove_all (g);
12966     if (r == -1)
12967       return -1;
12968   }
12969   {
12970     char device[] = "/dev/sda";
12971     char lines_0[] = ",";
12972     char *lines[] = {
12973       lines_0,
12974       NULL
12975     };
12976     int r;
12977     suppress_error = 0;
12978     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12979     if (r == -1)
12980       return -1;
12981   }
12982   {
12983     char fstype[] = "ext2";
12984     char device[] = "/dev/sda1";
12985     int r;
12986     suppress_error = 0;
12987     r = guestfs_mkfs (g, fstype, device);
12988     if (r == -1)
12989       return -1;
12990   }
12991   {
12992     char device[] = "/dev/sda1";
12993     char mountpoint[] = "/";
12994     int r;
12995     suppress_error = 0;
12996     r = guestfs_mount (g, device, mountpoint);
12997     if (r == -1)
12998       return -1;
12999   }
13000   /* TestLastFail for mkdir (1) */
13001   {
13002     char path[] = "/new/foo/bar";
13003     int r;
13004     suppress_error = 1;
13005     r = guestfs_mkdir (g, path);
13006     if (r != -1)
13007       return -1;
13008   }
13009   return 0;
13010 }
13011
13012 static int test_rm_rf_0_skip (void)
13013 {
13014   const char *str;
13015
13016   str = getenv ("SKIP_TEST_RM_RF_0");
13017   if (str && strcmp (str, "1") == 0) return 1;
13018   str = getenv ("SKIP_TEST_RM_RF");
13019   if (str && strcmp (str, "1") == 0) return 1;
13020   return 0;
13021 }
13022
13023 static int test_rm_rf_0 (void)
13024 {
13025   if (test_rm_rf_0_skip ()) {
13026     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_rf_0");
13027     return 0;
13028   }
13029
13030   /* InitBasicFS for test_rm_rf_0: create ext2 on /dev/sda1 */
13031   {
13032     char device[] = "/dev/sda";
13033     int r;
13034     suppress_error = 0;
13035     r = guestfs_blockdev_setrw (g, device);
13036     if (r == -1)
13037       return -1;
13038   }
13039   {
13040     int r;
13041     suppress_error = 0;
13042     r = guestfs_umount_all (g);
13043     if (r == -1)
13044       return -1;
13045   }
13046   {
13047     int r;
13048     suppress_error = 0;
13049     r = guestfs_lvm_remove_all (g);
13050     if (r == -1)
13051       return -1;
13052   }
13053   {
13054     char device[] = "/dev/sda";
13055     char lines_0[] = ",";
13056     char *lines[] = {
13057       lines_0,
13058       NULL
13059     };
13060     int r;
13061     suppress_error = 0;
13062     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13063     if (r == -1)
13064       return -1;
13065   }
13066   {
13067     char fstype[] = "ext2";
13068     char device[] = "/dev/sda1";
13069     int r;
13070     suppress_error = 0;
13071     r = guestfs_mkfs (g, fstype, device);
13072     if (r == -1)
13073       return -1;
13074   }
13075   {
13076     char device[] = "/dev/sda1";
13077     char mountpoint[] = "/";
13078     int r;
13079     suppress_error = 0;
13080     r = guestfs_mount (g, device, mountpoint);
13081     if (r == -1)
13082       return -1;
13083   }
13084   /* TestOutputFalse for rm_rf (0) */
13085   {
13086     char path[] = "/new";
13087     int r;
13088     suppress_error = 0;
13089     r = guestfs_mkdir (g, path);
13090     if (r == -1)
13091       return -1;
13092   }
13093   {
13094     char path[] = "/new/foo";
13095     int r;
13096     suppress_error = 0;
13097     r = guestfs_mkdir (g, path);
13098     if (r == -1)
13099       return -1;
13100   }
13101   {
13102     char path[] = "/new/foo/bar";
13103     int r;
13104     suppress_error = 0;
13105     r = guestfs_touch (g, path);
13106     if (r == -1)
13107       return -1;
13108   }
13109   {
13110     char path[] = "/new";
13111     int r;
13112     suppress_error = 0;
13113     r = guestfs_rm_rf (g, path);
13114     if (r == -1)
13115       return -1;
13116   }
13117   {
13118     char path[] = "/new";
13119     int r;
13120     suppress_error = 0;
13121     r = guestfs_exists (g, path);
13122     if (r == -1)
13123       return -1;
13124     if (r) {
13125       fprintf (stderr, "test_rm_rf_0: expected false, got true\n");
13126       return -1;
13127     }
13128   }
13129   return 0;
13130 }
13131
13132 static int test_rmdir_0_skip (void)
13133 {
13134   const char *str;
13135
13136   str = getenv ("SKIP_TEST_RMDIR_0");
13137   if (str && strcmp (str, "1") == 0) return 1;
13138   str = getenv ("SKIP_TEST_RMDIR");
13139   if (str && strcmp (str, "1") == 0) return 1;
13140   return 0;
13141 }
13142
13143 static int test_rmdir_0 (void)
13144 {
13145   if (test_rmdir_0_skip ()) {
13146     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_0");
13147     return 0;
13148   }
13149
13150   /* InitBasicFS for test_rmdir_0: create ext2 on /dev/sda1 */
13151   {
13152     char device[] = "/dev/sda";
13153     int r;
13154     suppress_error = 0;
13155     r = guestfs_blockdev_setrw (g, device);
13156     if (r == -1)
13157       return -1;
13158   }
13159   {
13160     int r;
13161     suppress_error = 0;
13162     r = guestfs_umount_all (g);
13163     if (r == -1)
13164       return -1;
13165   }
13166   {
13167     int r;
13168     suppress_error = 0;
13169     r = guestfs_lvm_remove_all (g);
13170     if (r == -1)
13171       return -1;
13172   }
13173   {
13174     char device[] = "/dev/sda";
13175     char lines_0[] = ",";
13176     char *lines[] = {
13177       lines_0,
13178       NULL
13179     };
13180     int r;
13181     suppress_error = 0;
13182     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13183     if (r == -1)
13184       return -1;
13185   }
13186   {
13187     char fstype[] = "ext2";
13188     char device[] = "/dev/sda1";
13189     int r;
13190     suppress_error = 0;
13191     r = guestfs_mkfs (g, fstype, device);
13192     if (r == -1)
13193       return -1;
13194   }
13195   {
13196     char device[] = "/dev/sda1";
13197     char mountpoint[] = "/";
13198     int r;
13199     suppress_error = 0;
13200     r = guestfs_mount (g, device, mountpoint);
13201     if (r == -1)
13202       return -1;
13203   }
13204   /* TestRun for rmdir (0) */
13205   {
13206     char path[] = "/new";
13207     int r;
13208     suppress_error = 0;
13209     r = guestfs_mkdir (g, path);
13210     if (r == -1)
13211       return -1;
13212   }
13213   {
13214     char path[] = "/new";
13215     int r;
13216     suppress_error = 0;
13217     r = guestfs_rmdir (g, path);
13218     if (r == -1)
13219       return -1;
13220   }
13221   return 0;
13222 }
13223
13224 static int test_rmdir_1_skip (void)
13225 {
13226   const char *str;
13227
13228   str = getenv ("SKIP_TEST_RMDIR_1");
13229   if (str && strcmp (str, "1") == 0) return 1;
13230   str = getenv ("SKIP_TEST_RMDIR");
13231   if (str && strcmp (str, "1") == 0) return 1;
13232   return 0;
13233 }
13234
13235 static int test_rmdir_1 (void)
13236 {
13237   if (test_rmdir_1_skip ()) {
13238     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_1");
13239     return 0;
13240   }
13241
13242   /* InitBasicFS for test_rmdir_1: create ext2 on /dev/sda1 */
13243   {
13244     char device[] = "/dev/sda";
13245     int r;
13246     suppress_error = 0;
13247     r = guestfs_blockdev_setrw (g, device);
13248     if (r == -1)
13249       return -1;
13250   }
13251   {
13252     int r;
13253     suppress_error = 0;
13254     r = guestfs_umount_all (g);
13255     if (r == -1)
13256       return -1;
13257   }
13258   {
13259     int r;
13260     suppress_error = 0;
13261     r = guestfs_lvm_remove_all (g);
13262     if (r == -1)
13263       return -1;
13264   }
13265   {
13266     char device[] = "/dev/sda";
13267     char lines_0[] = ",";
13268     char *lines[] = {
13269       lines_0,
13270       NULL
13271     };
13272     int r;
13273     suppress_error = 0;
13274     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13275     if (r == -1)
13276       return -1;
13277   }
13278   {
13279     char fstype[] = "ext2";
13280     char device[] = "/dev/sda1";
13281     int r;
13282     suppress_error = 0;
13283     r = guestfs_mkfs (g, fstype, device);
13284     if (r == -1)
13285       return -1;
13286   }
13287   {
13288     char device[] = "/dev/sda1";
13289     char mountpoint[] = "/";
13290     int r;
13291     suppress_error = 0;
13292     r = guestfs_mount (g, device, mountpoint);
13293     if (r == -1)
13294       return -1;
13295   }
13296   /* TestLastFail for rmdir (1) */
13297   {
13298     char path[] = "/new";
13299     int r;
13300     suppress_error = 1;
13301     r = guestfs_rmdir (g, path);
13302     if (r != -1)
13303       return -1;
13304   }
13305   return 0;
13306 }
13307
13308 static int test_rmdir_2_skip (void)
13309 {
13310   const char *str;
13311
13312   str = getenv ("SKIP_TEST_RMDIR_2");
13313   if (str && strcmp (str, "1") == 0) return 1;
13314   str = getenv ("SKIP_TEST_RMDIR");
13315   if (str && strcmp (str, "1") == 0) return 1;
13316   return 0;
13317 }
13318
13319 static int test_rmdir_2 (void)
13320 {
13321   if (test_rmdir_2_skip ()) {
13322     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rmdir_2");
13323     return 0;
13324   }
13325
13326   /* InitBasicFS for test_rmdir_2: create ext2 on /dev/sda1 */
13327   {
13328     char device[] = "/dev/sda";
13329     int r;
13330     suppress_error = 0;
13331     r = guestfs_blockdev_setrw (g, device);
13332     if (r == -1)
13333       return -1;
13334   }
13335   {
13336     int r;
13337     suppress_error = 0;
13338     r = guestfs_umount_all (g);
13339     if (r == -1)
13340       return -1;
13341   }
13342   {
13343     int r;
13344     suppress_error = 0;
13345     r = guestfs_lvm_remove_all (g);
13346     if (r == -1)
13347       return -1;
13348   }
13349   {
13350     char device[] = "/dev/sda";
13351     char lines_0[] = ",";
13352     char *lines[] = {
13353       lines_0,
13354       NULL
13355     };
13356     int r;
13357     suppress_error = 0;
13358     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13359     if (r == -1)
13360       return -1;
13361   }
13362   {
13363     char fstype[] = "ext2";
13364     char device[] = "/dev/sda1";
13365     int r;
13366     suppress_error = 0;
13367     r = guestfs_mkfs (g, fstype, device);
13368     if (r == -1)
13369       return -1;
13370   }
13371   {
13372     char device[] = "/dev/sda1";
13373     char mountpoint[] = "/";
13374     int r;
13375     suppress_error = 0;
13376     r = guestfs_mount (g, device, mountpoint);
13377     if (r == -1)
13378       return -1;
13379   }
13380   /* TestLastFail for rmdir (2) */
13381   {
13382     char path[] = "/new";
13383     int r;
13384     suppress_error = 0;
13385     r = guestfs_touch (g, path);
13386     if (r == -1)
13387       return -1;
13388   }
13389   {
13390     char path[] = "/new";
13391     int r;
13392     suppress_error = 1;
13393     r = guestfs_rmdir (g, path);
13394     if (r != -1)
13395       return -1;
13396   }
13397   return 0;
13398 }
13399
13400 static int test_rm_0_skip (void)
13401 {
13402   const char *str;
13403
13404   str = getenv ("SKIP_TEST_RM_0");
13405   if (str && strcmp (str, "1") == 0) return 1;
13406   str = getenv ("SKIP_TEST_RM");
13407   if (str && strcmp (str, "1") == 0) return 1;
13408   return 0;
13409 }
13410
13411 static int test_rm_0 (void)
13412 {
13413   if (test_rm_0_skip ()) {
13414     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_0");
13415     return 0;
13416   }
13417
13418   /* InitBasicFS for test_rm_0: create ext2 on /dev/sda1 */
13419   {
13420     char device[] = "/dev/sda";
13421     int r;
13422     suppress_error = 0;
13423     r = guestfs_blockdev_setrw (g, device);
13424     if (r == -1)
13425       return -1;
13426   }
13427   {
13428     int r;
13429     suppress_error = 0;
13430     r = guestfs_umount_all (g);
13431     if (r == -1)
13432       return -1;
13433   }
13434   {
13435     int r;
13436     suppress_error = 0;
13437     r = guestfs_lvm_remove_all (g);
13438     if (r == -1)
13439       return -1;
13440   }
13441   {
13442     char device[] = "/dev/sda";
13443     char lines_0[] = ",";
13444     char *lines[] = {
13445       lines_0,
13446       NULL
13447     };
13448     int r;
13449     suppress_error = 0;
13450     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13451     if (r == -1)
13452       return -1;
13453   }
13454   {
13455     char fstype[] = "ext2";
13456     char device[] = "/dev/sda1";
13457     int r;
13458     suppress_error = 0;
13459     r = guestfs_mkfs (g, fstype, device);
13460     if (r == -1)
13461       return -1;
13462   }
13463   {
13464     char device[] = "/dev/sda1";
13465     char mountpoint[] = "/";
13466     int r;
13467     suppress_error = 0;
13468     r = guestfs_mount (g, device, mountpoint);
13469     if (r == -1)
13470       return -1;
13471   }
13472   /* TestRun for rm (0) */
13473   {
13474     char path[] = "/new";
13475     int r;
13476     suppress_error = 0;
13477     r = guestfs_touch (g, path);
13478     if (r == -1)
13479       return -1;
13480   }
13481   {
13482     char path[] = "/new";
13483     int r;
13484     suppress_error = 0;
13485     r = guestfs_rm (g, path);
13486     if (r == -1)
13487       return -1;
13488   }
13489   return 0;
13490 }
13491
13492 static int test_rm_1_skip (void)
13493 {
13494   const char *str;
13495
13496   str = getenv ("SKIP_TEST_RM_1");
13497   if (str && strcmp (str, "1") == 0) return 1;
13498   str = getenv ("SKIP_TEST_RM");
13499   if (str && strcmp (str, "1") == 0) return 1;
13500   return 0;
13501 }
13502
13503 static int test_rm_1 (void)
13504 {
13505   if (test_rm_1_skip ()) {
13506     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_1");
13507     return 0;
13508   }
13509
13510   /* InitBasicFS for test_rm_1: create ext2 on /dev/sda1 */
13511   {
13512     char device[] = "/dev/sda";
13513     int r;
13514     suppress_error = 0;
13515     r = guestfs_blockdev_setrw (g, device);
13516     if (r == -1)
13517       return -1;
13518   }
13519   {
13520     int r;
13521     suppress_error = 0;
13522     r = guestfs_umount_all (g);
13523     if (r == -1)
13524       return -1;
13525   }
13526   {
13527     int r;
13528     suppress_error = 0;
13529     r = guestfs_lvm_remove_all (g);
13530     if (r == -1)
13531       return -1;
13532   }
13533   {
13534     char device[] = "/dev/sda";
13535     char lines_0[] = ",";
13536     char *lines[] = {
13537       lines_0,
13538       NULL
13539     };
13540     int r;
13541     suppress_error = 0;
13542     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13543     if (r == -1)
13544       return -1;
13545   }
13546   {
13547     char fstype[] = "ext2";
13548     char device[] = "/dev/sda1";
13549     int r;
13550     suppress_error = 0;
13551     r = guestfs_mkfs (g, fstype, device);
13552     if (r == -1)
13553       return -1;
13554   }
13555   {
13556     char device[] = "/dev/sda1";
13557     char mountpoint[] = "/";
13558     int r;
13559     suppress_error = 0;
13560     r = guestfs_mount (g, device, mountpoint);
13561     if (r == -1)
13562       return -1;
13563   }
13564   /* TestLastFail for rm (1) */
13565   {
13566     char path[] = "/new";
13567     int r;
13568     suppress_error = 1;
13569     r = guestfs_rm (g, path);
13570     if (r != -1)
13571       return -1;
13572   }
13573   return 0;
13574 }
13575
13576 static int test_rm_2_skip (void)
13577 {
13578   const char *str;
13579
13580   str = getenv ("SKIP_TEST_RM_2");
13581   if (str && strcmp (str, "1") == 0) return 1;
13582   str = getenv ("SKIP_TEST_RM");
13583   if (str && strcmp (str, "1") == 0) return 1;
13584   return 0;
13585 }
13586
13587 static int test_rm_2 (void)
13588 {
13589   if (test_rm_2_skip ()) {
13590     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_rm_2");
13591     return 0;
13592   }
13593
13594   /* InitBasicFS for test_rm_2: create ext2 on /dev/sda1 */
13595   {
13596     char device[] = "/dev/sda";
13597     int r;
13598     suppress_error = 0;
13599     r = guestfs_blockdev_setrw (g, device);
13600     if (r == -1)
13601       return -1;
13602   }
13603   {
13604     int r;
13605     suppress_error = 0;
13606     r = guestfs_umount_all (g);
13607     if (r == -1)
13608       return -1;
13609   }
13610   {
13611     int r;
13612     suppress_error = 0;
13613     r = guestfs_lvm_remove_all (g);
13614     if (r == -1)
13615       return -1;
13616   }
13617   {
13618     char device[] = "/dev/sda";
13619     char lines_0[] = ",";
13620     char *lines[] = {
13621       lines_0,
13622       NULL
13623     };
13624     int r;
13625     suppress_error = 0;
13626     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13627     if (r == -1)
13628       return -1;
13629   }
13630   {
13631     char fstype[] = "ext2";
13632     char device[] = "/dev/sda1";
13633     int r;
13634     suppress_error = 0;
13635     r = guestfs_mkfs (g, fstype, device);
13636     if (r == -1)
13637       return -1;
13638   }
13639   {
13640     char device[] = "/dev/sda1";
13641     char mountpoint[] = "/";
13642     int r;
13643     suppress_error = 0;
13644     r = guestfs_mount (g, device, mountpoint);
13645     if (r == -1)
13646       return -1;
13647   }
13648   /* TestLastFail for rm (2) */
13649   {
13650     char path[] = "/new";
13651     int r;
13652     suppress_error = 0;
13653     r = guestfs_mkdir (g, path);
13654     if (r == -1)
13655       return -1;
13656   }
13657   {
13658     char path[] = "/new";
13659     int r;
13660     suppress_error = 1;
13661     r = guestfs_rm (g, path);
13662     if (r != -1)
13663       return -1;
13664   }
13665   return 0;
13666 }
13667
13668 static int test_read_lines_0_skip (void)
13669 {
13670   const char *str;
13671
13672   str = getenv ("SKIP_TEST_READ_LINES_0");
13673   if (str && strcmp (str, "1") == 0) return 1;
13674   str = getenv ("SKIP_TEST_READ_LINES");
13675   if (str && strcmp (str, "1") == 0) return 1;
13676   return 0;
13677 }
13678
13679 static int test_read_lines_0 (void)
13680 {
13681   if (test_read_lines_0_skip ()) {
13682     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_read_lines_0");
13683     return 0;
13684   }
13685
13686   /* InitBasicFS for test_read_lines_0: create ext2 on /dev/sda1 */
13687   {
13688     char device[] = "/dev/sda";
13689     int r;
13690     suppress_error = 0;
13691     r = guestfs_blockdev_setrw (g, device);
13692     if (r == -1)
13693       return -1;
13694   }
13695   {
13696     int r;
13697     suppress_error = 0;
13698     r = guestfs_umount_all (g);
13699     if (r == -1)
13700       return -1;
13701   }
13702   {
13703     int r;
13704     suppress_error = 0;
13705     r = guestfs_lvm_remove_all (g);
13706     if (r == -1)
13707       return -1;
13708   }
13709   {
13710     char device[] = "/dev/sda";
13711     char lines_0[] = ",";
13712     char *lines[] = {
13713       lines_0,
13714       NULL
13715     };
13716     int r;
13717     suppress_error = 0;
13718     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13719     if (r == -1)
13720       return -1;
13721   }
13722   {
13723     char fstype[] = "ext2";
13724     char device[] = "/dev/sda1";
13725     int r;
13726     suppress_error = 0;
13727     r = guestfs_mkfs (g, fstype, device);
13728     if (r == -1)
13729       return -1;
13730   }
13731   {
13732     char device[] = "/dev/sda1";
13733     char mountpoint[] = "/";
13734     int r;
13735     suppress_error = 0;
13736     r = guestfs_mount (g, device, mountpoint);
13737     if (r == -1)
13738       return -1;
13739   }
13740   /* TestOutputList for read_lines (0) */
13741   {
13742     char path[] = "/new";
13743     char content[] = "line1\r\nline2\nline3";
13744     int r;
13745     suppress_error = 0;
13746     r = guestfs_write_file (g, path, content, 0);
13747     if (r == -1)
13748       return -1;
13749   }
13750   {
13751     char path[] = "/new";
13752     char **r;
13753     int i;
13754     suppress_error = 0;
13755     r = guestfs_read_lines (g, path);
13756     if (r == NULL)
13757       return -1;
13758     if (!r[0]) {
13759       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
13760       print_strings (r);
13761       return -1;
13762     }
13763     {
13764       char expected[] = "line1";
13765       if (strcmp (r[0], expected) != 0) {
13766         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
13767         return -1;
13768       }
13769     }
13770     if (!r[1]) {
13771       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
13772       print_strings (r);
13773       return -1;
13774     }
13775     {
13776       char expected[] = "line2";
13777       if (strcmp (r[1], expected) != 0) {
13778         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
13779         return -1;
13780       }
13781     }
13782     if (!r[2]) {
13783       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
13784       print_strings (r);
13785       return -1;
13786     }
13787     {
13788       char expected[] = "line3";
13789       if (strcmp (r[2], expected) != 0) {
13790         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
13791         return -1;
13792       }
13793     }
13794     if (r[3] != NULL) {
13795       fprintf (stderr, "test_read_lines_0: extra elements returned from command\n");
13796       print_strings (r);
13797       return -1;
13798     }
13799     for (i = 0; r[i] != NULL; ++i)
13800       free (r[i]);
13801     free (r);
13802   }
13803   return 0;
13804 }
13805
13806 static int test_read_lines_1_skip (void)
13807 {
13808   const char *str;
13809
13810   str = getenv ("SKIP_TEST_READ_LINES_1");
13811   if (str && strcmp (str, "1") == 0) return 1;
13812   str = getenv ("SKIP_TEST_READ_LINES");
13813   if (str && strcmp (str, "1") == 0) return 1;
13814   return 0;
13815 }
13816
13817 static int test_read_lines_1 (void)
13818 {
13819   if (test_read_lines_1_skip ()) {
13820     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_read_lines_1");
13821     return 0;
13822   }
13823
13824   /* InitBasicFS for test_read_lines_1: create ext2 on /dev/sda1 */
13825   {
13826     char device[] = "/dev/sda";
13827     int r;
13828     suppress_error = 0;
13829     r = guestfs_blockdev_setrw (g, device);
13830     if (r == -1)
13831       return -1;
13832   }
13833   {
13834     int r;
13835     suppress_error = 0;
13836     r = guestfs_umount_all (g);
13837     if (r == -1)
13838       return -1;
13839   }
13840   {
13841     int r;
13842     suppress_error = 0;
13843     r = guestfs_lvm_remove_all (g);
13844     if (r == -1)
13845       return -1;
13846   }
13847   {
13848     char device[] = "/dev/sda";
13849     char lines_0[] = ",";
13850     char *lines[] = {
13851       lines_0,
13852       NULL
13853     };
13854     int r;
13855     suppress_error = 0;
13856     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13857     if (r == -1)
13858       return -1;
13859   }
13860   {
13861     char fstype[] = "ext2";
13862     char device[] = "/dev/sda1";
13863     int r;
13864     suppress_error = 0;
13865     r = guestfs_mkfs (g, fstype, device);
13866     if (r == -1)
13867       return -1;
13868   }
13869   {
13870     char device[] = "/dev/sda1";
13871     char mountpoint[] = "/";
13872     int r;
13873     suppress_error = 0;
13874     r = guestfs_mount (g, device, mountpoint);
13875     if (r == -1)
13876       return -1;
13877   }
13878   /* TestOutputList for read_lines (1) */
13879   {
13880     char path[] = "/new";
13881     char content[] = "";
13882     int r;
13883     suppress_error = 0;
13884     r = guestfs_write_file (g, path, content, 0);
13885     if (r == -1)
13886       return -1;
13887   }
13888   {
13889     char path[] = "/new";
13890     char **r;
13891     int i;
13892     suppress_error = 0;
13893     r = guestfs_read_lines (g, path);
13894     if (r == NULL)
13895       return -1;
13896     if (r[0] != NULL) {
13897       fprintf (stderr, "test_read_lines_1: extra elements returned from command\n");
13898       print_strings (r);
13899       return -1;
13900     }
13901     for (i = 0; r[i] != NULL; ++i)
13902       free (r[i]);
13903     free (r);
13904   }
13905   return 0;
13906 }
13907
13908 static int test_lvs_0_skip (void)
13909 {
13910   const char *str;
13911
13912   str = getenv ("SKIP_TEST_LVS_0");
13913   if (str && strcmp (str, "1") == 0) return 1;
13914   str = getenv ("SKIP_TEST_LVS");
13915   if (str && strcmp (str, "1") == 0) return 1;
13916   return 0;
13917 }
13918
13919 static int test_lvs_0 (void)
13920 {
13921   if (test_lvs_0_skip ()) {
13922     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvs_0");
13923     return 0;
13924   }
13925
13926   /* InitBasicFSonLVM for test_lvs_0: create ext2 on /dev/VG/LV */
13927   {
13928     char device[] = "/dev/sda";
13929     int r;
13930     suppress_error = 0;
13931     r = guestfs_blockdev_setrw (g, device);
13932     if (r == -1)
13933       return -1;
13934   }
13935   {
13936     int r;
13937     suppress_error = 0;
13938     r = guestfs_umount_all (g);
13939     if (r == -1)
13940       return -1;
13941   }
13942   {
13943     int r;
13944     suppress_error = 0;
13945     r = guestfs_lvm_remove_all (g);
13946     if (r == -1)
13947       return -1;
13948   }
13949   {
13950     char device[] = "/dev/sda";
13951     char lines_0[] = ",";
13952     char *lines[] = {
13953       lines_0,
13954       NULL
13955     };
13956     int r;
13957     suppress_error = 0;
13958     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13959     if (r == -1)
13960       return -1;
13961   }
13962   {
13963     char device[] = "/dev/sda1";
13964     int r;
13965     suppress_error = 0;
13966     r = guestfs_pvcreate (g, device);
13967     if (r == -1)
13968       return -1;
13969   }
13970   {
13971     char volgroup[] = "VG";
13972     char physvols_0[] = "/dev/sda1";
13973     char *physvols[] = {
13974       physvols_0,
13975       NULL
13976     };
13977     int r;
13978     suppress_error = 0;
13979     r = guestfs_vgcreate (g, volgroup, physvols);
13980     if (r == -1)
13981       return -1;
13982   }
13983   {
13984     char logvol[] = "LV";
13985     char volgroup[] = "VG";
13986     int r;
13987     suppress_error = 0;
13988     r = guestfs_lvcreate (g, logvol, volgroup, 8);
13989     if (r == -1)
13990       return -1;
13991   }
13992   {
13993     char fstype[] = "ext2";
13994     char device[] = "/dev/VG/LV";
13995     int r;
13996     suppress_error = 0;
13997     r = guestfs_mkfs (g, fstype, device);
13998     if (r == -1)
13999       return -1;
14000   }
14001   {
14002     char device[] = "/dev/VG/LV";
14003     char mountpoint[] = "/";
14004     int r;
14005     suppress_error = 0;
14006     r = guestfs_mount (g, device, mountpoint);
14007     if (r == -1)
14008       return -1;
14009   }
14010   /* TestOutputList for lvs (0) */
14011   {
14012     char **r;
14013     int i;
14014     suppress_error = 0;
14015     r = guestfs_lvs (g);
14016     if (r == NULL)
14017       return -1;
14018     if (!r[0]) {
14019       fprintf (stderr, "test_lvs_0: short list returned from command\n");
14020       print_strings (r);
14021       return -1;
14022     }
14023     {
14024       char expected[] = "/dev/VG/LV";
14025       if (strcmp (r[0], expected) != 0) {
14026         fprintf (stderr, "test_lvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14027         return -1;
14028       }
14029     }
14030     if (r[1] != NULL) {
14031       fprintf (stderr, "test_lvs_0: extra elements returned from command\n");
14032       print_strings (r);
14033       return -1;
14034     }
14035     for (i = 0; r[i] != NULL; ++i)
14036       free (r[i]);
14037     free (r);
14038   }
14039   return 0;
14040 }
14041
14042 static int test_lvs_1_skip (void)
14043 {
14044   const char *str;
14045
14046   str = getenv ("SKIP_TEST_LVS_1");
14047   if (str && strcmp (str, "1") == 0) return 1;
14048   str = getenv ("SKIP_TEST_LVS");
14049   if (str && strcmp (str, "1") == 0) return 1;
14050   return 0;
14051 }
14052
14053 static int test_lvs_1 (void)
14054 {
14055   if (test_lvs_1_skip ()) {
14056     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_lvs_1");
14057     return 0;
14058   }
14059
14060   /* InitNone|InitEmpty for test_lvs_1 */
14061   {
14062     char device[] = "/dev/sda";
14063     int r;
14064     suppress_error = 0;
14065     r = guestfs_blockdev_setrw (g, device);
14066     if (r == -1)
14067       return -1;
14068   }
14069   {
14070     int r;
14071     suppress_error = 0;
14072     r = guestfs_umount_all (g);
14073     if (r == -1)
14074       return -1;
14075   }
14076   {
14077     int r;
14078     suppress_error = 0;
14079     r = guestfs_lvm_remove_all (g);
14080     if (r == -1)
14081       return -1;
14082   }
14083   /* TestOutputList for lvs (1) */
14084   {
14085     char device[] = "/dev/sda";
14086     char lines_0[] = ",10";
14087     char lines_1[] = ",20";
14088     char lines_2[] = ",";
14089     char *lines[] = {
14090       lines_0,
14091       lines_1,
14092       lines_2,
14093       NULL
14094     };
14095     int r;
14096     suppress_error = 0;
14097     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14098     if (r == -1)
14099       return -1;
14100   }
14101   {
14102     char device[] = "/dev/sda1";
14103     int r;
14104     suppress_error = 0;
14105     r = guestfs_pvcreate (g, device);
14106     if (r == -1)
14107       return -1;
14108   }
14109   {
14110     char device[] = "/dev/sda2";
14111     int r;
14112     suppress_error = 0;
14113     r = guestfs_pvcreate (g, device);
14114     if (r == -1)
14115       return -1;
14116   }
14117   {
14118     char device[] = "/dev/sda3";
14119     int r;
14120     suppress_error = 0;
14121     r = guestfs_pvcreate (g, device);
14122     if (r == -1)
14123       return -1;
14124   }
14125   {
14126     char volgroup[] = "VG1";
14127     char physvols_0[] = "/dev/sda1";
14128     char physvols_1[] = "/dev/sda2";
14129     char *physvols[] = {
14130       physvols_0,
14131       physvols_1,
14132       NULL
14133     };
14134     int r;
14135     suppress_error = 0;
14136     r = guestfs_vgcreate (g, volgroup, physvols);
14137     if (r == -1)
14138       return -1;
14139   }
14140   {
14141     char volgroup[] = "VG2";
14142     char physvols_0[] = "/dev/sda3";
14143     char *physvols[] = {
14144       physvols_0,
14145       NULL
14146     };
14147     int r;
14148     suppress_error = 0;
14149     r = guestfs_vgcreate (g, volgroup, physvols);
14150     if (r == -1)
14151       return -1;
14152   }
14153   {
14154     char logvol[] = "LV1";
14155     char volgroup[] = "VG1";
14156     int r;
14157     suppress_error = 0;
14158     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14159     if (r == -1)
14160       return -1;
14161   }
14162   {
14163     char logvol[] = "LV2";
14164     char volgroup[] = "VG1";
14165     int r;
14166     suppress_error = 0;
14167     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14168     if (r == -1)
14169       return -1;
14170   }
14171   {
14172     char logvol[] = "LV3";
14173     char volgroup[] = "VG2";
14174     int r;
14175     suppress_error = 0;
14176     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14177     if (r == -1)
14178       return -1;
14179   }
14180   {
14181     char **r;
14182     int i;
14183     suppress_error = 0;
14184     r = guestfs_lvs (g);
14185     if (r == NULL)
14186       return -1;
14187     if (!r[0]) {
14188       fprintf (stderr, "test_lvs_1: short list returned from command\n");
14189       print_strings (r);
14190       return -1;
14191     }
14192     {
14193       char expected[] = "/dev/VG1/LV1";
14194       if (strcmp (r[0], expected) != 0) {
14195         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14196         return -1;
14197       }
14198     }
14199     if (!r[1]) {
14200       fprintf (stderr, "test_lvs_1: short list returned from command\n");
14201       print_strings (r);
14202       return -1;
14203     }
14204     {
14205       char expected[] = "/dev/VG1/LV2";
14206       if (strcmp (r[1], expected) != 0) {
14207         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14208         return -1;
14209       }
14210     }
14211     if (!r[2]) {
14212       fprintf (stderr, "test_lvs_1: short list returned from command\n");
14213       print_strings (r);
14214       return -1;
14215     }
14216     {
14217       char expected[] = "/dev/VG2/LV3";
14218       if (strcmp (r[2], expected) != 0) {
14219         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
14220         return -1;
14221       }
14222     }
14223     if (r[3] != NULL) {
14224       fprintf (stderr, "test_lvs_1: extra elements returned from command\n");
14225       print_strings (r);
14226       return -1;
14227     }
14228     for (i = 0; r[i] != NULL; ++i)
14229       free (r[i]);
14230     free (r);
14231   }
14232   return 0;
14233 }
14234
14235 static int test_vgs_0_skip (void)
14236 {
14237   const char *str;
14238
14239   str = getenv ("SKIP_TEST_VGS_0");
14240   if (str && strcmp (str, "1") == 0) return 1;
14241   str = getenv ("SKIP_TEST_VGS");
14242   if (str && strcmp (str, "1") == 0) return 1;
14243   return 0;
14244 }
14245
14246 static int test_vgs_0 (void)
14247 {
14248   if (test_vgs_0_skip ()) {
14249     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgs_0");
14250     return 0;
14251   }
14252
14253   /* InitBasicFSonLVM for test_vgs_0: create ext2 on /dev/VG/LV */
14254   {
14255     char device[] = "/dev/sda";
14256     int r;
14257     suppress_error = 0;
14258     r = guestfs_blockdev_setrw (g, device);
14259     if (r == -1)
14260       return -1;
14261   }
14262   {
14263     int r;
14264     suppress_error = 0;
14265     r = guestfs_umount_all (g);
14266     if (r == -1)
14267       return -1;
14268   }
14269   {
14270     int r;
14271     suppress_error = 0;
14272     r = guestfs_lvm_remove_all (g);
14273     if (r == -1)
14274       return -1;
14275   }
14276   {
14277     char device[] = "/dev/sda";
14278     char lines_0[] = ",";
14279     char *lines[] = {
14280       lines_0,
14281       NULL
14282     };
14283     int r;
14284     suppress_error = 0;
14285     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14286     if (r == -1)
14287       return -1;
14288   }
14289   {
14290     char device[] = "/dev/sda1";
14291     int r;
14292     suppress_error = 0;
14293     r = guestfs_pvcreate (g, device);
14294     if (r == -1)
14295       return -1;
14296   }
14297   {
14298     char volgroup[] = "VG";
14299     char physvols_0[] = "/dev/sda1";
14300     char *physvols[] = {
14301       physvols_0,
14302       NULL
14303     };
14304     int r;
14305     suppress_error = 0;
14306     r = guestfs_vgcreate (g, volgroup, physvols);
14307     if (r == -1)
14308       return -1;
14309   }
14310   {
14311     char logvol[] = "LV";
14312     char volgroup[] = "VG";
14313     int r;
14314     suppress_error = 0;
14315     r = guestfs_lvcreate (g, logvol, volgroup, 8);
14316     if (r == -1)
14317       return -1;
14318   }
14319   {
14320     char fstype[] = "ext2";
14321     char device[] = "/dev/VG/LV";
14322     int r;
14323     suppress_error = 0;
14324     r = guestfs_mkfs (g, fstype, device);
14325     if (r == -1)
14326       return -1;
14327   }
14328   {
14329     char device[] = "/dev/VG/LV";
14330     char mountpoint[] = "/";
14331     int r;
14332     suppress_error = 0;
14333     r = guestfs_mount (g, device, mountpoint);
14334     if (r == -1)
14335       return -1;
14336   }
14337   /* TestOutputList for vgs (0) */
14338   {
14339     char **r;
14340     int i;
14341     suppress_error = 0;
14342     r = guestfs_vgs (g);
14343     if (r == NULL)
14344       return -1;
14345     if (!r[0]) {
14346       fprintf (stderr, "test_vgs_0: short list returned from command\n");
14347       print_strings (r);
14348       return -1;
14349     }
14350     {
14351       char expected[] = "VG";
14352       if (strcmp (r[0], expected) != 0) {
14353         fprintf (stderr, "test_vgs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14354         return -1;
14355       }
14356     }
14357     if (r[1] != NULL) {
14358       fprintf (stderr, "test_vgs_0: extra elements returned from command\n");
14359       print_strings (r);
14360       return -1;
14361     }
14362     for (i = 0; r[i] != NULL; ++i)
14363       free (r[i]);
14364     free (r);
14365   }
14366   return 0;
14367 }
14368
14369 static int test_vgs_1_skip (void)
14370 {
14371   const char *str;
14372
14373   str = getenv ("SKIP_TEST_VGS_1");
14374   if (str && strcmp (str, "1") == 0) return 1;
14375   str = getenv ("SKIP_TEST_VGS");
14376   if (str && strcmp (str, "1") == 0) return 1;
14377   return 0;
14378 }
14379
14380 static int test_vgs_1 (void)
14381 {
14382   if (test_vgs_1_skip ()) {
14383     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_vgs_1");
14384     return 0;
14385   }
14386
14387   /* InitNone|InitEmpty for test_vgs_1 */
14388   {
14389     char device[] = "/dev/sda";
14390     int r;
14391     suppress_error = 0;
14392     r = guestfs_blockdev_setrw (g, device);
14393     if (r == -1)
14394       return -1;
14395   }
14396   {
14397     int r;
14398     suppress_error = 0;
14399     r = guestfs_umount_all (g);
14400     if (r == -1)
14401       return -1;
14402   }
14403   {
14404     int r;
14405     suppress_error = 0;
14406     r = guestfs_lvm_remove_all (g);
14407     if (r == -1)
14408       return -1;
14409   }
14410   /* TestOutputList for vgs (1) */
14411   {
14412     char device[] = "/dev/sda";
14413     char lines_0[] = ",10";
14414     char lines_1[] = ",20";
14415     char lines_2[] = ",";
14416     char *lines[] = {
14417       lines_0,
14418       lines_1,
14419       lines_2,
14420       NULL
14421     };
14422     int r;
14423     suppress_error = 0;
14424     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14425     if (r == -1)
14426       return -1;
14427   }
14428   {
14429     char device[] = "/dev/sda1";
14430     int r;
14431     suppress_error = 0;
14432     r = guestfs_pvcreate (g, device);
14433     if (r == -1)
14434       return -1;
14435   }
14436   {
14437     char device[] = "/dev/sda2";
14438     int r;
14439     suppress_error = 0;
14440     r = guestfs_pvcreate (g, device);
14441     if (r == -1)
14442       return -1;
14443   }
14444   {
14445     char device[] = "/dev/sda3";
14446     int r;
14447     suppress_error = 0;
14448     r = guestfs_pvcreate (g, device);
14449     if (r == -1)
14450       return -1;
14451   }
14452   {
14453     char volgroup[] = "VG1";
14454     char physvols_0[] = "/dev/sda1";
14455     char physvols_1[] = "/dev/sda2";
14456     char *physvols[] = {
14457       physvols_0,
14458       physvols_1,
14459       NULL
14460     };
14461     int r;
14462     suppress_error = 0;
14463     r = guestfs_vgcreate (g, volgroup, physvols);
14464     if (r == -1)
14465       return -1;
14466   }
14467   {
14468     char volgroup[] = "VG2";
14469     char physvols_0[] = "/dev/sda3";
14470     char *physvols[] = {
14471       physvols_0,
14472       NULL
14473     };
14474     int r;
14475     suppress_error = 0;
14476     r = guestfs_vgcreate (g, volgroup, physvols);
14477     if (r == -1)
14478       return -1;
14479   }
14480   {
14481     char **r;
14482     int i;
14483     suppress_error = 0;
14484     r = guestfs_vgs (g);
14485     if (r == NULL)
14486       return -1;
14487     if (!r[0]) {
14488       fprintf (stderr, "test_vgs_1: short list returned from command\n");
14489       print_strings (r);
14490       return -1;
14491     }
14492     {
14493       char expected[] = "VG1";
14494       if (strcmp (r[0], expected) != 0) {
14495         fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14496         return -1;
14497       }
14498     }
14499     if (!r[1]) {
14500       fprintf (stderr, "test_vgs_1: short list returned from command\n");
14501       print_strings (r);
14502       return -1;
14503     }
14504     {
14505       char expected[] = "VG2";
14506       if (strcmp (r[1], expected) != 0) {
14507         fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14508         return -1;
14509       }
14510     }
14511     if (r[2] != NULL) {
14512       fprintf (stderr, "test_vgs_1: extra elements returned from command\n");
14513       print_strings (r);
14514       return -1;
14515     }
14516     for (i = 0; r[i] != NULL; ++i)
14517       free (r[i]);
14518     free (r);
14519   }
14520   return 0;
14521 }
14522
14523 static int test_pvs_0_skip (void)
14524 {
14525   const char *str;
14526
14527   str = getenv ("SKIP_TEST_PVS_0");
14528   if (str && strcmp (str, "1") == 0) return 1;
14529   str = getenv ("SKIP_TEST_PVS");
14530   if (str && strcmp (str, "1") == 0) return 1;
14531   return 0;
14532 }
14533
14534 static int test_pvs_0 (void)
14535 {
14536   if (test_pvs_0_skip ()) {
14537     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvs_0");
14538     return 0;
14539   }
14540
14541   /* InitBasicFSonLVM for test_pvs_0: create ext2 on /dev/VG/LV */
14542   {
14543     char device[] = "/dev/sda";
14544     int r;
14545     suppress_error = 0;
14546     r = guestfs_blockdev_setrw (g, device);
14547     if (r == -1)
14548       return -1;
14549   }
14550   {
14551     int r;
14552     suppress_error = 0;
14553     r = guestfs_umount_all (g);
14554     if (r == -1)
14555       return -1;
14556   }
14557   {
14558     int r;
14559     suppress_error = 0;
14560     r = guestfs_lvm_remove_all (g);
14561     if (r == -1)
14562       return -1;
14563   }
14564   {
14565     char device[] = "/dev/sda";
14566     char lines_0[] = ",";
14567     char *lines[] = {
14568       lines_0,
14569       NULL
14570     };
14571     int r;
14572     suppress_error = 0;
14573     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14574     if (r == -1)
14575       return -1;
14576   }
14577   {
14578     char device[] = "/dev/sda1";
14579     int r;
14580     suppress_error = 0;
14581     r = guestfs_pvcreate (g, device);
14582     if (r == -1)
14583       return -1;
14584   }
14585   {
14586     char volgroup[] = "VG";
14587     char physvols_0[] = "/dev/sda1";
14588     char *physvols[] = {
14589       physvols_0,
14590       NULL
14591     };
14592     int r;
14593     suppress_error = 0;
14594     r = guestfs_vgcreate (g, volgroup, physvols);
14595     if (r == -1)
14596       return -1;
14597   }
14598   {
14599     char logvol[] = "LV";
14600     char volgroup[] = "VG";
14601     int r;
14602     suppress_error = 0;
14603     r = guestfs_lvcreate (g, logvol, volgroup, 8);
14604     if (r == -1)
14605       return -1;
14606   }
14607   {
14608     char fstype[] = "ext2";
14609     char device[] = "/dev/VG/LV";
14610     int r;
14611     suppress_error = 0;
14612     r = guestfs_mkfs (g, fstype, device);
14613     if (r == -1)
14614       return -1;
14615   }
14616   {
14617     char device[] = "/dev/VG/LV";
14618     char mountpoint[] = "/";
14619     int r;
14620     suppress_error = 0;
14621     r = guestfs_mount (g, device, mountpoint);
14622     if (r == -1)
14623       return -1;
14624   }
14625   /* TestOutputListOfDevices for pvs (0) */
14626   {
14627     char **r;
14628     int i;
14629     suppress_error = 0;
14630     r = guestfs_pvs (g);
14631     if (r == NULL)
14632       return -1;
14633     if (!r[0]) {
14634       fprintf (stderr, "test_pvs_0: short list returned from command\n");
14635       print_strings (r);
14636       return -1;
14637     }
14638     {
14639       char expected[] = "/dev/sda1";
14640       r[0][5] = 's';
14641       if (strcmp (r[0], expected) != 0) {
14642         fprintf (stderr, "test_pvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14643         return -1;
14644       }
14645     }
14646     if (r[1] != NULL) {
14647       fprintf (stderr, "test_pvs_0: extra elements returned from command\n");
14648       print_strings (r);
14649       return -1;
14650     }
14651     for (i = 0; r[i] != NULL; ++i)
14652       free (r[i]);
14653     free (r);
14654   }
14655   return 0;
14656 }
14657
14658 static int test_pvs_1_skip (void)
14659 {
14660   const char *str;
14661
14662   str = getenv ("SKIP_TEST_PVS_1");
14663   if (str && strcmp (str, "1") == 0) return 1;
14664   str = getenv ("SKIP_TEST_PVS");
14665   if (str && strcmp (str, "1") == 0) return 1;
14666   return 0;
14667 }
14668
14669 static int test_pvs_1 (void)
14670 {
14671   if (test_pvs_1_skip ()) {
14672     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_pvs_1");
14673     return 0;
14674   }
14675
14676   /* InitNone|InitEmpty for test_pvs_1 */
14677   {
14678     char device[] = "/dev/sda";
14679     int r;
14680     suppress_error = 0;
14681     r = guestfs_blockdev_setrw (g, device);
14682     if (r == -1)
14683       return -1;
14684   }
14685   {
14686     int r;
14687     suppress_error = 0;
14688     r = guestfs_umount_all (g);
14689     if (r == -1)
14690       return -1;
14691   }
14692   {
14693     int r;
14694     suppress_error = 0;
14695     r = guestfs_lvm_remove_all (g);
14696     if (r == -1)
14697       return -1;
14698   }
14699   /* TestOutputListOfDevices for pvs (1) */
14700   {
14701     char device[] = "/dev/sda";
14702     char lines_0[] = ",10";
14703     char lines_1[] = ",20";
14704     char lines_2[] = ",";
14705     char *lines[] = {
14706       lines_0,
14707       lines_1,
14708       lines_2,
14709       NULL
14710     };
14711     int r;
14712     suppress_error = 0;
14713     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14714     if (r == -1)
14715       return -1;
14716   }
14717   {
14718     char device[] = "/dev/sda1";
14719     int r;
14720     suppress_error = 0;
14721     r = guestfs_pvcreate (g, device);
14722     if (r == -1)
14723       return -1;
14724   }
14725   {
14726     char device[] = "/dev/sda2";
14727     int r;
14728     suppress_error = 0;
14729     r = guestfs_pvcreate (g, device);
14730     if (r == -1)
14731       return -1;
14732   }
14733   {
14734     char device[] = "/dev/sda3";
14735     int r;
14736     suppress_error = 0;
14737     r = guestfs_pvcreate (g, device);
14738     if (r == -1)
14739       return -1;
14740   }
14741   {
14742     char **r;
14743     int i;
14744     suppress_error = 0;
14745     r = guestfs_pvs (g);
14746     if (r == NULL)
14747       return -1;
14748     if (!r[0]) {
14749       fprintf (stderr, "test_pvs_1: short list returned from command\n");
14750       print_strings (r);
14751       return -1;
14752     }
14753     {
14754       char expected[] = "/dev/sda1";
14755       r[0][5] = 's';
14756       if (strcmp (r[0], expected) != 0) {
14757         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14758         return -1;
14759       }
14760     }
14761     if (!r[1]) {
14762       fprintf (stderr, "test_pvs_1: short list returned from command\n");
14763       print_strings (r);
14764       return -1;
14765     }
14766     {
14767       char expected[] = "/dev/sda2";
14768       r[1][5] = 's';
14769       if (strcmp (r[1], expected) != 0) {
14770         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14771         return -1;
14772       }
14773     }
14774     if (!r[2]) {
14775       fprintf (stderr, "test_pvs_1: short list returned from command\n");
14776       print_strings (r);
14777       return -1;
14778     }
14779     {
14780       char expected[] = "/dev/sda3";
14781       r[2][5] = 's';
14782       if (strcmp (r[2], expected) != 0) {
14783         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
14784         return -1;
14785       }
14786     }
14787     if (r[3] != NULL) {
14788       fprintf (stderr, "test_pvs_1: extra elements returned from command\n");
14789       print_strings (r);
14790       return -1;
14791     }
14792     for (i = 0; r[i] != NULL; ++i)
14793       free (r[i]);
14794     free (r);
14795   }
14796   return 0;
14797 }
14798
14799 static int test_list_partitions_0_skip (void)
14800 {
14801   const char *str;
14802
14803   str = getenv ("SKIP_TEST_LIST_PARTITIONS_0");
14804   if (str && strcmp (str, "1") == 0) return 1;
14805   str = getenv ("SKIP_TEST_LIST_PARTITIONS");
14806   if (str && strcmp (str, "1") == 0) return 1;
14807   return 0;
14808 }
14809
14810 static int test_list_partitions_0 (void)
14811 {
14812   if (test_list_partitions_0_skip ()) {
14813     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_partitions_0");
14814     return 0;
14815   }
14816
14817   /* InitBasicFS for test_list_partitions_0: create ext2 on /dev/sda1 */
14818   {
14819     char device[] = "/dev/sda";
14820     int r;
14821     suppress_error = 0;
14822     r = guestfs_blockdev_setrw (g, device);
14823     if (r == -1)
14824       return -1;
14825   }
14826   {
14827     int r;
14828     suppress_error = 0;
14829     r = guestfs_umount_all (g);
14830     if (r == -1)
14831       return -1;
14832   }
14833   {
14834     int r;
14835     suppress_error = 0;
14836     r = guestfs_lvm_remove_all (g);
14837     if (r == -1)
14838       return -1;
14839   }
14840   {
14841     char device[] = "/dev/sda";
14842     char lines_0[] = ",";
14843     char *lines[] = {
14844       lines_0,
14845       NULL
14846     };
14847     int r;
14848     suppress_error = 0;
14849     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14850     if (r == -1)
14851       return -1;
14852   }
14853   {
14854     char fstype[] = "ext2";
14855     char device[] = "/dev/sda1";
14856     int r;
14857     suppress_error = 0;
14858     r = guestfs_mkfs (g, fstype, device);
14859     if (r == -1)
14860       return -1;
14861   }
14862   {
14863     char device[] = "/dev/sda1";
14864     char mountpoint[] = "/";
14865     int r;
14866     suppress_error = 0;
14867     r = guestfs_mount (g, device, mountpoint);
14868     if (r == -1)
14869       return -1;
14870   }
14871   /* TestOutputListOfDevices for list_partitions (0) */
14872   {
14873     char **r;
14874     int i;
14875     suppress_error = 0;
14876     r = guestfs_list_partitions (g);
14877     if (r == NULL)
14878       return -1;
14879     if (!r[0]) {
14880       fprintf (stderr, "test_list_partitions_0: short list returned from command\n");
14881       print_strings (r);
14882       return -1;
14883     }
14884     {
14885       char expected[] = "/dev/sda1";
14886       r[0][5] = 's';
14887       if (strcmp (r[0], expected) != 0) {
14888         fprintf (stderr, "test_list_partitions_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14889         return -1;
14890       }
14891     }
14892     if (r[1] != NULL) {
14893       fprintf (stderr, "test_list_partitions_0: extra elements returned from command\n");
14894       print_strings (r);
14895       return -1;
14896     }
14897     for (i = 0; r[i] != NULL; ++i)
14898       free (r[i]);
14899     free (r);
14900   }
14901   return 0;
14902 }
14903
14904 static int test_list_partitions_1_skip (void)
14905 {
14906   const char *str;
14907
14908   str = getenv ("SKIP_TEST_LIST_PARTITIONS_1");
14909   if (str && strcmp (str, "1") == 0) return 1;
14910   str = getenv ("SKIP_TEST_LIST_PARTITIONS");
14911   if (str && strcmp (str, "1") == 0) return 1;
14912   return 0;
14913 }
14914
14915 static int test_list_partitions_1 (void)
14916 {
14917   if (test_list_partitions_1_skip ()) {
14918     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_partitions_1");
14919     return 0;
14920   }
14921
14922   /* InitNone|InitEmpty for test_list_partitions_1 */
14923   {
14924     char device[] = "/dev/sda";
14925     int r;
14926     suppress_error = 0;
14927     r = guestfs_blockdev_setrw (g, device);
14928     if (r == -1)
14929       return -1;
14930   }
14931   {
14932     int r;
14933     suppress_error = 0;
14934     r = guestfs_umount_all (g);
14935     if (r == -1)
14936       return -1;
14937   }
14938   {
14939     int r;
14940     suppress_error = 0;
14941     r = guestfs_lvm_remove_all (g);
14942     if (r == -1)
14943       return -1;
14944   }
14945   /* TestOutputListOfDevices for list_partitions (1) */
14946   {
14947     char device[] = "/dev/sda";
14948     char lines_0[] = ",10";
14949     char lines_1[] = ",20";
14950     char lines_2[] = ",";
14951     char *lines[] = {
14952       lines_0,
14953       lines_1,
14954       lines_2,
14955       NULL
14956     };
14957     int r;
14958     suppress_error = 0;
14959     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14960     if (r == -1)
14961       return -1;
14962   }
14963   {
14964     char **r;
14965     int i;
14966     suppress_error = 0;
14967     r = guestfs_list_partitions (g);
14968     if (r == NULL)
14969       return -1;
14970     if (!r[0]) {
14971       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
14972       print_strings (r);
14973       return -1;
14974     }
14975     {
14976       char expected[] = "/dev/sda1";
14977       r[0][5] = 's';
14978       if (strcmp (r[0], expected) != 0) {
14979         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14980         return -1;
14981       }
14982     }
14983     if (!r[1]) {
14984       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
14985       print_strings (r);
14986       return -1;
14987     }
14988     {
14989       char expected[] = "/dev/sda2";
14990       r[1][5] = 's';
14991       if (strcmp (r[1], expected) != 0) {
14992         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14993         return -1;
14994       }
14995     }
14996     if (!r[2]) {
14997       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
14998       print_strings (r);
14999       return -1;
15000     }
15001     {
15002       char expected[] = "/dev/sda3";
15003       r[2][5] = 's';
15004       if (strcmp (r[2], expected) != 0) {
15005         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
15006         return -1;
15007       }
15008     }
15009     if (r[3] != NULL) {
15010       fprintf (stderr, "test_list_partitions_1: extra elements returned from command\n");
15011       print_strings (r);
15012       return -1;
15013     }
15014     for (i = 0; r[i] != NULL; ++i)
15015       free (r[i]);
15016     free (r);
15017   }
15018   return 0;
15019 }
15020
15021 static int test_list_devices_0_skip (void)
15022 {
15023   const char *str;
15024
15025   str = getenv ("SKIP_TEST_LIST_DEVICES_0");
15026   if (str && strcmp (str, "1") == 0) return 1;
15027   str = getenv ("SKIP_TEST_LIST_DEVICES");
15028   if (str && strcmp (str, "1") == 0) return 1;
15029   return 0;
15030 }
15031
15032 static int test_list_devices_0 (void)
15033 {
15034   if (test_list_devices_0_skip ()) {
15035     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_list_devices_0");
15036     return 0;
15037   }
15038
15039   /* InitNone|InitEmpty for test_list_devices_0 */
15040   {
15041     char device[] = "/dev/sda";
15042     int r;
15043     suppress_error = 0;
15044     r = guestfs_blockdev_setrw (g, device);
15045     if (r == -1)
15046       return -1;
15047   }
15048   {
15049     int r;
15050     suppress_error = 0;
15051     r = guestfs_umount_all (g);
15052     if (r == -1)
15053       return -1;
15054   }
15055   {
15056     int r;
15057     suppress_error = 0;
15058     r = guestfs_lvm_remove_all (g);
15059     if (r == -1)
15060       return -1;
15061   }
15062   /* TestOutputListOfDevices for list_devices (0) */
15063   {
15064     char **r;
15065     int i;
15066     suppress_error = 0;
15067     r = guestfs_list_devices (g);
15068     if (r == NULL)
15069       return -1;
15070     if (!r[0]) {
15071       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
15072       print_strings (r);
15073       return -1;
15074     }
15075     {
15076       char expected[] = "/dev/sda";
15077       r[0][5] = 's';
15078       if (strcmp (r[0], expected) != 0) {
15079         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
15080         return -1;
15081       }
15082     }
15083     if (!r[1]) {
15084       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
15085       print_strings (r);
15086       return -1;
15087     }
15088     {
15089       char expected[] = "/dev/sdb";
15090       r[1][5] = 's';
15091       if (strcmp (r[1], expected) != 0) {
15092         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
15093         return -1;
15094       }
15095     }
15096     if (!r[2]) {
15097       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
15098       print_strings (r);
15099       return -1;
15100     }
15101     {
15102       char expected[] = "/dev/sdc";
15103       r[2][5] = 's';
15104       if (strcmp (r[2], expected) != 0) {
15105         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
15106         return -1;
15107       }
15108     }
15109     if (!r[3]) {
15110       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
15111       print_strings (r);
15112       return -1;
15113     }
15114     {
15115       char expected[] = "/dev/sdd";
15116       r[3][5] = 's';
15117       if (strcmp (r[3], expected) != 0) {
15118         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
15119         return -1;
15120       }
15121     }
15122     if (r[4] != NULL) {
15123       fprintf (stderr, "test_list_devices_0: extra elements returned from command\n");
15124       print_strings (r);
15125       return -1;
15126     }
15127     for (i = 0; r[i] != NULL; ++i)
15128       free (r[i]);
15129     free (r);
15130   }
15131   return 0;
15132 }
15133
15134 static int test_ls_0_skip (void)
15135 {
15136   const char *str;
15137
15138   str = getenv ("SKIP_TEST_LS_0");
15139   if (str && strcmp (str, "1") == 0) return 1;
15140   str = getenv ("SKIP_TEST_LS");
15141   if (str && strcmp (str, "1") == 0) return 1;
15142   return 0;
15143 }
15144
15145 static int test_ls_0 (void)
15146 {
15147   if (test_ls_0_skip ()) {
15148     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_ls_0");
15149     return 0;
15150   }
15151
15152   /* InitBasicFS for test_ls_0: create ext2 on /dev/sda1 */
15153   {
15154     char device[] = "/dev/sda";
15155     int r;
15156     suppress_error = 0;
15157     r = guestfs_blockdev_setrw (g, device);
15158     if (r == -1)
15159       return -1;
15160   }
15161   {
15162     int r;
15163     suppress_error = 0;
15164     r = guestfs_umount_all (g);
15165     if (r == -1)
15166       return -1;
15167   }
15168   {
15169     int r;
15170     suppress_error = 0;
15171     r = guestfs_lvm_remove_all (g);
15172     if (r == -1)
15173       return -1;
15174   }
15175   {
15176     char device[] = "/dev/sda";
15177     char lines_0[] = ",";
15178     char *lines[] = {
15179       lines_0,
15180       NULL
15181     };
15182     int r;
15183     suppress_error = 0;
15184     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15185     if (r == -1)
15186       return -1;
15187   }
15188   {
15189     char fstype[] = "ext2";
15190     char device[] = "/dev/sda1";
15191     int r;
15192     suppress_error = 0;
15193     r = guestfs_mkfs (g, fstype, device);
15194     if (r == -1)
15195       return -1;
15196   }
15197   {
15198     char device[] = "/dev/sda1";
15199     char mountpoint[] = "/";
15200     int r;
15201     suppress_error = 0;
15202     r = guestfs_mount (g, device, mountpoint);
15203     if (r == -1)
15204       return -1;
15205   }
15206   /* TestOutputList for ls (0) */
15207   {
15208     char path[] = "/new";
15209     int r;
15210     suppress_error = 0;
15211     r = guestfs_touch (g, path);
15212     if (r == -1)
15213       return -1;
15214   }
15215   {
15216     char path[] = "/newer";
15217     int r;
15218     suppress_error = 0;
15219     r = guestfs_touch (g, path);
15220     if (r == -1)
15221       return -1;
15222   }
15223   {
15224     char path[] = "/newest";
15225     int r;
15226     suppress_error = 0;
15227     r = guestfs_touch (g, path);
15228     if (r == -1)
15229       return -1;
15230   }
15231   {
15232     char directory[] = "/";
15233     char **r;
15234     int i;
15235     suppress_error = 0;
15236     r = guestfs_ls (g, directory);
15237     if (r == NULL)
15238       return -1;
15239     if (!r[0]) {
15240       fprintf (stderr, "test_ls_0: short list returned from command\n");
15241       print_strings (r);
15242       return -1;
15243     }
15244     {
15245       char expected[] = "lost+found";
15246       if (strcmp (r[0], expected) != 0) {
15247         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
15248         return -1;
15249       }
15250     }
15251     if (!r[1]) {
15252       fprintf (stderr, "test_ls_0: short list returned from command\n");
15253       print_strings (r);
15254       return -1;
15255     }
15256     {
15257       char expected[] = "new";
15258       if (strcmp (r[1], expected) != 0) {
15259         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
15260         return -1;
15261       }
15262     }
15263     if (!r[2]) {
15264       fprintf (stderr, "test_ls_0: short list returned from command\n");
15265       print_strings (r);
15266       return -1;
15267     }
15268     {
15269       char expected[] = "newer";
15270       if (strcmp (r[2], expected) != 0) {
15271         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
15272         return -1;
15273       }
15274     }
15275     if (!r[3]) {
15276       fprintf (stderr, "test_ls_0: short list returned from command\n");
15277       print_strings (r);
15278       return -1;
15279     }
15280     {
15281       char expected[] = "newest";
15282       if (strcmp (r[3], expected) != 0) {
15283         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
15284         return -1;
15285       }
15286     }
15287     if (r[4] != NULL) {
15288       fprintf (stderr, "test_ls_0: extra elements returned from command\n");
15289       print_strings (r);
15290       return -1;
15291     }
15292     for (i = 0; r[i] != NULL; ++i)
15293       free (r[i]);
15294     free (r);
15295   }
15296   return 0;
15297 }
15298
15299 static int test_cat_0_skip (void)
15300 {
15301   const char *str;
15302
15303   str = getenv ("SKIP_TEST_CAT_0");
15304   if (str && strcmp (str, "1") == 0) return 1;
15305   str = getenv ("SKIP_TEST_CAT");
15306   if (str && strcmp (str, "1") == 0) return 1;
15307   return 0;
15308 }
15309
15310 static int test_cat_0 (void)
15311 {
15312   if (test_cat_0_skip ()) {
15313     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_cat_0");
15314     return 0;
15315   }
15316
15317   /* InitBasicFS for test_cat_0: create ext2 on /dev/sda1 */
15318   {
15319     char device[] = "/dev/sda";
15320     int r;
15321     suppress_error = 0;
15322     r = guestfs_blockdev_setrw (g, device);
15323     if (r == -1)
15324       return -1;
15325   }
15326   {
15327     int r;
15328     suppress_error = 0;
15329     r = guestfs_umount_all (g);
15330     if (r == -1)
15331       return -1;
15332   }
15333   {
15334     int r;
15335     suppress_error = 0;
15336     r = guestfs_lvm_remove_all (g);
15337     if (r == -1)
15338       return -1;
15339   }
15340   {
15341     char device[] = "/dev/sda";
15342     char lines_0[] = ",";
15343     char *lines[] = {
15344       lines_0,
15345       NULL
15346     };
15347     int r;
15348     suppress_error = 0;
15349     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15350     if (r == -1)
15351       return -1;
15352   }
15353   {
15354     char fstype[] = "ext2";
15355     char device[] = "/dev/sda1";
15356     int r;
15357     suppress_error = 0;
15358     r = guestfs_mkfs (g, fstype, device);
15359     if (r == -1)
15360       return -1;
15361   }
15362   {
15363     char device[] = "/dev/sda1";
15364     char mountpoint[] = "/";
15365     int r;
15366     suppress_error = 0;
15367     r = guestfs_mount (g, device, mountpoint);
15368     if (r == -1)
15369       return -1;
15370   }
15371   /* TestOutput for cat (0) */
15372   char expected[] = "new file contents";
15373   {
15374     char path[] = "/new";
15375     char content[] = "new file contents";
15376     int r;
15377     suppress_error = 0;
15378     r = guestfs_write_file (g, path, content, 0);
15379     if (r == -1)
15380       return -1;
15381   }
15382   {
15383     char path[] = "/new";
15384     char *r;
15385     suppress_error = 0;
15386     r = guestfs_cat (g, path);
15387     if (r == NULL)
15388       return -1;
15389     if (strcmp (r, expected) != 0) {
15390       fprintf (stderr, "test_cat_0: expected \"%s\" but got \"%s\"\n", expected, r);
15391       return -1;
15392     }
15393     free (r);
15394   }
15395   return 0;
15396 }
15397
15398 static int test_touch_0_skip (void)
15399 {
15400   const char *str;
15401
15402   str = getenv ("SKIP_TEST_TOUCH_0");
15403   if (str && strcmp (str, "1") == 0) return 1;
15404   str = getenv ("SKIP_TEST_TOUCH");
15405   if (str && strcmp (str, "1") == 0) return 1;
15406   return 0;
15407 }
15408
15409 static int test_touch_0 (void)
15410 {
15411   if (test_touch_0_skip ()) {
15412     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_touch_0");
15413     return 0;
15414   }
15415
15416   /* InitBasicFS for test_touch_0: create ext2 on /dev/sda1 */
15417   {
15418     char device[] = "/dev/sda";
15419     int r;
15420     suppress_error = 0;
15421     r = guestfs_blockdev_setrw (g, device);
15422     if (r == -1)
15423       return -1;
15424   }
15425   {
15426     int r;
15427     suppress_error = 0;
15428     r = guestfs_umount_all (g);
15429     if (r == -1)
15430       return -1;
15431   }
15432   {
15433     int r;
15434     suppress_error = 0;
15435     r = guestfs_lvm_remove_all (g);
15436     if (r == -1)
15437       return -1;
15438   }
15439   {
15440     char device[] = "/dev/sda";
15441     char lines_0[] = ",";
15442     char *lines[] = {
15443       lines_0,
15444       NULL
15445     };
15446     int r;
15447     suppress_error = 0;
15448     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15449     if (r == -1)
15450       return -1;
15451   }
15452   {
15453     char fstype[] = "ext2";
15454     char device[] = "/dev/sda1";
15455     int r;
15456     suppress_error = 0;
15457     r = guestfs_mkfs (g, fstype, device);
15458     if (r == -1)
15459       return -1;
15460   }
15461   {
15462     char device[] = "/dev/sda1";
15463     char mountpoint[] = "/";
15464     int r;
15465     suppress_error = 0;
15466     r = guestfs_mount (g, device, mountpoint);
15467     if (r == -1)
15468       return -1;
15469   }
15470   /* TestOutputTrue for touch (0) */
15471   {
15472     char path[] = "/new";
15473     int r;
15474     suppress_error = 0;
15475     r = guestfs_touch (g, path);
15476     if (r == -1)
15477       return -1;
15478   }
15479   {
15480     char path[] = "/new";
15481     int r;
15482     suppress_error = 0;
15483     r = guestfs_exists (g, path);
15484     if (r == -1)
15485       return -1;
15486     if (!r) {
15487       fprintf (stderr, "test_touch_0: expected true, got false\n");
15488       return -1;
15489     }
15490   }
15491   return 0;
15492 }
15493
15494 static int test_sync_0_skip (void)
15495 {
15496   const char *str;
15497
15498   str = getenv ("SKIP_TEST_SYNC_0");
15499   if (str && strcmp (str, "1") == 0) return 1;
15500   str = getenv ("SKIP_TEST_SYNC");
15501   if (str && strcmp (str, "1") == 0) return 1;
15502   return 0;
15503 }
15504
15505 static int test_sync_0 (void)
15506 {
15507   if (test_sync_0_skip ()) {
15508     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_sync_0");
15509     return 0;
15510   }
15511
15512   /* InitNone|InitEmpty for test_sync_0 */
15513   {
15514     char device[] = "/dev/sda";
15515     int r;
15516     suppress_error = 0;
15517     r = guestfs_blockdev_setrw (g, device);
15518     if (r == -1)
15519       return -1;
15520   }
15521   {
15522     int r;
15523     suppress_error = 0;
15524     r = guestfs_umount_all (g);
15525     if (r == -1)
15526       return -1;
15527   }
15528   {
15529     int r;
15530     suppress_error = 0;
15531     r = guestfs_lvm_remove_all (g);
15532     if (r == -1)
15533       return -1;
15534   }
15535   /* TestRun for sync (0) */
15536   {
15537     int r;
15538     suppress_error = 0;
15539     r = guestfs_sync (g);
15540     if (r == -1)
15541       return -1;
15542   }
15543   return 0;
15544 }
15545
15546 static int test_mount_0_skip (void)
15547 {
15548   const char *str;
15549
15550   str = getenv ("SKIP_TEST_MOUNT_0");
15551   if (str && strcmp (str, "1") == 0) return 1;
15552   str = getenv ("SKIP_TEST_MOUNT");
15553   if (str && strcmp (str, "1") == 0) return 1;
15554   return 0;
15555 }
15556
15557 static int test_mount_0 (void)
15558 {
15559   if (test_mount_0_skip ()) {
15560     printf ("%s skipped (reason: SKIP_TEST_* variable set)\n", "test_mount_0");
15561     return 0;
15562   }
15563
15564   /* InitNone|InitEmpty for test_mount_0 */
15565   {
15566     char device[] = "/dev/sda";
15567     int r;
15568     suppress_error = 0;
15569     r = guestfs_blockdev_setrw (g, device);
15570     if (r == -1)
15571       return -1;
15572   }
15573   {
15574     int r;
15575     suppress_error = 0;
15576     r = guestfs_umount_all (g);
15577     if (r == -1)
15578       return -1;
15579   }
15580   {
15581     int r;
15582     suppress_error = 0;
15583     r = guestfs_lvm_remove_all (g);
15584     if (r == -1)
15585       return -1;
15586   }
15587   /* TestOutput for mount (0) */
15588   char expected[] = "new file contents";
15589   {
15590     char device[] = "/dev/sda";
15591     char lines_0[] = ",";
15592     char *lines[] = {
15593       lines_0,
15594       NULL
15595     };
15596     int r;
15597     suppress_error = 0;
15598     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15599     if (r == -1)
15600       return -1;
15601   }
15602   {
15603     char fstype[] = "ext2";
15604     char device[] = "/dev/sda1";
15605     int r;
15606     suppress_error = 0;
15607     r = guestfs_mkfs (g, fstype, device);
15608     if (r == -1)
15609       return -1;
15610   }
15611   {
15612     char device[] = "/dev/sda1";
15613     char mountpoint[] = "/";
15614     int r;
15615     suppress_error = 0;
15616     r = guestfs_mount (g, device, mountpoint);
15617     if (r == -1)
15618       return -1;
15619   }
15620   {
15621     char path[] = "/new";
15622     char content[] = "new file contents";
15623     int r;
15624     suppress_error = 0;
15625     r = guestfs_write_file (g, path, content, 0);
15626     if (r == -1)
15627       return -1;
15628   }
15629   {
15630     char path[] = "/new";
15631     char *r;
15632     suppress_error = 0;
15633     r = guestfs_cat (g, path);
15634     if (r == NULL)
15635       return -1;
15636     if (strcmp (r, expected) != 0) {
15637       fprintf (stderr, "test_mount_0: expected \"%s\" but got \"%s\"\n", expected, r);
15638       return -1;
15639     }
15640     free (r);
15641   }
15642   return 0;
15643 }
15644
15645 int main (int argc, char *argv[])
15646 {
15647   char c = 0;
15648   int failed = 0;
15649   const char *filename;
15650   int fd;
15651   int nr_tests, test_num = 0;
15652
15653   no_test_warnings ();
15654
15655   g = guestfs_create ();
15656   if (g == NULL) {
15657     printf ("guestfs_create FAILED\n");
15658     exit (1);
15659   }
15660
15661   guestfs_set_error_handler (g, print_error, NULL);
15662
15663   guestfs_set_path (g, "../appliance");
15664
15665   filename = "test1.img";
15666   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
15667   if (fd == -1) {
15668     perror (filename);
15669     exit (1);
15670   }
15671   if (lseek (fd, 524288000, SEEK_SET) == -1) {
15672     perror ("lseek");
15673     close (fd);
15674     unlink (filename);
15675     exit (1);
15676   }
15677   if (write (fd, &c, 1) == -1) {
15678     perror ("write");
15679     close (fd);
15680     unlink (filename);
15681     exit (1);
15682   }
15683   if (close (fd) == -1) {
15684     perror (filename);
15685     unlink (filename);
15686     exit (1);
15687   }
15688   if (guestfs_add_drive (g, filename) == -1) {
15689     printf ("guestfs_add_drive %s FAILED\n", filename);
15690     exit (1);
15691   }
15692
15693   filename = "test2.img";
15694   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
15695   if (fd == -1) {
15696     perror (filename);
15697     exit (1);
15698   }
15699   if (lseek (fd, 52428800, SEEK_SET) == -1) {
15700     perror ("lseek");
15701     close (fd);
15702     unlink (filename);
15703     exit (1);
15704   }
15705   if (write (fd, &c, 1) == -1) {
15706     perror ("write");
15707     close (fd);
15708     unlink (filename);
15709     exit (1);
15710   }
15711   if (close (fd) == -1) {
15712     perror (filename);
15713     unlink (filename);
15714     exit (1);
15715   }
15716   if (guestfs_add_drive (g, filename) == -1) {
15717     printf ("guestfs_add_drive %s FAILED\n", filename);
15718     exit (1);
15719   }
15720
15721   filename = "test3.img";
15722   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
15723   if (fd == -1) {
15724     perror (filename);
15725     exit (1);
15726   }
15727   if (lseek (fd, 10485760, SEEK_SET) == -1) {
15728     perror ("lseek");
15729     close (fd);
15730     unlink (filename);
15731     exit (1);
15732   }
15733   if (write (fd, &c, 1) == -1) {
15734     perror ("write");
15735     close (fd);
15736     unlink (filename);
15737     exit (1);
15738   }
15739   if (close (fd) == -1) {
15740     perror (filename);
15741     unlink (filename);
15742     exit (1);
15743   }
15744   if (guestfs_add_drive (g, filename) == -1) {
15745     printf ("guestfs_add_drive %s FAILED\n", filename);
15746     exit (1);
15747   }
15748
15749   if (guestfs_add_drive_ro (g, "../images/test.sqsh") == -1) {
15750     printf ("guestfs_add_drive_ro ../images/test.sqsh FAILED\n");
15751     exit (1);
15752   }
15753
15754   if (guestfs_launch (g) == -1) {
15755     printf ("guestfs_launch FAILED\n");
15756     exit (1);
15757   }
15758
15759   /* Set a timeout in case qemu hangs during launch (RHBZ#505329). */
15760   alarm (600);
15761
15762   if (guestfs_wait_ready (g) == -1) {
15763     printf ("guestfs_wait_ready FAILED\n");
15764     exit (1);
15765   }
15766
15767   /* Cancel previous alarm. */
15768   alarm (0);
15769
15770   nr_tests = 146;
15771
15772   test_num++;
15773   printf ("%3d/%3d test_ntfs_3g_probe_0\n", test_num, nr_tests);
15774   if (test_ntfs_3g_probe_0 () == -1) {
15775     printf ("test_ntfs_3g_probe_0 FAILED\n");
15776     failed++;
15777   }
15778   test_num++;
15779   printf ("%3d/%3d test_ntfs_3g_probe_1\n", test_num, nr_tests);
15780   if (test_ntfs_3g_probe_1 () == -1) {
15781     printf ("test_ntfs_3g_probe_1 FAILED\n");
15782     failed++;
15783   }
15784   test_num++;
15785   printf ("%3d/%3d test_sleep_0\n", test_num, nr_tests);
15786   if (test_sleep_0 () == -1) {
15787     printf ("test_sleep_0 FAILED\n");
15788     failed++;
15789   }
15790   test_num++;
15791   printf ("%3d/%3d test_find_0\n", test_num, nr_tests);
15792   if (test_find_0 () == -1) {
15793     printf ("test_find_0 FAILED\n");
15794     failed++;
15795   }
15796   test_num++;
15797   printf ("%3d/%3d test_find_1\n", test_num, nr_tests);
15798   if (test_find_1 () == -1) {
15799     printf ("test_find_1 FAILED\n");
15800     failed++;
15801   }
15802   test_num++;
15803   printf ("%3d/%3d test_find_2\n", test_num, nr_tests);
15804   if (test_find_2 () == -1) {
15805     printf ("test_find_2 FAILED\n");
15806     failed++;
15807   }
15808   test_num++;
15809   printf ("%3d/%3d test_lvresize_0\n", test_num, nr_tests);
15810   if (test_lvresize_0 () == -1) {
15811     printf ("test_lvresize_0 FAILED\n");
15812     failed++;
15813   }
15814   test_num++;
15815   printf ("%3d/%3d test_zerofree_0\n", test_num, nr_tests);
15816   if (test_zerofree_0 () == -1) {
15817     printf ("test_zerofree_0 FAILED\n");
15818     failed++;
15819   }
15820   test_num++;
15821   printf ("%3d/%3d test_hexdump_0\n", test_num, nr_tests);
15822   if (test_hexdump_0 () == -1) {
15823     printf ("test_hexdump_0 FAILED\n");
15824     failed++;
15825   }
15826   test_num++;
15827   printf ("%3d/%3d test_strings_e_0\n", test_num, nr_tests);
15828   if (test_strings_e_0 () == -1) {
15829     printf ("test_strings_e_0 FAILED\n");
15830     failed++;
15831   }
15832   test_num++;
15833   printf ("%3d/%3d test_strings_e_1\n", test_num, nr_tests);
15834   if (test_strings_e_1 () == -1) {
15835     printf ("test_strings_e_1 FAILED\n");
15836     failed++;
15837   }
15838   test_num++;
15839   printf ("%3d/%3d test_strings_0\n", test_num, nr_tests);
15840   if (test_strings_0 () == -1) {
15841     printf ("test_strings_0 FAILED\n");
15842     failed++;
15843   }
15844   test_num++;
15845   printf ("%3d/%3d test_strings_1\n", test_num, nr_tests);
15846   if (test_strings_1 () == -1) {
15847     printf ("test_strings_1 FAILED\n");
15848     failed++;
15849   }
15850   test_num++;
15851   printf ("%3d/%3d test_equal_0\n", test_num, nr_tests);
15852   if (test_equal_0 () == -1) {
15853     printf ("test_equal_0 FAILED\n");
15854     failed++;
15855   }
15856   test_num++;
15857   printf ("%3d/%3d test_equal_1\n", test_num, nr_tests);
15858   if (test_equal_1 () == -1) {
15859     printf ("test_equal_1 FAILED\n");
15860     failed++;
15861   }
15862   test_num++;
15863   printf ("%3d/%3d test_equal_2\n", test_num, nr_tests);
15864   if (test_equal_2 () == -1) {
15865     printf ("test_equal_2 FAILED\n");
15866     failed++;
15867   }
15868   test_num++;
15869   printf ("%3d/%3d test_ping_daemon_0\n", test_num, nr_tests);
15870   if (test_ping_daemon_0 () == -1) {
15871     printf ("test_ping_daemon_0 FAILED\n");
15872     failed++;
15873   }
15874   test_num++;
15875   printf ("%3d/%3d test_dmesg_0\n", test_num, nr_tests);
15876   if (test_dmesg_0 () == -1) {
15877     printf ("test_dmesg_0 FAILED\n");
15878     failed++;
15879   }
15880   test_num++;
15881   printf ("%3d/%3d test_drop_caches_0\n", test_num, nr_tests);
15882   if (test_drop_caches_0 () == -1) {
15883     printf ("test_drop_caches_0 FAILED\n");
15884     failed++;
15885   }
15886   test_num++;
15887   printf ("%3d/%3d test_mv_0\n", test_num, nr_tests);
15888   if (test_mv_0 () == -1) {
15889     printf ("test_mv_0 FAILED\n");
15890     failed++;
15891   }
15892   test_num++;
15893   printf ("%3d/%3d test_mv_1\n", test_num, nr_tests);
15894   if (test_mv_1 () == -1) {
15895     printf ("test_mv_1 FAILED\n");
15896     failed++;
15897   }
15898   test_num++;
15899   printf ("%3d/%3d test_cp_a_0\n", test_num, nr_tests);
15900   if (test_cp_a_0 () == -1) {
15901     printf ("test_cp_a_0 FAILED\n");
15902     failed++;
15903   }
15904   test_num++;
15905   printf ("%3d/%3d test_cp_0\n", test_num, nr_tests);
15906   if (test_cp_0 () == -1) {
15907     printf ("test_cp_0 FAILED\n");
15908     failed++;
15909   }
15910   test_num++;
15911   printf ("%3d/%3d test_cp_1\n", test_num, nr_tests);
15912   if (test_cp_1 () == -1) {
15913     printf ("test_cp_1 FAILED\n");
15914     failed++;
15915   }
15916   test_num++;
15917   printf ("%3d/%3d test_cp_2\n", test_num, nr_tests);
15918   if (test_cp_2 () == -1) {
15919     printf ("test_cp_2 FAILED\n");
15920     failed++;
15921   }
15922   test_num++;
15923   printf ("%3d/%3d test_grub_install_0\n", test_num, nr_tests);
15924   if (test_grub_install_0 () == -1) {
15925     printf ("test_grub_install_0 FAILED\n");
15926     failed++;
15927   }
15928   test_num++;
15929   printf ("%3d/%3d test_zero_0\n", test_num, nr_tests);
15930   if (test_zero_0 () == -1) {
15931     printf ("test_zero_0 FAILED\n");
15932     failed++;
15933   }
15934   test_num++;
15935   printf ("%3d/%3d test_fsck_0\n", test_num, nr_tests);
15936   if (test_fsck_0 () == -1) {
15937     printf ("test_fsck_0 FAILED\n");
15938     failed++;
15939   }
15940   test_num++;
15941   printf ("%3d/%3d test_fsck_1\n", test_num, nr_tests);
15942   if (test_fsck_1 () == -1) {
15943     printf ("test_fsck_1 FAILED\n");
15944     failed++;
15945   }
15946   test_num++;
15947   printf ("%3d/%3d test_set_e2uuid_0\n", test_num, nr_tests);
15948   if (test_set_e2uuid_0 () == -1) {
15949     printf ("test_set_e2uuid_0 FAILED\n");
15950     failed++;
15951   }
15952   test_num++;
15953   printf ("%3d/%3d test_set_e2uuid_1\n", test_num, nr_tests);
15954   if (test_set_e2uuid_1 () == -1) {
15955     printf ("test_set_e2uuid_1 FAILED\n");
15956     failed++;
15957   }
15958   test_num++;
15959   printf ("%3d/%3d test_set_e2uuid_2\n", test_num, nr_tests);
15960   if (test_set_e2uuid_2 () == -1) {
15961     printf ("test_set_e2uuid_2 FAILED\n");
15962     failed++;
15963   }
15964   test_num++;
15965   printf ("%3d/%3d test_set_e2uuid_3\n", test_num, nr_tests);
15966   if (test_set_e2uuid_3 () == -1) {
15967     printf ("test_set_e2uuid_3 FAILED\n");
15968     failed++;
15969   }
15970   test_num++;
15971   printf ("%3d/%3d test_set_e2label_0\n", test_num, nr_tests);
15972   if (test_set_e2label_0 () == -1) {
15973     printf ("test_set_e2label_0 FAILED\n");
15974     failed++;
15975   }
15976   test_num++;
15977   printf ("%3d/%3d test_pvremove_0\n", test_num, nr_tests);
15978   if (test_pvremove_0 () == -1) {
15979     printf ("test_pvremove_0 FAILED\n");
15980     failed++;
15981   }
15982   test_num++;
15983   printf ("%3d/%3d test_pvremove_1\n", test_num, nr_tests);
15984   if (test_pvremove_1 () == -1) {
15985     printf ("test_pvremove_1 FAILED\n");
15986     failed++;
15987   }
15988   test_num++;
15989   printf ("%3d/%3d test_pvremove_2\n", test_num, nr_tests);
15990   if (test_pvremove_2 () == -1) {
15991     printf ("test_pvremove_2 FAILED\n");
15992     failed++;
15993   }
15994   test_num++;
15995   printf ("%3d/%3d test_vgremove_0\n", test_num, nr_tests);
15996   if (test_vgremove_0 () == -1) {
15997     printf ("test_vgremove_0 FAILED\n");
15998     failed++;
15999   }
16000   test_num++;
16001   printf ("%3d/%3d test_vgremove_1\n", test_num, nr_tests);
16002   if (test_vgremove_1 () == -1) {
16003     printf ("test_vgremove_1 FAILED\n");
16004     failed++;
16005   }
16006   test_num++;
16007   printf ("%3d/%3d test_lvremove_0\n", test_num, nr_tests);
16008   if (test_lvremove_0 () == -1) {
16009     printf ("test_lvremove_0 FAILED\n");
16010     failed++;
16011   }
16012   test_num++;
16013   printf ("%3d/%3d test_lvremove_1\n", test_num, nr_tests);
16014   if (test_lvremove_1 () == -1) {
16015     printf ("test_lvremove_1 FAILED\n");
16016     failed++;
16017   }
16018   test_num++;
16019   printf ("%3d/%3d test_lvremove_2\n", test_num, nr_tests);
16020   if (test_lvremove_2 () == -1) {
16021     printf ("test_lvremove_2 FAILED\n");
16022     failed++;
16023   }
16024   test_num++;
16025   printf ("%3d/%3d test_mount_ro_0\n", test_num, nr_tests);
16026   if (test_mount_ro_0 () == -1) {
16027     printf ("test_mount_ro_0 FAILED\n");
16028     failed++;
16029   }
16030   test_num++;
16031   printf ("%3d/%3d test_mount_ro_1\n", test_num, nr_tests);
16032   if (test_mount_ro_1 () == -1) {
16033     printf ("test_mount_ro_1 FAILED\n");
16034     failed++;
16035   }
16036   test_num++;
16037   printf ("%3d/%3d test_tgz_in_0\n", test_num, nr_tests);
16038   if (test_tgz_in_0 () == -1) {
16039     printf ("test_tgz_in_0 FAILED\n");
16040     failed++;
16041   }
16042   test_num++;
16043   printf ("%3d/%3d test_tar_in_0\n", test_num, nr_tests);
16044   if (test_tar_in_0 () == -1) {
16045     printf ("test_tar_in_0 FAILED\n");
16046     failed++;
16047   }
16048   test_num++;
16049   printf ("%3d/%3d test_checksum_0\n", test_num, nr_tests);
16050   if (test_checksum_0 () == -1) {
16051     printf ("test_checksum_0 FAILED\n");
16052     failed++;
16053   }
16054   test_num++;
16055   printf ("%3d/%3d test_checksum_1\n", test_num, nr_tests);
16056   if (test_checksum_1 () == -1) {
16057     printf ("test_checksum_1 FAILED\n");
16058     failed++;
16059   }
16060   test_num++;
16061   printf ("%3d/%3d test_checksum_2\n", test_num, nr_tests);
16062   if (test_checksum_2 () == -1) {
16063     printf ("test_checksum_2 FAILED\n");
16064     failed++;
16065   }
16066   test_num++;
16067   printf ("%3d/%3d test_checksum_3\n", test_num, nr_tests);
16068   if (test_checksum_3 () == -1) {
16069     printf ("test_checksum_3 FAILED\n");
16070     failed++;
16071   }
16072   test_num++;
16073   printf ("%3d/%3d test_checksum_4\n", test_num, nr_tests);
16074   if (test_checksum_4 () == -1) {
16075     printf ("test_checksum_4 FAILED\n");
16076     failed++;
16077   }
16078   test_num++;
16079   printf ("%3d/%3d test_checksum_5\n", test_num, nr_tests);
16080   if (test_checksum_5 () == -1) {
16081     printf ("test_checksum_5 FAILED\n");
16082     failed++;
16083   }
16084   test_num++;
16085   printf ("%3d/%3d test_checksum_6\n", test_num, nr_tests);
16086   if (test_checksum_6 () == -1) {
16087     printf ("test_checksum_6 FAILED\n");
16088     failed++;
16089   }
16090   test_num++;
16091   printf ("%3d/%3d test_checksum_7\n", test_num, nr_tests);
16092   if (test_checksum_7 () == -1) {
16093     printf ("test_checksum_7 FAILED\n");
16094     failed++;
16095   }
16096   test_num++;
16097   printf ("%3d/%3d test_checksum_8\n", test_num, nr_tests);
16098   if (test_checksum_8 () == -1) {
16099     printf ("test_checksum_8 FAILED\n");
16100     failed++;
16101   }
16102   test_num++;
16103   printf ("%3d/%3d test_download_0\n", test_num, nr_tests);
16104   if (test_download_0 () == -1) {
16105     printf ("test_download_0 FAILED\n");
16106     failed++;
16107   }
16108   test_num++;
16109   printf ("%3d/%3d test_upload_0\n", test_num, nr_tests);
16110   if (test_upload_0 () == -1) {
16111     printf ("test_upload_0 FAILED\n");
16112     failed++;
16113   }
16114   test_num++;
16115   printf ("%3d/%3d test_blockdev_rereadpt_0\n", test_num, nr_tests);
16116   if (test_blockdev_rereadpt_0 () == -1) {
16117     printf ("test_blockdev_rereadpt_0 FAILED\n");
16118     failed++;
16119   }
16120   test_num++;
16121   printf ("%3d/%3d test_blockdev_flushbufs_0\n", test_num, nr_tests);
16122   if (test_blockdev_flushbufs_0 () == -1) {
16123     printf ("test_blockdev_flushbufs_0 FAILED\n");
16124     failed++;
16125   }
16126   test_num++;
16127   printf ("%3d/%3d test_blockdev_getsize64_0\n", test_num, nr_tests);
16128   if (test_blockdev_getsize64_0 () == -1) {
16129     printf ("test_blockdev_getsize64_0 FAILED\n");
16130     failed++;
16131   }
16132   test_num++;
16133   printf ("%3d/%3d test_blockdev_getsz_0\n", test_num, nr_tests);
16134   if (test_blockdev_getsz_0 () == -1) {
16135     printf ("test_blockdev_getsz_0 FAILED\n");
16136     failed++;
16137   }
16138   test_num++;
16139   printf ("%3d/%3d test_blockdev_getbsz_0\n", test_num, nr_tests);
16140   if (test_blockdev_getbsz_0 () == -1) {
16141     printf ("test_blockdev_getbsz_0 FAILED\n");
16142     failed++;
16143   }
16144   test_num++;
16145   printf ("%3d/%3d test_blockdev_getss_0\n", test_num, nr_tests);
16146   if (test_blockdev_getss_0 () == -1) {
16147     printf ("test_blockdev_getss_0 FAILED\n");
16148     failed++;
16149   }
16150   test_num++;
16151   printf ("%3d/%3d test_blockdev_getro_0\n", test_num, nr_tests);
16152   if (test_blockdev_getro_0 () == -1) {
16153     printf ("test_blockdev_getro_0 FAILED\n");
16154     failed++;
16155   }
16156   test_num++;
16157   printf ("%3d/%3d test_blockdev_setrw_0\n", test_num, nr_tests);
16158   if (test_blockdev_setrw_0 () == -1) {
16159     printf ("test_blockdev_setrw_0 FAILED\n");
16160     failed++;
16161   }
16162   test_num++;
16163   printf ("%3d/%3d test_blockdev_setro_0\n", test_num, nr_tests);
16164   if (test_blockdev_setro_0 () == -1) {
16165     printf ("test_blockdev_setro_0 FAILED\n");
16166     failed++;
16167   }
16168   test_num++;
16169   printf ("%3d/%3d test_statvfs_0\n", test_num, nr_tests);
16170   if (test_statvfs_0 () == -1) {
16171     printf ("test_statvfs_0 FAILED\n");
16172     failed++;
16173   }
16174   test_num++;
16175   printf ("%3d/%3d test_lstat_0\n", test_num, nr_tests);
16176   if (test_lstat_0 () == -1) {
16177     printf ("test_lstat_0 FAILED\n");
16178     failed++;
16179   }
16180   test_num++;
16181   printf ("%3d/%3d test_stat_0\n", test_num, nr_tests);
16182   if (test_stat_0 () == -1) {
16183     printf ("test_stat_0 FAILED\n");
16184     failed++;
16185   }
16186   test_num++;
16187   printf ("%3d/%3d test_command_lines_0\n", test_num, nr_tests);
16188   if (test_command_lines_0 () == -1) {
16189     printf ("test_command_lines_0 FAILED\n");
16190     failed++;
16191   }
16192   test_num++;
16193   printf ("%3d/%3d test_command_lines_1\n", test_num, nr_tests);
16194   if (test_command_lines_1 () == -1) {
16195     printf ("test_command_lines_1 FAILED\n");
16196     failed++;
16197   }
16198   test_num++;
16199   printf ("%3d/%3d test_command_lines_2\n", test_num, nr_tests);
16200   if (test_command_lines_2 () == -1) {
16201     printf ("test_command_lines_2 FAILED\n");
16202     failed++;
16203   }
16204   test_num++;
16205   printf ("%3d/%3d test_command_lines_3\n", test_num, nr_tests);
16206   if (test_command_lines_3 () == -1) {
16207     printf ("test_command_lines_3 FAILED\n");
16208     failed++;
16209   }
16210   test_num++;
16211   printf ("%3d/%3d test_command_lines_4\n", test_num, nr_tests);
16212   if (test_command_lines_4 () == -1) {
16213     printf ("test_command_lines_4 FAILED\n");
16214     failed++;
16215   }
16216   test_num++;
16217   printf ("%3d/%3d test_command_lines_5\n", test_num, nr_tests);
16218   if (test_command_lines_5 () == -1) {
16219     printf ("test_command_lines_5 FAILED\n");
16220     failed++;
16221   }
16222   test_num++;
16223   printf ("%3d/%3d test_command_lines_6\n", test_num, nr_tests);
16224   if (test_command_lines_6 () == -1) {
16225     printf ("test_command_lines_6 FAILED\n");
16226     failed++;
16227   }
16228   test_num++;
16229   printf ("%3d/%3d test_command_lines_7\n", test_num, nr_tests);
16230   if (test_command_lines_7 () == -1) {
16231     printf ("test_command_lines_7 FAILED\n");
16232     failed++;
16233   }
16234   test_num++;
16235   printf ("%3d/%3d test_command_lines_8\n", test_num, nr_tests);
16236   if (test_command_lines_8 () == -1) {
16237     printf ("test_command_lines_8 FAILED\n");
16238     failed++;
16239   }
16240   test_num++;
16241   printf ("%3d/%3d test_command_lines_9\n", test_num, nr_tests);
16242   if (test_command_lines_9 () == -1) {
16243     printf ("test_command_lines_9 FAILED\n");
16244     failed++;
16245   }
16246   test_num++;
16247   printf ("%3d/%3d test_command_lines_10\n", test_num, nr_tests);
16248   if (test_command_lines_10 () == -1) {
16249     printf ("test_command_lines_10 FAILED\n");
16250     failed++;
16251   }
16252   test_num++;
16253   printf ("%3d/%3d test_command_0\n", test_num, nr_tests);
16254   if (test_command_0 () == -1) {
16255     printf ("test_command_0 FAILED\n");
16256     failed++;
16257   }
16258   test_num++;
16259   printf ("%3d/%3d test_command_1\n", test_num, nr_tests);
16260   if (test_command_1 () == -1) {
16261     printf ("test_command_1 FAILED\n");
16262     failed++;
16263   }
16264   test_num++;
16265   printf ("%3d/%3d test_command_2\n", test_num, nr_tests);
16266   if (test_command_2 () == -1) {
16267     printf ("test_command_2 FAILED\n");
16268     failed++;
16269   }
16270   test_num++;
16271   printf ("%3d/%3d test_command_3\n", test_num, nr_tests);
16272   if (test_command_3 () == -1) {
16273     printf ("test_command_3 FAILED\n");
16274     failed++;
16275   }
16276   test_num++;
16277   printf ("%3d/%3d test_command_4\n", test_num, nr_tests);
16278   if (test_command_4 () == -1) {
16279     printf ("test_command_4 FAILED\n");
16280     failed++;
16281   }
16282   test_num++;
16283   printf ("%3d/%3d test_command_5\n", test_num, nr_tests);
16284   if (test_command_5 () == -1) {
16285     printf ("test_command_5 FAILED\n");
16286     failed++;
16287   }
16288   test_num++;
16289   printf ("%3d/%3d test_command_6\n", test_num, nr_tests);
16290   if (test_command_6 () == -1) {
16291     printf ("test_command_6 FAILED\n");
16292     failed++;
16293   }
16294   test_num++;
16295   printf ("%3d/%3d test_command_7\n", test_num, nr_tests);
16296   if (test_command_7 () == -1) {
16297     printf ("test_command_7 FAILED\n");
16298     failed++;
16299   }
16300   test_num++;
16301   printf ("%3d/%3d test_command_8\n", test_num, nr_tests);
16302   if (test_command_8 () == -1) {
16303     printf ("test_command_8 FAILED\n");
16304     failed++;
16305   }
16306   test_num++;
16307   printf ("%3d/%3d test_command_9\n", test_num, nr_tests);
16308   if (test_command_9 () == -1) {
16309     printf ("test_command_9 FAILED\n");
16310     failed++;
16311   }
16312   test_num++;
16313   printf ("%3d/%3d test_command_10\n", test_num, nr_tests);
16314   if (test_command_10 () == -1) {
16315     printf ("test_command_10 FAILED\n");
16316     failed++;
16317   }
16318   test_num++;
16319   printf ("%3d/%3d test_command_11\n", test_num, nr_tests);
16320   if (test_command_11 () == -1) {
16321     printf ("test_command_11 FAILED\n");
16322     failed++;
16323   }
16324   test_num++;
16325   printf ("%3d/%3d test_file_0\n", test_num, nr_tests);
16326   if (test_file_0 () == -1) {
16327     printf ("test_file_0 FAILED\n");
16328     failed++;
16329   }
16330   test_num++;
16331   printf ("%3d/%3d test_file_1\n", test_num, nr_tests);
16332   if (test_file_1 () == -1) {
16333     printf ("test_file_1 FAILED\n");
16334     failed++;
16335   }
16336   test_num++;
16337   printf ("%3d/%3d test_file_2\n", test_num, nr_tests);
16338   if (test_file_2 () == -1) {
16339     printf ("test_file_2 FAILED\n");
16340     failed++;
16341   }
16342   test_num++;
16343   printf ("%3d/%3d test_umount_all_0\n", test_num, nr_tests);
16344   if (test_umount_all_0 () == -1) {
16345     printf ("test_umount_all_0 FAILED\n");
16346     failed++;
16347   }
16348   test_num++;
16349   printf ("%3d/%3d test_umount_all_1\n", test_num, nr_tests);
16350   if (test_umount_all_1 () == -1) {
16351     printf ("test_umount_all_1 FAILED\n");
16352     failed++;
16353   }
16354   test_num++;
16355   printf ("%3d/%3d test_mounts_0\n", test_num, nr_tests);
16356   if (test_mounts_0 () == -1) {
16357     printf ("test_mounts_0 FAILED\n");
16358     failed++;
16359   }
16360   test_num++;
16361   printf ("%3d/%3d test_umount_0\n", test_num, nr_tests);
16362   if (test_umount_0 () == -1) {
16363     printf ("test_umount_0 FAILED\n");
16364     failed++;
16365   }
16366   test_num++;
16367   printf ("%3d/%3d test_umount_1\n", test_num, nr_tests);
16368   if (test_umount_1 () == -1) {
16369     printf ("test_umount_1 FAILED\n");
16370     failed++;
16371   }
16372   test_num++;
16373   printf ("%3d/%3d test_write_file_0\n", test_num, nr_tests);
16374   if (test_write_file_0 () == -1) {
16375     printf ("test_write_file_0 FAILED\n");
16376     failed++;
16377   }
16378   test_num++;
16379   printf ("%3d/%3d test_write_file_1\n", test_num, nr_tests);
16380   if (test_write_file_1 () == -1) {
16381     printf ("test_write_file_1 FAILED\n");
16382     failed++;
16383   }
16384   test_num++;
16385   printf ("%3d/%3d test_write_file_2\n", test_num, nr_tests);
16386   if (test_write_file_2 () == -1) {
16387     printf ("test_write_file_2 FAILED\n");
16388     failed++;
16389   }
16390   test_num++;
16391   printf ("%3d/%3d test_write_file_3\n", test_num, nr_tests);
16392   if (test_write_file_3 () == -1) {
16393     printf ("test_write_file_3 FAILED\n");
16394     failed++;
16395   }
16396   test_num++;
16397   printf ("%3d/%3d test_write_file_4\n", test_num, nr_tests);
16398   if (test_write_file_4 () == -1) {
16399     printf ("test_write_file_4 FAILED\n");
16400     failed++;
16401   }
16402   test_num++;
16403   printf ("%3d/%3d test_write_file_5\n", test_num, nr_tests);
16404   if (test_write_file_5 () == -1) {
16405     printf ("test_write_file_5 FAILED\n");
16406     failed++;
16407   }
16408   test_num++;
16409   printf ("%3d/%3d test_mkfs_0\n", test_num, nr_tests);
16410   if (test_mkfs_0 () == -1) {
16411     printf ("test_mkfs_0 FAILED\n");
16412     failed++;
16413   }
16414   test_num++;
16415   printf ("%3d/%3d test_lvcreate_0\n", test_num, nr_tests);
16416   if (test_lvcreate_0 () == -1) {
16417     printf ("test_lvcreate_0 FAILED\n");
16418     failed++;
16419   }
16420   test_num++;
16421   printf ("%3d/%3d test_vgcreate_0\n", test_num, nr_tests);
16422   if (test_vgcreate_0 () == -1) {
16423     printf ("test_vgcreate_0 FAILED\n");
16424     failed++;
16425   }
16426   test_num++;
16427   printf ("%3d/%3d test_pvcreate_0\n", test_num, nr_tests);
16428   if (test_pvcreate_0 () == -1) {
16429     printf ("test_pvcreate_0 FAILED\n");
16430     failed++;
16431   }
16432   test_num++;
16433   printf ("%3d/%3d test_is_dir_0\n", test_num, nr_tests);
16434   if (test_is_dir_0 () == -1) {
16435     printf ("test_is_dir_0 FAILED\n");
16436     failed++;
16437   }
16438   test_num++;
16439   printf ("%3d/%3d test_is_dir_1\n", test_num, nr_tests);
16440   if (test_is_dir_1 () == -1) {
16441     printf ("test_is_dir_1 FAILED\n");
16442     failed++;
16443   }
16444   test_num++;
16445   printf ("%3d/%3d test_is_file_0\n", test_num, nr_tests);
16446   if (test_is_file_0 () == -1) {
16447     printf ("test_is_file_0 FAILED\n");
16448     failed++;
16449   }
16450   test_num++;
16451   printf ("%3d/%3d test_is_file_1\n", test_num, nr_tests);
16452   if (test_is_file_1 () == -1) {
16453     printf ("test_is_file_1 FAILED\n");
16454     failed++;
16455   }
16456   test_num++;
16457   printf ("%3d/%3d test_exists_0\n", test_num, nr_tests);
16458   if (test_exists_0 () == -1) {
16459     printf ("test_exists_0 FAILED\n");
16460     failed++;
16461   }
16462   test_num++;
16463   printf ("%3d/%3d test_exists_1\n", test_num, nr_tests);
16464   if (test_exists_1 () == -1) {
16465     printf ("test_exists_1 FAILED\n");
16466     failed++;
16467   }
16468   test_num++;
16469   printf ("%3d/%3d test_mkdir_p_0\n", test_num, nr_tests);
16470   if (test_mkdir_p_0 () == -1) {
16471     printf ("test_mkdir_p_0 FAILED\n");
16472     failed++;
16473   }
16474   test_num++;
16475   printf ("%3d/%3d test_mkdir_p_1\n", test_num, nr_tests);
16476   if (test_mkdir_p_1 () == -1) {
16477     printf ("test_mkdir_p_1 FAILED\n");
16478     failed++;
16479   }
16480   test_num++;
16481   printf ("%3d/%3d test_mkdir_p_2\n", test_num, nr_tests);
16482   if (test_mkdir_p_2 () == -1) {
16483     printf ("test_mkdir_p_2 FAILED\n");
16484     failed++;
16485   }
16486   test_num++;
16487   printf ("%3d/%3d test_mkdir_p_3\n", test_num, nr_tests);
16488   if (test_mkdir_p_3 () == -1) {
16489     printf ("test_mkdir_p_3 FAILED\n");
16490     failed++;
16491   }
16492   test_num++;
16493   printf ("%3d/%3d test_mkdir_p_4\n", test_num, nr_tests);
16494   if (test_mkdir_p_4 () == -1) {
16495     printf ("test_mkdir_p_4 FAILED\n");
16496     failed++;
16497   }
16498   test_num++;
16499   printf ("%3d/%3d test_mkdir_0\n", test_num, nr_tests);
16500   if (test_mkdir_0 () == -1) {
16501     printf ("test_mkdir_0 FAILED\n");
16502     failed++;
16503   }
16504   test_num++;
16505   printf ("%3d/%3d test_mkdir_1\n", test_num, nr_tests);
16506   if (test_mkdir_1 () == -1) {
16507     printf ("test_mkdir_1 FAILED\n");
16508     failed++;
16509   }
16510   test_num++;
16511   printf ("%3d/%3d test_rm_rf_0\n", test_num, nr_tests);
16512   if (test_rm_rf_0 () == -1) {
16513     printf ("test_rm_rf_0 FAILED\n");
16514     failed++;
16515   }
16516   test_num++;
16517   printf ("%3d/%3d test_rmdir_0\n", test_num, nr_tests);
16518   if (test_rmdir_0 () == -1) {
16519     printf ("test_rmdir_0 FAILED\n");
16520     failed++;
16521   }
16522   test_num++;
16523   printf ("%3d/%3d test_rmdir_1\n", test_num, nr_tests);
16524   if (test_rmdir_1 () == -1) {
16525     printf ("test_rmdir_1 FAILED\n");
16526     failed++;
16527   }
16528   test_num++;
16529   printf ("%3d/%3d test_rmdir_2\n", test_num, nr_tests);
16530   if (test_rmdir_2 () == -1) {
16531     printf ("test_rmdir_2 FAILED\n");
16532     failed++;
16533   }
16534   test_num++;
16535   printf ("%3d/%3d test_rm_0\n", test_num, nr_tests);
16536   if (test_rm_0 () == -1) {
16537     printf ("test_rm_0 FAILED\n");
16538     failed++;
16539   }
16540   test_num++;
16541   printf ("%3d/%3d test_rm_1\n", test_num, nr_tests);
16542   if (test_rm_1 () == -1) {
16543     printf ("test_rm_1 FAILED\n");
16544     failed++;
16545   }
16546   test_num++;
16547   printf ("%3d/%3d test_rm_2\n", test_num, nr_tests);
16548   if (test_rm_2 () == -1) {
16549     printf ("test_rm_2 FAILED\n");
16550     failed++;
16551   }
16552   test_num++;
16553   printf ("%3d/%3d test_read_lines_0\n", test_num, nr_tests);
16554   if (test_read_lines_0 () == -1) {
16555     printf ("test_read_lines_0 FAILED\n");
16556     failed++;
16557   }
16558   test_num++;
16559   printf ("%3d/%3d test_read_lines_1\n", test_num, nr_tests);
16560   if (test_read_lines_1 () == -1) {
16561     printf ("test_read_lines_1 FAILED\n");
16562     failed++;
16563   }
16564   test_num++;
16565   printf ("%3d/%3d test_lvs_0\n", test_num, nr_tests);
16566   if (test_lvs_0 () == -1) {
16567     printf ("test_lvs_0 FAILED\n");
16568     failed++;
16569   }
16570   test_num++;
16571   printf ("%3d/%3d test_lvs_1\n", test_num, nr_tests);
16572   if (test_lvs_1 () == -1) {
16573     printf ("test_lvs_1 FAILED\n");
16574     failed++;
16575   }
16576   test_num++;
16577   printf ("%3d/%3d test_vgs_0\n", test_num, nr_tests);
16578   if (test_vgs_0 () == -1) {
16579     printf ("test_vgs_0 FAILED\n");
16580     failed++;
16581   }
16582   test_num++;
16583   printf ("%3d/%3d test_vgs_1\n", test_num, nr_tests);
16584   if (test_vgs_1 () == -1) {
16585     printf ("test_vgs_1 FAILED\n");
16586     failed++;
16587   }
16588   test_num++;
16589   printf ("%3d/%3d test_pvs_0\n", test_num, nr_tests);
16590   if (test_pvs_0 () == -1) {
16591     printf ("test_pvs_0 FAILED\n");
16592     failed++;
16593   }
16594   test_num++;
16595   printf ("%3d/%3d test_pvs_1\n", test_num, nr_tests);
16596   if (test_pvs_1 () == -1) {
16597     printf ("test_pvs_1 FAILED\n");
16598     failed++;
16599   }
16600   test_num++;
16601   printf ("%3d/%3d test_list_partitions_0\n", test_num, nr_tests);
16602   if (test_list_partitions_0 () == -1) {
16603     printf ("test_list_partitions_0 FAILED\n");
16604     failed++;
16605   }
16606   test_num++;
16607   printf ("%3d/%3d test_list_partitions_1\n", test_num, nr_tests);
16608   if (test_list_partitions_1 () == -1) {
16609     printf ("test_list_partitions_1 FAILED\n");
16610     failed++;
16611   }
16612   test_num++;
16613   printf ("%3d/%3d test_list_devices_0\n", test_num, nr_tests);
16614   if (test_list_devices_0 () == -1) {
16615     printf ("test_list_devices_0 FAILED\n");
16616     failed++;
16617   }
16618   test_num++;
16619   printf ("%3d/%3d test_ls_0\n", test_num, nr_tests);
16620   if (test_ls_0 () == -1) {
16621     printf ("test_ls_0 FAILED\n");
16622     failed++;
16623   }
16624   test_num++;
16625   printf ("%3d/%3d test_cat_0\n", test_num, nr_tests);
16626   if (test_cat_0 () == -1) {
16627     printf ("test_cat_0 FAILED\n");
16628     failed++;
16629   }
16630   test_num++;
16631   printf ("%3d/%3d test_touch_0\n", test_num, nr_tests);
16632   if (test_touch_0 () == -1) {
16633     printf ("test_touch_0 FAILED\n");
16634     failed++;
16635   }
16636   test_num++;
16637   printf ("%3d/%3d test_sync_0\n", test_num, nr_tests);
16638   if (test_sync_0 () == -1) {
16639     printf ("test_sync_0 FAILED\n");
16640     failed++;
16641   }
16642   test_num++;
16643   printf ("%3d/%3d test_mount_0\n", test_num, nr_tests);
16644   if (test_mount_0 () == -1) {
16645     printf ("test_mount_0 FAILED\n");
16646     failed++;
16647   }
16648
16649   guestfs_close (g);
16650   unlink ("test1.img");
16651   unlink ("test2.img");
16652   unlink ("test3.img");
16653
16654   if (failed > 0) {
16655     printf ("***** %d / %d tests FAILED *****\n", failed, nr_tests);
16656     exit (1);
16657   }
16658
16659   exit (0);
16660 }