Generated code for df / df-h.
[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   fprintf (stderr, "warning: \"guestfs_scrub_freespace\" has no tests\n");
154   fprintf (stderr, "warning: \"guestfs_df\" has no tests\n");
155   fprintf (stderr, "warning: \"guestfs_df_h\" has no tests\n");
156 }
157
158 static int test_tail_n_0_skip (void)
159 {
160   const char *str;
161
162   str = getenv ("TEST_ONLY");
163   if (str)
164     return strstr (str, "tail_n") == NULL;
165   str = getenv ("SKIP_TEST_TAIL_N_0");
166   if (str && strcmp (str, "1") == 0) return 1;
167   str = getenv ("SKIP_TEST_TAIL_N");
168   if (str && strcmp (str, "1") == 0) return 1;
169   return 0;
170 }
171
172 static int test_tail_n_0 (void)
173 {
174   if (test_tail_n_0_skip ()) {
175     printf ("%s skipped (reason: environment variable set)\n", "test_tail_n_0");
176     return 0;
177   }
178
179   /* InitBasicFS for test_tail_n_0: create ext2 on /dev/sda1 */
180   {
181     char device[] = "/dev/sda";
182     int r;
183     suppress_error = 0;
184     r = guestfs_blockdev_setrw (g, device);
185     if (r == -1)
186       return -1;
187   }
188   {
189     int r;
190     suppress_error = 0;
191     r = guestfs_umount_all (g);
192     if (r == -1)
193       return -1;
194   }
195   {
196     int r;
197     suppress_error = 0;
198     r = guestfs_lvm_remove_all (g);
199     if (r == -1)
200       return -1;
201   }
202   {
203     char device[] = "/dev/sda";
204     char lines_0[] = ",";
205     char *lines[] = {
206       lines_0,
207       NULL
208     };
209     int r;
210     suppress_error = 0;
211     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
212     if (r == -1)
213       return -1;
214   }
215   {
216     char fstype[] = "ext2";
217     char device[] = "/dev/sda1";
218     int r;
219     suppress_error = 0;
220     r = guestfs_mkfs (g, fstype, device);
221     if (r == -1)
222       return -1;
223   }
224   {
225     char device[] = "/dev/sda1";
226     char mountpoint[] = "/";
227     int r;
228     suppress_error = 0;
229     r = guestfs_mount (g, device, mountpoint);
230     if (r == -1)
231       return -1;
232   }
233   /* TestOutputList for tail_n (0) */
234   {
235     char options[] = "ro";
236     char vfstype[] = "squashfs";
237     char device[] = "/dev/sdd";
238     char mountpoint[] = "/";
239     int r;
240     suppress_error = 0;
241     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
242     if (r == -1)
243       return -1;
244   }
245   {
246     char path[] = "/10klines";
247     char **r;
248     int i;
249     suppress_error = 0;
250     r = guestfs_tail_n (g, 3, path);
251     if (r == NULL)
252       return -1;
253     if (!r[0]) {
254       fprintf (stderr, "test_tail_n_0: short list returned from command\n");
255       print_strings (r);
256       return -1;
257     }
258     {
259       char expected[] = "9997abcdefghijklmnopqrstuvwxyz";
260       if (strcmp (r[0], expected) != 0) {
261         fprintf (stderr, "test_tail_n_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
262         return -1;
263       }
264     }
265     if (!r[1]) {
266       fprintf (stderr, "test_tail_n_0: short list returned from command\n");
267       print_strings (r);
268       return -1;
269     }
270     {
271       char expected[] = "9998abcdefghijklmnopqrstuvwxyz";
272       if (strcmp (r[1], expected) != 0) {
273         fprintf (stderr, "test_tail_n_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
274         return -1;
275       }
276     }
277     if (!r[2]) {
278       fprintf (stderr, "test_tail_n_0: short list returned from command\n");
279       print_strings (r);
280       return -1;
281     }
282     {
283       char expected[] = "9999abcdefghijklmnopqrstuvwxyz";
284       if (strcmp (r[2], expected) != 0) {
285         fprintf (stderr, "test_tail_n_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
286         return -1;
287       }
288     }
289     if (r[3] != NULL) {
290       fprintf (stderr, "test_tail_n_0: extra elements returned from command\n");
291       print_strings (r);
292       return -1;
293     }
294     for (i = 0; r[i] != NULL; ++i)
295       free (r[i]);
296     free (r);
297   }
298   return 0;
299 }
300
301 static int test_tail_n_1_skip (void)
302 {
303   const char *str;
304
305   str = getenv ("TEST_ONLY");
306   if (str)
307     return strstr (str, "tail_n") == NULL;
308   str = getenv ("SKIP_TEST_TAIL_N_1");
309   if (str && strcmp (str, "1") == 0) return 1;
310   str = getenv ("SKIP_TEST_TAIL_N");
311   if (str && strcmp (str, "1") == 0) return 1;
312   return 0;
313 }
314
315 static int test_tail_n_1 (void)
316 {
317   if (test_tail_n_1_skip ()) {
318     printf ("%s skipped (reason: environment variable set)\n", "test_tail_n_1");
319     return 0;
320   }
321
322   /* InitBasicFS for test_tail_n_1: create ext2 on /dev/sda1 */
323   {
324     char device[] = "/dev/sda";
325     int r;
326     suppress_error = 0;
327     r = guestfs_blockdev_setrw (g, device);
328     if (r == -1)
329       return -1;
330   }
331   {
332     int r;
333     suppress_error = 0;
334     r = guestfs_umount_all (g);
335     if (r == -1)
336       return -1;
337   }
338   {
339     int r;
340     suppress_error = 0;
341     r = guestfs_lvm_remove_all (g);
342     if (r == -1)
343       return -1;
344   }
345   {
346     char device[] = "/dev/sda";
347     char lines_0[] = ",";
348     char *lines[] = {
349       lines_0,
350       NULL
351     };
352     int r;
353     suppress_error = 0;
354     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
355     if (r == -1)
356       return -1;
357   }
358   {
359     char fstype[] = "ext2";
360     char device[] = "/dev/sda1";
361     int r;
362     suppress_error = 0;
363     r = guestfs_mkfs (g, fstype, device);
364     if (r == -1)
365       return -1;
366   }
367   {
368     char device[] = "/dev/sda1";
369     char mountpoint[] = "/";
370     int r;
371     suppress_error = 0;
372     r = guestfs_mount (g, device, mountpoint);
373     if (r == -1)
374       return -1;
375   }
376   /* TestOutputList for tail_n (1) */
377   {
378     char options[] = "ro";
379     char vfstype[] = "squashfs";
380     char device[] = "/dev/sdd";
381     char mountpoint[] = "/";
382     int r;
383     suppress_error = 0;
384     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
385     if (r == -1)
386       return -1;
387   }
388   {
389     char path[] = "/10klines";
390     char **r;
391     int i;
392     suppress_error = 0;
393     r = guestfs_tail_n (g, -9998, path);
394     if (r == NULL)
395       return -1;
396     if (!r[0]) {
397       fprintf (stderr, "test_tail_n_1: short list returned from command\n");
398       print_strings (r);
399       return -1;
400     }
401     {
402       char expected[] = "9997abcdefghijklmnopqrstuvwxyz";
403       if (strcmp (r[0], expected) != 0) {
404         fprintf (stderr, "test_tail_n_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
405         return -1;
406       }
407     }
408     if (!r[1]) {
409       fprintf (stderr, "test_tail_n_1: short list returned from command\n");
410       print_strings (r);
411       return -1;
412     }
413     {
414       char expected[] = "9998abcdefghijklmnopqrstuvwxyz";
415       if (strcmp (r[1], expected) != 0) {
416         fprintf (stderr, "test_tail_n_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
417         return -1;
418       }
419     }
420     if (!r[2]) {
421       fprintf (stderr, "test_tail_n_1: short list returned from command\n");
422       print_strings (r);
423       return -1;
424     }
425     {
426       char expected[] = "9999abcdefghijklmnopqrstuvwxyz";
427       if (strcmp (r[2], expected) != 0) {
428         fprintf (stderr, "test_tail_n_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
429         return -1;
430       }
431     }
432     if (r[3] != NULL) {
433       fprintf (stderr, "test_tail_n_1: extra elements returned from command\n");
434       print_strings (r);
435       return -1;
436     }
437     for (i = 0; r[i] != NULL; ++i)
438       free (r[i]);
439     free (r);
440   }
441   return 0;
442 }
443
444 static int test_tail_n_2_skip (void)
445 {
446   const char *str;
447
448   str = getenv ("TEST_ONLY");
449   if (str)
450     return strstr (str, "tail_n") == NULL;
451   str = getenv ("SKIP_TEST_TAIL_N_2");
452   if (str && strcmp (str, "1") == 0) return 1;
453   str = getenv ("SKIP_TEST_TAIL_N");
454   if (str && strcmp (str, "1") == 0) return 1;
455   return 0;
456 }
457
458 static int test_tail_n_2 (void)
459 {
460   if (test_tail_n_2_skip ()) {
461     printf ("%s skipped (reason: environment variable set)\n", "test_tail_n_2");
462     return 0;
463   }
464
465   /* InitBasicFS for test_tail_n_2: create ext2 on /dev/sda1 */
466   {
467     char device[] = "/dev/sda";
468     int r;
469     suppress_error = 0;
470     r = guestfs_blockdev_setrw (g, device);
471     if (r == -1)
472       return -1;
473   }
474   {
475     int r;
476     suppress_error = 0;
477     r = guestfs_umount_all (g);
478     if (r == -1)
479       return -1;
480   }
481   {
482     int r;
483     suppress_error = 0;
484     r = guestfs_lvm_remove_all (g);
485     if (r == -1)
486       return -1;
487   }
488   {
489     char device[] = "/dev/sda";
490     char lines_0[] = ",";
491     char *lines[] = {
492       lines_0,
493       NULL
494     };
495     int r;
496     suppress_error = 0;
497     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
498     if (r == -1)
499       return -1;
500   }
501   {
502     char fstype[] = "ext2";
503     char device[] = "/dev/sda1";
504     int r;
505     suppress_error = 0;
506     r = guestfs_mkfs (g, fstype, device);
507     if (r == -1)
508       return -1;
509   }
510   {
511     char device[] = "/dev/sda1";
512     char mountpoint[] = "/";
513     int r;
514     suppress_error = 0;
515     r = guestfs_mount (g, device, mountpoint);
516     if (r == -1)
517       return -1;
518   }
519   /* TestOutputList for tail_n (2) */
520   {
521     char options[] = "ro";
522     char vfstype[] = "squashfs";
523     char device[] = "/dev/sdd";
524     char mountpoint[] = "/";
525     int r;
526     suppress_error = 0;
527     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
528     if (r == -1)
529       return -1;
530   }
531   {
532     char path[] = "/10klines";
533     char **r;
534     int i;
535     suppress_error = 0;
536     r = guestfs_tail_n (g, 0, path);
537     if (r == NULL)
538       return -1;
539     if (r[0] != NULL) {
540       fprintf (stderr, "test_tail_n_2: extra elements returned from command\n");
541       print_strings (r);
542       return -1;
543     }
544     for (i = 0; r[i] != NULL; ++i)
545       free (r[i]);
546     free (r);
547   }
548   return 0;
549 }
550
551 static int test_tail_0_skip (void)
552 {
553   const char *str;
554
555   str = getenv ("TEST_ONLY");
556   if (str)
557     return strstr (str, "tail") == NULL;
558   str = getenv ("SKIP_TEST_TAIL_0");
559   if (str && strcmp (str, "1") == 0) return 1;
560   str = getenv ("SKIP_TEST_TAIL");
561   if (str && strcmp (str, "1") == 0) return 1;
562   return 0;
563 }
564
565 static int test_tail_0 (void)
566 {
567   if (test_tail_0_skip ()) {
568     printf ("%s skipped (reason: environment variable set)\n", "test_tail_0");
569     return 0;
570   }
571
572   /* InitBasicFS for test_tail_0: create ext2 on /dev/sda1 */
573   {
574     char device[] = "/dev/sda";
575     int r;
576     suppress_error = 0;
577     r = guestfs_blockdev_setrw (g, device);
578     if (r == -1)
579       return -1;
580   }
581   {
582     int r;
583     suppress_error = 0;
584     r = guestfs_umount_all (g);
585     if (r == -1)
586       return -1;
587   }
588   {
589     int r;
590     suppress_error = 0;
591     r = guestfs_lvm_remove_all (g);
592     if (r == -1)
593       return -1;
594   }
595   {
596     char device[] = "/dev/sda";
597     char lines_0[] = ",";
598     char *lines[] = {
599       lines_0,
600       NULL
601     };
602     int r;
603     suppress_error = 0;
604     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
605     if (r == -1)
606       return -1;
607   }
608   {
609     char fstype[] = "ext2";
610     char device[] = "/dev/sda1";
611     int r;
612     suppress_error = 0;
613     r = guestfs_mkfs (g, fstype, device);
614     if (r == -1)
615       return -1;
616   }
617   {
618     char device[] = "/dev/sda1";
619     char mountpoint[] = "/";
620     int r;
621     suppress_error = 0;
622     r = guestfs_mount (g, device, mountpoint);
623     if (r == -1)
624       return -1;
625   }
626   /* TestOutputList for tail (0) */
627   {
628     char options[] = "ro";
629     char vfstype[] = "squashfs";
630     char device[] = "/dev/sdd";
631     char mountpoint[] = "/";
632     int r;
633     suppress_error = 0;
634     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
635     if (r == -1)
636       return -1;
637   }
638   {
639     char path[] = "/10klines";
640     char **r;
641     int i;
642     suppress_error = 0;
643     r = guestfs_tail (g, path);
644     if (r == NULL)
645       return -1;
646     if (!r[0]) {
647       fprintf (stderr, "test_tail_0: short list returned from command\n");
648       print_strings (r);
649       return -1;
650     }
651     {
652       char expected[] = "9990abcdefghijklmnopqrstuvwxyz";
653       if (strcmp (r[0], expected) != 0) {
654         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
655         return -1;
656       }
657     }
658     if (!r[1]) {
659       fprintf (stderr, "test_tail_0: short list returned from command\n");
660       print_strings (r);
661       return -1;
662     }
663     {
664       char expected[] = "9991abcdefghijklmnopqrstuvwxyz";
665       if (strcmp (r[1], expected) != 0) {
666         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
667         return -1;
668       }
669     }
670     if (!r[2]) {
671       fprintf (stderr, "test_tail_0: short list returned from command\n");
672       print_strings (r);
673       return -1;
674     }
675     {
676       char expected[] = "9992abcdefghijklmnopqrstuvwxyz";
677       if (strcmp (r[2], expected) != 0) {
678         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
679         return -1;
680       }
681     }
682     if (!r[3]) {
683       fprintf (stderr, "test_tail_0: short list returned from command\n");
684       print_strings (r);
685       return -1;
686     }
687     {
688       char expected[] = "9993abcdefghijklmnopqrstuvwxyz";
689       if (strcmp (r[3], expected) != 0) {
690         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
691         return -1;
692       }
693     }
694     if (!r[4]) {
695       fprintf (stderr, "test_tail_0: short list returned from command\n");
696       print_strings (r);
697       return -1;
698     }
699     {
700       char expected[] = "9994abcdefghijklmnopqrstuvwxyz";
701       if (strcmp (r[4], expected) != 0) {
702         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[4]);
703         return -1;
704       }
705     }
706     if (!r[5]) {
707       fprintf (stderr, "test_tail_0: short list returned from command\n");
708       print_strings (r);
709       return -1;
710     }
711     {
712       char expected[] = "9995abcdefghijklmnopqrstuvwxyz";
713       if (strcmp (r[5], expected) != 0) {
714         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[5]);
715         return -1;
716       }
717     }
718     if (!r[6]) {
719       fprintf (stderr, "test_tail_0: short list returned from command\n");
720       print_strings (r);
721       return -1;
722     }
723     {
724       char expected[] = "9996abcdefghijklmnopqrstuvwxyz";
725       if (strcmp (r[6], expected) != 0) {
726         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[6]);
727         return -1;
728       }
729     }
730     if (!r[7]) {
731       fprintf (stderr, "test_tail_0: short list returned from command\n");
732       print_strings (r);
733       return -1;
734     }
735     {
736       char expected[] = "9997abcdefghijklmnopqrstuvwxyz";
737       if (strcmp (r[7], expected) != 0) {
738         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[7]);
739         return -1;
740       }
741     }
742     if (!r[8]) {
743       fprintf (stderr, "test_tail_0: short list returned from command\n");
744       print_strings (r);
745       return -1;
746     }
747     {
748       char expected[] = "9998abcdefghijklmnopqrstuvwxyz";
749       if (strcmp (r[8], expected) != 0) {
750         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[8]);
751         return -1;
752       }
753     }
754     if (!r[9]) {
755       fprintf (stderr, "test_tail_0: short list returned from command\n");
756       print_strings (r);
757       return -1;
758     }
759     {
760       char expected[] = "9999abcdefghijklmnopqrstuvwxyz";
761       if (strcmp (r[9], expected) != 0) {
762         fprintf (stderr, "test_tail_0: expected \"%s\" but got \"%s\"\n", expected, r[9]);
763         return -1;
764       }
765     }
766     if (r[10] != NULL) {
767       fprintf (stderr, "test_tail_0: extra elements returned from command\n");
768       print_strings (r);
769       return -1;
770     }
771     for (i = 0; r[i] != NULL; ++i)
772       free (r[i]);
773     free (r);
774   }
775   return 0;
776 }
777
778 static int test_head_n_0_skip (void)
779 {
780   const char *str;
781
782   str = getenv ("TEST_ONLY");
783   if (str)
784     return strstr (str, "head_n") == NULL;
785   str = getenv ("SKIP_TEST_HEAD_N_0");
786   if (str && strcmp (str, "1") == 0) return 1;
787   str = getenv ("SKIP_TEST_HEAD_N");
788   if (str && strcmp (str, "1") == 0) return 1;
789   return 0;
790 }
791
792 static int test_head_n_0 (void)
793 {
794   if (test_head_n_0_skip ()) {
795     printf ("%s skipped (reason: environment variable set)\n", "test_head_n_0");
796     return 0;
797   }
798
799   /* InitBasicFS for test_head_n_0: create ext2 on /dev/sda1 */
800   {
801     char device[] = "/dev/sda";
802     int r;
803     suppress_error = 0;
804     r = guestfs_blockdev_setrw (g, device);
805     if (r == -1)
806       return -1;
807   }
808   {
809     int r;
810     suppress_error = 0;
811     r = guestfs_umount_all (g);
812     if (r == -1)
813       return -1;
814   }
815   {
816     int r;
817     suppress_error = 0;
818     r = guestfs_lvm_remove_all (g);
819     if (r == -1)
820       return -1;
821   }
822   {
823     char device[] = "/dev/sda";
824     char lines_0[] = ",";
825     char *lines[] = {
826       lines_0,
827       NULL
828     };
829     int r;
830     suppress_error = 0;
831     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
832     if (r == -1)
833       return -1;
834   }
835   {
836     char fstype[] = "ext2";
837     char device[] = "/dev/sda1";
838     int r;
839     suppress_error = 0;
840     r = guestfs_mkfs (g, fstype, device);
841     if (r == -1)
842       return -1;
843   }
844   {
845     char device[] = "/dev/sda1";
846     char mountpoint[] = "/";
847     int r;
848     suppress_error = 0;
849     r = guestfs_mount (g, device, mountpoint);
850     if (r == -1)
851       return -1;
852   }
853   /* TestOutputList for head_n (0) */
854   {
855     char options[] = "ro";
856     char vfstype[] = "squashfs";
857     char device[] = "/dev/sdd";
858     char mountpoint[] = "/";
859     int r;
860     suppress_error = 0;
861     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
862     if (r == -1)
863       return -1;
864   }
865   {
866     char path[] = "/10klines";
867     char **r;
868     int i;
869     suppress_error = 0;
870     r = guestfs_head_n (g, 3, path);
871     if (r == NULL)
872       return -1;
873     if (!r[0]) {
874       fprintf (stderr, "test_head_n_0: short list returned from command\n");
875       print_strings (r);
876       return -1;
877     }
878     {
879       char expected[] = "0abcdefghijklmnopqrstuvwxyz";
880       if (strcmp (r[0], expected) != 0) {
881         fprintf (stderr, "test_head_n_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
882         return -1;
883       }
884     }
885     if (!r[1]) {
886       fprintf (stderr, "test_head_n_0: short list returned from command\n");
887       print_strings (r);
888       return -1;
889     }
890     {
891       char expected[] = "1abcdefghijklmnopqrstuvwxyz";
892       if (strcmp (r[1], expected) != 0) {
893         fprintf (stderr, "test_head_n_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
894         return -1;
895       }
896     }
897     if (!r[2]) {
898       fprintf (stderr, "test_head_n_0: short list returned from command\n");
899       print_strings (r);
900       return -1;
901     }
902     {
903       char expected[] = "2abcdefghijklmnopqrstuvwxyz";
904       if (strcmp (r[2], expected) != 0) {
905         fprintf (stderr, "test_head_n_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
906         return -1;
907       }
908     }
909     if (r[3] != NULL) {
910       fprintf (stderr, "test_head_n_0: extra elements returned from command\n");
911       print_strings (r);
912       return -1;
913     }
914     for (i = 0; r[i] != NULL; ++i)
915       free (r[i]);
916     free (r);
917   }
918   return 0;
919 }
920
921 static int test_head_n_1_skip (void)
922 {
923   const char *str;
924
925   str = getenv ("TEST_ONLY");
926   if (str)
927     return strstr (str, "head_n") == NULL;
928   str = getenv ("SKIP_TEST_HEAD_N_1");
929   if (str && strcmp (str, "1") == 0) return 1;
930   str = getenv ("SKIP_TEST_HEAD_N");
931   if (str && strcmp (str, "1") == 0) return 1;
932   return 0;
933 }
934
935 static int test_head_n_1 (void)
936 {
937   if (test_head_n_1_skip ()) {
938     printf ("%s skipped (reason: environment variable set)\n", "test_head_n_1");
939     return 0;
940   }
941
942   /* InitBasicFS for test_head_n_1: create ext2 on /dev/sda1 */
943   {
944     char device[] = "/dev/sda";
945     int r;
946     suppress_error = 0;
947     r = guestfs_blockdev_setrw (g, device);
948     if (r == -1)
949       return -1;
950   }
951   {
952     int r;
953     suppress_error = 0;
954     r = guestfs_umount_all (g);
955     if (r == -1)
956       return -1;
957   }
958   {
959     int r;
960     suppress_error = 0;
961     r = guestfs_lvm_remove_all (g);
962     if (r == -1)
963       return -1;
964   }
965   {
966     char device[] = "/dev/sda";
967     char lines_0[] = ",";
968     char *lines[] = {
969       lines_0,
970       NULL
971     };
972     int r;
973     suppress_error = 0;
974     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
975     if (r == -1)
976       return -1;
977   }
978   {
979     char fstype[] = "ext2";
980     char device[] = "/dev/sda1";
981     int r;
982     suppress_error = 0;
983     r = guestfs_mkfs (g, fstype, device);
984     if (r == -1)
985       return -1;
986   }
987   {
988     char device[] = "/dev/sda1";
989     char mountpoint[] = "/";
990     int r;
991     suppress_error = 0;
992     r = guestfs_mount (g, device, mountpoint);
993     if (r == -1)
994       return -1;
995   }
996   /* TestOutputList for head_n (1) */
997   {
998     char options[] = "ro";
999     char vfstype[] = "squashfs";
1000     char device[] = "/dev/sdd";
1001     char mountpoint[] = "/";
1002     int r;
1003     suppress_error = 0;
1004     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1005     if (r == -1)
1006       return -1;
1007   }
1008   {
1009     char path[] = "/10klines";
1010     char **r;
1011     int i;
1012     suppress_error = 0;
1013     r = guestfs_head_n (g, -9997, path);
1014     if (r == NULL)
1015       return -1;
1016     if (!r[0]) {
1017       fprintf (stderr, "test_head_n_1: short list returned from command\n");
1018       print_strings (r);
1019       return -1;
1020     }
1021     {
1022       char expected[] = "0abcdefghijklmnopqrstuvwxyz";
1023       if (strcmp (r[0], expected) != 0) {
1024         fprintf (stderr, "test_head_n_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
1025         return -1;
1026       }
1027     }
1028     if (!r[1]) {
1029       fprintf (stderr, "test_head_n_1: short list returned from command\n");
1030       print_strings (r);
1031       return -1;
1032     }
1033     {
1034       char expected[] = "1abcdefghijklmnopqrstuvwxyz";
1035       if (strcmp (r[1], expected) != 0) {
1036         fprintf (stderr, "test_head_n_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
1037         return -1;
1038       }
1039     }
1040     if (!r[2]) {
1041       fprintf (stderr, "test_head_n_1: short list returned from command\n");
1042       print_strings (r);
1043       return -1;
1044     }
1045     {
1046       char expected[] = "2abcdefghijklmnopqrstuvwxyz";
1047       if (strcmp (r[2], expected) != 0) {
1048         fprintf (stderr, "test_head_n_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
1049         return -1;
1050       }
1051     }
1052     if (r[3] != NULL) {
1053       fprintf (stderr, "test_head_n_1: extra elements returned from command\n");
1054       print_strings (r);
1055       return -1;
1056     }
1057     for (i = 0; r[i] != NULL; ++i)
1058       free (r[i]);
1059     free (r);
1060   }
1061   return 0;
1062 }
1063
1064 static int test_head_n_2_skip (void)
1065 {
1066   const char *str;
1067
1068   str = getenv ("TEST_ONLY");
1069   if (str)
1070     return strstr (str, "head_n") == NULL;
1071   str = getenv ("SKIP_TEST_HEAD_N_2");
1072   if (str && strcmp (str, "1") == 0) return 1;
1073   str = getenv ("SKIP_TEST_HEAD_N");
1074   if (str && strcmp (str, "1") == 0) return 1;
1075   return 0;
1076 }
1077
1078 static int test_head_n_2 (void)
1079 {
1080   if (test_head_n_2_skip ()) {
1081     printf ("%s skipped (reason: environment variable set)\n", "test_head_n_2");
1082     return 0;
1083   }
1084
1085   /* InitBasicFS for test_head_n_2: create ext2 on /dev/sda1 */
1086   {
1087     char device[] = "/dev/sda";
1088     int r;
1089     suppress_error = 0;
1090     r = guestfs_blockdev_setrw (g, device);
1091     if (r == -1)
1092       return -1;
1093   }
1094   {
1095     int r;
1096     suppress_error = 0;
1097     r = guestfs_umount_all (g);
1098     if (r == -1)
1099       return -1;
1100   }
1101   {
1102     int r;
1103     suppress_error = 0;
1104     r = guestfs_lvm_remove_all (g);
1105     if (r == -1)
1106       return -1;
1107   }
1108   {
1109     char device[] = "/dev/sda";
1110     char lines_0[] = ",";
1111     char *lines[] = {
1112       lines_0,
1113       NULL
1114     };
1115     int r;
1116     suppress_error = 0;
1117     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1118     if (r == -1)
1119       return -1;
1120   }
1121   {
1122     char fstype[] = "ext2";
1123     char device[] = "/dev/sda1";
1124     int r;
1125     suppress_error = 0;
1126     r = guestfs_mkfs (g, fstype, device);
1127     if (r == -1)
1128       return -1;
1129   }
1130   {
1131     char device[] = "/dev/sda1";
1132     char mountpoint[] = "/";
1133     int r;
1134     suppress_error = 0;
1135     r = guestfs_mount (g, device, mountpoint);
1136     if (r == -1)
1137       return -1;
1138   }
1139   /* TestOutputList for head_n (2) */
1140   {
1141     char options[] = "ro";
1142     char vfstype[] = "squashfs";
1143     char device[] = "/dev/sdd";
1144     char mountpoint[] = "/";
1145     int r;
1146     suppress_error = 0;
1147     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1148     if (r == -1)
1149       return -1;
1150   }
1151   {
1152     char path[] = "/10klines";
1153     char **r;
1154     int i;
1155     suppress_error = 0;
1156     r = guestfs_head_n (g, 0, path);
1157     if (r == NULL)
1158       return -1;
1159     if (r[0] != NULL) {
1160       fprintf (stderr, "test_head_n_2: extra elements returned from command\n");
1161       print_strings (r);
1162       return -1;
1163     }
1164     for (i = 0; r[i] != NULL; ++i)
1165       free (r[i]);
1166     free (r);
1167   }
1168   return 0;
1169 }
1170
1171 static int test_head_0_skip (void)
1172 {
1173   const char *str;
1174
1175   str = getenv ("TEST_ONLY");
1176   if (str)
1177     return strstr (str, "head") == NULL;
1178   str = getenv ("SKIP_TEST_HEAD_0");
1179   if (str && strcmp (str, "1") == 0) return 1;
1180   str = getenv ("SKIP_TEST_HEAD");
1181   if (str && strcmp (str, "1") == 0) return 1;
1182   return 0;
1183 }
1184
1185 static int test_head_0 (void)
1186 {
1187   if (test_head_0_skip ()) {
1188     printf ("%s skipped (reason: environment variable set)\n", "test_head_0");
1189     return 0;
1190   }
1191
1192   /* InitBasicFS for test_head_0: create ext2 on /dev/sda1 */
1193   {
1194     char device[] = "/dev/sda";
1195     int r;
1196     suppress_error = 0;
1197     r = guestfs_blockdev_setrw (g, device);
1198     if (r == -1)
1199       return -1;
1200   }
1201   {
1202     int r;
1203     suppress_error = 0;
1204     r = guestfs_umount_all (g);
1205     if (r == -1)
1206       return -1;
1207   }
1208   {
1209     int r;
1210     suppress_error = 0;
1211     r = guestfs_lvm_remove_all (g);
1212     if (r == -1)
1213       return -1;
1214   }
1215   {
1216     char device[] = "/dev/sda";
1217     char lines_0[] = ",";
1218     char *lines[] = {
1219       lines_0,
1220       NULL
1221     };
1222     int r;
1223     suppress_error = 0;
1224     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1225     if (r == -1)
1226       return -1;
1227   }
1228   {
1229     char fstype[] = "ext2";
1230     char device[] = "/dev/sda1";
1231     int r;
1232     suppress_error = 0;
1233     r = guestfs_mkfs (g, fstype, device);
1234     if (r == -1)
1235       return -1;
1236   }
1237   {
1238     char device[] = "/dev/sda1";
1239     char mountpoint[] = "/";
1240     int r;
1241     suppress_error = 0;
1242     r = guestfs_mount (g, device, mountpoint);
1243     if (r == -1)
1244       return -1;
1245   }
1246   /* TestOutputList for head (0) */
1247   {
1248     char options[] = "ro";
1249     char vfstype[] = "squashfs";
1250     char device[] = "/dev/sdd";
1251     char mountpoint[] = "/";
1252     int r;
1253     suppress_error = 0;
1254     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1255     if (r == -1)
1256       return -1;
1257   }
1258   {
1259     char path[] = "/10klines";
1260     char **r;
1261     int i;
1262     suppress_error = 0;
1263     r = guestfs_head (g, path);
1264     if (r == NULL)
1265       return -1;
1266     if (!r[0]) {
1267       fprintf (stderr, "test_head_0: short list returned from command\n");
1268       print_strings (r);
1269       return -1;
1270     }
1271     {
1272       char expected[] = "0abcdefghijklmnopqrstuvwxyz";
1273       if (strcmp (r[0], expected) != 0) {
1274         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
1275         return -1;
1276       }
1277     }
1278     if (!r[1]) {
1279       fprintf (stderr, "test_head_0: short list returned from command\n");
1280       print_strings (r);
1281       return -1;
1282     }
1283     {
1284       char expected[] = "1abcdefghijklmnopqrstuvwxyz";
1285       if (strcmp (r[1], expected) != 0) {
1286         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
1287         return -1;
1288       }
1289     }
1290     if (!r[2]) {
1291       fprintf (stderr, "test_head_0: short list returned from command\n");
1292       print_strings (r);
1293       return -1;
1294     }
1295     {
1296       char expected[] = "2abcdefghijklmnopqrstuvwxyz";
1297       if (strcmp (r[2], expected) != 0) {
1298         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
1299         return -1;
1300       }
1301     }
1302     if (!r[3]) {
1303       fprintf (stderr, "test_head_0: short list returned from command\n");
1304       print_strings (r);
1305       return -1;
1306     }
1307     {
1308       char expected[] = "3abcdefghijklmnopqrstuvwxyz";
1309       if (strcmp (r[3], expected) != 0) {
1310         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
1311         return -1;
1312       }
1313     }
1314     if (!r[4]) {
1315       fprintf (stderr, "test_head_0: short list returned from command\n");
1316       print_strings (r);
1317       return -1;
1318     }
1319     {
1320       char expected[] = "4abcdefghijklmnopqrstuvwxyz";
1321       if (strcmp (r[4], expected) != 0) {
1322         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[4]);
1323         return -1;
1324       }
1325     }
1326     if (!r[5]) {
1327       fprintf (stderr, "test_head_0: short list returned from command\n");
1328       print_strings (r);
1329       return -1;
1330     }
1331     {
1332       char expected[] = "5abcdefghijklmnopqrstuvwxyz";
1333       if (strcmp (r[5], expected) != 0) {
1334         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[5]);
1335         return -1;
1336       }
1337     }
1338     if (!r[6]) {
1339       fprintf (stderr, "test_head_0: short list returned from command\n");
1340       print_strings (r);
1341       return -1;
1342     }
1343     {
1344       char expected[] = "6abcdefghijklmnopqrstuvwxyz";
1345       if (strcmp (r[6], expected) != 0) {
1346         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[6]);
1347         return -1;
1348       }
1349     }
1350     if (!r[7]) {
1351       fprintf (stderr, "test_head_0: short list returned from command\n");
1352       print_strings (r);
1353       return -1;
1354     }
1355     {
1356       char expected[] = "7abcdefghijklmnopqrstuvwxyz";
1357       if (strcmp (r[7], expected) != 0) {
1358         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[7]);
1359         return -1;
1360       }
1361     }
1362     if (!r[8]) {
1363       fprintf (stderr, "test_head_0: short list returned from command\n");
1364       print_strings (r);
1365       return -1;
1366     }
1367     {
1368       char expected[] = "8abcdefghijklmnopqrstuvwxyz";
1369       if (strcmp (r[8], expected) != 0) {
1370         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[8]);
1371         return -1;
1372       }
1373     }
1374     if (!r[9]) {
1375       fprintf (stderr, "test_head_0: short list returned from command\n");
1376       print_strings (r);
1377       return -1;
1378     }
1379     {
1380       char expected[] = "9abcdefghijklmnopqrstuvwxyz";
1381       if (strcmp (r[9], expected) != 0) {
1382         fprintf (stderr, "test_head_0: expected \"%s\" but got \"%s\"\n", expected, r[9]);
1383         return -1;
1384       }
1385     }
1386     if (r[10] != NULL) {
1387       fprintf (stderr, "test_head_0: extra elements returned from command\n");
1388       print_strings (r);
1389       return -1;
1390     }
1391     for (i = 0; r[i] != NULL; ++i)
1392       free (r[i]);
1393     free (r);
1394   }
1395   return 0;
1396 }
1397
1398 static int test_wc_c_0_skip (void)
1399 {
1400   const char *str;
1401
1402   str = getenv ("TEST_ONLY");
1403   if (str)
1404     return strstr (str, "wc_c") == NULL;
1405   str = getenv ("SKIP_TEST_WC_C_0");
1406   if (str && strcmp (str, "1") == 0) return 1;
1407   str = getenv ("SKIP_TEST_WC_C");
1408   if (str && strcmp (str, "1") == 0) return 1;
1409   return 0;
1410 }
1411
1412 static int test_wc_c_0 (void)
1413 {
1414   if (test_wc_c_0_skip ()) {
1415     printf ("%s skipped (reason: environment variable set)\n", "test_wc_c_0");
1416     return 0;
1417   }
1418
1419   /* InitBasicFS for test_wc_c_0: create ext2 on /dev/sda1 */
1420   {
1421     char device[] = "/dev/sda";
1422     int r;
1423     suppress_error = 0;
1424     r = guestfs_blockdev_setrw (g, device);
1425     if (r == -1)
1426       return -1;
1427   }
1428   {
1429     int r;
1430     suppress_error = 0;
1431     r = guestfs_umount_all (g);
1432     if (r == -1)
1433       return -1;
1434   }
1435   {
1436     int r;
1437     suppress_error = 0;
1438     r = guestfs_lvm_remove_all (g);
1439     if (r == -1)
1440       return -1;
1441   }
1442   {
1443     char device[] = "/dev/sda";
1444     char lines_0[] = ",";
1445     char *lines[] = {
1446       lines_0,
1447       NULL
1448     };
1449     int r;
1450     suppress_error = 0;
1451     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1452     if (r == -1)
1453       return -1;
1454   }
1455   {
1456     char fstype[] = "ext2";
1457     char device[] = "/dev/sda1";
1458     int r;
1459     suppress_error = 0;
1460     r = guestfs_mkfs (g, fstype, device);
1461     if (r == -1)
1462       return -1;
1463   }
1464   {
1465     char device[] = "/dev/sda1";
1466     char mountpoint[] = "/";
1467     int r;
1468     suppress_error = 0;
1469     r = guestfs_mount (g, device, mountpoint);
1470     if (r == -1)
1471       return -1;
1472   }
1473   /* TestOutputInt for wc_c (0) */
1474   {
1475     char options[] = "ro";
1476     char vfstype[] = "squashfs";
1477     char device[] = "/dev/sdd";
1478     char mountpoint[] = "/";
1479     int r;
1480     suppress_error = 0;
1481     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1482     if (r == -1)
1483       return -1;
1484   }
1485   {
1486     char path[] = "/100kallspaces";
1487     int r;
1488     suppress_error = 0;
1489     r = guestfs_wc_c (g, path);
1490     if (r == -1)
1491       return -1;
1492     if (r != 102400) {
1493       fprintf (stderr, "test_wc_c_0: expected 102400 but got %d\n",               (int) r);
1494       return -1;
1495     }
1496   }
1497   return 0;
1498 }
1499
1500 static int test_wc_w_0_skip (void)
1501 {
1502   const char *str;
1503
1504   str = getenv ("TEST_ONLY");
1505   if (str)
1506     return strstr (str, "wc_w") == NULL;
1507   str = getenv ("SKIP_TEST_WC_W_0");
1508   if (str && strcmp (str, "1") == 0) return 1;
1509   str = getenv ("SKIP_TEST_WC_W");
1510   if (str && strcmp (str, "1") == 0) return 1;
1511   return 0;
1512 }
1513
1514 static int test_wc_w_0 (void)
1515 {
1516   if (test_wc_w_0_skip ()) {
1517     printf ("%s skipped (reason: environment variable set)\n", "test_wc_w_0");
1518     return 0;
1519   }
1520
1521   /* InitBasicFS for test_wc_w_0: create ext2 on /dev/sda1 */
1522   {
1523     char device[] = "/dev/sda";
1524     int r;
1525     suppress_error = 0;
1526     r = guestfs_blockdev_setrw (g, device);
1527     if (r == -1)
1528       return -1;
1529   }
1530   {
1531     int r;
1532     suppress_error = 0;
1533     r = guestfs_umount_all (g);
1534     if (r == -1)
1535       return -1;
1536   }
1537   {
1538     int r;
1539     suppress_error = 0;
1540     r = guestfs_lvm_remove_all (g);
1541     if (r == -1)
1542       return -1;
1543   }
1544   {
1545     char device[] = "/dev/sda";
1546     char lines_0[] = ",";
1547     char *lines[] = {
1548       lines_0,
1549       NULL
1550     };
1551     int r;
1552     suppress_error = 0;
1553     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1554     if (r == -1)
1555       return -1;
1556   }
1557   {
1558     char fstype[] = "ext2";
1559     char device[] = "/dev/sda1";
1560     int r;
1561     suppress_error = 0;
1562     r = guestfs_mkfs (g, fstype, device);
1563     if (r == -1)
1564       return -1;
1565   }
1566   {
1567     char device[] = "/dev/sda1";
1568     char mountpoint[] = "/";
1569     int r;
1570     suppress_error = 0;
1571     r = guestfs_mount (g, device, mountpoint);
1572     if (r == -1)
1573       return -1;
1574   }
1575   /* TestOutputInt for wc_w (0) */
1576   {
1577     char options[] = "ro";
1578     char vfstype[] = "squashfs";
1579     char device[] = "/dev/sdd";
1580     char mountpoint[] = "/";
1581     int r;
1582     suppress_error = 0;
1583     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1584     if (r == -1)
1585       return -1;
1586   }
1587   {
1588     char path[] = "/10klines";
1589     int r;
1590     suppress_error = 0;
1591     r = guestfs_wc_w (g, path);
1592     if (r == -1)
1593       return -1;
1594     if (r != 10000) {
1595       fprintf (stderr, "test_wc_w_0: expected 10000 but got %d\n",               (int) r);
1596       return -1;
1597     }
1598   }
1599   return 0;
1600 }
1601
1602 static int test_wc_l_0_skip (void)
1603 {
1604   const char *str;
1605
1606   str = getenv ("TEST_ONLY");
1607   if (str)
1608     return strstr (str, "wc_l") == NULL;
1609   str = getenv ("SKIP_TEST_WC_L_0");
1610   if (str && strcmp (str, "1") == 0) return 1;
1611   str = getenv ("SKIP_TEST_WC_L");
1612   if (str && strcmp (str, "1") == 0) return 1;
1613   return 0;
1614 }
1615
1616 static int test_wc_l_0 (void)
1617 {
1618   if (test_wc_l_0_skip ()) {
1619     printf ("%s skipped (reason: environment variable set)\n", "test_wc_l_0");
1620     return 0;
1621   }
1622
1623   /* InitBasicFS for test_wc_l_0: create ext2 on /dev/sda1 */
1624   {
1625     char device[] = "/dev/sda";
1626     int r;
1627     suppress_error = 0;
1628     r = guestfs_blockdev_setrw (g, device);
1629     if (r == -1)
1630       return -1;
1631   }
1632   {
1633     int r;
1634     suppress_error = 0;
1635     r = guestfs_umount_all (g);
1636     if (r == -1)
1637       return -1;
1638   }
1639   {
1640     int r;
1641     suppress_error = 0;
1642     r = guestfs_lvm_remove_all (g);
1643     if (r == -1)
1644       return -1;
1645   }
1646   {
1647     char device[] = "/dev/sda";
1648     char lines_0[] = ",";
1649     char *lines[] = {
1650       lines_0,
1651       NULL
1652     };
1653     int r;
1654     suppress_error = 0;
1655     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1656     if (r == -1)
1657       return -1;
1658   }
1659   {
1660     char fstype[] = "ext2";
1661     char device[] = "/dev/sda1";
1662     int r;
1663     suppress_error = 0;
1664     r = guestfs_mkfs (g, fstype, device);
1665     if (r == -1)
1666       return -1;
1667   }
1668   {
1669     char device[] = "/dev/sda1";
1670     char mountpoint[] = "/";
1671     int r;
1672     suppress_error = 0;
1673     r = guestfs_mount (g, device, mountpoint);
1674     if (r == -1)
1675       return -1;
1676   }
1677   /* TestOutputInt for wc_l (0) */
1678   {
1679     char options[] = "ro";
1680     char vfstype[] = "squashfs";
1681     char device[] = "/dev/sdd";
1682     char mountpoint[] = "/";
1683     int r;
1684     suppress_error = 0;
1685     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
1686     if (r == -1)
1687       return -1;
1688   }
1689   {
1690     char path[] = "/10klines";
1691     int r;
1692     suppress_error = 0;
1693     r = guestfs_wc_l (g, path);
1694     if (r == -1)
1695       return -1;
1696     if (r != 10000) {
1697       fprintf (stderr, "test_wc_l_0: expected 10000 but got %d\n",               (int) r);
1698       return -1;
1699     }
1700   }
1701   return 0;
1702 }
1703
1704 static int test_mkdtemp_0_skip (void)
1705 {
1706   const char *str;
1707
1708   str = getenv ("TEST_ONLY");
1709   if (str)
1710     return strstr (str, "mkdtemp") == NULL;
1711   str = getenv ("SKIP_TEST_MKDTEMP_0");
1712   if (str && strcmp (str, "1") == 0) return 1;
1713   str = getenv ("SKIP_TEST_MKDTEMP");
1714   if (str && strcmp (str, "1") == 0) return 1;
1715   return 0;
1716 }
1717
1718 static int test_mkdtemp_0 (void)
1719 {
1720   if (test_mkdtemp_0_skip ()) {
1721     printf ("%s skipped (reason: environment variable set)\n", "test_mkdtemp_0");
1722     return 0;
1723   }
1724
1725   /* InitBasicFS for test_mkdtemp_0: create ext2 on /dev/sda1 */
1726   {
1727     char device[] = "/dev/sda";
1728     int r;
1729     suppress_error = 0;
1730     r = guestfs_blockdev_setrw (g, device);
1731     if (r == -1)
1732       return -1;
1733   }
1734   {
1735     int r;
1736     suppress_error = 0;
1737     r = guestfs_umount_all (g);
1738     if (r == -1)
1739       return -1;
1740   }
1741   {
1742     int r;
1743     suppress_error = 0;
1744     r = guestfs_lvm_remove_all (g);
1745     if (r == -1)
1746       return -1;
1747   }
1748   {
1749     char device[] = "/dev/sda";
1750     char lines_0[] = ",";
1751     char *lines[] = {
1752       lines_0,
1753       NULL
1754     };
1755     int r;
1756     suppress_error = 0;
1757     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1758     if (r == -1)
1759       return -1;
1760   }
1761   {
1762     char fstype[] = "ext2";
1763     char device[] = "/dev/sda1";
1764     int r;
1765     suppress_error = 0;
1766     r = guestfs_mkfs (g, fstype, device);
1767     if (r == -1)
1768       return -1;
1769   }
1770   {
1771     char device[] = "/dev/sda1";
1772     char mountpoint[] = "/";
1773     int r;
1774     suppress_error = 0;
1775     r = guestfs_mount (g, device, mountpoint);
1776     if (r == -1)
1777       return -1;
1778   }
1779   /* TestRun for mkdtemp (0) */
1780   {
1781     char path[] = "/tmp";
1782     int r;
1783     suppress_error = 0;
1784     r = guestfs_mkdir (g, path);
1785     if (r == -1)
1786       return -1;
1787   }
1788   {
1789     char template[] = "/tmp/tmpXXXXXX";
1790     char *r;
1791     suppress_error = 0;
1792     r = guestfs_mkdtemp (g, template);
1793     if (r == NULL)
1794       return -1;
1795     free (r);
1796   }
1797   return 0;
1798 }
1799
1800 static int test_scrub_file_0_skip (void)
1801 {
1802   const char *str;
1803
1804   str = getenv ("TEST_ONLY");
1805   if (str)
1806     return strstr (str, "scrub_file") == NULL;
1807   str = getenv ("SKIP_TEST_SCRUB_FILE_0");
1808   if (str && strcmp (str, "1") == 0) return 1;
1809   str = getenv ("SKIP_TEST_SCRUB_FILE");
1810   if (str && strcmp (str, "1") == 0) return 1;
1811   return 0;
1812 }
1813
1814 static int test_scrub_file_0 (void)
1815 {
1816   if (test_scrub_file_0_skip ()) {
1817     printf ("%s skipped (reason: environment variable set)\n", "test_scrub_file_0");
1818     return 0;
1819   }
1820
1821   /* InitBasicFS for test_scrub_file_0: create ext2 on /dev/sda1 */
1822   {
1823     char device[] = "/dev/sda";
1824     int r;
1825     suppress_error = 0;
1826     r = guestfs_blockdev_setrw (g, device);
1827     if (r == -1)
1828       return -1;
1829   }
1830   {
1831     int r;
1832     suppress_error = 0;
1833     r = guestfs_umount_all (g);
1834     if (r == -1)
1835       return -1;
1836   }
1837   {
1838     int r;
1839     suppress_error = 0;
1840     r = guestfs_lvm_remove_all (g);
1841     if (r == -1)
1842       return -1;
1843   }
1844   {
1845     char device[] = "/dev/sda";
1846     char lines_0[] = ",";
1847     char *lines[] = {
1848       lines_0,
1849       NULL
1850     };
1851     int r;
1852     suppress_error = 0;
1853     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
1854     if (r == -1)
1855       return -1;
1856   }
1857   {
1858     char fstype[] = "ext2";
1859     char device[] = "/dev/sda1";
1860     int r;
1861     suppress_error = 0;
1862     r = guestfs_mkfs (g, fstype, device);
1863     if (r == -1)
1864       return -1;
1865   }
1866   {
1867     char device[] = "/dev/sda1";
1868     char mountpoint[] = "/";
1869     int r;
1870     suppress_error = 0;
1871     r = guestfs_mount (g, device, mountpoint);
1872     if (r == -1)
1873       return -1;
1874   }
1875   /* TestRun for scrub_file (0) */
1876   {
1877     char path[] = "/file";
1878     char content[] = "content";
1879     int r;
1880     suppress_error = 0;
1881     r = guestfs_write_file (g, path, content, 0);
1882     if (r == -1)
1883       return -1;
1884   }
1885   {
1886     char file[] = "/file";
1887     int r;
1888     suppress_error = 0;
1889     r = guestfs_scrub_file (g, file);
1890     if (r == -1)
1891       return -1;
1892   }
1893   return 0;
1894 }
1895
1896 static int test_scrub_device_0_skip (void)
1897 {
1898   const char *str;
1899
1900   str = getenv ("TEST_ONLY");
1901   if (str)
1902     return strstr (str, "scrub_device") == NULL;
1903   str = getenv ("SKIP_TEST_SCRUB_DEVICE_0");
1904   if (str && strcmp (str, "1") == 0) return 1;
1905   str = getenv ("SKIP_TEST_SCRUB_DEVICE");
1906   if (str && strcmp (str, "1") == 0) return 1;
1907   return 0;
1908 }
1909
1910 static int test_scrub_device_0 (void)
1911 {
1912   if (test_scrub_device_0_skip ()) {
1913     printf ("%s skipped (reason: environment variable set)\n", "test_scrub_device_0");
1914     return 0;
1915   }
1916
1917   /* InitNone|InitEmpty for test_scrub_device_0 */
1918   {
1919     char device[] = "/dev/sda";
1920     int r;
1921     suppress_error = 0;
1922     r = guestfs_blockdev_setrw (g, device);
1923     if (r == -1)
1924       return -1;
1925   }
1926   {
1927     int r;
1928     suppress_error = 0;
1929     r = guestfs_umount_all (g);
1930     if (r == -1)
1931       return -1;
1932   }
1933   {
1934     int r;
1935     suppress_error = 0;
1936     r = guestfs_lvm_remove_all (g);
1937     if (r == -1)
1938       return -1;
1939   }
1940   /* TestRun for scrub_device (0) */
1941   {
1942     char device[] = "/dev/sdc";
1943     int r;
1944     suppress_error = 0;
1945     r = guestfs_scrub_device (g, device);
1946     if (r == -1)
1947       return -1;
1948   }
1949   return 0;
1950 }
1951
1952 static int test_glob_expand_0_skip (void)
1953 {
1954   const char *str;
1955
1956   str = getenv ("TEST_ONLY");
1957   if (str)
1958     return strstr (str, "glob_expand") == NULL;
1959   str = getenv ("SKIP_TEST_GLOB_EXPAND_0");
1960   if (str && strcmp (str, "1") == 0) return 1;
1961   str = getenv ("SKIP_TEST_GLOB_EXPAND");
1962   if (str && strcmp (str, "1") == 0) return 1;
1963   return 0;
1964 }
1965
1966 static int test_glob_expand_0 (void)
1967 {
1968   if (test_glob_expand_0_skip ()) {
1969     printf ("%s skipped (reason: environment variable set)\n", "test_glob_expand_0");
1970     return 0;
1971   }
1972
1973   /* InitBasicFS for test_glob_expand_0: create ext2 on /dev/sda1 */
1974   {
1975     char device[] = "/dev/sda";
1976     int r;
1977     suppress_error = 0;
1978     r = guestfs_blockdev_setrw (g, device);
1979     if (r == -1)
1980       return -1;
1981   }
1982   {
1983     int r;
1984     suppress_error = 0;
1985     r = guestfs_umount_all (g);
1986     if (r == -1)
1987       return -1;
1988   }
1989   {
1990     int r;
1991     suppress_error = 0;
1992     r = guestfs_lvm_remove_all (g);
1993     if (r == -1)
1994       return -1;
1995   }
1996   {
1997     char device[] = "/dev/sda";
1998     char lines_0[] = ",";
1999     char *lines[] = {
2000       lines_0,
2001       NULL
2002     };
2003     int r;
2004     suppress_error = 0;
2005     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2006     if (r == -1)
2007       return -1;
2008   }
2009   {
2010     char fstype[] = "ext2";
2011     char device[] = "/dev/sda1";
2012     int r;
2013     suppress_error = 0;
2014     r = guestfs_mkfs (g, fstype, device);
2015     if (r == -1)
2016       return -1;
2017   }
2018   {
2019     char device[] = "/dev/sda1";
2020     char mountpoint[] = "/";
2021     int r;
2022     suppress_error = 0;
2023     r = guestfs_mount (g, device, mountpoint);
2024     if (r == -1)
2025       return -1;
2026   }
2027   /* TestOutputList for glob_expand (0) */
2028   {
2029     char path[] = "/a/b/c";
2030     int r;
2031     suppress_error = 0;
2032     r = guestfs_mkdir_p (g, path);
2033     if (r == -1)
2034       return -1;
2035   }
2036   {
2037     char path[] = "/a/b/c/d";
2038     int r;
2039     suppress_error = 0;
2040     r = guestfs_touch (g, path);
2041     if (r == -1)
2042       return -1;
2043   }
2044   {
2045     char path[] = "/a/b/c/e";
2046     int r;
2047     suppress_error = 0;
2048     r = guestfs_touch (g, path);
2049     if (r == -1)
2050       return -1;
2051   }
2052   {
2053     char pattern[] = "/a/b/c/*";
2054     char **r;
2055     int i;
2056     suppress_error = 0;
2057     r = guestfs_glob_expand (g, pattern);
2058     if (r == NULL)
2059       return -1;
2060     if (!r[0]) {
2061       fprintf (stderr, "test_glob_expand_0: short list returned from command\n");
2062       print_strings (r);
2063       return -1;
2064     }
2065     {
2066       char expected[] = "/a/b/c/d";
2067       if (strcmp (r[0], expected) != 0) {
2068         fprintf (stderr, "test_glob_expand_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
2069         return -1;
2070       }
2071     }
2072     if (!r[1]) {
2073       fprintf (stderr, "test_glob_expand_0: short list returned from command\n");
2074       print_strings (r);
2075       return -1;
2076     }
2077     {
2078       char expected[] = "/a/b/c/e";
2079       if (strcmp (r[1], expected) != 0) {
2080         fprintf (stderr, "test_glob_expand_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
2081         return -1;
2082       }
2083     }
2084     if (r[2] != NULL) {
2085       fprintf (stderr, "test_glob_expand_0: extra elements returned from command\n");
2086       print_strings (r);
2087       return -1;
2088     }
2089     for (i = 0; r[i] != NULL; ++i)
2090       free (r[i]);
2091     free (r);
2092   }
2093   return 0;
2094 }
2095
2096 static int test_glob_expand_1_skip (void)
2097 {
2098   const char *str;
2099
2100   str = getenv ("TEST_ONLY");
2101   if (str)
2102     return strstr (str, "glob_expand") == NULL;
2103   str = getenv ("SKIP_TEST_GLOB_EXPAND_1");
2104   if (str && strcmp (str, "1") == 0) return 1;
2105   str = getenv ("SKIP_TEST_GLOB_EXPAND");
2106   if (str && strcmp (str, "1") == 0) return 1;
2107   return 0;
2108 }
2109
2110 static int test_glob_expand_1 (void)
2111 {
2112   if (test_glob_expand_1_skip ()) {
2113     printf ("%s skipped (reason: environment variable set)\n", "test_glob_expand_1");
2114     return 0;
2115   }
2116
2117   /* InitBasicFS for test_glob_expand_1: create ext2 on /dev/sda1 */
2118   {
2119     char device[] = "/dev/sda";
2120     int r;
2121     suppress_error = 0;
2122     r = guestfs_blockdev_setrw (g, device);
2123     if (r == -1)
2124       return -1;
2125   }
2126   {
2127     int r;
2128     suppress_error = 0;
2129     r = guestfs_umount_all (g);
2130     if (r == -1)
2131       return -1;
2132   }
2133   {
2134     int r;
2135     suppress_error = 0;
2136     r = guestfs_lvm_remove_all (g);
2137     if (r == -1)
2138       return -1;
2139   }
2140   {
2141     char device[] = "/dev/sda";
2142     char lines_0[] = ",";
2143     char *lines[] = {
2144       lines_0,
2145       NULL
2146     };
2147     int r;
2148     suppress_error = 0;
2149     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2150     if (r == -1)
2151       return -1;
2152   }
2153   {
2154     char fstype[] = "ext2";
2155     char device[] = "/dev/sda1";
2156     int r;
2157     suppress_error = 0;
2158     r = guestfs_mkfs (g, fstype, device);
2159     if (r == -1)
2160       return -1;
2161   }
2162   {
2163     char device[] = "/dev/sda1";
2164     char mountpoint[] = "/";
2165     int r;
2166     suppress_error = 0;
2167     r = guestfs_mount (g, device, mountpoint);
2168     if (r == -1)
2169       return -1;
2170   }
2171   /* TestOutputList for glob_expand (1) */
2172   {
2173     char path[] = "/a/b/c";
2174     int r;
2175     suppress_error = 0;
2176     r = guestfs_mkdir_p (g, path);
2177     if (r == -1)
2178       return -1;
2179   }
2180   {
2181     char path[] = "/a/b/c/d";
2182     int r;
2183     suppress_error = 0;
2184     r = guestfs_touch (g, path);
2185     if (r == -1)
2186       return -1;
2187   }
2188   {
2189     char path[] = "/a/b/c/e";
2190     int r;
2191     suppress_error = 0;
2192     r = guestfs_touch (g, path);
2193     if (r == -1)
2194       return -1;
2195   }
2196   {
2197     char pattern[] = "/a/*/c/*";
2198     char **r;
2199     int i;
2200     suppress_error = 0;
2201     r = guestfs_glob_expand (g, pattern);
2202     if (r == NULL)
2203       return -1;
2204     if (!r[0]) {
2205       fprintf (stderr, "test_glob_expand_1: short list returned from command\n");
2206       print_strings (r);
2207       return -1;
2208     }
2209     {
2210       char expected[] = "/a/b/c/d";
2211       if (strcmp (r[0], expected) != 0) {
2212         fprintf (stderr, "test_glob_expand_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
2213         return -1;
2214       }
2215     }
2216     if (!r[1]) {
2217       fprintf (stderr, "test_glob_expand_1: short list returned from command\n");
2218       print_strings (r);
2219       return -1;
2220     }
2221     {
2222       char expected[] = "/a/b/c/e";
2223       if (strcmp (r[1], expected) != 0) {
2224         fprintf (stderr, "test_glob_expand_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
2225         return -1;
2226       }
2227     }
2228     if (r[2] != NULL) {
2229       fprintf (stderr, "test_glob_expand_1: extra elements returned from command\n");
2230       print_strings (r);
2231       return -1;
2232     }
2233     for (i = 0; r[i] != NULL; ++i)
2234       free (r[i]);
2235     free (r);
2236   }
2237   return 0;
2238 }
2239
2240 static int test_glob_expand_2_skip (void)
2241 {
2242   const char *str;
2243
2244   str = getenv ("TEST_ONLY");
2245   if (str)
2246     return strstr (str, "glob_expand") == NULL;
2247   str = getenv ("SKIP_TEST_GLOB_EXPAND_2");
2248   if (str && strcmp (str, "1") == 0) return 1;
2249   str = getenv ("SKIP_TEST_GLOB_EXPAND");
2250   if (str && strcmp (str, "1") == 0) return 1;
2251   return 0;
2252 }
2253
2254 static int test_glob_expand_2 (void)
2255 {
2256   if (test_glob_expand_2_skip ()) {
2257     printf ("%s skipped (reason: environment variable set)\n", "test_glob_expand_2");
2258     return 0;
2259   }
2260
2261   /* InitBasicFS for test_glob_expand_2: create ext2 on /dev/sda1 */
2262   {
2263     char device[] = "/dev/sda";
2264     int r;
2265     suppress_error = 0;
2266     r = guestfs_blockdev_setrw (g, device);
2267     if (r == -1)
2268       return -1;
2269   }
2270   {
2271     int r;
2272     suppress_error = 0;
2273     r = guestfs_umount_all (g);
2274     if (r == -1)
2275       return -1;
2276   }
2277   {
2278     int r;
2279     suppress_error = 0;
2280     r = guestfs_lvm_remove_all (g);
2281     if (r == -1)
2282       return -1;
2283   }
2284   {
2285     char device[] = "/dev/sda";
2286     char lines_0[] = ",";
2287     char *lines[] = {
2288       lines_0,
2289       NULL
2290     };
2291     int r;
2292     suppress_error = 0;
2293     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2294     if (r == -1)
2295       return -1;
2296   }
2297   {
2298     char fstype[] = "ext2";
2299     char device[] = "/dev/sda1";
2300     int r;
2301     suppress_error = 0;
2302     r = guestfs_mkfs (g, fstype, device);
2303     if (r == -1)
2304       return -1;
2305   }
2306   {
2307     char device[] = "/dev/sda1";
2308     char mountpoint[] = "/";
2309     int r;
2310     suppress_error = 0;
2311     r = guestfs_mount (g, device, mountpoint);
2312     if (r == -1)
2313       return -1;
2314   }
2315   /* TestOutputList for glob_expand (2) */
2316   {
2317     char path[] = "/a/b/c";
2318     int r;
2319     suppress_error = 0;
2320     r = guestfs_mkdir_p (g, path);
2321     if (r == -1)
2322       return -1;
2323   }
2324   {
2325     char path[] = "/a/b/c/d";
2326     int r;
2327     suppress_error = 0;
2328     r = guestfs_touch (g, path);
2329     if (r == -1)
2330       return -1;
2331   }
2332   {
2333     char path[] = "/a/b/c/e";
2334     int r;
2335     suppress_error = 0;
2336     r = guestfs_touch (g, path);
2337     if (r == -1)
2338       return -1;
2339   }
2340   {
2341     char pattern[] = "/a/*/x/*";
2342     char **r;
2343     int i;
2344     suppress_error = 0;
2345     r = guestfs_glob_expand (g, pattern);
2346     if (r == NULL)
2347       return -1;
2348     if (r[0] != NULL) {
2349       fprintf (stderr, "test_glob_expand_2: extra elements returned from command\n");
2350       print_strings (r);
2351       return -1;
2352     }
2353     for (i = 0; r[i] != NULL; ++i)
2354       free (r[i]);
2355     free (r);
2356   }
2357   return 0;
2358 }
2359
2360 static int test_ntfs_3g_probe_0_skip (void)
2361 {
2362   const char *str;
2363
2364   str = getenv ("TEST_ONLY");
2365   if (str)
2366     return strstr (str, "ntfs_3g_probe") == NULL;
2367   str = getenv ("SKIP_TEST_NTFS_3G_PROBE_0");
2368   if (str && strcmp (str, "1") == 0) return 1;
2369   str = getenv ("SKIP_TEST_NTFS_3G_PROBE");
2370   if (str && strcmp (str, "1") == 0) return 1;
2371   return 0;
2372 }
2373
2374 static int test_ntfs_3g_probe_0 (void)
2375 {
2376   if (test_ntfs_3g_probe_0_skip ()) {
2377     printf ("%s skipped (reason: environment variable set)\n", "test_ntfs_3g_probe_0");
2378     return 0;
2379   }
2380
2381   /* InitNone|InitEmpty for test_ntfs_3g_probe_0 */
2382   {
2383     char device[] = "/dev/sda";
2384     int r;
2385     suppress_error = 0;
2386     r = guestfs_blockdev_setrw (g, device);
2387     if (r == -1)
2388       return -1;
2389   }
2390   {
2391     int r;
2392     suppress_error = 0;
2393     r = guestfs_umount_all (g);
2394     if (r == -1)
2395       return -1;
2396   }
2397   {
2398     int r;
2399     suppress_error = 0;
2400     r = guestfs_lvm_remove_all (g);
2401     if (r == -1)
2402       return -1;
2403   }
2404   /* TestOutputInt for ntfs_3g_probe (0) */
2405   {
2406     char device[] = "/dev/sda";
2407     char lines_0[] = ",";
2408     char *lines[] = {
2409       lines_0,
2410       NULL
2411     };
2412     int r;
2413     suppress_error = 0;
2414     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2415     if (r == -1)
2416       return -1;
2417   }
2418   {
2419     char fstype[] = "ntfs";
2420     char device[] = "/dev/sda1";
2421     int r;
2422     suppress_error = 0;
2423     r = guestfs_mkfs (g, fstype, device);
2424     if (r == -1)
2425       return -1;
2426   }
2427   {
2428     char device[] = "/dev/sda1";
2429     int r;
2430     suppress_error = 0;
2431     r = guestfs_ntfs_3g_probe (g, 1, device);
2432     if (r == -1)
2433       return -1;
2434     if (r != 0) {
2435       fprintf (stderr, "test_ntfs_3g_probe_0: expected 0 but got %d\n",               (int) r);
2436       return -1;
2437     }
2438   }
2439   return 0;
2440 }
2441
2442 static int test_ntfs_3g_probe_1_skip (void)
2443 {
2444   const char *str;
2445
2446   str = getenv ("TEST_ONLY");
2447   if (str)
2448     return strstr (str, "ntfs_3g_probe") == NULL;
2449   str = getenv ("SKIP_TEST_NTFS_3G_PROBE_1");
2450   if (str && strcmp (str, "1") == 0) return 1;
2451   str = getenv ("SKIP_TEST_NTFS_3G_PROBE");
2452   if (str && strcmp (str, "1") == 0) return 1;
2453   return 0;
2454 }
2455
2456 static int test_ntfs_3g_probe_1 (void)
2457 {
2458   if (test_ntfs_3g_probe_1_skip ()) {
2459     printf ("%s skipped (reason: environment variable set)\n", "test_ntfs_3g_probe_1");
2460     return 0;
2461   }
2462
2463   /* InitNone|InitEmpty for test_ntfs_3g_probe_1 */
2464   {
2465     char device[] = "/dev/sda";
2466     int r;
2467     suppress_error = 0;
2468     r = guestfs_blockdev_setrw (g, device);
2469     if (r == -1)
2470       return -1;
2471   }
2472   {
2473     int r;
2474     suppress_error = 0;
2475     r = guestfs_umount_all (g);
2476     if (r == -1)
2477       return -1;
2478   }
2479   {
2480     int r;
2481     suppress_error = 0;
2482     r = guestfs_lvm_remove_all (g);
2483     if (r == -1)
2484       return -1;
2485   }
2486   /* TestOutputInt for ntfs_3g_probe (1) */
2487   {
2488     char device[] = "/dev/sda";
2489     char lines_0[] = ",";
2490     char *lines[] = {
2491       lines_0,
2492       NULL
2493     };
2494     int r;
2495     suppress_error = 0;
2496     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2497     if (r == -1)
2498       return -1;
2499   }
2500   {
2501     char fstype[] = "ext2";
2502     char device[] = "/dev/sda1";
2503     int r;
2504     suppress_error = 0;
2505     r = guestfs_mkfs (g, fstype, device);
2506     if (r == -1)
2507       return -1;
2508   }
2509   {
2510     char device[] = "/dev/sda1";
2511     int r;
2512     suppress_error = 0;
2513     r = guestfs_ntfs_3g_probe (g, 1, device);
2514     if (r == -1)
2515       return -1;
2516     if (r != 12) {
2517       fprintf (stderr, "test_ntfs_3g_probe_1: expected 12 but got %d\n",               (int) r);
2518       return -1;
2519     }
2520   }
2521   return 0;
2522 }
2523
2524 static int test_sleep_0_skip (void)
2525 {
2526   const char *str;
2527
2528   str = getenv ("TEST_ONLY");
2529   if (str)
2530     return strstr (str, "sleep") == NULL;
2531   str = getenv ("SKIP_TEST_SLEEP_0");
2532   if (str && strcmp (str, "1") == 0) return 1;
2533   str = getenv ("SKIP_TEST_SLEEP");
2534   if (str && strcmp (str, "1") == 0) return 1;
2535   return 0;
2536 }
2537
2538 static int test_sleep_0 (void)
2539 {
2540   if (test_sleep_0_skip ()) {
2541     printf ("%s skipped (reason: environment variable set)\n", "test_sleep_0");
2542     return 0;
2543   }
2544
2545   /* InitNone|InitEmpty for test_sleep_0 */
2546   {
2547     char device[] = "/dev/sda";
2548     int r;
2549     suppress_error = 0;
2550     r = guestfs_blockdev_setrw (g, device);
2551     if (r == -1)
2552       return -1;
2553   }
2554   {
2555     int r;
2556     suppress_error = 0;
2557     r = guestfs_umount_all (g);
2558     if (r == -1)
2559       return -1;
2560   }
2561   {
2562     int r;
2563     suppress_error = 0;
2564     r = guestfs_lvm_remove_all (g);
2565     if (r == -1)
2566       return -1;
2567   }
2568   /* TestRun for sleep (0) */
2569   {
2570     int r;
2571     suppress_error = 0;
2572     r = guestfs_sleep (g, 1);
2573     if (r == -1)
2574       return -1;
2575   }
2576   return 0;
2577 }
2578
2579 static int test_find_0_skip (void)
2580 {
2581   const char *str;
2582
2583   str = getenv ("TEST_ONLY");
2584   if (str)
2585     return strstr (str, "find") == NULL;
2586   str = getenv ("SKIP_TEST_FIND_0");
2587   if (str && strcmp (str, "1") == 0) return 1;
2588   str = getenv ("SKIP_TEST_FIND");
2589   if (str && strcmp (str, "1") == 0) return 1;
2590   return 0;
2591 }
2592
2593 static int test_find_0 (void)
2594 {
2595   if (test_find_0_skip ()) {
2596     printf ("%s skipped (reason: environment variable set)\n", "test_find_0");
2597     return 0;
2598   }
2599
2600   /* InitBasicFS for test_find_0: create ext2 on /dev/sda1 */
2601   {
2602     char device[] = "/dev/sda";
2603     int r;
2604     suppress_error = 0;
2605     r = guestfs_blockdev_setrw (g, device);
2606     if (r == -1)
2607       return -1;
2608   }
2609   {
2610     int r;
2611     suppress_error = 0;
2612     r = guestfs_umount_all (g);
2613     if (r == -1)
2614       return -1;
2615   }
2616   {
2617     int r;
2618     suppress_error = 0;
2619     r = guestfs_lvm_remove_all (g);
2620     if (r == -1)
2621       return -1;
2622   }
2623   {
2624     char device[] = "/dev/sda";
2625     char lines_0[] = ",";
2626     char *lines[] = {
2627       lines_0,
2628       NULL
2629     };
2630     int r;
2631     suppress_error = 0;
2632     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2633     if (r == -1)
2634       return -1;
2635   }
2636   {
2637     char fstype[] = "ext2";
2638     char device[] = "/dev/sda1";
2639     int r;
2640     suppress_error = 0;
2641     r = guestfs_mkfs (g, fstype, device);
2642     if (r == -1)
2643       return -1;
2644   }
2645   {
2646     char device[] = "/dev/sda1";
2647     char mountpoint[] = "/";
2648     int r;
2649     suppress_error = 0;
2650     r = guestfs_mount (g, device, mountpoint);
2651     if (r == -1)
2652       return -1;
2653   }
2654   /* TestOutputList for find (0) */
2655   {
2656     char directory[] = "/";
2657     char **r;
2658     int i;
2659     suppress_error = 0;
2660     r = guestfs_find (g, directory);
2661     if (r == NULL)
2662       return -1;
2663     if (!r[0]) {
2664       fprintf (stderr, "test_find_0: short list returned from command\n");
2665       print_strings (r);
2666       return -1;
2667     }
2668     {
2669       char expected[] = "lost+found";
2670       if (strcmp (r[0], expected) != 0) {
2671         fprintf (stderr, "test_find_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
2672         return -1;
2673       }
2674     }
2675     if (r[1] != NULL) {
2676       fprintf (stderr, "test_find_0: extra elements returned from command\n");
2677       print_strings (r);
2678       return -1;
2679     }
2680     for (i = 0; r[i] != NULL; ++i)
2681       free (r[i]);
2682     free (r);
2683   }
2684   return 0;
2685 }
2686
2687 static int test_find_1_skip (void)
2688 {
2689   const char *str;
2690
2691   str = getenv ("TEST_ONLY");
2692   if (str)
2693     return strstr (str, "find") == NULL;
2694   str = getenv ("SKIP_TEST_FIND_1");
2695   if (str && strcmp (str, "1") == 0) return 1;
2696   str = getenv ("SKIP_TEST_FIND");
2697   if (str && strcmp (str, "1") == 0) return 1;
2698   return 0;
2699 }
2700
2701 static int test_find_1 (void)
2702 {
2703   if (test_find_1_skip ()) {
2704     printf ("%s skipped (reason: environment variable set)\n", "test_find_1");
2705     return 0;
2706   }
2707
2708   /* InitBasicFS for test_find_1: create ext2 on /dev/sda1 */
2709   {
2710     char device[] = "/dev/sda";
2711     int r;
2712     suppress_error = 0;
2713     r = guestfs_blockdev_setrw (g, device);
2714     if (r == -1)
2715       return -1;
2716   }
2717   {
2718     int r;
2719     suppress_error = 0;
2720     r = guestfs_umount_all (g);
2721     if (r == -1)
2722       return -1;
2723   }
2724   {
2725     int r;
2726     suppress_error = 0;
2727     r = guestfs_lvm_remove_all (g);
2728     if (r == -1)
2729       return -1;
2730   }
2731   {
2732     char device[] = "/dev/sda";
2733     char lines_0[] = ",";
2734     char *lines[] = {
2735       lines_0,
2736       NULL
2737     };
2738     int r;
2739     suppress_error = 0;
2740     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2741     if (r == -1)
2742       return -1;
2743   }
2744   {
2745     char fstype[] = "ext2";
2746     char device[] = "/dev/sda1";
2747     int r;
2748     suppress_error = 0;
2749     r = guestfs_mkfs (g, fstype, device);
2750     if (r == -1)
2751       return -1;
2752   }
2753   {
2754     char device[] = "/dev/sda1";
2755     char mountpoint[] = "/";
2756     int r;
2757     suppress_error = 0;
2758     r = guestfs_mount (g, device, mountpoint);
2759     if (r == -1)
2760       return -1;
2761   }
2762   /* TestOutputList for find (1) */
2763   {
2764     char path[] = "/a";
2765     int r;
2766     suppress_error = 0;
2767     r = guestfs_touch (g, path);
2768     if (r == -1)
2769       return -1;
2770   }
2771   {
2772     char path[] = "/b";
2773     int r;
2774     suppress_error = 0;
2775     r = guestfs_mkdir (g, path);
2776     if (r == -1)
2777       return -1;
2778   }
2779   {
2780     char path[] = "/b/c";
2781     int r;
2782     suppress_error = 0;
2783     r = guestfs_touch (g, path);
2784     if (r == -1)
2785       return -1;
2786   }
2787   {
2788     char directory[] = "/";
2789     char **r;
2790     int i;
2791     suppress_error = 0;
2792     r = guestfs_find (g, directory);
2793     if (r == NULL)
2794       return -1;
2795     if (!r[0]) {
2796       fprintf (stderr, "test_find_1: short list returned from command\n");
2797       print_strings (r);
2798       return -1;
2799     }
2800     {
2801       char expected[] = "a";
2802       if (strcmp (r[0], expected) != 0) {
2803         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
2804         return -1;
2805       }
2806     }
2807     if (!r[1]) {
2808       fprintf (stderr, "test_find_1: short list returned from command\n");
2809       print_strings (r);
2810       return -1;
2811     }
2812     {
2813       char expected[] = "b";
2814       if (strcmp (r[1], expected) != 0) {
2815         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
2816         return -1;
2817       }
2818     }
2819     if (!r[2]) {
2820       fprintf (stderr, "test_find_1: short list returned from command\n");
2821       print_strings (r);
2822       return -1;
2823     }
2824     {
2825       char expected[] = "b/c";
2826       if (strcmp (r[2], expected) != 0) {
2827         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
2828         return -1;
2829       }
2830     }
2831     if (!r[3]) {
2832       fprintf (stderr, "test_find_1: short list returned from command\n");
2833       print_strings (r);
2834       return -1;
2835     }
2836     {
2837       char expected[] = "lost+found";
2838       if (strcmp (r[3], expected) != 0) {
2839         fprintf (stderr, "test_find_1: expected \"%s\" but got \"%s\"\n", expected, r[3]);
2840         return -1;
2841       }
2842     }
2843     if (r[4] != NULL) {
2844       fprintf (stderr, "test_find_1: extra elements returned from command\n");
2845       print_strings (r);
2846       return -1;
2847     }
2848     for (i = 0; r[i] != NULL; ++i)
2849       free (r[i]);
2850     free (r);
2851   }
2852   return 0;
2853 }
2854
2855 static int test_find_2_skip (void)
2856 {
2857   const char *str;
2858
2859   str = getenv ("TEST_ONLY");
2860   if (str)
2861     return strstr (str, "find") == NULL;
2862   str = getenv ("SKIP_TEST_FIND_2");
2863   if (str && strcmp (str, "1") == 0) return 1;
2864   str = getenv ("SKIP_TEST_FIND");
2865   if (str && strcmp (str, "1") == 0) return 1;
2866   return 0;
2867 }
2868
2869 static int test_find_2 (void)
2870 {
2871   if (test_find_2_skip ()) {
2872     printf ("%s skipped (reason: environment variable set)\n", "test_find_2");
2873     return 0;
2874   }
2875
2876   /* InitBasicFS for test_find_2: create ext2 on /dev/sda1 */
2877   {
2878     char device[] = "/dev/sda";
2879     int r;
2880     suppress_error = 0;
2881     r = guestfs_blockdev_setrw (g, device);
2882     if (r == -1)
2883       return -1;
2884   }
2885   {
2886     int r;
2887     suppress_error = 0;
2888     r = guestfs_umount_all (g);
2889     if (r == -1)
2890       return -1;
2891   }
2892   {
2893     int r;
2894     suppress_error = 0;
2895     r = guestfs_lvm_remove_all (g);
2896     if (r == -1)
2897       return -1;
2898   }
2899   {
2900     char device[] = "/dev/sda";
2901     char lines_0[] = ",";
2902     char *lines[] = {
2903       lines_0,
2904       NULL
2905     };
2906     int r;
2907     suppress_error = 0;
2908     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
2909     if (r == -1)
2910       return -1;
2911   }
2912   {
2913     char fstype[] = "ext2";
2914     char device[] = "/dev/sda1";
2915     int r;
2916     suppress_error = 0;
2917     r = guestfs_mkfs (g, fstype, device);
2918     if (r == -1)
2919       return -1;
2920   }
2921   {
2922     char device[] = "/dev/sda1";
2923     char mountpoint[] = "/";
2924     int r;
2925     suppress_error = 0;
2926     r = guestfs_mount (g, device, mountpoint);
2927     if (r == -1)
2928       return -1;
2929   }
2930   /* TestOutputList for find (2) */
2931   {
2932     char path[] = "/a/b/c";
2933     int r;
2934     suppress_error = 0;
2935     r = guestfs_mkdir_p (g, path);
2936     if (r == -1)
2937       return -1;
2938   }
2939   {
2940     char path[] = "/a/b/c/d";
2941     int r;
2942     suppress_error = 0;
2943     r = guestfs_touch (g, path);
2944     if (r == -1)
2945       return -1;
2946   }
2947   {
2948     char directory[] = "/a/b/";
2949     char **r;
2950     int i;
2951     suppress_error = 0;
2952     r = guestfs_find (g, directory);
2953     if (r == NULL)
2954       return -1;
2955     if (!r[0]) {
2956       fprintf (stderr, "test_find_2: short list returned from command\n");
2957       print_strings (r);
2958       return -1;
2959     }
2960     {
2961       char expected[] = "c";
2962       if (strcmp (r[0], expected) != 0) {
2963         fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
2964         return -1;
2965       }
2966     }
2967     if (!r[1]) {
2968       fprintf (stderr, "test_find_2: short list returned from command\n");
2969       print_strings (r);
2970       return -1;
2971     }
2972     {
2973       char expected[] = "c/d";
2974       if (strcmp (r[1], expected) != 0) {
2975         fprintf (stderr, "test_find_2: expected \"%s\" but got \"%s\"\n", expected, r[1]);
2976         return -1;
2977       }
2978     }
2979     if (r[2] != NULL) {
2980       fprintf (stderr, "test_find_2: extra elements returned from command\n");
2981       print_strings (r);
2982       return -1;
2983     }
2984     for (i = 0; r[i] != NULL; ++i)
2985       free (r[i]);
2986     free (r);
2987   }
2988   return 0;
2989 }
2990
2991 static int test_lvresize_0_skip (void)
2992 {
2993   const char *str;
2994
2995   str = getenv ("TEST_ONLY");
2996   if (str)
2997     return strstr (str, "lvresize") == NULL;
2998   str = getenv ("SKIP_TEST_LVRESIZE_0");
2999   if (str && strcmp (str, "1") == 0) return 1;
3000   str = getenv ("SKIP_TEST_LVRESIZE");
3001   if (str && strcmp (str, "1") == 0) return 1;
3002   return 0;
3003 }
3004
3005 static int test_lvresize_0 (void)
3006 {
3007   if (test_lvresize_0_skip ()) {
3008     printf ("%s skipped (reason: environment variable set)\n", "test_lvresize_0");
3009     return 0;
3010   }
3011
3012   /* InitNone|InitEmpty for test_lvresize_0 */
3013   {
3014     char device[] = "/dev/sda";
3015     int r;
3016     suppress_error = 0;
3017     r = guestfs_blockdev_setrw (g, device);
3018     if (r == -1)
3019       return -1;
3020   }
3021   {
3022     int r;
3023     suppress_error = 0;
3024     r = guestfs_umount_all (g);
3025     if (r == -1)
3026       return -1;
3027   }
3028   {
3029     int r;
3030     suppress_error = 0;
3031     r = guestfs_lvm_remove_all (g);
3032     if (r == -1)
3033       return -1;
3034   }
3035   /* TestOutput for lvresize (0) */
3036   char expected[] = "test content";
3037   {
3038     char device[] = "/dev/sda";
3039     char lines_0[] = ",";
3040     char *lines[] = {
3041       lines_0,
3042       NULL
3043     };
3044     int r;
3045     suppress_error = 0;
3046     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3047     if (r == -1)
3048       return -1;
3049   }
3050   {
3051     char device[] = "/dev/sda1";
3052     int r;
3053     suppress_error = 0;
3054     r = guestfs_pvcreate (g, device);
3055     if (r == -1)
3056       return -1;
3057   }
3058   {
3059     char volgroup[] = "VG";
3060     char physvols_0[] = "/dev/sda1";
3061     char *physvols[] = {
3062       physvols_0,
3063       NULL
3064     };
3065     int r;
3066     suppress_error = 0;
3067     r = guestfs_vgcreate (g, volgroup, physvols);
3068     if (r == -1)
3069       return -1;
3070   }
3071   {
3072     char logvol[] = "LV";
3073     char volgroup[] = "VG";
3074     int r;
3075     suppress_error = 0;
3076     r = guestfs_lvcreate (g, logvol, volgroup, 10);
3077     if (r == -1)
3078       return -1;
3079   }
3080   {
3081     char fstype[] = "ext2";
3082     char device[] = "/dev/VG/LV";
3083     int r;
3084     suppress_error = 0;
3085     r = guestfs_mkfs (g, fstype, device);
3086     if (r == -1)
3087       return -1;
3088   }
3089   {
3090     char device[] = "/dev/VG/LV";
3091     char mountpoint[] = "/";
3092     int r;
3093     suppress_error = 0;
3094     r = guestfs_mount (g, device, mountpoint);
3095     if (r == -1)
3096       return -1;
3097   }
3098   {
3099     char path[] = "/new";
3100     char content[] = "test content";
3101     int r;
3102     suppress_error = 0;
3103     r = guestfs_write_file (g, path, content, 0);
3104     if (r == -1)
3105       return -1;
3106   }
3107   {
3108     char pathordevice[] = "/";
3109     int r;
3110     suppress_error = 0;
3111     r = guestfs_umount (g, pathordevice);
3112     if (r == -1)
3113       return -1;
3114   }
3115   {
3116     char device[] = "/dev/VG/LV";
3117     int r;
3118     suppress_error = 0;
3119     r = guestfs_lvresize (g, device, 20);
3120     if (r == -1)
3121       return -1;
3122   }
3123   {
3124     char device[] = "/dev/VG/LV";
3125     int r;
3126     suppress_error = 0;
3127     r = guestfs_e2fsck_f (g, device);
3128     if (r == -1)
3129       return -1;
3130   }
3131   {
3132     char device[] = "/dev/VG/LV";
3133     int r;
3134     suppress_error = 0;
3135     r = guestfs_resize2fs (g, device);
3136     if (r == -1)
3137       return -1;
3138   }
3139   {
3140     char device[] = "/dev/VG/LV";
3141     char mountpoint[] = "/";
3142     int r;
3143     suppress_error = 0;
3144     r = guestfs_mount (g, device, mountpoint);
3145     if (r == -1)
3146       return -1;
3147   }
3148   {
3149     char path[] = "/new";
3150     char *r;
3151     suppress_error = 0;
3152     r = guestfs_cat (g, path);
3153     if (r == NULL)
3154       return -1;
3155     if (strcmp (r, expected) != 0) {
3156       fprintf (stderr, "test_lvresize_0: expected \"%s\" but got \"%s\"\n", expected, r);
3157       return -1;
3158     }
3159     free (r);
3160   }
3161   return 0;
3162 }
3163
3164 static int test_zerofree_0_skip (void)
3165 {
3166   const char *str;
3167
3168   str = getenv ("TEST_ONLY");
3169   if (str)
3170     return strstr (str, "zerofree") == NULL;
3171   str = getenv ("SKIP_TEST_ZEROFREE_0");
3172   if (str && strcmp (str, "1") == 0) return 1;
3173   str = getenv ("SKIP_TEST_ZEROFREE");
3174   if (str && strcmp (str, "1") == 0) return 1;
3175   return 0;
3176 }
3177
3178 static int test_zerofree_0 (void)
3179 {
3180   if (test_zerofree_0_skip ()) {
3181     printf ("%s skipped (reason: environment variable set)\n", "test_zerofree_0");
3182     return 0;
3183   }
3184
3185   /* InitNone|InitEmpty for test_zerofree_0 */
3186   {
3187     char device[] = "/dev/sda";
3188     int r;
3189     suppress_error = 0;
3190     r = guestfs_blockdev_setrw (g, device);
3191     if (r == -1)
3192       return -1;
3193   }
3194   {
3195     int r;
3196     suppress_error = 0;
3197     r = guestfs_umount_all (g);
3198     if (r == -1)
3199       return -1;
3200   }
3201   {
3202     int r;
3203     suppress_error = 0;
3204     r = guestfs_lvm_remove_all (g);
3205     if (r == -1)
3206       return -1;
3207   }
3208   /* TestOutput for zerofree (0) */
3209   char expected[] = "test file";
3210   {
3211     char device[] = "/dev/sda";
3212     char lines_0[] = ",";
3213     char *lines[] = {
3214       lines_0,
3215       NULL
3216     };
3217     int r;
3218     suppress_error = 0;
3219     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3220     if (r == -1)
3221       return -1;
3222   }
3223   {
3224     char fstype[] = "ext3";
3225     char device[] = "/dev/sda1";
3226     int r;
3227     suppress_error = 0;
3228     r = guestfs_mkfs (g, fstype, device);
3229     if (r == -1)
3230       return -1;
3231   }
3232   {
3233     char device[] = "/dev/sda1";
3234     char mountpoint[] = "/";
3235     int r;
3236     suppress_error = 0;
3237     r = guestfs_mount (g, device, mountpoint);
3238     if (r == -1)
3239       return -1;
3240   }
3241   {
3242     char path[] = "/new";
3243     char content[] = "test file";
3244     int r;
3245     suppress_error = 0;
3246     r = guestfs_write_file (g, path, content, 0);
3247     if (r == -1)
3248       return -1;
3249   }
3250   {
3251     char pathordevice[] = "/dev/sda1";
3252     int r;
3253     suppress_error = 0;
3254     r = guestfs_umount (g, pathordevice);
3255     if (r == -1)
3256       return -1;
3257   }
3258   {
3259     char device[] = "/dev/sda1";
3260     int r;
3261     suppress_error = 0;
3262     r = guestfs_zerofree (g, device);
3263     if (r == -1)
3264       return -1;
3265   }
3266   {
3267     char device[] = "/dev/sda1";
3268     char mountpoint[] = "/";
3269     int r;
3270     suppress_error = 0;
3271     r = guestfs_mount (g, device, mountpoint);
3272     if (r == -1)
3273       return -1;
3274   }
3275   {
3276     char path[] = "/new";
3277     char *r;
3278     suppress_error = 0;
3279     r = guestfs_cat (g, path);
3280     if (r == NULL)
3281       return -1;
3282     if (strcmp (r, expected) != 0) {
3283       fprintf (stderr, "test_zerofree_0: expected \"%s\" but got \"%s\"\n", expected, r);
3284       return -1;
3285     }
3286     free (r);
3287   }
3288   return 0;
3289 }
3290
3291 static int test_hexdump_0_skip (void)
3292 {
3293   const char *str;
3294
3295   str = getenv ("TEST_ONLY");
3296   if (str)
3297     return strstr (str, "hexdump") == NULL;
3298   str = getenv ("SKIP_TEST_HEXDUMP_0");
3299   if (str && strcmp (str, "1") == 0) return 1;
3300   str = getenv ("SKIP_TEST_HEXDUMP");
3301   if (str && strcmp (str, "1") == 0) return 1;
3302   return 0;
3303 }
3304
3305 static int test_hexdump_0 (void)
3306 {
3307   if (test_hexdump_0_skip ()) {
3308     printf ("%s skipped (reason: environment variable set)\n", "test_hexdump_0");
3309     return 0;
3310   }
3311
3312   /* InitBasicFS for test_hexdump_0: create ext2 on /dev/sda1 */
3313   {
3314     char device[] = "/dev/sda";
3315     int r;
3316     suppress_error = 0;
3317     r = guestfs_blockdev_setrw (g, device);
3318     if (r == -1)
3319       return -1;
3320   }
3321   {
3322     int r;
3323     suppress_error = 0;
3324     r = guestfs_umount_all (g);
3325     if (r == -1)
3326       return -1;
3327   }
3328   {
3329     int r;
3330     suppress_error = 0;
3331     r = guestfs_lvm_remove_all (g);
3332     if (r == -1)
3333       return -1;
3334   }
3335   {
3336     char device[] = "/dev/sda";
3337     char lines_0[] = ",";
3338     char *lines[] = {
3339       lines_0,
3340       NULL
3341     };
3342     int r;
3343     suppress_error = 0;
3344     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3345     if (r == -1)
3346       return -1;
3347   }
3348   {
3349     char fstype[] = "ext2";
3350     char device[] = "/dev/sda1";
3351     int r;
3352     suppress_error = 0;
3353     r = guestfs_mkfs (g, fstype, device);
3354     if (r == -1)
3355       return -1;
3356   }
3357   {
3358     char device[] = "/dev/sda1";
3359     char mountpoint[] = "/";
3360     int r;
3361     suppress_error = 0;
3362     r = guestfs_mount (g, device, mountpoint);
3363     if (r == -1)
3364       return -1;
3365   }
3366   /* TestOutput for hexdump (0) */
3367   char expected[] = "00000000  68 65 6c 6c 6f 0a 77 6f  72 6c 64 0a              |hello.world.|\n0000000c\n";
3368   {
3369     char path[] = "/new";
3370     char content[] = "hello\nworld\n";
3371     int r;
3372     suppress_error = 0;
3373     r = guestfs_write_file (g, path, content, 12);
3374     if (r == -1)
3375       return -1;
3376   }
3377   {
3378     char path[] = "/new";
3379     char *r;
3380     suppress_error = 0;
3381     r = guestfs_hexdump (g, path);
3382     if (r == NULL)
3383       return -1;
3384     if (strcmp (r, expected) != 0) {
3385       fprintf (stderr, "test_hexdump_0: expected \"%s\" but got \"%s\"\n", expected, r);
3386       return -1;
3387     }
3388     free (r);
3389   }
3390   return 0;
3391 }
3392
3393 static int test_hexdump_1_skip (void)
3394 {
3395   const char *str;
3396
3397   str = getenv ("TEST_ONLY");
3398   if (str)
3399     return strstr (str, "hexdump") == NULL;
3400   str = getenv ("SKIP_TEST_HEXDUMP_1");
3401   if (str && strcmp (str, "1") == 0) return 1;
3402   str = getenv ("SKIP_TEST_HEXDUMP");
3403   if (str && strcmp (str, "1") == 0) return 1;
3404   return 0;
3405 }
3406
3407 static int test_hexdump_1 (void)
3408 {
3409   if (test_hexdump_1_skip ()) {
3410     printf ("%s skipped (reason: environment variable set)\n", "test_hexdump_1");
3411     return 0;
3412   }
3413
3414   /* InitBasicFS for test_hexdump_1: create ext2 on /dev/sda1 */
3415   {
3416     char device[] = "/dev/sda";
3417     int r;
3418     suppress_error = 0;
3419     r = guestfs_blockdev_setrw (g, device);
3420     if (r == -1)
3421       return -1;
3422   }
3423   {
3424     int r;
3425     suppress_error = 0;
3426     r = guestfs_umount_all (g);
3427     if (r == -1)
3428       return -1;
3429   }
3430   {
3431     int r;
3432     suppress_error = 0;
3433     r = guestfs_lvm_remove_all (g);
3434     if (r == -1)
3435       return -1;
3436   }
3437   {
3438     char device[] = "/dev/sda";
3439     char lines_0[] = ",";
3440     char *lines[] = {
3441       lines_0,
3442       NULL
3443     };
3444     int r;
3445     suppress_error = 0;
3446     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3447     if (r == -1)
3448       return -1;
3449   }
3450   {
3451     char fstype[] = "ext2";
3452     char device[] = "/dev/sda1";
3453     int r;
3454     suppress_error = 0;
3455     r = guestfs_mkfs (g, fstype, device);
3456     if (r == -1)
3457       return -1;
3458   }
3459   {
3460     char device[] = "/dev/sda1";
3461     char mountpoint[] = "/";
3462     int r;
3463     suppress_error = 0;
3464     r = guestfs_mount (g, device, mountpoint);
3465     if (r == -1)
3466       return -1;
3467   }
3468   /* TestRun for hexdump (1) */
3469   {
3470     char options[] = "ro";
3471     char vfstype[] = "squashfs";
3472     char device[] = "/dev/sdd";
3473     char mountpoint[] = "/";
3474     int r;
3475     suppress_error = 0;
3476     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
3477     if (r == -1)
3478       return -1;
3479   }
3480   {
3481     char path[] = "/100krandom";
3482     char *r;
3483     suppress_error = 0;
3484     r = guestfs_hexdump (g, path);
3485     if (r == NULL)
3486       return -1;
3487     free (r);
3488   }
3489   return 0;
3490 }
3491
3492 static int test_strings_e_0_skip (void)
3493 {
3494   const char *str;
3495
3496   str = getenv ("TEST_ONLY");
3497   if (str)
3498     return strstr (str, "strings_e") == NULL;
3499   str = getenv ("SKIP_TEST_STRINGS_E_0");
3500   if (str && strcmp (str, "1") == 0) return 1;
3501   str = getenv ("SKIP_TEST_STRINGS_E");
3502   if (str && strcmp (str, "1") == 0) return 1;
3503   return 0;
3504 }
3505
3506 static int test_strings_e_0 (void)
3507 {
3508   if (test_strings_e_0_skip ()) {
3509     printf ("%s skipped (reason: environment variable set)\n", "test_strings_e_0");
3510     return 0;
3511   }
3512
3513   /* InitBasicFS for test_strings_e_0: create ext2 on /dev/sda1 */
3514   {
3515     char device[] = "/dev/sda";
3516     int r;
3517     suppress_error = 0;
3518     r = guestfs_blockdev_setrw (g, device);
3519     if (r == -1)
3520       return -1;
3521   }
3522   {
3523     int r;
3524     suppress_error = 0;
3525     r = guestfs_umount_all (g);
3526     if (r == -1)
3527       return -1;
3528   }
3529   {
3530     int r;
3531     suppress_error = 0;
3532     r = guestfs_lvm_remove_all (g);
3533     if (r == -1)
3534       return -1;
3535   }
3536   {
3537     char device[] = "/dev/sda";
3538     char lines_0[] = ",";
3539     char *lines[] = {
3540       lines_0,
3541       NULL
3542     };
3543     int r;
3544     suppress_error = 0;
3545     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3546     if (r == -1)
3547       return -1;
3548   }
3549   {
3550     char fstype[] = "ext2";
3551     char device[] = "/dev/sda1";
3552     int r;
3553     suppress_error = 0;
3554     r = guestfs_mkfs (g, fstype, device);
3555     if (r == -1)
3556       return -1;
3557   }
3558   {
3559     char device[] = "/dev/sda1";
3560     char mountpoint[] = "/";
3561     int r;
3562     suppress_error = 0;
3563     r = guestfs_mount (g, device, mountpoint);
3564     if (r == -1)
3565       return -1;
3566   }
3567   /* TestOutputList for strings_e (0) */
3568   {
3569     char path[] = "/new";
3570     char content[] = "hello\nworld\n";
3571     int r;
3572     suppress_error = 0;
3573     r = guestfs_write_file (g, path, content, 0);
3574     if (r == -1)
3575       return -1;
3576   }
3577   {
3578     char encoding[] = "b";
3579     char path[] = "/new";
3580     char **r;
3581     int i;
3582     suppress_error = 0;
3583     r = guestfs_strings_e (g, encoding, path);
3584     if (r == NULL)
3585       return -1;
3586     if (r[0] != NULL) {
3587       fprintf (stderr, "test_strings_e_0: extra elements returned from command\n");
3588       print_strings (r);
3589       return -1;
3590     }
3591     for (i = 0; r[i] != NULL; ++i)
3592       free (r[i]);
3593     free (r);
3594   }
3595   return 0;
3596 }
3597
3598 static int test_strings_e_1_skip (void)
3599 {
3600   const char *str;
3601
3602   str = getenv ("TEST_ONLY");
3603   if (str)
3604     return strstr (str, "strings_e") == NULL;
3605   str = getenv ("SKIP_TEST_STRINGS_E_1");
3606   if (str && strcmp (str, "1") == 0) return 1;
3607   str = getenv ("SKIP_TEST_STRINGS_E");
3608   if (str && strcmp (str, "1") == 0) return 1;
3609   return 0;
3610 }
3611
3612 static int test_strings_e_1 (void)
3613 {
3614   if (test_strings_e_1_skip ()) {
3615     printf ("%s skipped (reason: environment variable set)\n", "test_strings_e_1");
3616     return 0;
3617   }
3618
3619   printf ("%s skipped (reason: test disabled in generator)\n", "test_strings_e_1");
3620   return 0;
3621 }
3622
3623 static int test_strings_0_skip (void)
3624 {
3625   const char *str;
3626
3627   str = getenv ("TEST_ONLY");
3628   if (str)
3629     return strstr (str, "strings") == NULL;
3630   str = getenv ("SKIP_TEST_STRINGS_0");
3631   if (str && strcmp (str, "1") == 0) return 1;
3632   str = getenv ("SKIP_TEST_STRINGS");
3633   if (str && strcmp (str, "1") == 0) return 1;
3634   return 0;
3635 }
3636
3637 static int test_strings_0 (void)
3638 {
3639   if (test_strings_0_skip ()) {
3640     printf ("%s skipped (reason: environment variable set)\n", "test_strings_0");
3641     return 0;
3642   }
3643
3644   /* InitBasicFS for test_strings_0: create ext2 on /dev/sda1 */
3645   {
3646     char device[] = "/dev/sda";
3647     int r;
3648     suppress_error = 0;
3649     r = guestfs_blockdev_setrw (g, device);
3650     if (r == -1)
3651       return -1;
3652   }
3653   {
3654     int r;
3655     suppress_error = 0;
3656     r = guestfs_umount_all (g);
3657     if (r == -1)
3658       return -1;
3659   }
3660   {
3661     int r;
3662     suppress_error = 0;
3663     r = guestfs_lvm_remove_all (g);
3664     if (r == -1)
3665       return -1;
3666   }
3667   {
3668     char device[] = "/dev/sda";
3669     char lines_0[] = ",";
3670     char *lines[] = {
3671       lines_0,
3672       NULL
3673     };
3674     int r;
3675     suppress_error = 0;
3676     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3677     if (r == -1)
3678       return -1;
3679   }
3680   {
3681     char fstype[] = "ext2";
3682     char device[] = "/dev/sda1";
3683     int r;
3684     suppress_error = 0;
3685     r = guestfs_mkfs (g, fstype, device);
3686     if (r == -1)
3687       return -1;
3688   }
3689   {
3690     char device[] = "/dev/sda1";
3691     char mountpoint[] = "/";
3692     int r;
3693     suppress_error = 0;
3694     r = guestfs_mount (g, device, mountpoint);
3695     if (r == -1)
3696       return -1;
3697   }
3698   /* TestOutputList for strings (0) */
3699   {
3700     char path[] = "/new";
3701     char content[] = "hello\nworld\n";
3702     int r;
3703     suppress_error = 0;
3704     r = guestfs_write_file (g, path, content, 0);
3705     if (r == -1)
3706       return -1;
3707   }
3708   {
3709     char path[] = "/new";
3710     char **r;
3711     int i;
3712     suppress_error = 0;
3713     r = guestfs_strings (g, path);
3714     if (r == NULL)
3715       return -1;
3716     if (!r[0]) {
3717       fprintf (stderr, "test_strings_0: short list returned from command\n");
3718       print_strings (r);
3719       return -1;
3720     }
3721     {
3722       char expected[] = "hello";
3723       if (strcmp (r[0], expected) != 0) {
3724         fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
3725         return -1;
3726       }
3727     }
3728     if (!r[1]) {
3729       fprintf (stderr, "test_strings_0: short list returned from command\n");
3730       print_strings (r);
3731       return -1;
3732     }
3733     {
3734       char expected[] = "world";
3735       if (strcmp (r[1], expected) != 0) {
3736         fprintf (stderr, "test_strings_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
3737         return -1;
3738       }
3739     }
3740     if (r[2] != NULL) {
3741       fprintf (stderr, "test_strings_0: extra elements returned from command\n");
3742       print_strings (r);
3743       return -1;
3744     }
3745     for (i = 0; r[i] != NULL; ++i)
3746       free (r[i]);
3747     free (r);
3748   }
3749   return 0;
3750 }
3751
3752 static int test_strings_1_skip (void)
3753 {
3754   const char *str;
3755
3756   str = getenv ("TEST_ONLY");
3757   if (str)
3758     return strstr (str, "strings") == NULL;
3759   str = getenv ("SKIP_TEST_STRINGS_1");
3760   if (str && strcmp (str, "1") == 0) return 1;
3761   str = getenv ("SKIP_TEST_STRINGS");
3762   if (str && strcmp (str, "1") == 0) return 1;
3763   return 0;
3764 }
3765
3766 static int test_strings_1 (void)
3767 {
3768   if (test_strings_1_skip ()) {
3769     printf ("%s skipped (reason: environment variable set)\n", "test_strings_1");
3770     return 0;
3771   }
3772
3773   /* InitBasicFS for test_strings_1: create ext2 on /dev/sda1 */
3774   {
3775     char device[] = "/dev/sda";
3776     int r;
3777     suppress_error = 0;
3778     r = guestfs_blockdev_setrw (g, device);
3779     if (r == -1)
3780       return -1;
3781   }
3782   {
3783     int r;
3784     suppress_error = 0;
3785     r = guestfs_umount_all (g);
3786     if (r == -1)
3787       return -1;
3788   }
3789   {
3790     int r;
3791     suppress_error = 0;
3792     r = guestfs_lvm_remove_all (g);
3793     if (r == -1)
3794       return -1;
3795   }
3796   {
3797     char device[] = "/dev/sda";
3798     char lines_0[] = ",";
3799     char *lines[] = {
3800       lines_0,
3801       NULL
3802     };
3803     int r;
3804     suppress_error = 0;
3805     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3806     if (r == -1)
3807       return -1;
3808   }
3809   {
3810     char fstype[] = "ext2";
3811     char device[] = "/dev/sda1";
3812     int r;
3813     suppress_error = 0;
3814     r = guestfs_mkfs (g, fstype, device);
3815     if (r == -1)
3816       return -1;
3817   }
3818   {
3819     char device[] = "/dev/sda1";
3820     char mountpoint[] = "/";
3821     int r;
3822     suppress_error = 0;
3823     r = guestfs_mount (g, device, mountpoint);
3824     if (r == -1)
3825       return -1;
3826   }
3827   /* TestOutputList for strings (1) */
3828   {
3829     char path[] = "/new";
3830     int r;
3831     suppress_error = 0;
3832     r = guestfs_touch (g, path);
3833     if (r == -1)
3834       return -1;
3835   }
3836   {
3837     char path[] = "/new";
3838     char **r;
3839     int i;
3840     suppress_error = 0;
3841     r = guestfs_strings (g, path);
3842     if (r == NULL)
3843       return -1;
3844     if (r[0] != NULL) {
3845       fprintf (stderr, "test_strings_1: extra elements returned from command\n");
3846       print_strings (r);
3847       return -1;
3848     }
3849     for (i = 0; r[i] != NULL; ++i)
3850       free (r[i]);
3851     free (r);
3852   }
3853   return 0;
3854 }
3855
3856 static int test_equal_0_skip (void)
3857 {
3858   const char *str;
3859
3860   str = getenv ("TEST_ONLY");
3861   if (str)
3862     return strstr (str, "equal") == NULL;
3863   str = getenv ("SKIP_TEST_EQUAL_0");
3864   if (str && strcmp (str, "1") == 0) return 1;
3865   str = getenv ("SKIP_TEST_EQUAL");
3866   if (str && strcmp (str, "1") == 0) return 1;
3867   return 0;
3868 }
3869
3870 static int test_equal_0 (void)
3871 {
3872   if (test_equal_0_skip ()) {
3873     printf ("%s skipped (reason: environment variable set)\n", "test_equal_0");
3874     return 0;
3875   }
3876
3877   /* InitBasicFS for test_equal_0: create ext2 on /dev/sda1 */
3878   {
3879     char device[] = "/dev/sda";
3880     int r;
3881     suppress_error = 0;
3882     r = guestfs_blockdev_setrw (g, device);
3883     if (r == -1)
3884       return -1;
3885   }
3886   {
3887     int r;
3888     suppress_error = 0;
3889     r = guestfs_umount_all (g);
3890     if (r == -1)
3891       return -1;
3892   }
3893   {
3894     int r;
3895     suppress_error = 0;
3896     r = guestfs_lvm_remove_all (g);
3897     if (r == -1)
3898       return -1;
3899   }
3900   {
3901     char device[] = "/dev/sda";
3902     char lines_0[] = ",";
3903     char *lines[] = {
3904       lines_0,
3905       NULL
3906     };
3907     int r;
3908     suppress_error = 0;
3909     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
3910     if (r == -1)
3911       return -1;
3912   }
3913   {
3914     char fstype[] = "ext2";
3915     char device[] = "/dev/sda1";
3916     int r;
3917     suppress_error = 0;
3918     r = guestfs_mkfs (g, fstype, device);
3919     if (r == -1)
3920       return -1;
3921   }
3922   {
3923     char device[] = "/dev/sda1";
3924     char mountpoint[] = "/";
3925     int r;
3926     suppress_error = 0;
3927     r = guestfs_mount (g, device, mountpoint);
3928     if (r == -1)
3929       return -1;
3930   }
3931   /* TestOutputTrue for equal (0) */
3932   {
3933     char path[] = "/file1";
3934     char content[] = "contents of a file";
3935     int r;
3936     suppress_error = 0;
3937     r = guestfs_write_file (g, path, content, 0);
3938     if (r == -1)
3939       return -1;
3940   }
3941   {
3942     char src[] = "/file1";
3943     char dest[] = "/file2";
3944     int r;
3945     suppress_error = 0;
3946     r = guestfs_cp (g, src, dest);
3947     if (r == -1)
3948       return -1;
3949   }
3950   {
3951     char file1[] = "/file1";
3952     char file2[] = "/file2";
3953     int r;
3954     suppress_error = 0;
3955     r = guestfs_equal (g, file1, file2);
3956     if (r == -1)
3957       return -1;
3958     if (!r) {
3959       fprintf (stderr, "test_equal_0: expected true, got false\n");
3960       return -1;
3961     }
3962   }
3963   return 0;
3964 }
3965
3966 static int test_equal_1_skip (void)
3967 {
3968   const char *str;
3969
3970   str = getenv ("TEST_ONLY");
3971   if (str)
3972     return strstr (str, "equal") == NULL;
3973   str = getenv ("SKIP_TEST_EQUAL_1");
3974   if (str && strcmp (str, "1") == 0) return 1;
3975   str = getenv ("SKIP_TEST_EQUAL");
3976   if (str && strcmp (str, "1") == 0) return 1;
3977   return 0;
3978 }
3979
3980 static int test_equal_1 (void)
3981 {
3982   if (test_equal_1_skip ()) {
3983     printf ("%s skipped (reason: environment variable set)\n", "test_equal_1");
3984     return 0;
3985   }
3986
3987   /* InitBasicFS for test_equal_1: create ext2 on /dev/sda1 */
3988   {
3989     char device[] = "/dev/sda";
3990     int r;
3991     suppress_error = 0;
3992     r = guestfs_blockdev_setrw (g, device);
3993     if (r == -1)
3994       return -1;
3995   }
3996   {
3997     int r;
3998     suppress_error = 0;
3999     r = guestfs_umount_all (g);
4000     if (r == -1)
4001       return -1;
4002   }
4003   {
4004     int r;
4005     suppress_error = 0;
4006     r = guestfs_lvm_remove_all (g);
4007     if (r == -1)
4008       return -1;
4009   }
4010   {
4011     char device[] = "/dev/sda";
4012     char lines_0[] = ",";
4013     char *lines[] = {
4014       lines_0,
4015       NULL
4016     };
4017     int r;
4018     suppress_error = 0;
4019     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4020     if (r == -1)
4021       return -1;
4022   }
4023   {
4024     char fstype[] = "ext2";
4025     char device[] = "/dev/sda1";
4026     int r;
4027     suppress_error = 0;
4028     r = guestfs_mkfs (g, fstype, device);
4029     if (r == -1)
4030       return -1;
4031   }
4032   {
4033     char device[] = "/dev/sda1";
4034     char mountpoint[] = "/";
4035     int r;
4036     suppress_error = 0;
4037     r = guestfs_mount (g, device, mountpoint);
4038     if (r == -1)
4039       return -1;
4040   }
4041   /* TestOutputFalse for equal (1) */
4042   {
4043     char path[] = "/file1";
4044     char content[] = "contents of a file";
4045     int r;
4046     suppress_error = 0;
4047     r = guestfs_write_file (g, path, content, 0);
4048     if (r == -1)
4049       return -1;
4050   }
4051   {
4052     char path[] = "/file2";
4053     char content[] = "contents of another file";
4054     int r;
4055     suppress_error = 0;
4056     r = guestfs_write_file (g, path, content, 0);
4057     if (r == -1)
4058       return -1;
4059   }
4060   {
4061     char file1[] = "/file1";
4062     char file2[] = "/file2";
4063     int r;
4064     suppress_error = 0;
4065     r = guestfs_equal (g, file1, file2);
4066     if (r == -1)
4067       return -1;
4068     if (r) {
4069       fprintf (stderr, "test_equal_1: expected false, got true\n");
4070       return -1;
4071     }
4072   }
4073   return 0;
4074 }
4075
4076 static int test_equal_2_skip (void)
4077 {
4078   const char *str;
4079
4080   str = getenv ("TEST_ONLY");
4081   if (str)
4082     return strstr (str, "equal") == NULL;
4083   str = getenv ("SKIP_TEST_EQUAL_2");
4084   if (str && strcmp (str, "1") == 0) return 1;
4085   str = getenv ("SKIP_TEST_EQUAL");
4086   if (str && strcmp (str, "1") == 0) return 1;
4087   return 0;
4088 }
4089
4090 static int test_equal_2 (void)
4091 {
4092   if (test_equal_2_skip ()) {
4093     printf ("%s skipped (reason: environment variable set)\n", "test_equal_2");
4094     return 0;
4095   }
4096
4097   /* InitBasicFS for test_equal_2: create ext2 on /dev/sda1 */
4098   {
4099     char device[] = "/dev/sda";
4100     int r;
4101     suppress_error = 0;
4102     r = guestfs_blockdev_setrw (g, device);
4103     if (r == -1)
4104       return -1;
4105   }
4106   {
4107     int r;
4108     suppress_error = 0;
4109     r = guestfs_umount_all (g);
4110     if (r == -1)
4111       return -1;
4112   }
4113   {
4114     int r;
4115     suppress_error = 0;
4116     r = guestfs_lvm_remove_all (g);
4117     if (r == -1)
4118       return -1;
4119   }
4120   {
4121     char device[] = "/dev/sda";
4122     char lines_0[] = ",";
4123     char *lines[] = {
4124       lines_0,
4125       NULL
4126     };
4127     int r;
4128     suppress_error = 0;
4129     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4130     if (r == -1)
4131       return -1;
4132   }
4133   {
4134     char fstype[] = "ext2";
4135     char device[] = "/dev/sda1";
4136     int r;
4137     suppress_error = 0;
4138     r = guestfs_mkfs (g, fstype, device);
4139     if (r == -1)
4140       return -1;
4141   }
4142   {
4143     char device[] = "/dev/sda1";
4144     char mountpoint[] = "/";
4145     int r;
4146     suppress_error = 0;
4147     r = guestfs_mount (g, device, mountpoint);
4148     if (r == -1)
4149       return -1;
4150   }
4151   /* TestLastFail for equal (2) */
4152   {
4153     char file1[] = "/file1";
4154     char file2[] = "/file2";
4155     int r;
4156     suppress_error = 1;
4157     r = guestfs_equal (g, file1, file2);
4158     if (r != -1)
4159       return -1;
4160   }
4161   return 0;
4162 }
4163
4164 static int test_ping_daemon_0_skip (void)
4165 {
4166   const char *str;
4167
4168   str = getenv ("TEST_ONLY");
4169   if (str)
4170     return strstr (str, "ping_daemon") == NULL;
4171   str = getenv ("SKIP_TEST_PING_DAEMON_0");
4172   if (str && strcmp (str, "1") == 0) return 1;
4173   str = getenv ("SKIP_TEST_PING_DAEMON");
4174   if (str && strcmp (str, "1") == 0) return 1;
4175   return 0;
4176 }
4177
4178 static int test_ping_daemon_0 (void)
4179 {
4180   if (test_ping_daemon_0_skip ()) {
4181     printf ("%s skipped (reason: environment variable set)\n", "test_ping_daemon_0");
4182     return 0;
4183   }
4184
4185   /* InitNone|InitEmpty for test_ping_daemon_0 */
4186   {
4187     char device[] = "/dev/sda";
4188     int r;
4189     suppress_error = 0;
4190     r = guestfs_blockdev_setrw (g, device);
4191     if (r == -1)
4192       return -1;
4193   }
4194   {
4195     int r;
4196     suppress_error = 0;
4197     r = guestfs_umount_all (g);
4198     if (r == -1)
4199       return -1;
4200   }
4201   {
4202     int r;
4203     suppress_error = 0;
4204     r = guestfs_lvm_remove_all (g);
4205     if (r == -1)
4206       return -1;
4207   }
4208   /* TestRun for ping_daemon (0) */
4209   {
4210     int r;
4211     suppress_error = 0;
4212     r = guestfs_ping_daemon (g);
4213     if (r == -1)
4214       return -1;
4215   }
4216   return 0;
4217 }
4218
4219 static int test_dmesg_0_skip (void)
4220 {
4221   const char *str;
4222
4223   str = getenv ("TEST_ONLY");
4224   if (str)
4225     return strstr (str, "dmesg") == NULL;
4226   str = getenv ("SKIP_TEST_DMESG_0");
4227   if (str && strcmp (str, "1") == 0) return 1;
4228   str = getenv ("SKIP_TEST_DMESG");
4229   if (str && strcmp (str, "1") == 0) return 1;
4230   return 0;
4231 }
4232
4233 static int test_dmesg_0 (void)
4234 {
4235   if (test_dmesg_0_skip ()) {
4236     printf ("%s skipped (reason: environment variable set)\n", "test_dmesg_0");
4237     return 0;
4238   }
4239
4240   /* InitNone|InitEmpty for test_dmesg_0 */
4241   {
4242     char device[] = "/dev/sda";
4243     int r;
4244     suppress_error = 0;
4245     r = guestfs_blockdev_setrw (g, device);
4246     if (r == -1)
4247       return -1;
4248   }
4249   {
4250     int r;
4251     suppress_error = 0;
4252     r = guestfs_umount_all (g);
4253     if (r == -1)
4254       return -1;
4255   }
4256   {
4257     int r;
4258     suppress_error = 0;
4259     r = guestfs_lvm_remove_all (g);
4260     if (r == -1)
4261       return -1;
4262   }
4263   /* TestRun for dmesg (0) */
4264   {
4265     char *r;
4266     suppress_error = 0;
4267     r = guestfs_dmesg (g);
4268     if (r == NULL)
4269       return -1;
4270     free (r);
4271   }
4272   return 0;
4273 }
4274
4275 static int test_drop_caches_0_skip (void)
4276 {
4277   const char *str;
4278
4279   str = getenv ("TEST_ONLY");
4280   if (str)
4281     return strstr (str, "drop_caches") == NULL;
4282   str = getenv ("SKIP_TEST_DROP_CACHES_0");
4283   if (str && strcmp (str, "1") == 0) return 1;
4284   str = getenv ("SKIP_TEST_DROP_CACHES");
4285   if (str && strcmp (str, "1") == 0) return 1;
4286   return 0;
4287 }
4288
4289 static int test_drop_caches_0 (void)
4290 {
4291   if (test_drop_caches_0_skip ()) {
4292     printf ("%s skipped (reason: environment variable set)\n", "test_drop_caches_0");
4293     return 0;
4294   }
4295
4296   /* InitNone|InitEmpty for test_drop_caches_0 */
4297   {
4298     char device[] = "/dev/sda";
4299     int r;
4300     suppress_error = 0;
4301     r = guestfs_blockdev_setrw (g, device);
4302     if (r == -1)
4303       return -1;
4304   }
4305   {
4306     int r;
4307     suppress_error = 0;
4308     r = guestfs_umount_all (g);
4309     if (r == -1)
4310       return -1;
4311   }
4312   {
4313     int r;
4314     suppress_error = 0;
4315     r = guestfs_lvm_remove_all (g);
4316     if (r == -1)
4317       return -1;
4318   }
4319   /* TestRun for drop_caches (0) */
4320   {
4321     int r;
4322     suppress_error = 0;
4323     r = guestfs_drop_caches (g, 3);
4324     if (r == -1)
4325       return -1;
4326   }
4327   return 0;
4328 }
4329
4330 static int test_mv_0_skip (void)
4331 {
4332   const char *str;
4333
4334   str = getenv ("TEST_ONLY");
4335   if (str)
4336     return strstr (str, "mv") == NULL;
4337   str = getenv ("SKIP_TEST_MV_0");
4338   if (str && strcmp (str, "1") == 0) return 1;
4339   str = getenv ("SKIP_TEST_MV");
4340   if (str && strcmp (str, "1") == 0) return 1;
4341   return 0;
4342 }
4343
4344 static int test_mv_0 (void)
4345 {
4346   if (test_mv_0_skip ()) {
4347     printf ("%s skipped (reason: environment variable set)\n", "test_mv_0");
4348     return 0;
4349   }
4350
4351   /* InitBasicFS for test_mv_0: create ext2 on /dev/sda1 */
4352   {
4353     char device[] = "/dev/sda";
4354     int r;
4355     suppress_error = 0;
4356     r = guestfs_blockdev_setrw (g, device);
4357     if (r == -1)
4358       return -1;
4359   }
4360   {
4361     int r;
4362     suppress_error = 0;
4363     r = guestfs_umount_all (g);
4364     if (r == -1)
4365       return -1;
4366   }
4367   {
4368     int r;
4369     suppress_error = 0;
4370     r = guestfs_lvm_remove_all (g);
4371     if (r == -1)
4372       return -1;
4373   }
4374   {
4375     char device[] = "/dev/sda";
4376     char lines_0[] = ",";
4377     char *lines[] = {
4378       lines_0,
4379       NULL
4380     };
4381     int r;
4382     suppress_error = 0;
4383     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4384     if (r == -1)
4385       return -1;
4386   }
4387   {
4388     char fstype[] = "ext2";
4389     char device[] = "/dev/sda1";
4390     int r;
4391     suppress_error = 0;
4392     r = guestfs_mkfs (g, fstype, device);
4393     if (r == -1)
4394       return -1;
4395   }
4396   {
4397     char device[] = "/dev/sda1";
4398     char mountpoint[] = "/";
4399     int r;
4400     suppress_error = 0;
4401     r = guestfs_mount (g, device, mountpoint);
4402     if (r == -1)
4403       return -1;
4404   }
4405   /* TestOutput for mv (0) */
4406   char expected[] = "file content";
4407   {
4408     char path[] = "/old";
4409     char content[] = "file content";
4410     int r;
4411     suppress_error = 0;
4412     r = guestfs_write_file (g, path, content, 0);
4413     if (r == -1)
4414       return -1;
4415   }
4416   {
4417     char src[] = "/old";
4418     char dest[] = "/new";
4419     int r;
4420     suppress_error = 0;
4421     r = guestfs_mv (g, src, dest);
4422     if (r == -1)
4423       return -1;
4424   }
4425   {
4426     char path[] = "/new";
4427     char *r;
4428     suppress_error = 0;
4429     r = guestfs_cat (g, path);
4430     if (r == NULL)
4431       return -1;
4432     if (strcmp (r, expected) != 0) {
4433       fprintf (stderr, "test_mv_0: expected \"%s\" but got \"%s\"\n", expected, r);
4434       return -1;
4435     }
4436     free (r);
4437   }
4438   return 0;
4439 }
4440
4441 static int test_mv_1_skip (void)
4442 {
4443   const char *str;
4444
4445   str = getenv ("TEST_ONLY");
4446   if (str)
4447     return strstr (str, "mv") == NULL;
4448   str = getenv ("SKIP_TEST_MV_1");
4449   if (str && strcmp (str, "1") == 0) return 1;
4450   str = getenv ("SKIP_TEST_MV");
4451   if (str && strcmp (str, "1") == 0) return 1;
4452   return 0;
4453 }
4454
4455 static int test_mv_1 (void)
4456 {
4457   if (test_mv_1_skip ()) {
4458     printf ("%s skipped (reason: environment variable set)\n", "test_mv_1");
4459     return 0;
4460   }
4461
4462   /* InitBasicFS for test_mv_1: create ext2 on /dev/sda1 */
4463   {
4464     char device[] = "/dev/sda";
4465     int r;
4466     suppress_error = 0;
4467     r = guestfs_blockdev_setrw (g, device);
4468     if (r == -1)
4469       return -1;
4470   }
4471   {
4472     int r;
4473     suppress_error = 0;
4474     r = guestfs_umount_all (g);
4475     if (r == -1)
4476       return -1;
4477   }
4478   {
4479     int r;
4480     suppress_error = 0;
4481     r = guestfs_lvm_remove_all (g);
4482     if (r == -1)
4483       return -1;
4484   }
4485   {
4486     char device[] = "/dev/sda";
4487     char lines_0[] = ",";
4488     char *lines[] = {
4489       lines_0,
4490       NULL
4491     };
4492     int r;
4493     suppress_error = 0;
4494     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4495     if (r == -1)
4496       return -1;
4497   }
4498   {
4499     char fstype[] = "ext2";
4500     char device[] = "/dev/sda1";
4501     int r;
4502     suppress_error = 0;
4503     r = guestfs_mkfs (g, fstype, device);
4504     if (r == -1)
4505       return -1;
4506   }
4507   {
4508     char device[] = "/dev/sda1";
4509     char mountpoint[] = "/";
4510     int r;
4511     suppress_error = 0;
4512     r = guestfs_mount (g, device, mountpoint);
4513     if (r == -1)
4514       return -1;
4515   }
4516   /* TestOutputFalse for mv (1) */
4517   {
4518     char path[] = "/old";
4519     char content[] = "file content";
4520     int r;
4521     suppress_error = 0;
4522     r = guestfs_write_file (g, path, content, 0);
4523     if (r == -1)
4524       return -1;
4525   }
4526   {
4527     char src[] = "/old";
4528     char dest[] = "/new";
4529     int r;
4530     suppress_error = 0;
4531     r = guestfs_mv (g, src, dest);
4532     if (r == -1)
4533       return -1;
4534   }
4535   {
4536     char path[] = "/old";
4537     int r;
4538     suppress_error = 0;
4539     r = guestfs_is_file (g, path);
4540     if (r == -1)
4541       return -1;
4542     if (r) {
4543       fprintf (stderr, "test_mv_1: expected false, got true\n");
4544       return -1;
4545     }
4546   }
4547   return 0;
4548 }
4549
4550 static int test_cp_a_0_skip (void)
4551 {
4552   const char *str;
4553
4554   str = getenv ("TEST_ONLY");
4555   if (str)
4556     return strstr (str, "cp_a") == NULL;
4557   str = getenv ("SKIP_TEST_CP_A_0");
4558   if (str && strcmp (str, "1") == 0) return 1;
4559   str = getenv ("SKIP_TEST_CP_A");
4560   if (str && strcmp (str, "1") == 0) return 1;
4561   return 0;
4562 }
4563
4564 static int test_cp_a_0 (void)
4565 {
4566   if (test_cp_a_0_skip ()) {
4567     printf ("%s skipped (reason: environment variable set)\n", "test_cp_a_0");
4568     return 0;
4569   }
4570
4571   /* InitBasicFS for test_cp_a_0: create ext2 on /dev/sda1 */
4572   {
4573     char device[] = "/dev/sda";
4574     int r;
4575     suppress_error = 0;
4576     r = guestfs_blockdev_setrw (g, device);
4577     if (r == -1)
4578       return -1;
4579   }
4580   {
4581     int r;
4582     suppress_error = 0;
4583     r = guestfs_umount_all (g);
4584     if (r == -1)
4585       return -1;
4586   }
4587   {
4588     int r;
4589     suppress_error = 0;
4590     r = guestfs_lvm_remove_all (g);
4591     if (r == -1)
4592       return -1;
4593   }
4594   {
4595     char device[] = "/dev/sda";
4596     char lines_0[] = ",";
4597     char *lines[] = {
4598       lines_0,
4599       NULL
4600     };
4601     int r;
4602     suppress_error = 0;
4603     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4604     if (r == -1)
4605       return -1;
4606   }
4607   {
4608     char fstype[] = "ext2";
4609     char device[] = "/dev/sda1";
4610     int r;
4611     suppress_error = 0;
4612     r = guestfs_mkfs (g, fstype, device);
4613     if (r == -1)
4614       return -1;
4615   }
4616   {
4617     char device[] = "/dev/sda1";
4618     char mountpoint[] = "/";
4619     int r;
4620     suppress_error = 0;
4621     r = guestfs_mount (g, device, mountpoint);
4622     if (r == -1)
4623       return -1;
4624   }
4625   /* TestOutput for cp_a (0) */
4626   char expected[] = "file content";
4627   {
4628     char path[] = "/olddir";
4629     int r;
4630     suppress_error = 0;
4631     r = guestfs_mkdir (g, path);
4632     if (r == -1)
4633       return -1;
4634   }
4635   {
4636     char path[] = "/newdir";
4637     int r;
4638     suppress_error = 0;
4639     r = guestfs_mkdir (g, path);
4640     if (r == -1)
4641       return -1;
4642   }
4643   {
4644     char path[] = "/olddir/file";
4645     char content[] = "file content";
4646     int r;
4647     suppress_error = 0;
4648     r = guestfs_write_file (g, path, content, 0);
4649     if (r == -1)
4650       return -1;
4651   }
4652   {
4653     char src[] = "/olddir";
4654     char dest[] = "/newdir";
4655     int r;
4656     suppress_error = 0;
4657     r = guestfs_cp_a (g, src, dest);
4658     if (r == -1)
4659       return -1;
4660   }
4661   {
4662     char path[] = "/newdir/olddir/file";
4663     char *r;
4664     suppress_error = 0;
4665     r = guestfs_cat (g, path);
4666     if (r == NULL)
4667       return -1;
4668     if (strcmp (r, expected) != 0) {
4669       fprintf (stderr, "test_cp_a_0: expected \"%s\" but got \"%s\"\n", expected, r);
4670       return -1;
4671     }
4672     free (r);
4673   }
4674   return 0;
4675 }
4676
4677 static int test_cp_0_skip (void)
4678 {
4679   const char *str;
4680
4681   str = getenv ("TEST_ONLY");
4682   if (str)
4683     return strstr (str, "cp") == NULL;
4684   str = getenv ("SKIP_TEST_CP_0");
4685   if (str && strcmp (str, "1") == 0) return 1;
4686   str = getenv ("SKIP_TEST_CP");
4687   if (str && strcmp (str, "1") == 0) return 1;
4688   return 0;
4689 }
4690
4691 static int test_cp_0 (void)
4692 {
4693   if (test_cp_0_skip ()) {
4694     printf ("%s skipped (reason: environment variable set)\n", "test_cp_0");
4695     return 0;
4696   }
4697
4698   /* InitBasicFS for test_cp_0: create ext2 on /dev/sda1 */
4699   {
4700     char device[] = "/dev/sda";
4701     int r;
4702     suppress_error = 0;
4703     r = guestfs_blockdev_setrw (g, device);
4704     if (r == -1)
4705       return -1;
4706   }
4707   {
4708     int r;
4709     suppress_error = 0;
4710     r = guestfs_umount_all (g);
4711     if (r == -1)
4712       return -1;
4713   }
4714   {
4715     int r;
4716     suppress_error = 0;
4717     r = guestfs_lvm_remove_all (g);
4718     if (r == -1)
4719       return -1;
4720   }
4721   {
4722     char device[] = "/dev/sda";
4723     char lines_0[] = ",";
4724     char *lines[] = {
4725       lines_0,
4726       NULL
4727     };
4728     int r;
4729     suppress_error = 0;
4730     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4731     if (r == -1)
4732       return -1;
4733   }
4734   {
4735     char fstype[] = "ext2";
4736     char device[] = "/dev/sda1";
4737     int r;
4738     suppress_error = 0;
4739     r = guestfs_mkfs (g, fstype, device);
4740     if (r == -1)
4741       return -1;
4742   }
4743   {
4744     char device[] = "/dev/sda1";
4745     char mountpoint[] = "/";
4746     int r;
4747     suppress_error = 0;
4748     r = guestfs_mount (g, device, mountpoint);
4749     if (r == -1)
4750       return -1;
4751   }
4752   /* TestOutput for cp (0) */
4753   char expected[] = "file content";
4754   {
4755     char path[] = "/old";
4756     char content[] = "file content";
4757     int r;
4758     suppress_error = 0;
4759     r = guestfs_write_file (g, path, content, 0);
4760     if (r == -1)
4761       return -1;
4762   }
4763   {
4764     char src[] = "/old";
4765     char dest[] = "/new";
4766     int r;
4767     suppress_error = 0;
4768     r = guestfs_cp (g, src, dest);
4769     if (r == -1)
4770       return -1;
4771   }
4772   {
4773     char path[] = "/new";
4774     char *r;
4775     suppress_error = 0;
4776     r = guestfs_cat (g, path);
4777     if (r == NULL)
4778       return -1;
4779     if (strcmp (r, expected) != 0) {
4780       fprintf (stderr, "test_cp_0: expected \"%s\" but got \"%s\"\n", expected, r);
4781       return -1;
4782     }
4783     free (r);
4784   }
4785   return 0;
4786 }
4787
4788 static int test_cp_1_skip (void)
4789 {
4790   const char *str;
4791
4792   str = getenv ("TEST_ONLY");
4793   if (str)
4794     return strstr (str, "cp") == NULL;
4795   str = getenv ("SKIP_TEST_CP_1");
4796   if (str && strcmp (str, "1") == 0) return 1;
4797   str = getenv ("SKIP_TEST_CP");
4798   if (str && strcmp (str, "1") == 0) return 1;
4799   return 0;
4800 }
4801
4802 static int test_cp_1 (void)
4803 {
4804   if (test_cp_1_skip ()) {
4805     printf ("%s skipped (reason: environment variable set)\n", "test_cp_1");
4806     return 0;
4807   }
4808
4809   /* InitBasicFS for test_cp_1: create ext2 on /dev/sda1 */
4810   {
4811     char device[] = "/dev/sda";
4812     int r;
4813     suppress_error = 0;
4814     r = guestfs_blockdev_setrw (g, device);
4815     if (r == -1)
4816       return -1;
4817   }
4818   {
4819     int r;
4820     suppress_error = 0;
4821     r = guestfs_umount_all (g);
4822     if (r == -1)
4823       return -1;
4824   }
4825   {
4826     int r;
4827     suppress_error = 0;
4828     r = guestfs_lvm_remove_all (g);
4829     if (r == -1)
4830       return -1;
4831   }
4832   {
4833     char device[] = "/dev/sda";
4834     char lines_0[] = ",";
4835     char *lines[] = {
4836       lines_0,
4837       NULL
4838     };
4839     int r;
4840     suppress_error = 0;
4841     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4842     if (r == -1)
4843       return -1;
4844   }
4845   {
4846     char fstype[] = "ext2";
4847     char device[] = "/dev/sda1";
4848     int r;
4849     suppress_error = 0;
4850     r = guestfs_mkfs (g, fstype, device);
4851     if (r == -1)
4852       return -1;
4853   }
4854   {
4855     char device[] = "/dev/sda1";
4856     char mountpoint[] = "/";
4857     int r;
4858     suppress_error = 0;
4859     r = guestfs_mount (g, device, mountpoint);
4860     if (r == -1)
4861       return -1;
4862   }
4863   /* TestOutputTrue for cp (1) */
4864   {
4865     char path[] = "/old";
4866     char content[] = "file content";
4867     int r;
4868     suppress_error = 0;
4869     r = guestfs_write_file (g, path, content, 0);
4870     if (r == -1)
4871       return -1;
4872   }
4873   {
4874     char src[] = "/old";
4875     char dest[] = "/new";
4876     int r;
4877     suppress_error = 0;
4878     r = guestfs_cp (g, src, dest);
4879     if (r == -1)
4880       return -1;
4881   }
4882   {
4883     char path[] = "/old";
4884     int r;
4885     suppress_error = 0;
4886     r = guestfs_is_file (g, path);
4887     if (r == -1)
4888       return -1;
4889     if (!r) {
4890       fprintf (stderr, "test_cp_1: expected true, got false\n");
4891       return -1;
4892     }
4893   }
4894   return 0;
4895 }
4896
4897 static int test_cp_2_skip (void)
4898 {
4899   const char *str;
4900
4901   str = getenv ("TEST_ONLY");
4902   if (str)
4903     return strstr (str, "cp") == NULL;
4904   str = getenv ("SKIP_TEST_CP_2");
4905   if (str && strcmp (str, "1") == 0) return 1;
4906   str = getenv ("SKIP_TEST_CP");
4907   if (str && strcmp (str, "1") == 0) return 1;
4908   return 0;
4909 }
4910
4911 static int test_cp_2 (void)
4912 {
4913   if (test_cp_2_skip ()) {
4914     printf ("%s skipped (reason: environment variable set)\n", "test_cp_2");
4915     return 0;
4916   }
4917
4918   /* InitBasicFS for test_cp_2: create ext2 on /dev/sda1 */
4919   {
4920     char device[] = "/dev/sda";
4921     int r;
4922     suppress_error = 0;
4923     r = guestfs_blockdev_setrw (g, device);
4924     if (r == -1)
4925       return -1;
4926   }
4927   {
4928     int r;
4929     suppress_error = 0;
4930     r = guestfs_umount_all (g);
4931     if (r == -1)
4932       return -1;
4933   }
4934   {
4935     int r;
4936     suppress_error = 0;
4937     r = guestfs_lvm_remove_all (g);
4938     if (r == -1)
4939       return -1;
4940   }
4941   {
4942     char device[] = "/dev/sda";
4943     char lines_0[] = ",";
4944     char *lines[] = {
4945       lines_0,
4946       NULL
4947     };
4948     int r;
4949     suppress_error = 0;
4950     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
4951     if (r == -1)
4952       return -1;
4953   }
4954   {
4955     char fstype[] = "ext2";
4956     char device[] = "/dev/sda1";
4957     int r;
4958     suppress_error = 0;
4959     r = guestfs_mkfs (g, fstype, device);
4960     if (r == -1)
4961       return -1;
4962   }
4963   {
4964     char device[] = "/dev/sda1";
4965     char mountpoint[] = "/";
4966     int r;
4967     suppress_error = 0;
4968     r = guestfs_mount (g, device, mountpoint);
4969     if (r == -1)
4970       return -1;
4971   }
4972   /* TestOutput for cp (2) */
4973   char expected[] = "file content";
4974   {
4975     char path[] = "/old";
4976     char content[] = "file content";
4977     int r;
4978     suppress_error = 0;
4979     r = guestfs_write_file (g, path, content, 0);
4980     if (r == -1)
4981       return -1;
4982   }
4983   {
4984     char path[] = "/dir";
4985     int r;
4986     suppress_error = 0;
4987     r = guestfs_mkdir (g, path);
4988     if (r == -1)
4989       return -1;
4990   }
4991   {
4992     char src[] = "/old";
4993     char dest[] = "/dir/new";
4994     int r;
4995     suppress_error = 0;
4996     r = guestfs_cp (g, src, dest);
4997     if (r == -1)
4998       return -1;
4999   }
5000   {
5001     char path[] = "/dir/new";
5002     char *r;
5003     suppress_error = 0;
5004     r = guestfs_cat (g, path);
5005     if (r == NULL)
5006       return -1;
5007     if (strcmp (r, expected) != 0) {
5008       fprintf (stderr, "test_cp_2: expected \"%s\" but got \"%s\"\n", expected, r);
5009       return -1;
5010     }
5011     free (r);
5012   }
5013   return 0;
5014 }
5015
5016 static int test_grub_install_0_skip (void)
5017 {
5018   const char *str;
5019
5020   str = getenv ("TEST_ONLY");
5021   if (str)
5022     return strstr (str, "grub_install") == NULL;
5023   str = getenv ("SKIP_TEST_GRUB_INSTALL_0");
5024   if (str && strcmp (str, "1") == 0) return 1;
5025   str = getenv ("SKIP_TEST_GRUB_INSTALL");
5026   if (str && strcmp (str, "1") == 0) return 1;
5027   return 0;
5028 }
5029
5030 static int test_grub_install_0 (void)
5031 {
5032   if (test_grub_install_0_skip ()) {
5033     printf ("%s skipped (reason: environment variable set)\n", "test_grub_install_0");
5034     return 0;
5035   }
5036
5037   /* InitBasicFS for test_grub_install_0: create ext2 on /dev/sda1 */
5038   {
5039     char device[] = "/dev/sda";
5040     int r;
5041     suppress_error = 0;
5042     r = guestfs_blockdev_setrw (g, device);
5043     if (r == -1)
5044       return -1;
5045   }
5046   {
5047     int r;
5048     suppress_error = 0;
5049     r = guestfs_umount_all (g);
5050     if (r == -1)
5051       return -1;
5052   }
5053   {
5054     int r;
5055     suppress_error = 0;
5056     r = guestfs_lvm_remove_all (g);
5057     if (r == -1)
5058       return -1;
5059   }
5060   {
5061     char device[] = "/dev/sda";
5062     char lines_0[] = ",";
5063     char *lines[] = {
5064       lines_0,
5065       NULL
5066     };
5067     int r;
5068     suppress_error = 0;
5069     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5070     if (r == -1)
5071       return -1;
5072   }
5073   {
5074     char fstype[] = "ext2";
5075     char device[] = "/dev/sda1";
5076     int r;
5077     suppress_error = 0;
5078     r = guestfs_mkfs (g, fstype, device);
5079     if (r == -1)
5080       return -1;
5081   }
5082   {
5083     char device[] = "/dev/sda1";
5084     char mountpoint[] = "/";
5085     int r;
5086     suppress_error = 0;
5087     r = guestfs_mount (g, device, mountpoint);
5088     if (r == -1)
5089       return -1;
5090   }
5091   /* TestOutputTrue for grub_install (0) */
5092   {
5093     char root[] = "/";
5094     char device[] = "/dev/sda1";
5095     int r;
5096     suppress_error = 0;
5097     r = guestfs_grub_install (g, root, device);
5098     if (r == -1)
5099       return -1;
5100   }
5101   {
5102     char path[] = "/boot";
5103     int r;
5104     suppress_error = 0;
5105     r = guestfs_is_dir (g, path);
5106     if (r == -1)
5107       return -1;
5108     if (!r) {
5109       fprintf (stderr, "test_grub_install_0: expected true, got false\n");
5110       return -1;
5111     }
5112   }
5113   return 0;
5114 }
5115
5116 static int test_zero_0_skip (void)
5117 {
5118   const char *str;
5119
5120   str = getenv ("TEST_ONLY");
5121   if (str)
5122     return strstr (str, "zero") == NULL;
5123   str = getenv ("SKIP_TEST_ZERO_0");
5124   if (str && strcmp (str, "1") == 0) return 1;
5125   str = getenv ("SKIP_TEST_ZERO");
5126   if (str && strcmp (str, "1") == 0) return 1;
5127   return 0;
5128 }
5129
5130 static int test_zero_0 (void)
5131 {
5132   if (test_zero_0_skip ()) {
5133     printf ("%s skipped (reason: environment variable set)\n", "test_zero_0");
5134     return 0;
5135   }
5136
5137   /* InitBasicFS for test_zero_0: create ext2 on /dev/sda1 */
5138   {
5139     char device[] = "/dev/sda";
5140     int r;
5141     suppress_error = 0;
5142     r = guestfs_blockdev_setrw (g, device);
5143     if (r == -1)
5144       return -1;
5145   }
5146   {
5147     int r;
5148     suppress_error = 0;
5149     r = guestfs_umount_all (g);
5150     if (r == -1)
5151       return -1;
5152   }
5153   {
5154     int r;
5155     suppress_error = 0;
5156     r = guestfs_lvm_remove_all (g);
5157     if (r == -1)
5158       return -1;
5159   }
5160   {
5161     char device[] = "/dev/sda";
5162     char lines_0[] = ",";
5163     char *lines[] = {
5164       lines_0,
5165       NULL
5166     };
5167     int r;
5168     suppress_error = 0;
5169     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5170     if (r == -1)
5171       return -1;
5172   }
5173   {
5174     char fstype[] = "ext2";
5175     char device[] = "/dev/sda1";
5176     int r;
5177     suppress_error = 0;
5178     r = guestfs_mkfs (g, fstype, device);
5179     if (r == -1)
5180       return -1;
5181   }
5182   {
5183     char device[] = "/dev/sda1";
5184     char mountpoint[] = "/";
5185     int r;
5186     suppress_error = 0;
5187     r = guestfs_mount (g, device, mountpoint);
5188     if (r == -1)
5189       return -1;
5190   }
5191   /* TestOutput for zero (0) */
5192   char expected[] = "data";
5193   {
5194     char pathordevice[] = "/dev/sda1";
5195     int r;
5196     suppress_error = 0;
5197     r = guestfs_umount (g, pathordevice);
5198     if (r == -1)
5199       return -1;
5200   }
5201   {
5202     char device[] = "/dev/sda1";
5203     int r;
5204     suppress_error = 0;
5205     r = guestfs_zero (g, device);
5206     if (r == -1)
5207       return -1;
5208   }
5209   {
5210     char path[] = "/dev/sda1";
5211     char *r;
5212     suppress_error = 0;
5213     r = guestfs_file (g, path);
5214     if (r == NULL)
5215       return -1;
5216     if (strcmp (r, expected) != 0) {
5217       fprintf (stderr, "test_zero_0: expected \"%s\" but got \"%s\"\n", expected, r);
5218       return -1;
5219     }
5220     free (r);
5221   }
5222   return 0;
5223 }
5224
5225 static int test_fsck_0_skip (void)
5226 {
5227   const char *str;
5228
5229   str = getenv ("TEST_ONLY");
5230   if (str)
5231     return strstr (str, "fsck") == NULL;
5232   str = getenv ("SKIP_TEST_FSCK_0");
5233   if (str && strcmp (str, "1") == 0) return 1;
5234   str = getenv ("SKIP_TEST_FSCK");
5235   if (str && strcmp (str, "1") == 0) return 1;
5236   return 0;
5237 }
5238
5239 static int test_fsck_0 (void)
5240 {
5241   if (test_fsck_0_skip ()) {
5242     printf ("%s skipped (reason: environment variable set)\n", "test_fsck_0");
5243     return 0;
5244   }
5245
5246   /* InitBasicFS for test_fsck_0: create ext2 on /dev/sda1 */
5247   {
5248     char device[] = "/dev/sda";
5249     int r;
5250     suppress_error = 0;
5251     r = guestfs_blockdev_setrw (g, device);
5252     if (r == -1)
5253       return -1;
5254   }
5255   {
5256     int r;
5257     suppress_error = 0;
5258     r = guestfs_umount_all (g);
5259     if (r == -1)
5260       return -1;
5261   }
5262   {
5263     int r;
5264     suppress_error = 0;
5265     r = guestfs_lvm_remove_all (g);
5266     if (r == -1)
5267       return -1;
5268   }
5269   {
5270     char device[] = "/dev/sda";
5271     char lines_0[] = ",";
5272     char *lines[] = {
5273       lines_0,
5274       NULL
5275     };
5276     int r;
5277     suppress_error = 0;
5278     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5279     if (r == -1)
5280       return -1;
5281   }
5282   {
5283     char fstype[] = "ext2";
5284     char device[] = "/dev/sda1";
5285     int r;
5286     suppress_error = 0;
5287     r = guestfs_mkfs (g, fstype, device);
5288     if (r == -1)
5289       return -1;
5290   }
5291   {
5292     char device[] = "/dev/sda1";
5293     char mountpoint[] = "/";
5294     int r;
5295     suppress_error = 0;
5296     r = guestfs_mount (g, device, mountpoint);
5297     if (r == -1)
5298       return -1;
5299   }
5300   /* TestOutputInt for fsck (0) */
5301   {
5302     char pathordevice[] = "/dev/sda1";
5303     int r;
5304     suppress_error = 0;
5305     r = guestfs_umount (g, pathordevice);
5306     if (r == -1)
5307       return -1;
5308   }
5309   {
5310     char fstype[] = "ext2";
5311     char device[] = "/dev/sda1";
5312     int r;
5313     suppress_error = 0;
5314     r = guestfs_fsck (g, fstype, device);
5315     if (r == -1)
5316       return -1;
5317     if (r != 0) {
5318       fprintf (stderr, "test_fsck_0: expected 0 but got %d\n",               (int) r);
5319       return -1;
5320     }
5321   }
5322   return 0;
5323 }
5324
5325 static int test_fsck_1_skip (void)
5326 {
5327   const char *str;
5328
5329   str = getenv ("TEST_ONLY");
5330   if (str)
5331     return strstr (str, "fsck") == NULL;
5332   str = getenv ("SKIP_TEST_FSCK_1");
5333   if (str && strcmp (str, "1") == 0) return 1;
5334   str = getenv ("SKIP_TEST_FSCK");
5335   if (str && strcmp (str, "1") == 0) return 1;
5336   return 0;
5337 }
5338
5339 static int test_fsck_1 (void)
5340 {
5341   if (test_fsck_1_skip ()) {
5342     printf ("%s skipped (reason: environment variable set)\n", "test_fsck_1");
5343     return 0;
5344   }
5345
5346   /* InitBasicFS for test_fsck_1: create ext2 on /dev/sda1 */
5347   {
5348     char device[] = "/dev/sda";
5349     int r;
5350     suppress_error = 0;
5351     r = guestfs_blockdev_setrw (g, device);
5352     if (r == -1)
5353       return -1;
5354   }
5355   {
5356     int r;
5357     suppress_error = 0;
5358     r = guestfs_umount_all (g);
5359     if (r == -1)
5360       return -1;
5361   }
5362   {
5363     int r;
5364     suppress_error = 0;
5365     r = guestfs_lvm_remove_all (g);
5366     if (r == -1)
5367       return -1;
5368   }
5369   {
5370     char device[] = "/dev/sda";
5371     char lines_0[] = ",";
5372     char *lines[] = {
5373       lines_0,
5374       NULL
5375     };
5376     int r;
5377     suppress_error = 0;
5378     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5379     if (r == -1)
5380       return -1;
5381   }
5382   {
5383     char fstype[] = "ext2";
5384     char device[] = "/dev/sda1";
5385     int r;
5386     suppress_error = 0;
5387     r = guestfs_mkfs (g, fstype, device);
5388     if (r == -1)
5389       return -1;
5390   }
5391   {
5392     char device[] = "/dev/sda1";
5393     char mountpoint[] = "/";
5394     int r;
5395     suppress_error = 0;
5396     r = guestfs_mount (g, device, mountpoint);
5397     if (r == -1)
5398       return -1;
5399   }
5400   /* TestOutputInt for fsck (1) */
5401   {
5402     char pathordevice[] = "/dev/sda1";
5403     int r;
5404     suppress_error = 0;
5405     r = guestfs_umount (g, pathordevice);
5406     if (r == -1)
5407       return -1;
5408   }
5409   {
5410     char device[] = "/dev/sda1";
5411     int r;
5412     suppress_error = 0;
5413     r = guestfs_zero (g, device);
5414     if (r == -1)
5415       return -1;
5416   }
5417   {
5418     char fstype[] = "ext2";
5419     char device[] = "/dev/sda1";
5420     int r;
5421     suppress_error = 0;
5422     r = guestfs_fsck (g, fstype, device);
5423     if (r == -1)
5424       return -1;
5425     if (r != 8) {
5426       fprintf (stderr, "test_fsck_1: expected 8 but got %d\n",               (int) r);
5427       return -1;
5428     }
5429   }
5430   return 0;
5431 }
5432
5433 static int test_set_e2uuid_0_skip (void)
5434 {
5435   const char *str;
5436
5437   str = getenv ("TEST_ONLY");
5438   if (str)
5439     return strstr (str, "set_e2uuid") == NULL;
5440   str = getenv ("SKIP_TEST_SET_E2UUID_0");
5441   if (str && strcmp (str, "1") == 0) return 1;
5442   str = getenv ("SKIP_TEST_SET_E2UUID");
5443   if (str && strcmp (str, "1") == 0) return 1;
5444   return 0;
5445 }
5446
5447 static int test_set_e2uuid_0 (void)
5448 {
5449   if (test_set_e2uuid_0_skip ()) {
5450     printf ("%s skipped (reason: environment variable set)\n", "test_set_e2uuid_0");
5451     return 0;
5452   }
5453
5454   /* InitBasicFS for test_set_e2uuid_0: create ext2 on /dev/sda1 */
5455   {
5456     char device[] = "/dev/sda";
5457     int r;
5458     suppress_error = 0;
5459     r = guestfs_blockdev_setrw (g, device);
5460     if (r == -1)
5461       return -1;
5462   }
5463   {
5464     int r;
5465     suppress_error = 0;
5466     r = guestfs_umount_all (g);
5467     if (r == -1)
5468       return -1;
5469   }
5470   {
5471     int r;
5472     suppress_error = 0;
5473     r = guestfs_lvm_remove_all (g);
5474     if (r == -1)
5475       return -1;
5476   }
5477   {
5478     char device[] = "/dev/sda";
5479     char lines_0[] = ",";
5480     char *lines[] = {
5481       lines_0,
5482       NULL
5483     };
5484     int r;
5485     suppress_error = 0;
5486     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5487     if (r == -1)
5488       return -1;
5489   }
5490   {
5491     char fstype[] = "ext2";
5492     char device[] = "/dev/sda1";
5493     int r;
5494     suppress_error = 0;
5495     r = guestfs_mkfs (g, fstype, device);
5496     if (r == -1)
5497       return -1;
5498   }
5499   {
5500     char device[] = "/dev/sda1";
5501     char mountpoint[] = "/";
5502     int r;
5503     suppress_error = 0;
5504     r = guestfs_mount (g, device, mountpoint);
5505     if (r == -1)
5506       return -1;
5507   }
5508   /* TestOutput for set_e2uuid (0) */
5509   char expected[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d";
5510   {
5511     char device[] = "/dev/sda1";
5512     char uuid[] = "a3a61220-882b-4f61-89f4-cf24dcc7297d";
5513     int r;
5514     suppress_error = 0;
5515     r = guestfs_set_e2uuid (g, device, uuid);
5516     if (r == -1)
5517       return -1;
5518   }
5519   {
5520     char device[] = "/dev/sda1";
5521     char *r;
5522     suppress_error = 0;
5523     r = guestfs_get_e2uuid (g, device);
5524     if (r == NULL)
5525       return -1;
5526     if (strcmp (r, expected) != 0) {
5527       fprintf (stderr, "test_set_e2uuid_0: expected \"%s\" but got \"%s\"\n", expected, r);
5528       return -1;
5529     }
5530     free (r);
5531   }
5532   return 0;
5533 }
5534
5535 static int test_set_e2uuid_1_skip (void)
5536 {
5537   const char *str;
5538
5539   str = getenv ("TEST_ONLY");
5540   if (str)
5541     return strstr (str, "set_e2uuid") == NULL;
5542   str = getenv ("SKIP_TEST_SET_E2UUID_1");
5543   if (str && strcmp (str, "1") == 0) return 1;
5544   str = getenv ("SKIP_TEST_SET_E2UUID");
5545   if (str && strcmp (str, "1") == 0) return 1;
5546   return 0;
5547 }
5548
5549 static int test_set_e2uuid_1 (void)
5550 {
5551   if (test_set_e2uuid_1_skip ()) {
5552     printf ("%s skipped (reason: environment variable set)\n", "test_set_e2uuid_1");
5553     return 0;
5554   }
5555
5556   /* InitBasicFS for test_set_e2uuid_1: create ext2 on /dev/sda1 */
5557   {
5558     char device[] = "/dev/sda";
5559     int r;
5560     suppress_error = 0;
5561     r = guestfs_blockdev_setrw (g, device);
5562     if (r == -1)
5563       return -1;
5564   }
5565   {
5566     int r;
5567     suppress_error = 0;
5568     r = guestfs_umount_all (g);
5569     if (r == -1)
5570       return -1;
5571   }
5572   {
5573     int r;
5574     suppress_error = 0;
5575     r = guestfs_lvm_remove_all (g);
5576     if (r == -1)
5577       return -1;
5578   }
5579   {
5580     char device[] = "/dev/sda";
5581     char lines_0[] = ",";
5582     char *lines[] = {
5583       lines_0,
5584       NULL
5585     };
5586     int r;
5587     suppress_error = 0;
5588     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5589     if (r == -1)
5590       return -1;
5591   }
5592   {
5593     char fstype[] = "ext2";
5594     char device[] = "/dev/sda1";
5595     int r;
5596     suppress_error = 0;
5597     r = guestfs_mkfs (g, fstype, device);
5598     if (r == -1)
5599       return -1;
5600   }
5601   {
5602     char device[] = "/dev/sda1";
5603     char mountpoint[] = "/";
5604     int r;
5605     suppress_error = 0;
5606     r = guestfs_mount (g, device, mountpoint);
5607     if (r == -1)
5608       return -1;
5609   }
5610   /* TestOutput for set_e2uuid (1) */
5611   char expected[] = "";
5612   {
5613     char device[] = "/dev/sda1";
5614     char uuid[] = "clear";
5615     int r;
5616     suppress_error = 0;
5617     r = guestfs_set_e2uuid (g, device, uuid);
5618     if (r == -1)
5619       return -1;
5620   }
5621   {
5622     char device[] = "/dev/sda1";
5623     char *r;
5624     suppress_error = 0;
5625     r = guestfs_get_e2uuid (g, device);
5626     if (r == NULL)
5627       return -1;
5628     if (strcmp (r, expected) != 0) {
5629       fprintf (stderr, "test_set_e2uuid_1: expected \"%s\" but got \"%s\"\n", expected, r);
5630       return -1;
5631     }
5632     free (r);
5633   }
5634   return 0;
5635 }
5636
5637 static int test_set_e2uuid_2_skip (void)
5638 {
5639   const char *str;
5640
5641   str = getenv ("TEST_ONLY");
5642   if (str)
5643     return strstr (str, "set_e2uuid") == NULL;
5644   str = getenv ("SKIP_TEST_SET_E2UUID_2");
5645   if (str && strcmp (str, "1") == 0) return 1;
5646   str = getenv ("SKIP_TEST_SET_E2UUID");
5647   if (str && strcmp (str, "1") == 0) return 1;
5648   return 0;
5649 }
5650
5651 static int test_set_e2uuid_2 (void)
5652 {
5653   if (test_set_e2uuid_2_skip ()) {
5654     printf ("%s skipped (reason: environment variable set)\n", "test_set_e2uuid_2");
5655     return 0;
5656   }
5657
5658   /* InitBasicFS for test_set_e2uuid_2: create ext2 on /dev/sda1 */
5659   {
5660     char device[] = "/dev/sda";
5661     int r;
5662     suppress_error = 0;
5663     r = guestfs_blockdev_setrw (g, device);
5664     if (r == -1)
5665       return -1;
5666   }
5667   {
5668     int r;
5669     suppress_error = 0;
5670     r = guestfs_umount_all (g);
5671     if (r == -1)
5672       return -1;
5673   }
5674   {
5675     int r;
5676     suppress_error = 0;
5677     r = guestfs_lvm_remove_all (g);
5678     if (r == -1)
5679       return -1;
5680   }
5681   {
5682     char device[] = "/dev/sda";
5683     char lines_0[] = ",";
5684     char *lines[] = {
5685       lines_0,
5686       NULL
5687     };
5688     int r;
5689     suppress_error = 0;
5690     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5691     if (r == -1)
5692       return -1;
5693   }
5694   {
5695     char fstype[] = "ext2";
5696     char device[] = "/dev/sda1";
5697     int r;
5698     suppress_error = 0;
5699     r = guestfs_mkfs (g, fstype, device);
5700     if (r == -1)
5701       return -1;
5702   }
5703   {
5704     char device[] = "/dev/sda1";
5705     char mountpoint[] = "/";
5706     int r;
5707     suppress_error = 0;
5708     r = guestfs_mount (g, device, mountpoint);
5709     if (r == -1)
5710       return -1;
5711   }
5712   /* TestRun for set_e2uuid (2) */
5713   {
5714     char device[] = "/dev/sda1";
5715     char uuid[] = "random";
5716     int r;
5717     suppress_error = 0;
5718     r = guestfs_set_e2uuid (g, device, uuid);
5719     if (r == -1)
5720       return -1;
5721   }
5722   return 0;
5723 }
5724
5725 static int test_set_e2uuid_3_skip (void)
5726 {
5727   const char *str;
5728
5729   str = getenv ("TEST_ONLY");
5730   if (str)
5731     return strstr (str, "set_e2uuid") == NULL;
5732   str = getenv ("SKIP_TEST_SET_E2UUID_3");
5733   if (str && strcmp (str, "1") == 0) return 1;
5734   str = getenv ("SKIP_TEST_SET_E2UUID");
5735   if (str && strcmp (str, "1") == 0) return 1;
5736   return 0;
5737 }
5738
5739 static int test_set_e2uuid_3 (void)
5740 {
5741   if (test_set_e2uuid_3_skip ()) {
5742     printf ("%s skipped (reason: environment variable set)\n", "test_set_e2uuid_3");
5743     return 0;
5744   }
5745
5746   /* InitBasicFS for test_set_e2uuid_3: create ext2 on /dev/sda1 */
5747   {
5748     char device[] = "/dev/sda";
5749     int r;
5750     suppress_error = 0;
5751     r = guestfs_blockdev_setrw (g, device);
5752     if (r == -1)
5753       return -1;
5754   }
5755   {
5756     int r;
5757     suppress_error = 0;
5758     r = guestfs_umount_all (g);
5759     if (r == -1)
5760       return -1;
5761   }
5762   {
5763     int r;
5764     suppress_error = 0;
5765     r = guestfs_lvm_remove_all (g);
5766     if (r == -1)
5767       return -1;
5768   }
5769   {
5770     char device[] = "/dev/sda";
5771     char lines_0[] = ",";
5772     char *lines[] = {
5773       lines_0,
5774       NULL
5775     };
5776     int r;
5777     suppress_error = 0;
5778     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5779     if (r == -1)
5780       return -1;
5781   }
5782   {
5783     char fstype[] = "ext2";
5784     char device[] = "/dev/sda1";
5785     int r;
5786     suppress_error = 0;
5787     r = guestfs_mkfs (g, fstype, device);
5788     if (r == -1)
5789       return -1;
5790   }
5791   {
5792     char device[] = "/dev/sda1";
5793     char mountpoint[] = "/";
5794     int r;
5795     suppress_error = 0;
5796     r = guestfs_mount (g, device, mountpoint);
5797     if (r == -1)
5798       return -1;
5799   }
5800   /* TestRun for set_e2uuid (3) */
5801   {
5802     char device[] = "/dev/sda1";
5803     char uuid[] = "time";
5804     int r;
5805     suppress_error = 0;
5806     r = guestfs_set_e2uuid (g, device, uuid);
5807     if (r == -1)
5808       return -1;
5809   }
5810   return 0;
5811 }
5812
5813 static int test_set_e2label_0_skip (void)
5814 {
5815   const char *str;
5816
5817   str = getenv ("TEST_ONLY");
5818   if (str)
5819     return strstr (str, "set_e2label") == NULL;
5820   str = getenv ("SKIP_TEST_SET_E2LABEL_0");
5821   if (str && strcmp (str, "1") == 0) return 1;
5822   str = getenv ("SKIP_TEST_SET_E2LABEL");
5823   if (str && strcmp (str, "1") == 0) return 1;
5824   return 0;
5825 }
5826
5827 static int test_set_e2label_0 (void)
5828 {
5829   if (test_set_e2label_0_skip ()) {
5830     printf ("%s skipped (reason: environment variable set)\n", "test_set_e2label_0");
5831     return 0;
5832   }
5833
5834   /* InitBasicFS for test_set_e2label_0: create ext2 on /dev/sda1 */
5835   {
5836     char device[] = "/dev/sda";
5837     int r;
5838     suppress_error = 0;
5839     r = guestfs_blockdev_setrw (g, device);
5840     if (r == -1)
5841       return -1;
5842   }
5843   {
5844     int r;
5845     suppress_error = 0;
5846     r = guestfs_umount_all (g);
5847     if (r == -1)
5848       return -1;
5849   }
5850   {
5851     int r;
5852     suppress_error = 0;
5853     r = guestfs_lvm_remove_all (g);
5854     if (r == -1)
5855       return -1;
5856   }
5857   {
5858     char device[] = "/dev/sda";
5859     char lines_0[] = ",";
5860     char *lines[] = {
5861       lines_0,
5862       NULL
5863     };
5864     int r;
5865     suppress_error = 0;
5866     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5867     if (r == -1)
5868       return -1;
5869   }
5870   {
5871     char fstype[] = "ext2";
5872     char device[] = "/dev/sda1";
5873     int r;
5874     suppress_error = 0;
5875     r = guestfs_mkfs (g, fstype, device);
5876     if (r == -1)
5877       return -1;
5878   }
5879   {
5880     char device[] = "/dev/sda1";
5881     char mountpoint[] = "/";
5882     int r;
5883     suppress_error = 0;
5884     r = guestfs_mount (g, device, mountpoint);
5885     if (r == -1)
5886       return -1;
5887   }
5888   /* TestOutput for set_e2label (0) */
5889   char expected[] = "testlabel";
5890   {
5891     char device[] = "/dev/sda1";
5892     char label[] = "testlabel";
5893     int r;
5894     suppress_error = 0;
5895     r = guestfs_set_e2label (g, device, label);
5896     if (r == -1)
5897       return -1;
5898   }
5899   {
5900     char device[] = "/dev/sda1";
5901     char *r;
5902     suppress_error = 0;
5903     r = guestfs_get_e2label (g, device);
5904     if (r == NULL)
5905       return -1;
5906     if (strcmp (r, expected) != 0) {
5907       fprintf (stderr, "test_set_e2label_0: expected \"%s\" but got \"%s\"\n", expected, r);
5908       return -1;
5909     }
5910     free (r);
5911   }
5912   return 0;
5913 }
5914
5915 static int test_pvremove_0_skip (void)
5916 {
5917   const char *str;
5918
5919   str = getenv ("TEST_ONLY");
5920   if (str)
5921     return strstr (str, "pvremove") == NULL;
5922   str = getenv ("SKIP_TEST_PVREMOVE_0");
5923   if (str && strcmp (str, "1") == 0) return 1;
5924   str = getenv ("SKIP_TEST_PVREMOVE");
5925   if (str && strcmp (str, "1") == 0) return 1;
5926   return 0;
5927 }
5928
5929 static int test_pvremove_0 (void)
5930 {
5931   if (test_pvremove_0_skip ()) {
5932     printf ("%s skipped (reason: environment variable set)\n", "test_pvremove_0");
5933     return 0;
5934   }
5935
5936   /* InitNone|InitEmpty for test_pvremove_0 */
5937   {
5938     char device[] = "/dev/sda";
5939     int r;
5940     suppress_error = 0;
5941     r = guestfs_blockdev_setrw (g, device);
5942     if (r == -1)
5943       return -1;
5944   }
5945   {
5946     int r;
5947     suppress_error = 0;
5948     r = guestfs_umount_all (g);
5949     if (r == -1)
5950       return -1;
5951   }
5952   {
5953     int r;
5954     suppress_error = 0;
5955     r = guestfs_lvm_remove_all (g);
5956     if (r == -1)
5957       return -1;
5958   }
5959   /* TestOutputListOfDevices for pvremove (0) */
5960   {
5961     char device[] = "/dev/sda";
5962     char lines_0[] = ",";
5963     char *lines[] = {
5964       lines_0,
5965       NULL
5966     };
5967     int r;
5968     suppress_error = 0;
5969     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
5970     if (r == -1)
5971       return -1;
5972   }
5973   {
5974     char device[] = "/dev/sda1";
5975     int r;
5976     suppress_error = 0;
5977     r = guestfs_pvcreate (g, device);
5978     if (r == -1)
5979       return -1;
5980   }
5981   {
5982     char volgroup[] = "VG";
5983     char physvols_0[] = "/dev/sda1";
5984     char *physvols[] = {
5985       physvols_0,
5986       NULL
5987     };
5988     int r;
5989     suppress_error = 0;
5990     r = guestfs_vgcreate (g, volgroup, physvols);
5991     if (r == -1)
5992       return -1;
5993   }
5994   {
5995     char logvol[] = "LV1";
5996     char volgroup[] = "VG";
5997     int r;
5998     suppress_error = 0;
5999     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6000     if (r == -1)
6001       return -1;
6002   }
6003   {
6004     char logvol[] = "LV2";
6005     char volgroup[] = "VG";
6006     int r;
6007     suppress_error = 0;
6008     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6009     if (r == -1)
6010       return -1;
6011   }
6012   {
6013     char vgname[] = "VG";
6014     int r;
6015     suppress_error = 0;
6016     r = guestfs_vgremove (g, vgname);
6017     if (r == -1)
6018       return -1;
6019   }
6020   {
6021     char device[] = "/dev/sda1";
6022     int r;
6023     suppress_error = 0;
6024     r = guestfs_pvremove (g, device);
6025     if (r == -1)
6026       return -1;
6027   }
6028   {
6029     char **r;
6030     int i;
6031     suppress_error = 0;
6032     r = guestfs_lvs (g);
6033     if (r == NULL)
6034       return -1;
6035     if (r[0] != NULL) {
6036       fprintf (stderr, "test_pvremove_0: extra elements returned from command\n");
6037       print_strings (r);
6038       return -1;
6039     }
6040     for (i = 0; r[i] != NULL; ++i)
6041       free (r[i]);
6042     free (r);
6043   }
6044   return 0;
6045 }
6046
6047 static int test_pvremove_1_skip (void)
6048 {
6049   const char *str;
6050
6051   str = getenv ("TEST_ONLY");
6052   if (str)
6053     return strstr (str, "pvremove") == NULL;
6054   str = getenv ("SKIP_TEST_PVREMOVE_1");
6055   if (str && strcmp (str, "1") == 0) return 1;
6056   str = getenv ("SKIP_TEST_PVREMOVE");
6057   if (str && strcmp (str, "1") == 0) return 1;
6058   return 0;
6059 }
6060
6061 static int test_pvremove_1 (void)
6062 {
6063   if (test_pvremove_1_skip ()) {
6064     printf ("%s skipped (reason: environment variable set)\n", "test_pvremove_1");
6065     return 0;
6066   }
6067
6068   /* InitNone|InitEmpty for test_pvremove_1 */
6069   {
6070     char device[] = "/dev/sda";
6071     int r;
6072     suppress_error = 0;
6073     r = guestfs_blockdev_setrw (g, device);
6074     if (r == -1)
6075       return -1;
6076   }
6077   {
6078     int r;
6079     suppress_error = 0;
6080     r = guestfs_umount_all (g);
6081     if (r == -1)
6082       return -1;
6083   }
6084   {
6085     int r;
6086     suppress_error = 0;
6087     r = guestfs_lvm_remove_all (g);
6088     if (r == -1)
6089       return -1;
6090   }
6091   /* TestOutputListOfDevices for pvremove (1) */
6092   {
6093     char device[] = "/dev/sda";
6094     char lines_0[] = ",";
6095     char *lines[] = {
6096       lines_0,
6097       NULL
6098     };
6099     int r;
6100     suppress_error = 0;
6101     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6102     if (r == -1)
6103       return -1;
6104   }
6105   {
6106     char device[] = "/dev/sda1";
6107     int r;
6108     suppress_error = 0;
6109     r = guestfs_pvcreate (g, device);
6110     if (r == -1)
6111       return -1;
6112   }
6113   {
6114     char volgroup[] = "VG";
6115     char physvols_0[] = "/dev/sda1";
6116     char *physvols[] = {
6117       physvols_0,
6118       NULL
6119     };
6120     int r;
6121     suppress_error = 0;
6122     r = guestfs_vgcreate (g, volgroup, physvols);
6123     if (r == -1)
6124       return -1;
6125   }
6126   {
6127     char logvol[] = "LV1";
6128     char volgroup[] = "VG";
6129     int r;
6130     suppress_error = 0;
6131     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6132     if (r == -1)
6133       return -1;
6134   }
6135   {
6136     char logvol[] = "LV2";
6137     char volgroup[] = "VG";
6138     int r;
6139     suppress_error = 0;
6140     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6141     if (r == -1)
6142       return -1;
6143   }
6144   {
6145     char vgname[] = "VG";
6146     int r;
6147     suppress_error = 0;
6148     r = guestfs_vgremove (g, vgname);
6149     if (r == -1)
6150       return -1;
6151   }
6152   {
6153     char device[] = "/dev/sda1";
6154     int r;
6155     suppress_error = 0;
6156     r = guestfs_pvremove (g, device);
6157     if (r == -1)
6158       return -1;
6159   }
6160   {
6161     char **r;
6162     int i;
6163     suppress_error = 0;
6164     r = guestfs_vgs (g);
6165     if (r == NULL)
6166       return -1;
6167     if (r[0] != NULL) {
6168       fprintf (stderr, "test_pvremove_1: extra elements returned from command\n");
6169       print_strings (r);
6170       return -1;
6171     }
6172     for (i = 0; r[i] != NULL; ++i)
6173       free (r[i]);
6174     free (r);
6175   }
6176   return 0;
6177 }
6178
6179 static int test_pvremove_2_skip (void)
6180 {
6181   const char *str;
6182
6183   str = getenv ("TEST_ONLY");
6184   if (str)
6185     return strstr (str, "pvremove") == NULL;
6186   str = getenv ("SKIP_TEST_PVREMOVE_2");
6187   if (str && strcmp (str, "1") == 0) return 1;
6188   str = getenv ("SKIP_TEST_PVREMOVE");
6189   if (str && strcmp (str, "1") == 0) return 1;
6190   return 0;
6191 }
6192
6193 static int test_pvremove_2 (void)
6194 {
6195   if (test_pvremove_2_skip ()) {
6196     printf ("%s skipped (reason: environment variable set)\n", "test_pvremove_2");
6197     return 0;
6198   }
6199
6200   /* InitNone|InitEmpty for test_pvremove_2 */
6201   {
6202     char device[] = "/dev/sda";
6203     int r;
6204     suppress_error = 0;
6205     r = guestfs_blockdev_setrw (g, device);
6206     if (r == -1)
6207       return -1;
6208   }
6209   {
6210     int r;
6211     suppress_error = 0;
6212     r = guestfs_umount_all (g);
6213     if (r == -1)
6214       return -1;
6215   }
6216   {
6217     int r;
6218     suppress_error = 0;
6219     r = guestfs_lvm_remove_all (g);
6220     if (r == -1)
6221       return -1;
6222   }
6223   /* TestOutputListOfDevices for pvremove (2) */
6224   {
6225     char device[] = "/dev/sda";
6226     char lines_0[] = ",";
6227     char *lines[] = {
6228       lines_0,
6229       NULL
6230     };
6231     int r;
6232     suppress_error = 0;
6233     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6234     if (r == -1)
6235       return -1;
6236   }
6237   {
6238     char device[] = "/dev/sda1";
6239     int r;
6240     suppress_error = 0;
6241     r = guestfs_pvcreate (g, device);
6242     if (r == -1)
6243       return -1;
6244   }
6245   {
6246     char volgroup[] = "VG";
6247     char physvols_0[] = "/dev/sda1";
6248     char *physvols[] = {
6249       physvols_0,
6250       NULL
6251     };
6252     int r;
6253     suppress_error = 0;
6254     r = guestfs_vgcreate (g, volgroup, physvols);
6255     if (r == -1)
6256       return -1;
6257   }
6258   {
6259     char logvol[] = "LV1";
6260     char volgroup[] = "VG";
6261     int r;
6262     suppress_error = 0;
6263     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6264     if (r == -1)
6265       return -1;
6266   }
6267   {
6268     char logvol[] = "LV2";
6269     char volgroup[] = "VG";
6270     int r;
6271     suppress_error = 0;
6272     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6273     if (r == -1)
6274       return -1;
6275   }
6276   {
6277     char vgname[] = "VG";
6278     int r;
6279     suppress_error = 0;
6280     r = guestfs_vgremove (g, vgname);
6281     if (r == -1)
6282       return -1;
6283   }
6284   {
6285     char device[] = "/dev/sda1";
6286     int r;
6287     suppress_error = 0;
6288     r = guestfs_pvremove (g, device);
6289     if (r == -1)
6290       return -1;
6291   }
6292   {
6293     char **r;
6294     int i;
6295     suppress_error = 0;
6296     r = guestfs_pvs (g);
6297     if (r == NULL)
6298       return -1;
6299     if (r[0] != NULL) {
6300       fprintf (stderr, "test_pvremove_2: extra elements returned from command\n");
6301       print_strings (r);
6302       return -1;
6303     }
6304     for (i = 0; r[i] != NULL; ++i)
6305       free (r[i]);
6306     free (r);
6307   }
6308   return 0;
6309 }
6310
6311 static int test_vgremove_0_skip (void)
6312 {
6313   const char *str;
6314
6315   str = getenv ("TEST_ONLY");
6316   if (str)
6317     return strstr (str, "vgremove") == NULL;
6318   str = getenv ("SKIP_TEST_VGREMOVE_0");
6319   if (str && strcmp (str, "1") == 0) return 1;
6320   str = getenv ("SKIP_TEST_VGREMOVE");
6321   if (str && strcmp (str, "1") == 0) return 1;
6322   return 0;
6323 }
6324
6325 static int test_vgremove_0 (void)
6326 {
6327   if (test_vgremove_0_skip ()) {
6328     printf ("%s skipped (reason: environment variable set)\n", "test_vgremove_0");
6329     return 0;
6330   }
6331
6332   /* InitNone|InitEmpty for test_vgremove_0 */
6333   {
6334     char device[] = "/dev/sda";
6335     int r;
6336     suppress_error = 0;
6337     r = guestfs_blockdev_setrw (g, device);
6338     if (r == -1)
6339       return -1;
6340   }
6341   {
6342     int r;
6343     suppress_error = 0;
6344     r = guestfs_umount_all (g);
6345     if (r == -1)
6346       return -1;
6347   }
6348   {
6349     int r;
6350     suppress_error = 0;
6351     r = guestfs_lvm_remove_all (g);
6352     if (r == -1)
6353       return -1;
6354   }
6355   /* TestOutputList for vgremove (0) */
6356   {
6357     char device[] = "/dev/sda";
6358     char lines_0[] = ",";
6359     char *lines[] = {
6360       lines_0,
6361       NULL
6362     };
6363     int r;
6364     suppress_error = 0;
6365     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6366     if (r == -1)
6367       return -1;
6368   }
6369   {
6370     char device[] = "/dev/sda1";
6371     int r;
6372     suppress_error = 0;
6373     r = guestfs_pvcreate (g, device);
6374     if (r == -1)
6375       return -1;
6376   }
6377   {
6378     char volgroup[] = "VG";
6379     char physvols_0[] = "/dev/sda1";
6380     char *physvols[] = {
6381       physvols_0,
6382       NULL
6383     };
6384     int r;
6385     suppress_error = 0;
6386     r = guestfs_vgcreate (g, volgroup, physvols);
6387     if (r == -1)
6388       return -1;
6389   }
6390   {
6391     char logvol[] = "LV1";
6392     char volgroup[] = "VG";
6393     int r;
6394     suppress_error = 0;
6395     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6396     if (r == -1)
6397       return -1;
6398   }
6399   {
6400     char logvol[] = "LV2";
6401     char volgroup[] = "VG";
6402     int r;
6403     suppress_error = 0;
6404     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6405     if (r == -1)
6406       return -1;
6407   }
6408   {
6409     char vgname[] = "VG";
6410     int r;
6411     suppress_error = 0;
6412     r = guestfs_vgremove (g, vgname);
6413     if (r == -1)
6414       return -1;
6415   }
6416   {
6417     char **r;
6418     int i;
6419     suppress_error = 0;
6420     r = guestfs_lvs (g);
6421     if (r == NULL)
6422       return -1;
6423     if (r[0] != NULL) {
6424       fprintf (stderr, "test_vgremove_0: extra elements returned from command\n");
6425       print_strings (r);
6426       return -1;
6427     }
6428     for (i = 0; r[i] != NULL; ++i)
6429       free (r[i]);
6430     free (r);
6431   }
6432   return 0;
6433 }
6434
6435 static int test_vgremove_1_skip (void)
6436 {
6437   const char *str;
6438
6439   str = getenv ("TEST_ONLY");
6440   if (str)
6441     return strstr (str, "vgremove") == NULL;
6442   str = getenv ("SKIP_TEST_VGREMOVE_1");
6443   if (str && strcmp (str, "1") == 0) return 1;
6444   str = getenv ("SKIP_TEST_VGREMOVE");
6445   if (str && strcmp (str, "1") == 0) return 1;
6446   return 0;
6447 }
6448
6449 static int test_vgremove_1 (void)
6450 {
6451   if (test_vgremove_1_skip ()) {
6452     printf ("%s skipped (reason: environment variable set)\n", "test_vgremove_1");
6453     return 0;
6454   }
6455
6456   /* InitNone|InitEmpty for test_vgremove_1 */
6457   {
6458     char device[] = "/dev/sda";
6459     int r;
6460     suppress_error = 0;
6461     r = guestfs_blockdev_setrw (g, device);
6462     if (r == -1)
6463       return -1;
6464   }
6465   {
6466     int r;
6467     suppress_error = 0;
6468     r = guestfs_umount_all (g);
6469     if (r == -1)
6470       return -1;
6471   }
6472   {
6473     int r;
6474     suppress_error = 0;
6475     r = guestfs_lvm_remove_all (g);
6476     if (r == -1)
6477       return -1;
6478   }
6479   /* TestOutputList for vgremove (1) */
6480   {
6481     char device[] = "/dev/sda";
6482     char lines_0[] = ",";
6483     char *lines[] = {
6484       lines_0,
6485       NULL
6486     };
6487     int r;
6488     suppress_error = 0;
6489     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6490     if (r == -1)
6491       return -1;
6492   }
6493   {
6494     char device[] = "/dev/sda1";
6495     int r;
6496     suppress_error = 0;
6497     r = guestfs_pvcreate (g, device);
6498     if (r == -1)
6499       return -1;
6500   }
6501   {
6502     char volgroup[] = "VG";
6503     char physvols_0[] = "/dev/sda1";
6504     char *physvols[] = {
6505       physvols_0,
6506       NULL
6507     };
6508     int r;
6509     suppress_error = 0;
6510     r = guestfs_vgcreate (g, volgroup, physvols);
6511     if (r == -1)
6512       return -1;
6513   }
6514   {
6515     char logvol[] = "LV1";
6516     char volgroup[] = "VG";
6517     int r;
6518     suppress_error = 0;
6519     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6520     if (r == -1)
6521       return -1;
6522   }
6523   {
6524     char logvol[] = "LV2";
6525     char volgroup[] = "VG";
6526     int r;
6527     suppress_error = 0;
6528     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6529     if (r == -1)
6530       return -1;
6531   }
6532   {
6533     char vgname[] = "VG";
6534     int r;
6535     suppress_error = 0;
6536     r = guestfs_vgremove (g, vgname);
6537     if (r == -1)
6538       return -1;
6539   }
6540   {
6541     char **r;
6542     int i;
6543     suppress_error = 0;
6544     r = guestfs_vgs (g);
6545     if (r == NULL)
6546       return -1;
6547     if (r[0] != NULL) {
6548       fprintf (stderr, "test_vgremove_1: extra elements returned from command\n");
6549       print_strings (r);
6550       return -1;
6551     }
6552     for (i = 0; r[i] != NULL; ++i)
6553       free (r[i]);
6554     free (r);
6555   }
6556   return 0;
6557 }
6558
6559 static int test_lvremove_0_skip (void)
6560 {
6561   const char *str;
6562
6563   str = getenv ("TEST_ONLY");
6564   if (str)
6565     return strstr (str, "lvremove") == NULL;
6566   str = getenv ("SKIP_TEST_LVREMOVE_0");
6567   if (str && strcmp (str, "1") == 0) return 1;
6568   str = getenv ("SKIP_TEST_LVREMOVE");
6569   if (str && strcmp (str, "1") == 0) return 1;
6570   return 0;
6571 }
6572
6573 static int test_lvremove_0 (void)
6574 {
6575   if (test_lvremove_0_skip ()) {
6576     printf ("%s skipped (reason: environment variable set)\n", "test_lvremove_0");
6577     return 0;
6578   }
6579
6580   /* InitNone|InitEmpty for test_lvremove_0 */
6581   {
6582     char device[] = "/dev/sda";
6583     int r;
6584     suppress_error = 0;
6585     r = guestfs_blockdev_setrw (g, device);
6586     if (r == -1)
6587       return -1;
6588   }
6589   {
6590     int r;
6591     suppress_error = 0;
6592     r = guestfs_umount_all (g);
6593     if (r == -1)
6594       return -1;
6595   }
6596   {
6597     int r;
6598     suppress_error = 0;
6599     r = guestfs_lvm_remove_all (g);
6600     if (r == -1)
6601       return -1;
6602   }
6603   /* TestOutputList for lvremove (0) */
6604   {
6605     char device[] = "/dev/sda";
6606     char lines_0[] = ",";
6607     char *lines[] = {
6608       lines_0,
6609       NULL
6610     };
6611     int r;
6612     suppress_error = 0;
6613     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6614     if (r == -1)
6615       return -1;
6616   }
6617   {
6618     char device[] = "/dev/sda1";
6619     int r;
6620     suppress_error = 0;
6621     r = guestfs_pvcreate (g, device);
6622     if (r == -1)
6623       return -1;
6624   }
6625   {
6626     char volgroup[] = "VG";
6627     char physvols_0[] = "/dev/sda1";
6628     char *physvols[] = {
6629       physvols_0,
6630       NULL
6631     };
6632     int r;
6633     suppress_error = 0;
6634     r = guestfs_vgcreate (g, volgroup, physvols);
6635     if (r == -1)
6636       return -1;
6637   }
6638   {
6639     char logvol[] = "LV1";
6640     char volgroup[] = "VG";
6641     int r;
6642     suppress_error = 0;
6643     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6644     if (r == -1)
6645       return -1;
6646   }
6647   {
6648     char logvol[] = "LV2";
6649     char volgroup[] = "VG";
6650     int r;
6651     suppress_error = 0;
6652     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6653     if (r == -1)
6654       return -1;
6655   }
6656   {
6657     char device[] = "/dev/VG/LV1";
6658     int r;
6659     suppress_error = 0;
6660     r = guestfs_lvremove (g, device);
6661     if (r == -1)
6662       return -1;
6663   }
6664   {
6665     char **r;
6666     int i;
6667     suppress_error = 0;
6668     r = guestfs_lvs (g);
6669     if (r == NULL)
6670       return -1;
6671     if (!r[0]) {
6672       fprintf (stderr, "test_lvremove_0: short list returned from command\n");
6673       print_strings (r);
6674       return -1;
6675     }
6676     {
6677       char expected[] = "/dev/VG/LV2";
6678       if (strcmp (r[0], expected) != 0) {
6679         fprintf (stderr, "test_lvremove_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
6680         return -1;
6681       }
6682     }
6683     if (r[1] != NULL) {
6684       fprintf (stderr, "test_lvremove_0: extra elements returned from command\n");
6685       print_strings (r);
6686       return -1;
6687     }
6688     for (i = 0; r[i] != NULL; ++i)
6689       free (r[i]);
6690     free (r);
6691   }
6692   return 0;
6693 }
6694
6695 static int test_lvremove_1_skip (void)
6696 {
6697   const char *str;
6698
6699   str = getenv ("TEST_ONLY");
6700   if (str)
6701     return strstr (str, "lvremove") == NULL;
6702   str = getenv ("SKIP_TEST_LVREMOVE_1");
6703   if (str && strcmp (str, "1") == 0) return 1;
6704   str = getenv ("SKIP_TEST_LVREMOVE");
6705   if (str && strcmp (str, "1") == 0) return 1;
6706   return 0;
6707 }
6708
6709 static int test_lvremove_1 (void)
6710 {
6711   if (test_lvremove_1_skip ()) {
6712     printf ("%s skipped (reason: environment variable set)\n", "test_lvremove_1");
6713     return 0;
6714   }
6715
6716   /* InitNone|InitEmpty for test_lvremove_1 */
6717   {
6718     char device[] = "/dev/sda";
6719     int r;
6720     suppress_error = 0;
6721     r = guestfs_blockdev_setrw (g, device);
6722     if (r == -1)
6723       return -1;
6724   }
6725   {
6726     int r;
6727     suppress_error = 0;
6728     r = guestfs_umount_all (g);
6729     if (r == -1)
6730       return -1;
6731   }
6732   {
6733     int r;
6734     suppress_error = 0;
6735     r = guestfs_lvm_remove_all (g);
6736     if (r == -1)
6737       return -1;
6738   }
6739   /* TestOutputList for lvremove (1) */
6740   {
6741     char device[] = "/dev/sda";
6742     char lines_0[] = ",";
6743     char *lines[] = {
6744       lines_0,
6745       NULL
6746     };
6747     int r;
6748     suppress_error = 0;
6749     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6750     if (r == -1)
6751       return -1;
6752   }
6753   {
6754     char device[] = "/dev/sda1";
6755     int r;
6756     suppress_error = 0;
6757     r = guestfs_pvcreate (g, device);
6758     if (r == -1)
6759       return -1;
6760   }
6761   {
6762     char volgroup[] = "VG";
6763     char physvols_0[] = "/dev/sda1";
6764     char *physvols[] = {
6765       physvols_0,
6766       NULL
6767     };
6768     int r;
6769     suppress_error = 0;
6770     r = guestfs_vgcreate (g, volgroup, physvols);
6771     if (r == -1)
6772       return -1;
6773   }
6774   {
6775     char logvol[] = "LV1";
6776     char volgroup[] = "VG";
6777     int r;
6778     suppress_error = 0;
6779     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6780     if (r == -1)
6781       return -1;
6782   }
6783   {
6784     char logvol[] = "LV2";
6785     char volgroup[] = "VG";
6786     int r;
6787     suppress_error = 0;
6788     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6789     if (r == -1)
6790       return -1;
6791   }
6792   {
6793     char device[] = "/dev/VG";
6794     int r;
6795     suppress_error = 0;
6796     r = guestfs_lvremove (g, device);
6797     if (r == -1)
6798       return -1;
6799   }
6800   {
6801     char **r;
6802     int i;
6803     suppress_error = 0;
6804     r = guestfs_lvs (g);
6805     if (r == NULL)
6806       return -1;
6807     if (r[0] != NULL) {
6808       fprintf (stderr, "test_lvremove_1: extra elements returned from command\n");
6809       print_strings (r);
6810       return -1;
6811     }
6812     for (i = 0; r[i] != NULL; ++i)
6813       free (r[i]);
6814     free (r);
6815   }
6816   return 0;
6817 }
6818
6819 static int test_lvremove_2_skip (void)
6820 {
6821   const char *str;
6822
6823   str = getenv ("TEST_ONLY");
6824   if (str)
6825     return strstr (str, "lvremove") == NULL;
6826   str = getenv ("SKIP_TEST_LVREMOVE_2");
6827   if (str && strcmp (str, "1") == 0) return 1;
6828   str = getenv ("SKIP_TEST_LVREMOVE");
6829   if (str && strcmp (str, "1") == 0) return 1;
6830   return 0;
6831 }
6832
6833 static int test_lvremove_2 (void)
6834 {
6835   if (test_lvremove_2_skip ()) {
6836     printf ("%s skipped (reason: environment variable set)\n", "test_lvremove_2");
6837     return 0;
6838   }
6839
6840   /* InitNone|InitEmpty for test_lvremove_2 */
6841   {
6842     char device[] = "/dev/sda";
6843     int r;
6844     suppress_error = 0;
6845     r = guestfs_blockdev_setrw (g, device);
6846     if (r == -1)
6847       return -1;
6848   }
6849   {
6850     int r;
6851     suppress_error = 0;
6852     r = guestfs_umount_all (g);
6853     if (r == -1)
6854       return -1;
6855   }
6856   {
6857     int r;
6858     suppress_error = 0;
6859     r = guestfs_lvm_remove_all (g);
6860     if (r == -1)
6861       return -1;
6862   }
6863   /* TestOutputList for lvremove (2) */
6864   {
6865     char device[] = "/dev/sda";
6866     char lines_0[] = ",";
6867     char *lines[] = {
6868       lines_0,
6869       NULL
6870     };
6871     int r;
6872     suppress_error = 0;
6873     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
6874     if (r == -1)
6875       return -1;
6876   }
6877   {
6878     char device[] = "/dev/sda1";
6879     int r;
6880     suppress_error = 0;
6881     r = guestfs_pvcreate (g, device);
6882     if (r == -1)
6883       return -1;
6884   }
6885   {
6886     char volgroup[] = "VG";
6887     char physvols_0[] = "/dev/sda1";
6888     char *physvols[] = {
6889       physvols_0,
6890       NULL
6891     };
6892     int r;
6893     suppress_error = 0;
6894     r = guestfs_vgcreate (g, volgroup, physvols);
6895     if (r == -1)
6896       return -1;
6897   }
6898   {
6899     char logvol[] = "LV1";
6900     char volgroup[] = "VG";
6901     int r;
6902     suppress_error = 0;
6903     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6904     if (r == -1)
6905       return -1;
6906   }
6907   {
6908     char logvol[] = "LV2";
6909     char volgroup[] = "VG";
6910     int r;
6911     suppress_error = 0;
6912     r = guestfs_lvcreate (g, logvol, volgroup, 50);
6913     if (r == -1)
6914       return -1;
6915   }
6916   {
6917     char device[] = "/dev/VG";
6918     int r;
6919     suppress_error = 0;
6920     r = guestfs_lvremove (g, device);
6921     if (r == -1)
6922       return -1;
6923   }
6924   {
6925     char **r;
6926     int i;
6927     suppress_error = 0;
6928     r = guestfs_vgs (g);
6929     if (r == NULL)
6930       return -1;
6931     if (!r[0]) {
6932       fprintf (stderr, "test_lvremove_2: short list returned from command\n");
6933       print_strings (r);
6934       return -1;
6935     }
6936     {
6937       char expected[] = "VG";
6938       if (strcmp (r[0], expected) != 0) {
6939         fprintf (stderr, "test_lvremove_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
6940         return -1;
6941       }
6942     }
6943     if (r[1] != NULL) {
6944       fprintf (stderr, "test_lvremove_2: extra elements returned from command\n");
6945       print_strings (r);
6946       return -1;
6947     }
6948     for (i = 0; r[i] != NULL; ++i)
6949       free (r[i]);
6950     free (r);
6951   }
6952   return 0;
6953 }
6954
6955 static int test_mount_ro_0_skip (void)
6956 {
6957   const char *str;
6958
6959   str = getenv ("TEST_ONLY");
6960   if (str)
6961     return strstr (str, "mount_ro") == NULL;
6962   str = getenv ("SKIP_TEST_MOUNT_RO_0");
6963   if (str && strcmp (str, "1") == 0) return 1;
6964   str = getenv ("SKIP_TEST_MOUNT_RO");
6965   if (str && strcmp (str, "1") == 0) return 1;
6966   return 0;
6967 }
6968
6969 static int test_mount_ro_0 (void)
6970 {
6971   if (test_mount_ro_0_skip ()) {
6972     printf ("%s skipped (reason: environment variable set)\n", "test_mount_ro_0");
6973     return 0;
6974   }
6975
6976   /* InitBasicFS for test_mount_ro_0: create ext2 on /dev/sda1 */
6977   {
6978     char device[] = "/dev/sda";
6979     int r;
6980     suppress_error = 0;
6981     r = guestfs_blockdev_setrw (g, device);
6982     if (r == -1)
6983       return -1;
6984   }
6985   {
6986     int r;
6987     suppress_error = 0;
6988     r = guestfs_umount_all (g);
6989     if (r == -1)
6990       return -1;
6991   }
6992   {
6993     int r;
6994     suppress_error = 0;
6995     r = guestfs_lvm_remove_all (g);
6996     if (r == -1)
6997       return -1;
6998   }
6999   {
7000     char device[] = "/dev/sda";
7001     char lines_0[] = ",";
7002     char *lines[] = {
7003       lines_0,
7004       NULL
7005     };
7006     int r;
7007     suppress_error = 0;
7008     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7009     if (r == -1)
7010       return -1;
7011   }
7012   {
7013     char fstype[] = "ext2";
7014     char device[] = "/dev/sda1";
7015     int r;
7016     suppress_error = 0;
7017     r = guestfs_mkfs (g, fstype, device);
7018     if (r == -1)
7019       return -1;
7020   }
7021   {
7022     char device[] = "/dev/sda1";
7023     char mountpoint[] = "/";
7024     int r;
7025     suppress_error = 0;
7026     r = guestfs_mount (g, device, mountpoint);
7027     if (r == -1)
7028       return -1;
7029   }
7030   /* TestLastFail for mount_ro (0) */
7031   {
7032     char pathordevice[] = "/";
7033     int r;
7034     suppress_error = 0;
7035     r = guestfs_umount (g, pathordevice);
7036     if (r == -1)
7037       return -1;
7038   }
7039   {
7040     char device[] = "/dev/sda1";
7041     char mountpoint[] = "/";
7042     int r;
7043     suppress_error = 0;
7044     r = guestfs_mount_ro (g, device, mountpoint);
7045     if (r == -1)
7046       return -1;
7047   }
7048   {
7049     char path[] = "/new";
7050     int r;
7051     suppress_error = 1;
7052     r = guestfs_touch (g, path);
7053     if (r != -1)
7054       return -1;
7055   }
7056   return 0;
7057 }
7058
7059 static int test_mount_ro_1_skip (void)
7060 {
7061   const char *str;
7062
7063   str = getenv ("TEST_ONLY");
7064   if (str)
7065     return strstr (str, "mount_ro") == NULL;
7066   str = getenv ("SKIP_TEST_MOUNT_RO_1");
7067   if (str && strcmp (str, "1") == 0) return 1;
7068   str = getenv ("SKIP_TEST_MOUNT_RO");
7069   if (str && strcmp (str, "1") == 0) return 1;
7070   return 0;
7071 }
7072
7073 static int test_mount_ro_1 (void)
7074 {
7075   if (test_mount_ro_1_skip ()) {
7076     printf ("%s skipped (reason: environment variable set)\n", "test_mount_ro_1");
7077     return 0;
7078   }
7079
7080   /* InitBasicFS for test_mount_ro_1: create ext2 on /dev/sda1 */
7081   {
7082     char device[] = "/dev/sda";
7083     int r;
7084     suppress_error = 0;
7085     r = guestfs_blockdev_setrw (g, device);
7086     if (r == -1)
7087       return -1;
7088   }
7089   {
7090     int r;
7091     suppress_error = 0;
7092     r = guestfs_umount_all (g);
7093     if (r == -1)
7094       return -1;
7095   }
7096   {
7097     int r;
7098     suppress_error = 0;
7099     r = guestfs_lvm_remove_all (g);
7100     if (r == -1)
7101       return -1;
7102   }
7103   {
7104     char device[] = "/dev/sda";
7105     char lines_0[] = ",";
7106     char *lines[] = {
7107       lines_0,
7108       NULL
7109     };
7110     int r;
7111     suppress_error = 0;
7112     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7113     if (r == -1)
7114       return -1;
7115   }
7116   {
7117     char fstype[] = "ext2";
7118     char device[] = "/dev/sda1";
7119     int r;
7120     suppress_error = 0;
7121     r = guestfs_mkfs (g, fstype, device);
7122     if (r == -1)
7123       return -1;
7124   }
7125   {
7126     char device[] = "/dev/sda1";
7127     char mountpoint[] = "/";
7128     int r;
7129     suppress_error = 0;
7130     r = guestfs_mount (g, device, mountpoint);
7131     if (r == -1)
7132       return -1;
7133   }
7134   /* TestOutput for mount_ro (1) */
7135   char expected[] = "data";
7136   {
7137     char path[] = "/new";
7138     char content[] = "data";
7139     int r;
7140     suppress_error = 0;
7141     r = guestfs_write_file (g, path, content, 0);
7142     if (r == -1)
7143       return -1;
7144   }
7145   {
7146     char pathordevice[] = "/";
7147     int r;
7148     suppress_error = 0;
7149     r = guestfs_umount (g, pathordevice);
7150     if (r == -1)
7151       return -1;
7152   }
7153   {
7154     char device[] = "/dev/sda1";
7155     char mountpoint[] = "/";
7156     int r;
7157     suppress_error = 0;
7158     r = guestfs_mount_ro (g, device, mountpoint);
7159     if (r == -1)
7160       return -1;
7161   }
7162   {
7163     char path[] = "/new";
7164     char *r;
7165     suppress_error = 0;
7166     r = guestfs_cat (g, path);
7167     if (r == NULL)
7168       return -1;
7169     if (strcmp (r, expected) != 0) {
7170       fprintf (stderr, "test_mount_ro_1: expected \"%s\" but got \"%s\"\n", expected, r);
7171       return -1;
7172     }
7173     free (r);
7174   }
7175   return 0;
7176 }
7177
7178 static int test_tgz_in_0_skip (void)
7179 {
7180   const char *str;
7181
7182   str = getenv ("TEST_ONLY");
7183   if (str)
7184     return strstr (str, "tgz_in") == NULL;
7185   str = getenv ("SKIP_TEST_TGZ_IN_0");
7186   if (str && strcmp (str, "1") == 0) return 1;
7187   str = getenv ("SKIP_TEST_TGZ_IN");
7188   if (str && strcmp (str, "1") == 0) return 1;
7189   return 0;
7190 }
7191
7192 static int test_tgz_in_0 (void)
7193 {
7194   if (test_tgz_in_0_skip ()) {
7195     printf ("%s skipped (reason: environment variable set)\n", "test_tgz_in_0");
7196     return 0;
7197   }
7198
7199   /* InitBasicFS for test_tgz_in_0: create ext2 on /dev/sda1 */
7200   {
7201     char device[] = "/dev/sda";
7202     int r;
7203     suppress_error = 0;
7204     r = guestfs_blockdev_setrw (g, device);
7205     if (r == -1)
7206       return -1;
7207   }
7208   {
7209     int r;
7210     suppress_error = 0;
7211     r = guestfs_umount_all (g);
7212     if (r == -1)
7213       return -1;
7214   }
7215   {
7216     int r;
7217     suppress_error = 0;
7218     r = guestfs_lvm_remove_all (g);
7219     if (r == -1)
7220       return -1;
7221   }
7222   {
7223     char device[] = "/dev/sda";
7224     char lines_0[] = ",";
7225     char *lines[] = {
7226       lines_0,
7227       NULL
7228     };
7229     int r;
7230     suppress_error = 0;
7231     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7232     if (r == -1)
7233       return -1;
7234   }
7235   {
7236     char fstype[] = "ext2";
7237     char device[] = "/dev/sda1";
7238     int r;
7239     suppress_error = 0;
7240     r = guestfs_mkfs (g, fstype, device);
7241     if (r == -1)
7242       return -1;
7243   }
7244   {
7245     char device[] = "/dev/sda1";
7246     char mountpoint[] = "/";
7247     int r;
7248     suppress_error = 0;
7249     r = guestfs_mount (g, device, mountpoint);
7250     if (r == -1)
7251       return -1;
7252   }
7253   /* TestOutput for tgz_in (0) */
7254   char expected[] = "hello\n";
7255   {
7256     char directory[] = "/";
7257     int r;
7258     suppress_error = 0;
7259     r = guestfs_tgz_in (g, "../images/helloworld.tar.gz", directory);
7260     if (r == -1)
7261       return -1;
7262   }
7263   {
7264     char path[] = "/hello";
7265     char *r;
7266     suppress_error = 0;
7267     r = guestfs_cat (g, path);
7268     if (r == NULL)
7269       return -1;
7270     if (strcmp (r, expected) != 0) {
7271       fprintf (stderr, "test_tgz_in_0: expected \"%s\" but got \"%s\"\n", expected, r);
7272       return -1;
7273     }
7274     free (r);
7275   }
7276   return 0;
7277 }
7278
7279 static int test_tar_in_0_skip (void)
7280 {
7281   const char *str;
7282
7283   str = getenv ("TEST_ONLY");
7284   if (str)
7285     return strstr (str, "tar_in") == NULL;
7286   str = getenv ("SKIP_TEST_TAR_IN_0");
7287   if (str && strcmp (str, "1") == 0) return 1;
7288   str = getenv ("SKIP_TEST_TAR_IN");
7289   if (str && strcmp (str, "1") == 0) return 1;
7290   return 0;
7291 }
7292
7293 static int test_tar_in_0 (void)
7294 {
7295   if (test_tar_in_0_skip ()) {
7296     printf ("%s skipped (reason: environment variable set)\n", "test_tar_in_0");
7297     return 0;
7298   }
7299
7300   /* InitBasicFS for test_tar_in_0: create ext2 on /dev/sda1 */
7301   {
7302     char device[] = "/dev/sda";
7303     int r;
7304     suppress_error = 0;
7305     r = guestfs_blockdev_setrw (g, device);
7306     if (r == -1)
7307       return -1;
7308   }
7309   {
7310     int r;
7311     suppress_error = 0;
7312     r = guestfs_umount_all (g);
7313     if (r == -1)
7314       return -1;
7315   }
7316   {
7317     int r;
7318     suppress_error = 0;
7319     r = guestfs_lvm_remove_all (g);
7320     if (r == -1)
7321       return -1;
7322   }
7323   {
7324     char device[] = "/dev/sda";
7325     char lines_0[] = ",";
7326     char *lines[] = {
7327       lines_0,
7328       NULL
7329     };
7330     int r;
7331     suppress_error = 0;
7332     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7333     if (r == -1)
7334       return -1;
7335   }
7336   {
7337     char fstype[] = "ext2";
7338     char device[] = "/dev/sda1";
7339     int r;
7340     suppress_error = 0;
7341     r = guestfs_mkfs (g, fstype, device);
7342     if (r == -1)
7343       return -1;
7344   }
7345   {
7346     char device[] = "/dev/sda1";
7347     char mountpoint[] = "/";
7348     int r;
7349     suppress_error = 0;
7350     r = guestfs_mount (g, device, mountpoint);
7351     if (r == -1)
7352       return -1;
7353   }
7354   /* TestOutput for tar_in (0) */
7355   char expected[] = "hello\n";
7356   {
7357     char directory[] = "/";
7358     int r;
7359     suppress_error = 0;
7360     r = guestfs_tar_in (g, "../images/helloworld.tar", directory);
7361     if (r == -1)
7362       return -1;
7363   }
7364   {
7365     char path[] = "/hello";
7366     char *r;
7367     suppress_error = 0;
7368     r = guestfs_cat (g, path);
7369     if (r == NULL)
7370       return -1;
7371     if (strcmp (r, expected) != 0) {
7372       fprintf (stderr, "test_tar_in_0: expected \"%s\" but got \"%s\"\n", expected, r);
7373       return -1;
7374     }
7375     free (r);
7376   }
7377   return 0;
7378 }
7379
7380 static int test_checksum_0_skip (void)
7381 {
7382   const char *str;
7383
7384   str = getenv ("TEST_ONLY");
7385   if (str)
7386     return strstr (str, "checksum") == NULL;
7387   str = getenv ("SKIP_TEST_CHECKSUM_0");
7388   if (str && strcmp (str, "1") == 0) return 1;
7389   str = getenv ("SKIP_TEST_CHECKSUM");
7390   if (str && strcmp (str, "1") == 0) return 1;
7391   return 0;
7392 }
7393
7394 static int test_checksum_0 (void)
7395 {
7396   if (test_checksum_0_skip ()) {
7397     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_0");
7398     return 0;
7399   }
7400
7401   /* InitBasicFS for test_checksum_0: create ext2 on /dev/sda1 */
7402   {
7403     char device[] = "/dev/sda";
7404     int r;
7405     suppress_error = 0;
7406     r = guestfs_blockdev_setrw (g, device);
7407     if (r == -1)
7408       return -1;
7409   }
7410   {
7411     int r;
7412     suppress_error = 0;
7413     r = guestfs_umount_all (g);
7414     if (r == -1)
7415       return -1;
7416   }
7417   {
7418     int r;
7419     suppress_error = 0;
7420     r = guestfs_lvm_remove_all (g);
7421     if (r == -1)
7422       return -1;
7423   }
7424   {
7425     char device[] = "/dev/sda";
7426     char lines_0[] = ",";
7427     char *lines[] = {
7428       lines_0,
7429       NULL
7430     };
7431     int r;
7432     suppress_error = 0;
7433     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7434     if (r == -1)
7435       return -1;
7436   }
7437   {
7438     char fstype[] = "ext2";
7439     char device[] = "/dev/sda1";
7440     int r;
7441     suppress_error = 0;
7442     r = guestfs_mkfs (g, fstype, device);
7443     if (r == -1)
7444       return -1;
7445   }
7446   {
7447     char device[] = "/dev/sda1";
7448     char mountpoint[] = "/";
7449     int r;
7450     suppress_error = 0;
7451     r = guestfs_mount (g, device, mountpoint);
7452     if (r == -1)
7453       return -1;
7454   }
7455   /* TestOutput for checksum (0) */
7456   char expected[] = "935282863";
7457   {
7458     char path[] = "/new";
7459     char content[] = "test\n";
7460     int r;
7461     suppress_error = 0;
7462     r = guestfs_write_file (g, path, content, 0);
7463     if (r == -1)
7464       return -1;
7465   }
7466   {
7467     char csumtype[] = "crc";
7468     char path[] = "/new";
7469     char *r;
7470     suppress_error = 0;
7471     r = guestfs_checksum (g, csumtype, path);
7472     if (r == NULL)
7473       return -1;
7474     if (strcmp (r, expected) != 0) {
7475       fprintf (stderr, "test_checksum_0: expected \"%s\" but got \"%s\"\n", expected, r);
7476       return -1;
7477     }
7478     free (r);
7479   }
7480   return 0;
7481 }
7482
7483 static int test_checksum_1_skip (void)
7484 {
7485   const char *str;
7486
7487   str = getenv ("TEST_ONLY");
7488   if (str)
7489     return strstr (str, "checksum") == NULL;
7490   str = getenv ("SKIP_TEST_CHECKSUM_1");
7491   if (str && strcmp (str, "1") == 0) return 1;
7492   str = getenv ("SKIP_TEST_CHECKSUM");
7493   if (str && strcmp (str, "1") == 0) return 1;
7494   return 0;
7495 }
7496
7497 static int test_checksum_1 (void)
7498 {
7499   if (test_checksum_1_skip ()) {
7500     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_1");
7501     return 0;
7502   }
7503
7504   /* InitBasicFS for test_checksum_1: create ext2 on /dev/sda1 */
7505   {
7506     char device[] = "/dev/sda";
7507     int r;
7508     suppress_error = 0;
7509     r = guestfs_blockdev_setrw (g, device);
7510     if (r == -1)
7511       return -1;
7512   }
7513   {
7514     int r;
7515     suppress_error = 0;
7516     r = guestfs_umount_all (g);
7517     if (r == -1)
7518       return -1;
7519   }
7520   {
7521     int r;
7522     suppress_error = 0;
7523     r = guestfs_lvm_remove_all (g);
7524     if (r == -1)
7525       return -1;
7526   }
7527   {
7528     char device[] = "/dev/sda";
7529     char lines_0[] = ",";
7530     char *lines[] = {
7531       lines_0,
7532       NULL
7533     };
7534     int r;
7535     suppress_error = 0;
7536     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7537     if (r == -1)
7538       return -1;
7539   }
7540   {
7541     char fstype[] = "ext2";
7542     char device[] = "/dev/sda1";
7543     int r;
7544     suppress_error = 0;
7545     r = guestfs_mkfs (g, fstype, device);
7546     if (r == -1)
7547       return -1;
7548   }
7549   {
7550     char device[] = "/dev/sda1";
7551     char mountpoint[] = "/";
7552     int r;
7553     suppress_error = 0;
7554     r = guestfs_mount (g, device, mountpoint);
7555     if (r == -1)
7556       return -1;
7557   }
7558   /* TestLastFail for checksum (1) */
7559   {
7560     char csumtype[] = "crc";
7561     char path[] = "/new";
7562     char *r;
7563     suppress_error = 1;
7564     r = guestfs_checksum (g, csumtype, path);
7565     if (r != NULL)
7566       return -1;
7567     free (r);
7568   }
7569   return 0;
7570 }
7571
7572 static int test_checksum_2_skip (void)
7573 {
7574   const char *str;
7575
7576   str = getenv ("TEST_ONLY");
7577   if (str)
7578     return strstr (str, "checksum") == NULL;
7579   str = getenv ("SKIP_TEST_CHECKSUM_2");
7580   if (str && strcmp (str, "1") == 0) return 1;
7581   str = getenv ("SKIP_TEST_CHECKSUM");
7582   if (str && strcmp (str, "1") == 0) return 1;
7583   return 0;
7584 }
7585
7586 static int test_checksum_2 (void)
7587 {
7588   if (test_checksum_2_skip ()) {
7589     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_2");
7590     return 0;
7591   }
7592
7593   /* InitBasicFS for test_checksum_2: create ext2 on /dev/sda1 */
7594   {
7595     char device[] = "/dev/sda";
7596     int r;
7597     suppress_error = 0;
7598     r = guestfs_blockdev_setrw (g, device);
7599     if (r == -1)
7600       return -1;
7601   }
7602   {
7603     int r;
7604     suppress_error = 0;
7605     r = guestfs_umount_all (g);
7606     if (r == -1)
7607       return -1;
7608   }
7609   {
7610     int r;
7611     suppress_error = 0;
7612     r = guestfs_lvm_remove_all (g);
7613     if (r == -1)
7614       return -1;
7615   }
7616   {
7617     char device[] = "/dev/sda";
7618     char lines_0[] = ",";
7619     char *lines[] = {
7620       lines_0,
7621       NULL
7622     };
7623     int r;
7624     suppress_error = 0;
7625     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7626     if (r == -1)
7627       return -1;
7628   }
7629   {
7630     char fstype[] = "ext2";
7631     char device[] = "/dev/sda1";
7632     int r;
7633     suppress_error = 0;
7634     r = guestfs_mkfs (g, fstype, device);
7635     if (r == -1)
7636       return -1;
7637   }
7638   {
7639     char device[] = "/dev/sda1";
7640     char mountpoint[] = "/";
7641     int r;
7642     suppress_error = 0;
7643     r = guestfs_mount (g, device, mountpoint);
7644     if (r == -1)
7645       return -1;
7646   }
7647   /* TestOutput for checksum (2) */
7648   char expected[] = "d8e8fca2dc0f896fd7cb4cb0031ba249";
7649   {
7650     char path[] = "/new";
7651     char content[] = "test\n";
7652     int r;
7653     suppress_error = 0;
7654     r = guestfs_write_file (g, path, content, 0);
7655     if (r == -1)
7656       return -1;
7657   }
7658   {
7659     char csumtype[] = "md5";
7660     char path[] = "/new";
7661     char *r;
7662     suppress_error = 0;
7663     r = guestfs_checksum (g, csumtype, path);
7664     if (r == NULL)
7665       return -1;
7666     if (strcmp (r, expected) != 0) {
7667       fprintf (stderr, "test_checksum_2: expected \"%s\" but got \"%s\"\n", expected, r);
7668       return -1;
7669     }
7670     free (r);
7671   }
7672   return 0;
7673 }
7674
7675 static int test_checksum_3_skip (void)
7676 {
7677   const char *str;
7678
7679   str = getenv ("TEST_ONLY");
7680   if (str)
7681     return strstr (str, "checksum") == NULL;
7682   str = getenv ("SKIP_TEST_CHECKSUM_3");
7683   if (str && strcmp (str, "1") == 0) return 1;
7684   str = getenv ("SKIP_TEST_CHECKSUM");
7685   if (str && strcmp (str, "1") == 0) return 1;
7686   return 0;
7687 }
7688
7689 static int test_checksum_3 (void)
7690 {
7691   if (test_checksum_3_skip ()) {
7692     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_3");
7693     return 0;
7694   }
7695
7696   /* InitBasicFS for test_checksum_3: create ext2 on /dev/sda1 */
7697   {
7698     char device[] = "/dev/sda";
7699     int r;
7700     suppress_error = 0;
7701     r = guestfs_blockdev_setrw (g, device);
7702     if (r == -1)
7703       return -1;
7704   }
7705   {
7706     int r;
7707     suppress_error = 0;
7708     r = guestfs_umount_all (g);
7709     if (r == -1)
7710       return -1;
7711   }
7712   {
7713     int r;
7714     suppress_error = 0;
7715     r = guestfs_lvm_remove_all (g);
7716     if (r == -1)
7717       return -1;
7718   }
7719   {
7720     char device[] = "/dev/sda";
7721     char lines_0[] = ",";
7722     char *lines[] = {
7723       lines_0,
7724       NULL
7725     };
7726     int r;
7727     suppress_error = 0;
7728     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7729     if (r == -1)
7730       return -1;
7731   }
7732   {
7733     char fstype[] = "ext2";
7734     char device[] = "/dev/sda1";
7735     int r;
7736     suppress_error = 0;
7737     r = guestfs_mkfs (g, fstype, device);
7738     if (r == -1)
7739       return -1;
7740   }
7741   {
7742     char device[] = "/dev/sda1";
7743     char mountpoint[] = "/";
7744     int r;
7745     suppress_error = 0;
7746     r = guestfs_mount (g, device, mountpoint);
7747     if (r == -1)
7748       return -1;
7749   }
7750   /* TestOutput for checksum (3) */
7751   char expected[] = "4e1243bd22c66e76c2ba9eddc1f91394e57f9f83";
7752   {
7753     char path[] = "/new";
7754     char content[] = "test\n";
7755     int r;
7756     suppress_error = 0;
7757     r = guestfs_write_file (g, path, content, 0);
7758     if (r == -1)
7759       return -1;
7760   }
7761   {
7762     char csumtype[] = "sha1";
7763     char path[] = "/new";
7764     char *r;
7765     suppress_error = 0;
7766     r = guestfs_checksum (g, csumtype, path);
7767     if (r == NULL)
7768       return -1;
7769     if (strcmp (r, expected) != 0) {
7770       fprintf (stderr, "test_checksum_3: expected \"%s\" but got \"%s\"\n", expected, r);
7771       return -1;
7772     }
7773     free (r);
7774   }
7775   return 0;
7776 }
7777
7778 static int test_checksum_4_skip (void)
7779 {
7780   const char *str;
7781
7782   str = getenv ("TEST_ONLY");
7783   if (str)
7784     return strstr (str, "checksum") == NULL;
7785   str = getenv ("SKIP_TEST_CHECKSUM_4");
7786   if (str && strcmp (str, "1") == 0) return 1;
7787   str = getenv ("SKIP_TEST_CHECKSUM");
7788   if (str && strcmp (str, "1") == 0) return 1;
7789   return 0;
7790 }
7791
7792 static int test_checksum_4 (void)
7793 {
7794   if (test_checksum_4_skip ()) {
7795     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_4");
7796     return 0;
7797   }
7798
7799   /* InitBasicFS for test_checksum_4: create ext2 on /dev/sda1 */
7800   {
7801     char device[] = "/dev/sda";
7802     int r;
7803     suppress_error = 0;
7804     r = guestfs_blockdev_setrw (g, device);
7805     if (r == -1)
7806       return -1;
7807   }
7808   {
7809     int r;
7810     suppress_error = 0;
7811     r = guestfs_umount_all (g);
7812     if (r == -1)
7813       return -1;
7814   }
7815   {
7816     int r;
7817     suppress_error = 0;
7818     r = guestfs_lvm_remove_all (g);
7819     if (r == -1)
7820       return -1;
7821   }
7822   {
7823     char device[] = "/dev/sda";
7824     char lines_0[] = ",";
7825     char *lines[] = {
7826       lines_0,
7827       NULL
7828     };
7829     int r;
7830     suppress_error = 0;
7831     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7832     if (r == -1)
7833       return -1;
7834   }
7835   {
7836     char fstype[] = "ext2";
7837     char device[] = "/dev/sda1";
7838     int r;
7839     suppress_error = 0;
7840     r = guestfs_mkfs (g, fstype, device);
7841     if (r == -1)
7842       return -1;
7843   }
7844   {
7845     char device[] = "/dev/sda1";
7846     char mountpoint[] = "/";
7847     int r;
7848     suppress_error = 0;
7849     r = guestfs_mount (g, device, mountpoint);
7850     if (r == -1)
7851       return -1;
7852   }
7853   /* TestOutput for checksum (4) */
7854   char expected[] = "52f1bf093f4b7588726035c176c0cdb4376cfea53819f1395ac9e6ec";
7855   {
7856     char path[] = "/new";
7857     char content[] = "test\n";
7858     int r;
7859     suppress_error = 0;
7860     r = guestfs_write_file (g, path, content, 0);
7861     if (r == -1)
7862       return -1;
7863   }
7864   {
7865     char csumtype[] = "sha224";
7866     char path[] = "/new";
7867     char *r;
7868     suppress_error = 0;
7869     r = guestfs_checksum (g, csumtype, path);
7870     if (r == NULL)
7871       return -1;
7872     if (strcmp (r, expected) != 0) {
7873       fprintf (stderr, "test_checksum_4: expected \"%s\" but got \"%s\"\n", expected, r);
7874       return -1;
7875     }
7876     free (r);
7877   }
7878   return 0;
7879 }
7880
7881 static int test_checksum_5_skip (void)
7882 {
7883   const char *str;
7884
7885   str = getenv ("TEST_ONLY");
7886   if (str)
7887     return strstr (str, "checksum") == NULL;
7888   str = getenv ("SKIP_TEST_CHECKSUM_5");
7889   if (str && strcmp (str, "1") == 0) return 1;
7890   str = getenv ("SKIP_TEST_CHECKSUM");
7891   if (str && strcmp (str, "1") == 0) return 1;
7892   return 0;
7893 }
7894
7895 static int test_checksum_5 (void)
7896 {
7897   if (test_checksum_5_skip ()) {
7898     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_5");
7899     return 0;
7900   }
7901
7902   /* InitBasicFS for test_checksum_5: create ext2 on /dev/sda1 */
7903   {
7904     char device[] = "/dev/sda";
7905     int r;
7906     suppress_error = 0;
7907     r = guestfs_blockdev_setrw (g, device);
7908     if (r == -1)
7909       return -1;
7910   }
7911   {
7912     int r;
7913     suppress_error = 0;
7914     r = guestfs_umount_all (g);
7915     if (r == -1)
7916       return -1;
7917   }
7918   {
7919     int r;
7920     suppress_error = 0;
7921     r = guestfs_lvm_remove_all (g);
7922     if (r == -1)
7923       return -1;
7924   }
7925   {
7926     char device[] = "/dev/sda";
7927     char lines_0[] = ",";
7928     char *lines[] = {
7929       lines_0,
7930       NULL
7931     };
7932     int r;
7933     suppress_error = 0;
7934     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
7935     if (r == -1)
7936       return -1;
7937   }
7938   {
7939     char fstype[] = "ext2";
7940     char device[] = "/dev/sda1";
7941     int r;
7942     suppress_error = 0;
7943     r = guestfs_mkfs (g, fstype, device);
7944     if (r == -1)
7945       return -1;
7946   }
7947   {
7948     char device[] = "/dev/sda1";
7949     char mountpoint[] = "/";
7950     int r;
7951     suppress_error = 0;
7952     r = guestfs_mount (g, device, mountpoint);
7953     if (r == -1)
7954       return -1;
7955   }
7956   /* TestOutput for checksum (5) */
7957   char expected[] = "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2";
7958   {
7959     char path[] = "/new";
7960     char content[] = "test\n";
7961     int r;
7962     suppress_error = 0;
7963     r = guestfs_write_file (g, path, content, 0);
7964     if (r == -1)
7965       return -1;
7966   }
7967   {
7968     char csumtype[] = "sha256";
7969     char path[] = "/new";
7970     char *r;
7971     suppress_error = 0;
7972     r = guestfs_checksum (g, csumtype, path);
7973     if (r == NULL)
7974       return -1;
7975     if (strcmp (r, expected) != 0) {
7976       fprintf (stderr, "test_checksum_5: expected \"%s\" but got \"%s\"\n", expected, r);
7977       return -1;
7978     }
7979     free (r);
7980   }
7981   return 0;
7982 }
7983
7984 static int test_checksum_6_skip (void)
7985 {
7986   const char *str;
7987
7988   str = getenv ("TEST_ONLY");
7989   if (str)
7990     return strstr (str, "checksum") == NULL;
7991   str = getenv ("SKIP_TEST_CHECKSUM_6");
7992   if (str && strcmp (str, "1") == 0) return 1;
7993   str = getenv ("SKIP_TEST_CHECKSUM");
7994   if (str && strcmp (str, "1") == 0) return 1;
7995   return 0;
7996 }
7997
7998 static int test_checksum_6 (void)
7999 {
8000   if (test_checksum_6_skip ()) {
8001     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_6");
8002     return 0;
8003   }
8004
8005   /* InitBasicFS for test_checksum_6: create ext2 on /dev/sda1 */
8006   {
8007     char device[] = "/dev/sda";
8008     int r;
8009     suppress_error = 0;
8010     r = guestfs_blockdev_setrw (g, device);
8011     if (r == -1)
8012       return -1;
8013   }
8014   {
8015     int r;
8016     suppress_error = 0;
8017     r = guestfs_umount_all (g);
8018     if (r == -1)
8019       return -1;
8020   }
8021   {
8022     int r;
8023     suppress_error = 0;
8024     r = guestfs_lvm_remove_all (g);
8025     if (r == -1)
8026       return -1;
8027   }
8028   {
8029     char device[] = "/dev/sda";
8030     char lines_0[] = ",";
8031     char *lines[] = {
8032       lines_0,
8033       NULL
8034     };
8035     int r;
8036     suppress_error = 0;
8037     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8038     if (r == -1)
8039       return -1;
8040   }
8041   {
8042     char fstype[] = "ext2";
8043     char device[] = "/dev/sda1";
8044     int r;
8045     suppress_error = 0;
8046     r = guestfs_mkfs (g, fstype, device);
8047     if (r == -1)
8048       return -1;
8049   }
8050   {
8051     char device[] = "/dev/sda1";
8052     char mountpoint[] = "/";
8053     int r;
8054     suppress_error = 0;
8055     r = guestfs_mount (g, device, mountpoint);
8056     if (r == -1)
8057       return -1;
8058   }
8059   /* TestOutput for checksum (6) */
8060   char expected[] = "109bb6b5b6d5547c1ce03c7a8bd7d8f80c1cb0957f50c4f7fda04692079917e4f9cad52b878f3d8234e1a170b154b72d";
8061   {
8062     char path[] = "/new";
8063     char content[] = "test\n";
8064     int r;
8065     suppress_error = 0;
8066     r = guestfs_write_file (g, path, content, 0);
8067     if (r == -1)
8068       return -1;
8069   }
8070   {
8071     char csumtype[] = "sha384";
8072     char path[] = "/new";
8073     char *r;
8074     suppress_error = 0;
8075     r = guestfs_checksum (g, csumtype, path);
8076     if (r == NULL)
8077       return -1;
8078     if (strcmp (r, expected) != 0) {
8079       fprintf (stderr, "test_checksum_6: expected \"%s\" but got \"%s\"\n", expected, r);
8080       return -1;
8081     }
8082     free (r);
8083   }
8084   return 0;
8085 }
8086
8087 static int test_checksum_7_skip (void)
8088 {
8089   const char *str;
8090
8091   str = getenv ("TEST_ONLY");
8092   if (str)
8093     return strstr (str, "checksum") == NULL;
8094   str = getenv ("SKIP_TEST_CHECKSUM_7");
8095   if (str && strcmp (str, "1") == 0) return 1;
8096   str = getenv ("SKIP_TEST_CHECKSUM");
8097   if (str && strcmp (str, "1") == 0) return 1;
8098   return 0;
8099 }
8100
8101 static int test_checksum_7 (void)
8102 {
8103   if (test_checksum_7_skip ()) {
8104     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_7");
8105     return 0;
8106   }
8107
8108   /* InitBasicFS for test_checksum_7: create ext2 on /dev/sda1 */
8109   {
8110     char device[] = "/dev/sda";
8111     int r;
8112     suppress_error = 0;
8113     r = guestfs_blockdev_setrw (g, device);
8114     if (r == -1)
8115       return -1;
8116   }
8117   {
8118     int r;
8119     suppress_error = 0;
8120     r = guestfs_umount_all (g);
8121     if (r == -1)
8122       return -1;
8123   }
8124   {
8125     int r;
8126     suppress_error = 0;
8127     r = guestfs_lvm_remove_all (g);
8128     if (r == -1)
8129       return -1;
8130   }
8131   {
8132     char device[] = "/dev/sda";
8133     char lines_0[] = ",";
8134     char *lines[] = {
8135       lines_0,
8136       NULL
8137     };
8138     int r;
8139     suppress_error = 0;
8140     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8141     if (r == -1)
8142       return -1;
8143   }
8144   {
8145     char fstype[] = "ext2";
8146     char device[] = "/dev/sda1";
8147     int r;
8148     suppress_error = 0;
8149     r = guestfs_mkfs (g, fstype, device);
8150     if (r == -1)
8151       return -1;
8152   }
8153   {
8154     char device[] = "/dev/sda1";
8155     char mountpoint[] = "/";
8156     int r;
8157     suppress_error = 0;
8158     r = guestfs_mount (g, device, mountpoint);
8159     if (r == -1)
8160       return -1;
8161   }
8162   /* TestOutput for checksum (7) */
8163   char expected[] = "0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123";
8164   {
8165     char path[] = "/new";
8166     char content[] = "test\n";
8167     int r;
8168     suppress_error = 0;
8169     r = guestfs_write_file (g, path, content, 0);
8170     if (r == -1)
8171       return -1;
8172   }
8173   {
8174     char csumtype[] = "sha512";
8175     char path[] = "/new";
8176     char *r;
8177     suppress_error = 0;
8178     r = guestfs_checksum (g, csumtype, path);
8179     if (r == NULL)
8180       return -1;
8181     if (strcmp (r, expected) != 0) {
8182       fprintf (stderr, "test_checksum_7: expected \"%s\" but got \"%s\"\n", expected, r);
8183       return -1;
8184     }
8185     free (r);
8186   }
8187   return 0;
8188 }
8189
8190 static int test_checksum_8_skip (void)
8191 {
8192   const char *str;
8193
8194   str = getenv ("TEST_ONLY");
8195   if (str)
8196     return strstr (str, "checksum") == NULL;
8197   str = getenv ("SKIP_TEST_CHECKSUM_8");
8198   if (str && strcmp (str, "1") == 0) return 1;
8199   str = getenv ("SKIP_TEST_CHECKSUM");
8200   if (str && strcmp (str, "1") == 0) return 1;
8201   return 0;
8202 }
8203
8204 static int test_checksum_8 (void)
8205 {
8206   if (test_checksum_8_skip ()) {
8207     printf ("%s skipped (reason: environment variable set)\n", "test_checksum_8");
8208     return 0;
8209   }
8210
8211   /* InitBasicFS for test_checksum_8: create ext2 on /dev/sda1 */
8212   {
8213     char device[] = "/dev/sda";
8214     int r;
8215     suppress_error = 0;
8216     r = guestfs_blockdev_setrw (g, device);
8217     if (r == -1)
8218       return -1;
8219   }
8220   {
8221     int r;
8222     suppress_error = 0;
8223     r = guestfs_umount_all (g);
8224     if (r == -1)
8225       return -1;
8226   }
8227   {
8228     int r;
8229     suppress_error = 0;
8230     r = guestfs_lvm_remove_all (g);
8231     if (r == -1)
8232       return -1;
8233   }
8234   {
8235     char device[] = "/dev/sda";
8236     char lines_0[] = ",";
8237     char *lines[] = {
8238       lines_0,
8239       NULL
8240     };
8241     int r;
8242     suppress_error = 0;
8243     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8244     if (r == -1)
8245       return -1;
8246   }
8247   {
8248     char fstype[] = "ext2";
8249     char device[] = "/dev/sda1";
8250     int r;
8251     suppress_error = 0;
8252     r = guestfs_mkfs (g, fstype, device);
8253     if (r == -1)
8254       return -1;
8255   }
8256   {
8257     char device[] = "/dev/sda1";
8258     char mountpoint[] = "/";
8259     int r;
8260     suppress_error = 0;
8261     r = guestfs_mount (g, device, mountpoint);
8262     if (r == -1)
8263       return -1;
8264   }
8265   /* TestOutput for checksum (8) */
8266   char expected[] = "46d6ca27ee07cdc6fa99c2e138cc522c";
8267   {
8268     char options[] = "ro";
8269     char vfstype[] = "squashfs";
8270     char device[] = "/dev/sdd";
8271     char mountpoint[] = "/";
8272     int r;
8273     suppress_error = 0;
8274     r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
8275     if (r == -1)
8276       return -1;
8277   }
8278   {
8279     char csumtype[] = "md5";
8280     char path[] = "/known-3";
8281     char *r;
8282     suppress_error = 0;
8283     r = guestfs_checksum (g, csumtype, path);
8284     if (r == NULL)
8285       return -1;
8286     if (strcmp (r, expected) != 0) {
8287       fprintf (stderr, "test_checksum_8: expected \"%s\" but got \"%s\"\n", expected, r);
8288       return -1;
8289     }
8290     free (r);
8291   }
8292   return 0;
8293 }
8294
8295 static int test_download_0_skip (void)
8296 {
8297   const char *str;
8298
8299   str = getenv ("TEST_ONLY");
8300   if (str)
8301     return strstr (str, "download") == NULL;
8302   str = getenv ("SKIP_TEST_DOWNLOAD_0");
8303   if (str && strcmp (str, "1") == 0) return 1;
8304   str = getenv ("SKIP_TEST_DOWNLOAD");
8305   if (str && strcmp (str, "1") == 0) return 1;
8306   return 0;
8307 }
8308
8309 static int test_download_0 (void)
8310 {
8311   if (test_download_0_skip ()) {
8312     printf ("%s skipped (reason: environment variable set)\n", "test_download_0");
8313     return 0;
8314   }
8315
8316   /* InitBasicFS for test_download_0: create ext2 on /dev/sda1 */
8317   {
8318     char device[] = "/dev/sda";
8319     int r;
8320     suppress_error = 0;
8321     r = guestfs_blockdev_setrw (g, device);
8322     if (r == -1)
8323       return -1;
8324   }
8325   {
8326     int r;
8327     suppress_error = 0;
8328     r = guestfs_umount_all (g);
8329     if (r == -1)
8330       return -1;
8331   }
8332   {
8333     int r;
8334     suppress_error = 0;
8335     r = guestfs_lvm_remove_all (g);
8336     if (r == -1)
8337       return -1;
8338   }
8339   {
8340     char device[] = "/dev/sda";
8341     char lines_0[] = ",";
8342     char *lines[] = {
8343       lines_0,
8344       NULL
8345     };
8346     int r;
8347     suppress_error = 0;
8348     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8349     if (r == -1)
8350       return -1;
8351   }
8352   {
8353     char fstype[] = "ext2";
8354     char device[] = "/dev/sda1";
8355     int r;
8356     suppress_error = 0;
8357     r = guestfs_mkfs (g, fstype, device);
8358     if (r == -1)
8359       return -1;
8360   }
8361   {
8362     char device[] = "/dev/sda1";
8363     char mountpoint[] = "/";
8364     int r;
8365     suppress_error = 0;
8366     r = guestfs_mount (g, device, mountpoint);
8367     if (r == -1)
8368       return -1;
8369   }
8370   /* TestOutput for download (0) */
8371   char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06";
8372   {
8373     char remotefilename[] = "/COPYING.LIB";
8374     int r;
8375     suppress_error = 0;
8376     r = guestfs_upload (g, "../COPYING.LIB", remotefilename);
8377     if (r == -1)
8378       return -1;
8379   }
8380   {
8381     char remotefilename[] = "/COPYING.LIB";
8382     int r;
8383     suppress_error = 0;
8384     r = guestfs_download (g, remotefilename, "testdownload.tmp");
8385     if (r == -1)
8386       return -1;
8387   }
8388   {
8389     char remotefilename[] = "/upload";
8390     int r;
8391     suppress_error = 0;
8392     r = guestfs_upload (g, "testdownload.tmp", remotefilename);
8393     if (r == -1)
8394       return -1;
8395   }
8396   {
8397     char csumtype[] = "md5";
8398     char path[] = "/upload";
8399     char *r;
8400     suppress_error = 0;
8401     r = guestfs_checksum (g, csumtype, path);
8402     if (r == NULL)
8403       return -1;
8404     if (strcmp (r, expected) != 0) {
8405       fprintf (stderr, "test_download_0: expected \"%s\" but got \"%s\"\n", expected, r);
8406       return -1;
8407     }
8408     free (r);
8409   }
8410   return 0;
8411 }
8412
8413 static int test_upload_0_skip (void)
8414 {
8415   const char *str;
8416
8417   str = getenv ("TEST_ONLY");
8418   if (str)
8419     return strstr (str, "upload") == NULL;
8420   str = getenv ("SKIP_TEST_UPLOAD_0");
8421   if (str && strcmp (str, "1") == 0) return 1;
8422   str = getenv ("SKIP_TEST_UPLOAD");
8423   if (str && strcmp (str, "1") == 0) return 1;
8424   return 0;
8425 }
8426
8427 static int test_upload_0 (void)
8428 {
8429   if (test_upload_0_skip ()) {
8430     printf ("%s skipped (reason: environment variable set)\n", "test_upload_0");
8431     return 0;
8432   }
8433
8434   /* InitBasicFS for test_upload_0: create ext2 on /dev/sda1 */
8435   {
8436     char device[] = "/dev/sda";
8437     int r;
8438     suppress_error = 0;
8439     r = guestfs_blockdev_setrw (g, device);
8440     if (r == -1)
8441       return -1;
8442   }
8443   {
8444     int r;
8445     suppress_error = 0;
8446     r = guestfs_umount_all (g);
8447     if (r == -1)
8448       return -1;
8449   }
8450   {
8451     int r;
8452     suppress_error = 0;
8453     r = guestfs_lvm_remove_all (g);
8454     if (r == -1)
8455       return -1;
8456   }
8457   {
8458     char device[] = "/dev/sda";
8459     char lines_0[] = ",";
8460     char *lines[] = {
8461       lines_0,
8462       NULL
8463     };
8464     int r;
8465     suppress_error = 0;
8466     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
8467     if (r == -1)
8468       return -1;
8469   }
8470   {
8471     char fstype[] = "ext2";
8472     char device[] = "/dev/sda1";
8473     int r;
8474     suppress_error = 0;
8475     r = guestfs_mkfs (g, fstype, device);
8476     if (r == -1)
8477       return -1;
8478   }
8479   {
8480     char device[] = "/dev/sda1";
8481     char mountpoint[] = "/";
8482     int r;
8483     suppress_error = 0;
8484     r = guestfs_mount (g, device, mountpoint);
8485     if (r == -1)
8486       return -1;
8487   }
8488   /* TestOutput for upload (0) */
8489   char expected[] = "e3eda01d9815f8d24aae2dbd89b68b06";
8490   {
8491     char remotefilename[] = "/COPYING.LIB";
8492     int r;
8493     suppress_error = 0;
8494     r = guestfs_upload (g, "../COPYING.LIB", remotefilename);
8495     if (r == -1)
8496       return -1;
8497   }
8498   {
8499     char csumtype[] = "md5";
8500     char path[] = "/COPYING.LIB";
8501     char *r;
8502     suppress_error = 0;
8503     r = guestfs_checksum (g, csumtype, path);
8504     if (r == NULL)
8505       return -1;
8506     if (strcmp (r, expected) != 0) {
8507       fprintf (stderr, "test_upload_0: expected \"%s\" but got \"%s\"\n", expected, r);
8508       return -1;
8509     }
8510     free (r);
8511   }
8512   return 0;
8513 }
8514
8515 static int test_blockdev_rereadpt_0_skip (void)
8516 {
8517   const char *str;
8518
8519   str = getenv ("TEST_ONLY");
8520   if (str)
8521     return strstr (str, "blockdev_rereadpt") == NULL;
8522   str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT_0");
8523   if (str && strcmp (str, "1") == 0) return 1;
8524   str = getenv ("SKIP_TEST_BLOCKDEV_REREADPT");
8525   if (str && strcmp (str, "1") == 0) return 1;
8526   return 0;
8527 }
8528
8529 static int test_blockdev_rereadpt_0 (void)
8530 {
8531   if (test_blockdev_rereadpt_0_skip ()) {
8532     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_rereadpt_0");
8533     return 0;
8534   }
8535
8536   /* InitNone|InitEmpty for test_blockdev_rereadpt_0 */
8537   {
8538     char device[] = "/dev/sda";
8539     int r;
8540     suppress_error = 0;
8541     r = guestfs_blockdev_setrw (g, device);
8542     if (r == -1)
8543       return -1;
8544   }
8545   {
8546     int r;
8547     suppress_error = 0;
8548     r = guestfs_umount_all (g);
8549     if (r == -1)
8550       return -1;
8551   }
8552   {
8553     int r;
8554     suppress_error = 0;
8555     r = guestfs_lvm_remove_all (g);
8556     if (r == -1)
8557       return -1;
8558   }
8559   /* TestRun for blockdev_rereadpt (0) */
8560   {
8561     char device[] = "/dev/sda";
8562     int r;
8563     suppress_error = 0;
8564     r = guestfs_blockdev_rereadpt (g, device);
8565     if (r == -1)
8566       return -1;
8567   }
8568   return 0;
8569 }
8570
8571 static int test_blockdev_flushbufs_0_skip (void)
8572 {
8573   const char *str;
8574
8575   str = getenv ("TEST_ONLY");
8576   if (str)
8577     return strstr (str, "blockdev_flushbufs") == NULL;
8578   str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS_0");
8579   if (str && strcmp (str, "1") == 0) return 1;
8580   str = getenv ("SKIP_TEST_BLOCKDEV_FLUSHBUFS");
8581   if (str && strcmp (str, "1") == 0) return 1;
8582   return 0;
8583 }
8584
8585 static int test_blockdev_flushbufs_0 (void)
8586 {
8587   if (test_blockdev_flushbufs_0_skip ()) {
8588     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_flushbufs_0");
8589     return 0;
8590   }
8591
8592   /* InitNone|InitEmpty for test_blockdev_flushbufs_0 */
8593   {
8594     char device[] = "/dev/sda";
8595     int r;
8596     suppress_error = 0;
8597     r = guestfs_blockdev_setrw (g, device);
8598     if (r == -1)
8599       return -1;
8600   }
8601   {
8602     int r;
8603     suppress_error = 0;
8604     r = guestfs_umount_all (g);
8605     if (r == -1)
8606       return -1;
8607   }
8608   {
8609     int r;
8610     suppress_error = 0;
8611     r = guestfs_lvm_remove_all (g);
8612     if (r == -1)
8613       return -1;
8614   }
8615   /* TestRun for blockdev_flushbufs (0) */
8616   {
8617     char device[] = "/dev/sda";
8618     int r;
8619     suppress_error = 0;
8620     r = guestfs_blockdev_flushbufs (g, device);
8621     if (r == -1)
8622       return -1;
8623   }
8624   return 0;
8625 }
8626
8627 static int test_blockdev_getsize64_0_skip (void)
8628 {
8629   const char *str;
8630
8631   str = getenv ("TEST_ONLY");
8632   if (str)
8633     return strstr (str, "blockdev_getsize64") == NULL;
8634   str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64_0");
8635   if (str && strcmp (str, "1") == 0) return 1;
8636   str = getenv ("SKIP_TEST_BLOCKDEV_GETSIZE64");
8637   if (str && strcmp (str, "1") == 0) return 1;
8638   return 0;
8639 }
8640
8641 static int test_blockdev_getsize64_0 (void)
8642 {
8643   if (test_blockdev_getsize64_0_skip ()) {
8644     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_getsize64_0");
8645     return 0;
8646   }
8647
8648   /* InitNone|InitEmpty for test_blockdev_getsize64_0 */
8649   {
8650     char device[] = "/dev/sda";
8651     int r;
8652     suppress_error = 0;
8653     r = guestfs_blockdev_setrw (g, device);
8654     if (r == -1)
8655       return -1;
8656   }
8657   {
8658     int r;
8659     suppress_error = 0;
8660     r = guestfs_umount_all (g);
8661     if (r == -1)
8662       return -1;
8663   }
8664   {
8665     int r;
8666     suppress_error = 0;
8667     r = guestfs_lvm_remove_all (g);
8668     if (r == -1)
8669       return -1;
8670   }
8671   /* TestOutputInt for blockdev_getsize64 (0) */
8672   {
8673     char device[] = "/dev/sda";
8674     int64_t r;
8675     suppress_error = 0;
8676     r = guestfs_blockdev_getsize64 (g, device);
8677     if (r == -1)
8678       return -1;
8679     if (r != 524288000) {
8680       fprintf (stderr, "test_blockdev_getsize64_0: expected 524288000 but got %d\n",               (int) r);
8681       return -1;
8682     }
8683   }
8684   return 0;
8685 }
8686
8687 static int test_blockdev_getsz_0_skip (void)
8688 {
8689   const char *str;
8690
8691   str = getenv ("TEST_ONLY");
8692   if (str)
8693     return strstr (str, "blockdev_getsz") == NULL;
8694   str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ_0");
8695   if (str && strcmp (str, "1") == 0) return 1;
8696   str = getenv ("SKIP_TEST_BLOCKDEV_GETSZ");
8697   if (str && strcmp (str, "1") == 0) return 1;
8698   return 0;
8699 }
8700
8701 static int test_blockdev_getsz_0 (void)
8702 {
8703   if (test_blockdev_getsz_0_skip ()) {
8704     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_getsz_0");
8705     return 0;
8706   }
8707
8708   /* InitNone|InitEmpty for test_blockdev_getsz_0 */
8709   {
8710     char device[] = "/dev/sda";
8711     int r;
8712     suppress_error = 0;
8713     r = guestfs_blockdev_setrw (g, device);
8714     if (r == -1)
8715       return -1;
8716   }
8717   {
8718     int r;
8719     suppress_error = 0;
8720     r = guestfs_umount_all (g);
8721     if (r == -1)
8722       return -1;
8723   }
8724   {
8725     int r;
8726     suppress_error = 0;
8727     r = guestfs_lvm_remove_all (g);
8728     if (r == -1)
8729       return -1;
8730   }
8731   /* TestOutputInt for blockdev_getsz (0) */
8732   {
8733     char device[] = "/dev/sda";
8734     int64_t r;
8735     suppress_error = 0;
8736     r = guestfs_blockdev_getsz (g, device);
8737     if (r == -1)
8738       return -1;
8739     if (r != 1024000) {
8740       fprintf (stderr, "test_blockdev_getsz_0: expected 1024000 but got %d\n",               (int) r);
8741       return -1;
8742     }
8743   }
8744   return 0;
8745 }
8746
8747 static int test_blockdev_getbsz_0_skip (void)
8748 {
8749   const char *str;
8750
8751   str = getenv ("TEST_ONLY");
8752   if (str)
8753     return strstr (str, "blockdev_getbsz") == NULL;
8754   str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ_0");
8755   if (str && strcmp (str, "1") == 0) return 1;
8756   str = getenv ("SKIP_TEST_BLOCKDEV_GETBSZ");
8757   if (str && strcmp (str, "1") == 0) return 1;
8758   return 0;
8759 }
8760
8761 static int test_blockdev_getbsz_0 (void)
8762 {
8763   if (test_blockdev_getbsz_0_skip ()) {
8764     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_getbsz_0");
8765     return 0;
8766   }
8767
8768   /* InitNone|InitEmpty for test_blockdev_getbsz_0 */
8769   {
8770     char device[] = "/dev/sda";
8771     int r;
8772     suppress_error = 0;
8773     r = guestfs_blockdev_setrw (g, device);
8774     if (r == -1)
8775       return -1;
8776   }
8777   {
8778     int r;
8779     suppress_error = 0;
8780     r = guestfs_umount_all (g);
8781     if (r == -1)
8782       return -1;
8783   }
8784   {
8785     int r;
8786     suppress_error = 0;
8787     r = guestfs_lvm_remove_all (g);
8788     if (r == -1)
8789       return -1;
8790   }
8791   /* TestOutputInt for blockdev_getbsz (0) */
8792   {
8793     char device[] = "/dev/sda";
8794     int r;
8795     suppress_error = 0;
8796     r = guestfs_blockdev_getbsz (g, device);
8797     if (r == -1)
8798       return -1;
8799     if (r != 4096) {
8800       fprintf (stderr, "test_blockdev_getbsz_0: expected 4096 but got %d\n",               (int) r);
8801       return -1;
8802     }
8803   }
8804   return 0;
8805 }
8806
8807 static int test_blockdev_getss_0_skip (void)
8808 {
8809   const char *str;
8810
8811   str = getenv ("TEST_ONLY");
8812   if (str)
8813     return strstr (str, "blockdev_getss") == NULL;
8814   str = getenv ("SKIP_TEST_BLOCKDEV_GETSS_0");
8815   if (str && strcmp (str, "1") == 0) return 1;
8816   str = getenv ("SKIP_TEST_BLOCKDEV_GETSS");
8817   if (str && strcmp (str, "1") == 0) return 1;
8818   return 0;
8819 }
8820
8821 static int test_blockdev_getss_0 (void)
8822 {
8823   if (test_blockdev_getss_0_skip ()) {
8824     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_getss_0");
8825     return 0;
8826   }
8827
8828   /* InitNone|InitEmpty for test_blockdev_getss_0 */
8829   {
8830     char device[] = "/dev/sda";
8831     int r;
8832     suppress_error = 0;
8833     r = guestfs_blockdev_setrw (g, device);
8834     if (r == -1)
8835       return -1;
8836   }
8837   {
8838     int r;
8839     suppress_error = 0;
8840     r = guestfs_umount_all (g);
8841     if (r == -1)
8842       return -1;
8843   }
8844   {
8845     int r;
8846     suppress_error = 0;
8847     r = guestfs_lvm_remove_all (g);
8848     if (r == -1)
8849       return -1;
8850   }
8851   /* TestOutputInt for blockdev_getss (0) */
8852   {
8853     char device[] = "/dev/sda";
8854     int r;
8855     suppress_error = 0;
8856     r = guestfs_blockdev_getss (g, device);
8857     if (r == -1)
8858       return -1;
8859     if (r != 512) {
8860       fprintf (stderr, "test_blockdev_getss_0: expected 512 but got %d\n",               (int) r);
8861       return -1;
8862     }
8863   }
8864   return 0;
8865 }
8866
8867 static int test_blockdev_getro_0_skip (void)
8868 {
8869   const char *str;
8870
8871   str = getenv ("TEST_ONLY");
8872   if (str)
8873     return strstr (str, "blockdev_getro") == NULL;
8874   str = getenv ("SKIP_TEST_BLOCKDEV_GETRO_0");
8875   if (str && strcmp (str, "1") == 0) return 1;
8876   str = getenv ("SKIP_TEST_BLOCKDEV_GETRO");
8877   if (str && strcmp (str, "1") == 0) return 1;
8878   return 0;
8879 }
8880
8881 static int test_blockdev_getro_0 (void)
8882 {
8883   if (test_blockdev_getro_0_skip ()) {
8884     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_getro_0");
8885     return 0;
8886   }
8887
8888   /* InitNone|InitEmpty for test_blockdev_getro_0 */
8889   {
8890     char device[] = "/dev/sda";
8891     int r;
8892     suppress_error = 0;
8893     r = guestfs_blockdev_setrw (g, device);
8894     if (r == -1)
8895       return -1;
8896   }
8897   {
8898     int r;
8899     suppress_error = 0;
8900     r = guestfs_umount_all (g);
8901     if (r == -1)
8902       return -1;
8903   }
8904   {
8905     int r;
8906     suppress_error = 0;
8907     r = guestfs_lvm_remove_all (g);
8908     if (r == -1)
8909       return -1;
8910   }
8911   /* TestOutputTrue for blockdev_getro (0) */
8912   {
8913     char device[] = "/dev/sda";
8914     int r;
8915     suppress_error = 0;
8916     r = guestfs_blockdev_setro (g, device);
8917     if (r == -1)
8918       return -1;
8919   }
8920   {
8921     char device[] = "/dev/sda";
8922     int r;
8923     suppress_error = 0;
8924     r = guestfs_blockdev_getro (g, device);
8925     if (r == -1)
8926       return -1;
8927     if (!r) {
8928       fprintf (stderr, "test_blockdev_getro_0: expected true, got false\n");
8929       return -1;
8930     }
8931   }
8932   return 0;
8933 }
8934
8935 static int test_blockdev_setrw_0_skip (void)
8936 {
8937   const char *str;
8938
8939   str = getenv ("TEST_ONLY");
8940   if (str)
8941     return strstr (str, "blockdev_setrw") == NULL;
8942   str = getenv ("SKIP_TEST_BLOCKDEV_SETRW_0");
8943   if (str && strcmp (str, "1") == 0) return 1;
8944   str = getenv ("SKIP_TEST_BLOCKDEV_SETRW");
8945   if (str && strcmp (str, "1") == 0) return 1;
8946   return 0;
8947 }
8948
8949 static int test_blockdev_setrw_0 (void)
8950 {
8951   if (test_blockdev_setrw_0_skip ()) {
8952     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_setrw_0");
8953     return 0;
8954   }
8955
8956   /* InitNone|InitEmpty for test_blockdev_setrw_0 */
8957   {
8958     char device[] = "/dev/sda";
8959     int r;
8960     suppress_error = 0;
8961     r = guestfs_blockdev_setrw (g, device);
8962     if (r == -1)
8963       return -1;
8964   }
8965   {
8966     int r;
8967     suppress_error = 0;
8968     r = guestfs_umount_all (g);
8969     if (r == -1)
8970       return -1;
8971   }
8972   {
8973     int r;
8974     suppress_error = 0;
8975     r = guestfs_lvm_remove_all (g);
8976     if (r == -1)
8977       return -1;
8978   }
8979   /* TestOutputFalse for blockdev_setrw (0) */
8980   {
8981     char device[] = "/dev/sda";
8982     int r;
8983     suppress_error = 0;
8984     r = guestfs_blockdev_setrw (g, device);
8985     if (r == -1)
8986       return -1;
8987   }
8988   {
8989     char device[] = "/dev/sda";
8990     int r;
8991     suppress_error = 0;
8992     r = guestfs_blockdev_getro (g, device);
8993     if (r == -1)
8994       return -1;
8995     if (r) {
8996       fprintf (stderr, "test_blockdev_setrw_0: expected false, got true\n");
8997       return -1;
8998     }
8999   }
9000   return 0;
9001 }
9002
9003 static int test_blockdev_setro_0_skip (void)
9004 {
9005   const char *str;
9006
9007   str = getenv ("TEST_ONLY");
9008   if (str)
9009     return strstr (str, "blockdev_setro") == NULL;
9010   str = getenv ("SKIP_TEST_BLOCKDEV_SETRO_0");
9011   if (str && strcmp (str, "1") == 0) return 1;
9012   str = getenv ("SKIP_TEST_BLOCKDEV_SETRO");
9013   if (str && strcmp (str, "1") == 0) return 1;
9014   return 0;
9015 }
9016
9017 static int test_blockdev_setro_0 (void)
9018 {
9019   if (test_blockdev_setro_0_skip ()) {
9020     printf ("%s skipped (reason: environment variable set)\n", "test_blockdev_setro_0");
9021     return 0;
9022   }
9023
9024   /* InitNone|InitEmpty for test_blockdev_setro_0 */
9025   {
9026     char device[] = "/dev/sda";
9027     int r;
9028     suppress_error = 0;
9029     r = guestfs_blockdev_setrw (g, device);
9030     if (r == -1)
9031       return -1;
9032   }
9033   {
9034     int r;
9035     suppress_error = 0;
9036     r = guestfs_umount_all (g);
9037     if (r == -1)
9038       return -1;
9039   }
9040   {
9041     int r;
9042     suppress_error = 0;
9043     r = guestfs_lvm_remove_all (g);
9044     if (r == -1)
9045       return -1;
9046   }
9047   /* TestOutputTrue for blockdev_setro (0) */
9048   {
9049     char device[] = "/dev/sda";
9050     int r;
9051     suppress_error = 0;
9052     r = guestfs_blockdev_setro (g, device);
9053     if (r == -1)
9054       return -1;
9055   }
9056   {
9057     char device[] = "/dev/sda";
9058     int r;
9059     suppress_error = 0;
9060     r = guestfs_blockdev_getro (g, device);
9061     if (r == -1)
9062       return -1;
9063     if (!r) {
9064       fprintf (stderr, "test_blockdev_setro_0: expected true, got false\n");
9065       return -1;
9066     }
9067   }
9068   return 0;
9069 }
9070
9071 static int test_statvfs_0_skip (void)
9072 {
9073   const char *str;
9074
9075   str = getenv ("TEST_ONLY");
9076   if (str)
9077     return strstr (str, "statvfs") == NULL;
9078   str = getenv ("SKIP_TEST_STATVFS_0");
9079   if (str && strcmp (str, "1") == 0) return 1;
9080   str = getenv ("SKIP_TEST_STATVFS");
9081   if (str && strcmp (str, "1") == 0) return 1;
9082   return 0;
9083 }
9084
9085 static int test_statvfs_0 (void)
9086 {
9087   if (test_statvfs_0_skip ()) {
9088     printf ("%s skipped (reason: environment variable set)\n", "test_statvfs_0");
9089     return 0;
9090   }
9091
9092   /* InitBasicFS for test_statvfs_0: create ext2 on /dev/sda1 */
9093   {
9094     char device[] = "/dev/sda";
9095     int r;
9096     suppress_error = 0;
9097     r = guestfs_blockdev_setrw (g, device);
9098     if (r == -1)
9099       return -1;
9100   }
9101   {
9102     int r;
9103     suppress_error = 0;
9104     r = guestfs_umount_all (g);
9105     if (r == -1)
9106       return -1;
9107   }
9108   {
9109     int r;
9110     suppress_error = 0;
9111     r = guestfs_lvm_remove_all (g);
9112     if (r == -1)
9113       return -1;
9114   }
9115   {
9116     char device[] = "/dev/sda";
9117     char lines_0[] = ",";
9118     char *lines[] = {
9119       lines_0,
9120       NULL
9121     };
9122     int r;
9123     suppress_error = 0;
9124     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9125     if (r == -1)
9126       return -1;
9127   }
9128   {
9129     char fstype[] = "ext2";
9130     char device[] = "/dev/sda1";
9131     int r;
9132     suppress_error = 0;
9133     r = guestfs_mkfs (g, fstype, device);
9134     if (r == -1)
9135       return -1;
9136   }
9137   {
9138     char device[] = "/dev/sda1";
9139     char mountpoint[] = "/";
9140     int r;
9141     suppress_error = 0;
9142     r = guestfs_mount (g, device, mountpoint);
9143     if (r == -1)
9144       return -1;
9145   }
9146   /* TestOutputStruct for statvfs (0) */
9147   {
9148     char path[] = "/";
9149     struct guestfs_statvfs *r;
9150     suppress_error = 0;
9151     r = guestfs_statvfs (g, path);
9152     if (r == NULL)
9153       return -1;
9154     if (r->bfree != 487702) {
9155       fprintf (stderr, "test_statvfs_0: bfree was %d, expected 487702\n",
9156                (int) r->bfree);
9157       return -1;
9158     }
9159     if (r->blocks != 490020) {
9160       fprintf (stderr, "test_statvfs_0: blocks was %d, expected 490020\n",
9161                (int) r->blocks);
9162       return -1;
9163     }
9164     if (r->bsize != 1024) {
9165       fprintf (stderr, "test_statvfs_0: bsize was %d, expected 1024\n",
9166                (int) r->bsize);
9167       return -1;
9168     }
9169     free (r);
9170   }
9171   return 0;
9172 }
9173
9174 static int test_lstat_0_skip (void)
9175 {
9176   const char *str;
9177
9178   str = getenv ("TEST_ONLY");
9179   if (str)
9180     return strstr (str, "lstat") == NULL;
9181   str = getenv ("SKIP_TEST_LSTAT_0");
9182   if (str && strcmp (str, "1") == 0) return 1;
9183   str = getenv ("SKIP_TEST_LSTAT");
9184   if (str && strcmp (str, "1") == 0) return 1;
9185   return 0;
9186 }
9187
9188 static int test_lstat_0 (void)
9189 {
9190   if (test_lstat_0_skip ()) {
9191     printf ("%s skipped (reason: environment variable set)\n", "test_lstat_0");
9192     return 0;
9193   }
9194
9195   /* InitBasicFS for test_lstat_0: create ext2 on /dev/sda1 */
9196   {
9197     char device[] = "/dev/sda";
9198     int r;
9199     suppress_error = 0;
9200     r = guestfs_blockdev_setrw (g, device);
9201     if (r == -1)
9202       return -1;
9203   }
9204   {
9205     int r;
9206     suppress_error = 0;
9207     r = guestfs_umount_all (g);
9208     if (r == -1)
9209       return -1;
9210   }
9211   {
9212     int r;
9213     suppress_error = 0;
9214     r = guestfs_lvm_remove_all (g);
9215     if (r == -1)
9216       return -1;
9217   }
9218   {
9219     char device[] = "/dev/sda";
9220     char lines_0[] = ",";
9221     char *lines[] = {
9222       lines_0,
9223       NULL
9224     };
9225     int r;
9226     suppress_error = 0;
9227     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9228     if (r == -1)
9229       return -1;
9230   }
9231   {
9232     char fstype[] = "ext2";
9233     char device[] = "/dev/sda1";
9234     int r;
9235     suppress_error = 0;
9236     r = guestfs_mkfs (g, fstype, device);
9237     if (r == -1)
9238       return -1;
9239   }
9240   {
9241     char device[] = "/dev/sda1";
9242     char mountpoint[] = "/";
9243     int r;
9244     suppress_error = 0;
9245     r = guestfs_mount (g, device, mountpoint);
9246     if (r == -1)
9247       return -1;
9248   }
9249   /* TestOutputStruct for lstat (0) */
9250   {
9251     char path[] = "/new";
9252     int r;
9253     suppress_error = 0;
9254     r = guestfs_touch (g, path);
9255     if (r == -1)
9256       return -1;
9257   }
9258   {
9259     char path[] = "/new";
9260     struct guestfs_stat *r;
9261     suppress_error = 0;
9262     r = guestfs_lstat (g, path);
9263     if (r == NULL)
9264       return -1;
9265     if (r->size != 0) {
9266       fprintf (stderr, "test_lstat_0: size was %d, expected 0\n",
9267                (int) r->size);
9268       return -1;
9269     }
9270     free (r);
9271   }
9272   return 0;
9273 }
9274
9275 static int test_stat_0_skip (void)
9276 {
9277   const char *str;
9278
9279   str = getenv ("TEST_ONLY");
9280   if (str)
9281     return strstr (str, "stat") == NULL;
9282   str = getenv ("SKIP_TEST_STAT_0");
9283   if (str && strcmp (str, "1") == 0) return 1;
9284   str = getenv ("SKIP_TEST_STAT");
9285   if (str && strcmp (str, "1") == 0) return 1;
9286   return 0;
9287 }
9288
9289 static int test_stat_0 (void)
9290 {
9291   if (test_stat_0_skip ()) {
9292     printf ("%s skipped (reason: environment variable set)\n", "test_stat_0");
9293     return 0;
9294   }
9295
9296   /* InitBasicFS for test_stat_0: create ext2 on /dev/sda1 */
9297   {
9298     char device[] = "/dev/sda";
9299     int r;
9300     suppress_error = 0;
9301     r = guestfs_blockdev_setrw (g, device);
9302     if (r == -1)
9303       return -1;
9304   }
9305   {
9306     int r;
9307     suppress_error = 0;
9308     r = guestfs_umount_all (g);
9309     if (r == -1)
9310       return -1;
9311   }
9312   {
9313     int r;
9314     suppress_error = 0;
9315     r = guestfs_lvm_remove_all (g);
9316     if (r == -1)
9317       return -1;
9318   }
9319   {
9320     char device[] = "/dev/sda";
9321     char lines_0[] = ",";
9322     char *lines[] = {
9323       lines_0,
9324       NULL
9325     };
9326     int r;
9327     suppress_error = 0;
9328     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9329     if (r == -1)
9330       return -1;
9331   }
9332   {
9333     char fstype[] = "ext2";
9334     char device[] = "/dev/sda1";
9335     int r;
9336     suppress_error = 0;
9337     r = guestfs_mkfs (g, fstype, device);
9338     if (r == -1)
9339       return -1;
9340   }
9341   {
9342     char device[] = "/dev/sda1";
9343     char mountpoint[] = "/";
9344     int r;
9345     suppress_error = 0;
9346     r = guestfs_mount (g, device, mountpoint);
9347     if (r == -1)
9348       return -1;
9349   }
9350   /* TestOutputStruct for stat (0) */
9351   {
9352     char path[] = "/new";
9353     int r;
9354     suppress_error = 0;
9355     r = guestfs_touch (g, path);
9356     if (r == -1)
9357       return -1;
9358   }
9359   {
9360     char path[] = "/new";
9361     struct guestfs_stat *r;
9362     suppress_error = 0;
9363     r = guestfs_stat (g, path);
9364     if (r == NULL)
9365       return -1;
9366     if (r->size != 0) {
9367       fprintf (stderr, "test_stat_0: size was %d, expected 0\n",
9368                (int) r->size);
9369       return -1;
9370     }
9371     free (r);
9372   }
9373   return 0;
9374 }
9375
9376 static int test_command_lines_0_skip (void)
9377 {
9378   const char *str;
9379
9380   str = getenv ("TEST_ONLY");
9381   if (str)
9382     return strstr (str, "command_lines") == NULL;
9383   str = getenv ("SKIP_TEST_COMMAND_LINES_0");
9384   if (str && strcmp (str, "1") == 0) return 1;
9385   str = getenv ("SKIP_TEST_COMMAND_LINES");
9386   if (str && strcmp (str, "1") == 0) return 1;
9387   return 0;
9388 }
9389
9390 static int test_command_lines_0 (void)
9391 {
9392   if (test_command_lines_0_skip ()) {
9393     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_0");
9394     return 0;
9395   }
9396
9397   /* InitBasicFS for test_command_lines_0: create ext2 on /dev/sda1 */
9398   {
9399     char device[] = "/dev/sda";
9400     int r;
9401     suppress_error = 0;
9402     r = guestfs_blockdev_setrw (g, device);
9403     if (r == -1)
9404       return -1;
9405   }
9406   {
9407     int r;
9408     suppress_error = 0;
9409     r = guestfs_umount_all (g);
9410     if (r == -1)
9411       return -1;
9412   }
9413   {
9414     int r;
9415     suppress_error = 0;
9416     r = guestfs_lvm_remove_all (g);
9417     if (r == -1)
9418       return -1;
9419   }
9420   {
9421     char device[] = "/dev/sda";
9422     char lines_0[] = ",";
9423     char *lines[] = {
9424       lines_0,
9425       NULL
9426     };
9427     int r;
9428     suppress_error = 0;
9429     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9430     if (r == -1)
9431       return -1;
9432   }
9433   {
9434     char fstype[] = "ext2";
9435     char device[] = "/dev/sda1";
9436     int r;
9437     suppress_error = 0;
9438     r = guestfs_mkfs (g, fstype, device);
9439     if (r == -1)
9440       return -1;
9441   }
9442   {
9443     char device[] = "/dev/sda1";
9444     char mountpoint[] = "/";
9445     int r;
9446     suppress_error = 0;
9447     r = guestfs_mount (g, device, mountpoint);
9448     if (r == -1)
9449       return -1;
9450   }
9451   /* TestOutputList for command_lines (0) */
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[] = "1";
9471     char *arguments[] = {
9472       arguments_0,
9473       arguments_1,
9474       NULL
9475     };
9476     char **r;
9477     int i;
9478     suppress_error = 0;
9479     r = guestfs_command_lines (g, arguments);
9480     if (r == NULL)
9481       return -1;
9482     if (!r[0]) {
9483       fprintf (stderr, "test_command_lines_0: short list returned from command\n");
9484       print_strings (r);
9485       return -1;
9486     }
9487     {
9488       char expected[] = "Result1";
9489       if (strcmp (r[0], expected) != 0) {
9490         fprintf (stderr, "test_command_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
9491         return -1;
9492       }
9493     }
9494     if (r[1] != NULL) {
9495       fprintf (stderr, "test_command_lines_0: extra elements returned from command\n");
9496       print_strings (r);
9497       return -1;
9498     }
9499     for (i = 0; r[i] != NULL; ++i)
9500       free (r[i]);
9501     free (r);
9502   }
9503   return 0;
9504 }
9505
9506 static int test_command_lines_1_skip (void)
9507 {
9508   const char *str;
9509
9510   str = getenv ("TEST_ONLY");
9511   if (str)
9512     return strstr (str, "command_lines") == NULL;
9513   str = getenv ("SKIP_TEST_COMMAND_LINES_1");
9514   if (str && strcmp (str, "1") == 0) return 1;
9515   str = getenv ("SKIP_TEST_COMMAND_LINES");
9516   if (str && strcmp (str, "1") == 0) return 1;
9517   return 0;
9518 }
9519
9520 static int test_command_lines_1 (void)
9521 {
9522   if (test_command_lines_1_skip ()) {
9523     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_1");
9524     return 0;
9525   }
9526
9527   /* InitBasicFS for test_command_lines_1: create ext2 on /dev/sda1 */
9528   {
9529     char device[] = "/dev/sda";
9530     int r;
9531     suppress_error = 0;
9532     r = guestfs_blockdev_setrw (g, device);
9533     if (r == -1)
9534       return -1;
9535   }
9536   {
9537     int r;
9538     suppress_error = 0;
9539     r = guestfs_umount_all (g);
9540     if (r == -1)
9541       return -1;
9542   }
9543   {
9544     int r;
9545     suppress_error = 0;
9546     r = guestfs_lvm_remove_all (g);
9547     if (r == -1)
9548       return -1;
9549   }
9550   {
9551     char device[] = "/dev/sda";
9552     char lines_0[] = ",";
9553     char *lines[] = {
9554       lines_0,
9555       NULL
9556     };
9557     int r;
9558     suppress_error = 0;
9559     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9560     if (r == -1)
9561       return -1;
9562   }
9563   {
9564     char fstype[] = "ext2";
9565     char device[] = "/dev/sda1";
9566     int r;
9567     suppress_error = 0;
9568     r = guestfs_mkfs (g, fstype, device);
9569     if (r == -1)
9570       return -1;
9571   }
9572   {
9573     char device[] = "/dev/sda1";
9574     char mountpoint[] = "/";
9575     int r;
9576     suppress_error = 0;
9577     r = guestfs_mount (g, device, mountpoint);
9578     if (r == -1)
9579       return -1;
9580   }
9581   /* TestOutputList for command_lines (1) */
9582   {
9583     char remotefilename[] = "/test-command";
9584     int r;
9585     suppress_error = 0;
9586     r = guestfs_upload (g, "test-command", remotefilename);
9587     if (r == -1)
9588       return -1;
9589   }
9590   {
9591     char path[] = "/test-command";
9592     int r;
9593     suppress_error = 0;
9594     r = guestfs_chmod (g, 493, path);
9595     if (r == -1)
9596       return -1;
9597   }
9598   {
9599     char arguments_0[] = "/test-command";
9600     char arguments_1[] = "2";
9601     char *arguments[] = {
9602       arguments_0,
9603       arguments_1,
9604       NULL
9605     };
9606     char **r;
9607     int i;
9608     suppress_error = 0;
9609     r = guestfs_command_lines (g, arguments);
9610     if (r == NULL)
9611       return -1;
9612     if (!r[0]) {
9613       fprintf (stderr, "test_command_lines_1: short list returned from command\n");
9614       print_strings (r);
9615       return -1;
9616     }
9617     {
9618       char expected[] = "Result2";
9619       if (strcmp (r[0], expected) != 0) {
9620         fprintf (stderr, "test_command_lines_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
9621         return -1;
9622       }
9623     }
9624     if (r[1] != NULL) {
9625       fprintf (stderr, "test_command_lines_1: extra elements returned from command\n");
9626       print_strings (r);
9627       return -1;
9628     }
9629     for (i = 0; r[i] != NULL; ++i)
9630       free (r[i]);
9631     free (r);
9632   }
9633   return 0;
9634 }
9635
9636 static int test_command_lines_2_skip (void)
9637 {
9638   const char *str;
9639
9640   str = getenv ("TEST_ONLY");
9641   if (str)
9642     return strstr (str, "command_lines") == NULL;
9643   str = getenv ("SKIP_TEST_COMMAND_LINES_2");
9644   if (str && strcmp (str, "1") == 0) return 1;
9645   str = getenv ("SKIP_TEST_COMMAND_LINES");
9646   if (str && strcmp (str, "1") == 0) return 1;
9647   return 0;
9648 }
9649
9650 static int test_command_lines_2 (void)
9651 {
9652   if (test_command_lines_2_skip ()) {
9653     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_2");
9654     return 0;
9655   }
9656
9657   /* InitBasicFS for test_command_lines_2: create ext2 on /dev/sda1 */
9658   {
9659     char device[] = "/dev/sda";
9660     int r;
9661     suppress_error = 0;
9662     r = guestfs_blockdev_setrw (g, device);
9663     if (r == -1)
9664       return -1;
9665   }
9666   {
9667     int r;
9668     suppress_error = 0;
9669     r = guestfs_umount_all (g);
9670     if (r == -1)
9671       return -1;
9672   }
9673   {
9674     int r;
9675     suppress_error = 0;
9676     r = guestfs_lvm_remove_all (g);
9677     if (r == -1)
9678       return -1;
9679   }
9680   {
9681     char device[] = "/dev/sda";
9682     char lines_0[] = ",";
9683     char *lines[] = {
9684       lines_0,
9685       NULL
9686     };
9687     int r;
9688     suppress_error = 0;
9689     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9690     if (r == -1)
9691       return -1;
9692   }
9693   {
9694     char fstype[] = "ext2";
9695     char device[] = "/dev/sda1";
9696     int r;
9697     suppress_error = 0;
9698     r = guestfs_mkfs (g, fstype, device);
9699     if (r == -1)
9700       return -1;
9701   }
9702   {
9703     char device[] = "/dev/sda1";
9704     char mountpoint[] = "/";
9705     int r;
9706     suppress_error = 0;
9707     r = guestfs_mount (g, device, mountpoint);
9708     if (r == -1)
9709       return -1;
9710   }
9711   /* TestOutputList for command_lines (2) */
9712   {
9713     char remotefilename[] = "/test-command";
9714     int r;
9715     suppress_error = 0;
9716     r = guestfs_upload (g, "test-command", remotefilename);
9717     if (r == -1)
9718       return -1;
9719   }
9720   {
9721     char path[] = "/test-command";
9722     int r;
9723     suppress_error = 0;
9724     r = guestfs_chmod (g, 493, path);
9725     if (r == -1)
9726       return -1;
9727   }
9728   {
9729     char arguments_0[] = "/test-command";
9730     char arguments_1[] = "3";
9731     char *arguments[] = {
9732       arguments_0,
9733       arguments_1,
9734       NULL
9735     };
9736     char **r;
9737     int i;
9738     suppress_error = 0;
9739     r = guestfs_command_lines (g, arguments);
9740     if (r == NULL)
9741       return -1;
9742     if (!r[0]) {
9743       fprintf (stderr, "test_command_lines_2: short list returned from command\n");
9744       print_strings (r);
9745       return -1;
9746     }
9747     {
9748       char expected[] = "";
9749       if (strcmp (r[0], expected) != 0) {
9750         fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[0]);
9751         return -1;
9752       }
9753     }
9754     if (!r[1]) {
9755       fprintf (stderr, "test_command_lines_2: short list returned from command\n");
9756       print_strings (r);
9757       return -1;
9758     }
9759     {
9760       char expected[] = "Result3";
9761       if (strcmp (r[1], expected) != 0) {
9762         fprintf (stderr, "test_command_lines_2: expected \"%s\" but got \"%s\"\n", expected, r[1]);
9763         return -1;
9764       }
9765     }
9766     if (r[2] != NULL) {
9767       fprintf (stderr, "test_command_lines_2: extra elements returned from command\n");
9768       print_strings (r);
9769       return -1;
9770     }
9771     for (i = 0; r[i] != NULL; ++i)
9772       free (r[i]);
9773     free (r);
9774   }
9775   return 0;
9776 }
9777
9778 static int test_command_lines_3_skip (void)
9779 {
9780   const char *str;
9781
9782   str = getenv ("TEST_ONLY");
9783   if (str)
9784     return strstr (str, "command_lines") == NULL;
9785   str = getenv ("SKIP_TEST_COMMAND_LINES_3");
9786   if (str && strcmp (str, "1") == 0) return 1;
9787   str = getenv ("SKIP_TEST_COMMAND_LINES");
9788   if (str && strcmp (str, "1") == 0) return 1;
9789   return 0;
9790 }
9791
9792 static int test_command_lines_3 (void)
9793 {
9794   if (test_command_lines_3_skip ()) {
9795     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_3");
9796     return 0;
9797   }
9798
9799   /* InitBasicFS for test_command_lines_3: create ext2 on /dev/sda1 */
9800   {
9801     char device[] = "/dev/sda";
9802     int r;
9803     suppress_error = 0;
9804     r = guestfs_blockdev_setrw (g, device);
9805     if (r == -1)
9806       return -1;
9807   }
9808   {
9809     int r;
9810     suppress_error = 0;
9811     r = guestfs_umount_all (g);
9812     if (r == -1)
9813       return -1;
9814   }
9815   {
9816     int r;
9817     suppress_error = 0;
9818     r = guestfs_lvm_remove_all (g);
9819     if (r == -1)
9820       return -1;
9821   }
9822   {
9823     char device[] = "/dev/sda";
9824     char lines_0[] = ",";
9825     char *lines[] = {
9826       lines_0,
9827       NULL
9828     };
9829     int r;
9830     suppress_error = 0;
9831     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9832     if (r == -1)
9833       return -1;
9834   }
9835   {
9836     char fstype[] = "ext2";
9837     char device[] = "/dev/sda1";
9838     int r;
9839     suppress_error = 0;
9840     r = guestfs_mkfs (g, fstype, device);
9841     if (r == -1)
9842       return -1;
9843   }
9844   {
9845     char device[] = "/dev/sda1";
9846     char mountpoint[] = "/";
9847     int r;
9848     suppress_error = 0;
9849     r = guestfs_mount (g, device, mountpoint);
9850     if (r == -1)
9851       return -1;
9852   }
9853   /* TestOutputList for command_lines (3) */
9854   {
9855     char remotefilename[] = "/test-command";
9856     int r;
9857     suppress_error = 0;
9858     r = guestfs_upload (g, "test-command", remotefilename);
9859     if (r == -1)
9860       return -1;
9861   }
9862   {
9863     char path[] = "/test-command";
9864     int r;
9865     suppress_error = 0;
9866     r = guestfs_chmod (g, 493, path);
9867     if (r == -1)
9868       return -1;
9869   }
9870   {
9871     char arguments_0[] = "/test-command";
9872     char arguments_1[] = "4";
9873     char *arguments[] = {
9874       arguments_0,
9875       arguments_1,
9876       NULL
9877     };
9878     char **r;
9879     int i;
9880     suppress_error = 0;
9881     r = guestfs_command_lines (g, arguments);
9882     if (r == NULL)
9883       return -1;
9884     if (!r[0]) {
9885       fprintf (stderr, "test_command_lines_3: short list returned from command\n");
9886       print_strings (r);
9887       return -1;
9888     }
9889     {
9890       char expected[] = "";
9891       if (strcmp (r[0], expected) != 0) {
9892         fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[0]);
9893         return -1;
9894       }
9895     }
9896     if (!r[1]) {
9897       fprintf (stderr, "test_command_lines_3: short list returned from command\n");
9898       print_strings (r);
9899       return -1;
9900     }
9901     {
9902       char expected[] = "Result4";
9903       if (strcmp (r[1], expected) != 0) {
9904         fprintf (stderr, "test_command_lines_3: expected \"%s\" but got \"%s\"\n", expected, r[1]);
9905         return -1;
9906       }
9907     }
9908     if (r[2] != NULL) {
9909       fprintf (stderr, "test_command_lines_3: extra elements returned from command\n");
9910       print_strings (r);
9911       return -1;
9912     }
9913     for (i = 0; r[i] != NULL; ++i)
9914       free (r[i]);
9915     free (r);
9916   }
9917   return 0;
9918 }
9919
9920 static int test_command_lines_4_skip (void)
9921 {
9922   const char *str;
9923
9924   str = getenv ("TEST_ONLY");
9925   if (str)
9926     return strstr (str, "command_lines") == NULL;
9927   str = getenv ("SKIP_TEST_COMMAND_LINES_4");
9928   if (str && strcmp (str, "1") == 0) return 1;
9929   str = getenv ("SKIP_TEST_COMMAND_LINES");
9930   if (str && strcmp (str, "1") == 0) return 1;
9931   return 0;
9932 }
9933
9934 static int test_command_lines_4 (void)
9935 {
9936   if (test_command_lines_4_skip ()) {
9937     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_4");
9938     return 0;
9939   }
9940
9941   /* InitBasicFS for test_command_lines_4: create ext2 on /dev/sda1 */
9942   {
9943     char device[] = "/dev/sda";
9944     int r;
9945     suppress_error = 0;
9946     r = guestfs_blockdev_setrw (g, device);
9947     if (r == -1)
9948       return -1;
9949   }
9950   {
9951     int r;
9952     suppress_error = 0;
9953     r = guestfs_umount_all (g);
9954     if (r == -1)
9955       return -1;
9956   }
9957   {
9958     int r;
9959     suppress_error = 0;
9960     r = guestfs_lvm_remove_all (g);
9961     if (r == -1)
9962       return -1;
9963   }
9964   {
9965     char device[] = "/dev/sda";
9966     char lines_0[] = ",";
9967     char *lines[] = {
9968       lines_0,
9969       NULL
9970     };
9971     int r;
9972     suppress_error = 0;
9973     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
9974     if (r == -1)
9975       return -1;
9976   }
9977   {
9978     char fstype[] = "ext2";
9979     char device[] = "/dev/sda1";
9980     int r;
9981     suppress_error = 0;
9982     r = guestfs_mkfs (g, fstype, device);
9983     if (r == -1)
9984       return -1;
9985   }
9986   {
9987     char device[] = "/dev/sda1";
9988     char mountpoint[] = "/";
9989     int r;
9990     suppress_error = 0;
9991     r = guestfs_mount (g, device, mountpoint);
9992     if (r == -1)
9993       return -1;
9994   }
9995   /* TestOutputList for command_lines (4) */
9996   {
9997     char remotefilename[] = "/test-command";
9998     int r;
9999     suppress_error = 0;
10000     r = guestfs_upload (g, "test-command", remotefilename);
10001     if (r == -1)
10002       return -1;
10003   }
10004   {
10005     char path[] = "/test-command";
10006     int r;
10007     suppress_error = 0;
10008     r = guestfs_chmod (g, 493, path);
10009     if (r == -1)
10010       return -1;
10011   }
10012   {
10013     char arguments_0[] = "/test-command";
10014     char arguments_1[] = "5";
10015     char *arguments[] = {
10016       arguments_0,
10017       arguments_1,
10018       NULL
10019     };
10020     char **r;
10021     int i;
10022     suppress_error = 0;
10023     r = guestfs_command_lines (g, arguments);
10024     if (r == NULL)
10025       return -1;
10026     if (!r[0]) {
10027       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
10028       print_strings (r);
10029       return -1;
10030     }
10031     {
10032       char expected[] = "";
10033       if (strcmp (r[0], expected) != 0) {
10034         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10035         return -1;
10036       }
10037     }
10038     if (!r[1]) {
10039       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
10040       print_strings (r);
10041       return -1;
10042     }
10043     {
10044       char expected[] = "Result5";
10045       if (strcmp (r[1], expected) != 0) {
10046         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[1]);
10047         return -1;
10048       }
10049     }
10050     if (!r[2]) {
10051       fprintf (stderr, "test_command_lines_4: short list returned from command\n");
10052       print_strings (r);
10053       return -1;
10054     }
10055     {
10056       char expected[] = "";
10057       if (strcmp (r[2], expected) != 0) {
10058         fprintf (stderr, "test_command_lines_4: expected \"%s\" but got \"%s\"\n", expected, r[2]);
10059         return -1;
10060       }
10061     }
10062     if (r[3] != NULL) {
10063       fprintf (stderr, "test_command_lines_4: extra elements returned from command\n");
10064       print_strings (r);
10065       return -1;
10066     }
10067     for (i = 0; r[i] != NULL; ++i)
10068       free (r[i]);
10069     free (r);
10070   }
10071   return 0;
10072 }
10073
10074 static int test_command_lines_5_skip (void)
10075 {
10076   const char *str;
10077
10078   str = getenv ("TEST_ONLY");
10079   if (str)
10080     return strstr (str, "command_lines") == NULL;
10081   str = getenv ("SKIP_TEST_COMMAND_LINES_5");
10082   if (str && strcmp (str, "1") == 0) return 1;
10083   str = getenv ("SKIP_TEST_COMMAND_LINES");
10084   if (str && strcmp (str, "1") == 0) return 1;
10085   return 0;
10086 }
10087
10088 static int test_command_lines_5 (void)
10089 {
10090   if (test_command_lines_5_skip ()) {
10091     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_5");
10092     return 0;
10093   }
10094
10095   /* InitBasicFS for test_command_lines_5: create ext2 on /dev/sda1 */
10096   {
10097     char device[] = "/dev/sda";
10098     int r;
10099     suppress_error = 0;
10100     r = guestfs_blockdev_setrw (g, device);
10101     if (r == -1)
10102       return -1;
10103   }
10104   {
10105     int r;
10106     suppress_error = 0;
10107     r = guestfs_umount_all (g);
10108     if (r == -1)
10109       return -1;
10110   }
10111   {
10112     int r;
10113     suppress_error = 0;
10114     r = guestfs_lvm_remove_all (g);
10115     if (r == -1)
10116       return -1;
10117   }
10118   {
10119     char device[] = "/dev/sda";
10120     char lines_0[] = ",";
10121     char *lines[] = {
10122       lines_0,
10123       NULL
10124     };
10125     int r;
10126     suppress_error = 0;
10127     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10128     if (r == -1)
10129       return -1;
10130   }
10131   {
10132     char fstype[] = "ext2";
10133     char device[] = "/dev/sda1";
10134     int r;
10135     suppress_error = 0;
10136     r = guestfs_mkfs (g, fstype, device);
10137     if (r == -1)
10138       return -1;
10139   }
10140   {
10141     char device[] = "/dev/sda1";
10142     char mountpoint[] = "/";
10143     int r;
10144     suppress_error = 0;
10145     r = guestfs_mount (g, device, mountpoint);
10146     if (r == -1)
10147       return -1;
10148   }
10149   /* TestOutputList for command_lines (5) */
10150   {
10151     char remotefilename[] = "/test-command";
10152     int r;
10153     suppress_error = 0;
10154     r = guestfs_upload (g, "test-command", remotefilename);
10155     if (r == -1)
10156       return -1;
10157   }
10158   {
10159     char path[] = "/test-command";
10160     int r;
10161     suppress_error = 0;
10162     r = guestfs_chmod (g, 493, path);
10163     if (r == -1)
10164       return -1;
10165   }
10166   {
10167     char arguments_0[] = "/test-command";
10168     char arguments_1[] = "6";
10169     char *arguments[] = {
10170       arguments_0,
10171       arguments_1,
10172       NULL
10173     };
10174     char **r;
10175     int i;
10176     suppress_error = 0;
10177     r = guestfs_command_lines (g, arguments);
10178     if (r == NULL)
10179       return -1;
10180     if (!r[0]) {
10181       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
10182       print_strings (r);
10183       return -1;
10184     }
10185     {
10186       char expected[] = "";
10187       if (strcmp (r[0], expected) != 0) {
10188         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10189         return -1;
10190       }
10191     }
10192     if (!r[1]) {
10193       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
10194       print_strings (r);
10195       return -1;
10196     }
10197     {
10198       char expected[] = "";
10199       if (strcmp (r[1], expected) != 0) {
10200         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[1]);
10201         return -1;
10202       }
10203     }
10204     if (!r[2]) {
10205       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
10206       print_strings (r);
10207       return -1;
10208     }
10209     {
10210       char expected[] = "Result6";
10211       if (strcmp (r[2], expected) != 0) {
10212         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[2]);
10213         return -1;
10214       }
10215     }
10216     if (!r[3]) {
10217       fprintf (stderr, "test_command_lines_5: short list returned from command\n");
10218       print_strings (r);
10219       return -1;
10220     }
10221     {
10222       char expected[] = "";
10223       if (strcmp (r[3], expected) != 0) {
10224         fprintf (stderr, "test_command_lines_5: expected \"%s\" but got \"%s\"\n", expected, r[3]);
10225         return -1;
10226       }
10227     }
10228     if (r[4] != NULL) {
10229       fprintf (stderr, "test_command_lines_5: extra elements returned from command\n");
10230       print_strings (r);
10231       return -1;
10232     }
10233     for (i = 0; r[i] != NULL; ++i)
10234       free (r[i]);
10235     free (r);
10236   }
10237   return 0;
10238 }
10239
10240 static int test_command_lines_6_skip (void)
10241 {
10242   const char *str;
10243
10244   str = getenv ("TEST_ONLY");
10245   if (str)
10246     return strstr (str, "command_lines") == NULL;
10247   str = getenv ("SKIP_TEST_COMMAND_LINES_6");
10248   if (str && strcmp (str, "1") == 0) return 1;
10249   str = getenv ("SKIP_TEST_COMMAND_LINES");
10250   if (str && strcmp (str, "1") == 0) return 1;
10251   return 0;
10252 }
10253
10254 static int test_command_lines_6 (void)
10255 {
10256   if (test_command_lines_6_skip ()) {
10257     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_6");
10258     return 0;
10259   }
10260
10261   /* InitBasicFS for test_command_lines_6: create ext2 on /dev/sda1 */
10262   {
10263     char device[] = "/dev/sda";
10264     int r;
10265     suppress_error = 0;
10266     r = guestfs_blockdev_setrw (g, device);
10267     if (r == -1)
10268       return -1;
10269   }
10270   {
10271     int r;
10272     suppress_error = 0;
10273     r = guestfs_umount_all (g);
10274     if (r == -1)
10275       return -1;
10276   }
10277   {
10278     int r;
10279     suppress_error = 0;
10280     r = guestfs_lvm_remove_all (g);
10281     if (r == -1)
10282       return -1;
10283   }
10284   {
10285     char device[] = "/dev/sda";
10286     char lines_0[] = ",";
10287     char *lines[] = {
10288       lines_0,
10289       NULL
10290     };
10291     int r;
10292     suppress_error = 0;
10293     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10294     if (r == -1)
10295       return -1;
10296   }
10297   {
10298     char fstype[] = "ext2";
10299     char device[] = "/dev/sda1";
10300     int r;
10301     suppress_error = 0;
10302     r = guestfs_mkfs (g, fstype, device);
10303     if (r == -1)
10304       return -1;
10305   }
10306   {
10307     char device[] = "/dev/sda1";
10308     char mountpoint[] = "/";
10309     int r;
10310     suppress_error = 0;
10311     r = guestfs_mount (g, device, mountpoint);
10312     if (r == -1)
10313       return -1;
10314   }
10315   /* TestOutputList for command_lines (6) */
10316   {
10317     char remotefilename[] = "/test-command";
10318     int r;
10319     suppress_error = 0;
10320     r = guestfs_upload (g, "test-command", remotefilename);
10321     if (r == -1)
10322       return -1;
10323   }
10324   {
10325     char path[] = "/test-command";
10326     int r;
10327     suppress_error = 0;
10328     r = guestfs_chmod (g, 493, path);
10329     if (r == -1)
10330       return -1;
10331   }
10332   {
10333     char arguments_0[] = "/test-command";
10334     char arguments_1[] = "7";
10335     char *arguments[] = {
10336       arguments_0,
10337       arguments_1,
10338       NULL
10339     };
10340     char **r;
10341     int i;
10342     suppress_error = 0;
10343     r = guestfs_command_lines (g, arguments);
10344     if (r == NULL)
10345       return -1;
10346     if (r[0] != NULL) {
10347       fprintf (stderr, "test_command_lines_6: extra elements returned from command\n");
10348       print_strings (r);
10349       return -1;
10350     }
10351     for (i = 0; r[i] != NULL; ++i)
10352       free (r[i]);
10353     free (r);
10354   }
10355   return 0;
10356 }
10357
10358 static int test_command_lines_7_skip (void)
10359 {
10360   const char *str;
10361
10362   str = getenv ("TEST_ONLY");
10363   if (str)
10364     return strstr (str, "command_lines") == NULL;
10365   str = getenv ("SKIP_TEST_COMMAND_LINES_7");
10366   if (str && strcmp (str, "1") == 0) return 1;
10367   str = getenv ("SKIP_TEST_COMMAND_LINES");
10368   if (str && strcmp (str, "1") == 0) return 1;
10369   return 0;
10370 }
10371
10372 static int test_command_lines_7 (void)
10373 {
10374   if (test_command_lines_7_skip ()) {
10375     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_7");
10376     return 0;
10377   }
10378
10379   /* InitBasicFS for test_command_lines_7: create ext2 on /dev/sda1 */
10380   {
10381     char device[] = "/dev/sda";
10382     int r;
10383     suppress_error = 0;
10384     r = guestfs_blockdev_setrw (g, device);
10385     if (r == -1)
10386       return -1;
10387   }
10388   {
10389     int r;
10390     suppress_error = 0;
10391     r = guestfs_umount_all (g);
10392     if (r == -1)
10393       return -1;
10394   }
10395   {
10396     int r;
10397     suppress_error = 0;
10398     r = guestfs_lvm_remove_all (g);
10399     if (r == -1)
10400       return -1;
10401   }
10402   {
10403     char device[] = "/dev/sda";
10404     char lines_0[] = ",";
10405     char *lines[] = {
10406       lines_0,
10407       NULL
10408     };
10409     int r;
10410     suppress_error = 0;
10411     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10412     if (r == -1)
10413       return -1;
10414   }
10415   {
10416     char fstype[] = "ext2";
10417     char device[] = "/dev/sda1";
10418     int r;
10419     suppress_error = 0;
10420     r = guestfs_mkfs (g, fstype, device);
10421     if (r == -1)
10422       return -1;
10423   }
10424   {
10425     char device[] = "/dev/sda1";
10426     char mountpoint[] = "/";
10427     int r;
10428     suppress_error = 0;
10429     r = guestfs_mount (g, device, mountpoint);
10430     if (r == -1)
10431       return -1;
10432   }
10433   /* TestOutputList for command_lines (7) */
10434   {
10435     char remotefilename[] = "/test-command";
10436     int r;
10437     suppress_error = 0;
10438     r = guestfs_upload (g, "test-command", remotefilename);
10439     if (r == -1)
10440       return -1;
10441   }
10442   {
10443     char path[] = "/test-command";
10444     int r;
10445     suppress_error = 0;
10446     r = guestfs_chmod (g, 493, path);
10447     if (r == -1)
10448       return -1;
10449   }
10450   {
10451     char arguments_0[] = "/test-command";
10452     char arguments_1[] = "8";
10453     char *arguments[] = {
10454       arguments_0,
10455       arguments_1,
10456       NULL
10457     };
10458     char **r;
10459     int i;
10460     suppress_error = 0;
10461     r = guestfs_command_lines (g, arguments);
10462     if (r == NULL)
10463       return -1;
10464     if (!r[0]) {
10465       fprintf (stderr, "test_command_lines_7: short list returned from command\n");
10466       print_strings (r);
10467       return -1;
10468     }
10469     {
10470       char expected[] = "";
10471       if (strcmp (r[0], expected) != 0) {
10472         fprintf (stderr, "test_command_lines_7: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10473         return -1;
10474       }
10475     }
10476     if (r[1] != NULL) {
10477       fprintf (stderr, "test_command_lines_7: extra elements returned from command\n");
10478       print_strings (r);
10479       return -1;
10480     }
10481     for (i = 0; r[i] != NULL; ++i)
10482       free (r[i]);
10483     free (r);
10484   }
10485   return 0;
10486 }
10487
10488 static int test_command_lines_8_skip (void)
10489 {
10490   const char *str;
10491
10492   str = getenv ("TEST_ONLY");
10493   if (str)
10494     return strstr (str, "command_lines") == NULL;
10495   str = getenv ("SKIP_TEST_COMMAND_LINES_8");
10496   if (str && strcmp (str, "1") == 0) return 1;
10497   str = getenv ("SKIP_TEST_COMMAND_LINES");
10498   if (str && strcmp (str, "1") == 0) return 1;
10499   return 0;
10500 }
10501
10502 static int test_command_lines_8 (void)
10503 {
10504   if (test_command_lines_8_skip ()) {
10505     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_8");
10506     return 0;
10507   }
10508
10509   /* InitBasicFS for test_command_lines_8: create ext2 on /dev/sda1 */
10510   {
10511     char device[] = "/dev/sda";
10512     int r;
10513     suppress_error = 0;
10514     r = guestfs_blockdev_setrw (g, device);
10515     if (r == -1)
10516       return -1;
10517   }
10518   {
10519     int r;
10520     suppress_error = 0;
10521     r = guestfs_umount_all (g);
10522     if (r == -1)
10523       return -1;
10524   }
10525   {
10526     int r;
10527     suppress_error = 0;
10528     r = guestfs_lvm_remove_all (g);
10529     if (r == -1)
10530       return -1;
10531   }
10532   {
10533     char device[] = "/dev/sda";
10534     char lines_0[] = ",";
10535     char *lines[] = {
10536       lines_0,
10537       NULL
10538     };
10539     int r;
10540     suppress_error = 0;
10541     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10542     if (r == -1)
10543       return -1;
10544   }
10545   {
10546     char fstype[] = "ext2";
10547     char device[] = "/dev/sda1";
10548     int r;
10549     suppress_error = 0;
10550     r = guestfs_mkfs (g, fstype, device);
10551     if (r == -1)
10552       return -1;
10553   }
10554   {
10555     char device[] = "/dev/sda1";
10556     char mountpoint[] = "/";
10557     int r;
10558     suppress_error = 0;
10559     r = guestfs_mount (g, device, mountpoint);
10560     if (r == -1)
10561       return -1;
10562   }
10563   /* TestOutputList for command_lines (8) */
10564   {
10565     char remotefilename[] = "/test-command";
10566     int r;
10567     suppress_error = 0;
10568     r = guestfs_upload (g, "test-command", remotefilename);
10569     if (r == -1)
10570       return -1;
10571   }
10572   {
10573     char path[] = "/test-command";
10574     int r;
10575     suppress_error = 0;
10576     r = guestfs_chmod (g, 493, path);
10577     if (r == -1)
10578       return -1;
10579   }
10580   {
10581     char arguments_0[] = "/test-command";
10582     char arguments_1[] = "9";
10583     char *arguments[] = {
10584       arguments_0,
10585       arguments_1,
10586       NULL
10587     };
10588     char **r;
10589     int i;
10590     suppress_error = 0;
10591     r = guestfs_command_lines (g, arguments);
10592     if (r == NULL)
10593       return -1;
10594     if (!r[0]) {
10595       fprintf (stderr, "test_command_lines_8: short list returned from command\n");
10596       print_strings (r);
10597       return -1;
10598     }
10599     {
10600       char expected[] = "";
10601       if (strcmp (r[0], expected) != 0) {
10602         fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10603         return -1;
10604       }
10605     }
10606     if (!r[1]) {
10607       fprintf (stderr, "test_command_lines_8: short list returned from command\n");
10608       print_strings (r);
10609       return -1;
10610     }
10611     {
10612       char expected[] = "";
10613       if (strcmp (r[1], expected) != 0) {
10614         fprintf (stderr, "test_command_lines_8: expected \"%s\" but got \"%s\"\n", expected, r[1]);
10615         return -1;
10616       }
10617     }
10618     if (r[2] != NULL) {
10619       fprintf (stderr, "test_command_lines_8: extra elements returned from command\n");
10620       print_strings (r);
10621       return -1;
10622     }
10623     for (i = 0; r[i] != NULL; ++i)
10624       free (r[i]);
10625     free (r);
10626   }
10627   return 0;
10628 }
10629
10630 static int test_command_lines_9_skip (void)
10631 {
10632   const char *str;
10633
10634   str = getenv ("TEST_ONLY");
10635   if (str)
10636     return strstr (str, "command_lines") == NULL;
10637   str = getenv ("SKIP_TEST_COMMAND_LINES_9");
10638   if (str && strcmp (str, "1") == 0) return 1;
10639   str = getenv ("SKIP_TEST_COMMAND_LINES");
10640   if (str && strcmp (str, "1") == 0) return 1;
10641   return 0;
10642 }
10643
10644 static int test_command_lines_9 (void)
10645 {
10646   if (test_command_lines_9_skip ()) {
10647     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_9");
10648     return 0;
10649   }
10650
10651   /* InitBasicFS for test_command_lines_9: create ext2 on /dev/sda1 */
10652   {
10653     char device[] = "/dev/sda";
10654     int r;
10655     suppress_error = 0;
10656     r = guestfs_blockdev_setrw (g, device);
10657     if (r == -1)
10658       return -1;
10659   }
10660   {
10661     int r;
10662     suppress_error = 0;
10663     r = guestfs_umount_all (g);
10664     if (r == -1)
10665       return -1;
10666   }
10667   {
10668     int r;
10669     suppress_error = 0;
10670     r = guestfs_lvm_remove_all (g);
10671     if (r == -1)
10672       return -1;
10673   }
10674   {
10675     char device[] = "/dev/sda";
10676     char lines_0[] = ",";
10677     char *lines[] = {
10678       lines_0,
10679       NULL
10680     };
10681     int r;
10682     suppress_error = 0;
10683     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10684     if (r == -1)
10685       return -1;
10686   }
10687   {
10688     char fstype[] = "ext2";
10689     char device[] = "/dev/sda1";
10690     int r;
10691     suppress_error = 0;
10692     r = guestfs_mkfs (g, fstype, device);
10693     if (r == -1)
10694       return -1;
10695   }
10696   {
10697     char device[] = "/dev/sda1";
10698     char mountpoint[] = "/";
10699     int r;
10700     suppress_error = 0;
10701     r = guestfs_mount (g, device, mountpoint);
10702     if (r == -1)
10703       return -1;
10704   }
10705   /* TestOutputList for command_lines (9) */
10706   {
10707     char remotefilename[] = "/test-command";
10708     int r;
10709     suppress_error = 0;
10710     r = guestfs_upload (g, "test-command", remotefilename);
10711     if (r == -1)
10712       return -1;
10713   }
10714   {
10715     char path[] = "/test-command";
10716     int r;
10717     suppress_error = 0;
10718     r = guestfs_chmod (g, 493, path);
10719     if (r == -1)
10720       return -1;
10721   }
10722   {
10723     char arguments_0[] = "/test-command";
10724     char arguments_1[] = "10";
10725     char *arguments[] = {
10726       arguments_0,
10727       arguments_1,
10728       NULL
10729     };
10730     char **r;
10731     int i;
10732     suppress_error = 0;
10733     r = guestfs_command_lines (g, arguments);
10734     if (r == NULL)
10735       return -1;
10736     if (!r[0]) {
10737       fprintf (stderr, "test_command_lines_9: short list returned from command\n");
10738       print_strings (r);
10739       return -1;
10740     }
10741     {
10742       char expected[] = "Result10-1";
10743       if (strcmp (r[0], expected) != 0) {
10744         fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10745         return -1;
10746       }
10747     }
10748     if (!r[1]) {
10749       fprintf (stderr, "test_command_lines_9: short list returned from command\n");
10750       print_strings (r);
10751       return -1;
10752     }
10753     {
10754       char expected[] = "Result10-2";
10755       if (strcmp (r[1], expected) != 0) {
10756         fprintf (stderr, "test_command_lines_9: expected \"%s\" but got \"%s\"\n", expected, r[1]);
10757         return -1;
10758       }
10759     }
10760     if (r[2] != NULL) {
10761       fprintf (stderr, "test_command_lines_9: extra elements returned from command\n");
10762       print_strings (r);
10763       return -1;
10764     }
10765     for (i = 0; r[i] != NULL; ++i)
10766       free (r[i]);
10767     free (r);
10768   }
10769   return 0;
10770 }
10771
10772 static int test_command_lines_10_skip (void)
10773 {
10774   const char *str;
10775
10776   str = getenv ("TEST_ONLY");
10777   if (str)
10778     return strstr (str, "command_lines") == NULL;
10779   str = getenv ("SKIP_TEST_COMMAND_LINES_10");
10780   if (str && strcmp (str, "1") == 0) return 1;
10781   str = getenv ("SKIP_TEST_COMMAND_LINES");
10782   if (str && strcmp (str, "1") == 0) return 1;
10783   return 0;
10784 }
10785
10786 static int test_command_lines_10 (void)
10787 {
10788   if (test_command_lines_10_skip ()) {
10789     printf ("%s skipped (reason: environment variable set)\n", "test_command_lines_10");
10790     return 0;
10791   }
10792
10793   /* InitBasicFS for test_command_lines_10: create ext2 on /dev/sda1 */
10794   {
10795     char device[] = "/dev/sda";
10796     int r;
10797     suppress_error = 0;
10798     r = guestfs_blockdev_setrw (g, device);
10799     if (r == -1)
10800       return -1;
10801   }
10802   {
10803     int r;
10804     suppress_error = 0;
10805     r = guestfs_umount_all (g);
10806     if (r == -1)
10807       return -1;
10808   }
10809   {
10810     int r;
10811     suppress_error = 0;
10812     r = guestfs_lvm_remove_all (g);
10813     if (r == -1)
10814       return -1;
10815   }
10816   {
10817     char device[] = "/dev/sda";
10818     char lines_0[] = ",";
10819     char *lines[] = {
10820       lines_0,
10821       NULL
10822     };
10823     int r;
10824     suppress_error = 0;
10825     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10826     if (r == -1)
10827       return -1;
10828   }
10829   {
10830     char fstype[] = "ext2";
10831     char device[] = "/dev/sda1";
10832     int r;
10833     suppress_error = 0;
10834     r = guestfs_mkfs (g, fstype, device);
10835     if (r == -1)
10836       return -1;
10837   }
10838   {
10839     char device[] = "/dev/sda1";
10840     char mountpoint[] = "/";
10841     int r;
10842     suppress_error = 0;
10843     r = guestfs_mount (g, device, mountpoint);
10844     if (r == -1)
10845       return -1;
10846   }
10847   /* TestOutputList for command_lines (10) */
10848   {
10849     char remotefilename[] = "/test-command";
10850     int r;
10851     suppress_error = 0;
10852     r = guestfs_upload (g, "test-command", remotefilename);
10853     if (r == -1)
10854       return -1;
10855   }
10856   {
10857     char path[] = "/test-command";
10858     int r;
10859     suppress_error = 0;
10860     r = guestfs_chmod (g, 493, path);
10861     if (r == -1)
10862       return -1;
10863   }
10864   {
10865     char arguments_0[] = "/test-command";
10866     char arguments_1[] = "11";
10867     char *arguments[] = {
10868       arguments_0,
10869       arguments_1,
10870       NULL
10871     };
10872     char **r;
10873     int i;
10874     suppress_error = 0;
10875     r = guestfs_command_lines (g, arguments);
10876     if (r == NULL)
10877       return -1;
10878     if (!r[0]) {
10879       fprintf (stderr, "test_command_lines_10: short list returned from command\n");
10880       print_strings (r);
10881       return -1;
10882     }
10883     {
10884       char expected[] = "Result11-1";
10885       if (strcmp (r[0], expected) != 0) {
10886         fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[0]);
10887         return -1;
10888       }
10889     }
10890     if (!r[1]) {
10891       fprintf (stderr, "test_command_lines_10: short list returned from command\n");
10892       print_strings (r);
10893       return -1;
10894     }
10895     {
10896       char expected[] = "Result11-2";
10897       if (strcmp (r[1], expected) != 0) {
10898         fprintf (stderr, "test_command_lines_10: expected \"%s\" but got \"%s\"\n", expected, r[1]);
10899         return -1;
10900       }
10901     }
10902     if (r[2] != NULL) {
10903       fprintf (stderr, "test_command_lines_10: extra elements returned from command\n");
10904       print_strings (r);
10905       return -1;
10906     }
10907     for (i = 0; r[i] != NULL; ++i)
10908       free (r[i]);
10909     free (r);
10910   }
10911   return 0;
10912 }
10913
10914 static int test_command_0_skip (void)
10915 {
10916   const char *str;
10917
10918   str = getenv ("TEST_ONLY");
10919   if (str)
10920     return strstr (str, "command") == NULL;
10921   str = getenv ("SKIP_TEST_COMMAND_0");
10922   if (str && strcmp (str, "1") == 0) return 1;
10923   str = getenv ("SKIP_TEST_COMMAND");
10924   if (str && strcmp (str, "1") == 0) return 1;
10925   return 0;
10926 }
10927
10928 static int test_command_0 (void)
10929 {
10930   if (test_command_0_skip ()) {
10931     printf ("%s skipped (reason: environment variable set)\n", "test_command_0");
10932     return 0;
10933   }
10934
10935   /* InitBasicFS for test_command_0: create ext2 on /dev/sda1 */
10936   {
10937     char device[] = "/dev/sda";
10938     int r;
10939     suppress_error = 0;
10940     r = guestfs_blockdev_setrw (g, device);
10941     if (r == -1)
10942       return -1;
10943   }
10944   {
10945     int r;
10946     suppress_error = 0;
10947     r = guestfs_umount_all (g);
10948     if (r == -1)
10949       return -1;
10950   }
10951   {
10952     int r;
10953     suppress_error = 0;
10954     r = guestfs_lvm_remove_all (g);
10955     if (r == -1)
10956       return -1;
10957   }
10958   {
10959     char device[] = "/dev/sda";
10960     char lines_0[] = ",";
10961     char *lines[] = {
10962       lines_0,
10963       NULL
10964     };
10965     int r;
10966     suppress_error = 0;
10967     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
10968     if (r == -1)
10969       return -1;
10970   }
10971   {
10972     char fstype[] = "ext2";
10973     char device[] = "/dev/sda1";
10974     int r;
10975     suppress_error = 0;
10976     r = guestfs_mkfs (g, fstype, device);
10977     if (r == -1)
10978       return -1;
10979   }
10980   {
10981     char device[] = "/dev/sda1";
10982     char mountpoint[] = "/";
10983     int r;
10984     suppress_error = 0;
10985     r = guestfs_mount (g, device, mountpoint);
10986     if (r == -1)
10987       return -1;
10988   }
10989   /* TestOutput for command (0) */
10990   char expected[] = "Result1";
10991   {
10992     char remotefilename[] = "/test-command";
10993     int r;
10994     suppress_error = 0;
10995     r = guestfs_upload (g, "test-command", remotefilename);
10996     if (r == -1)
10997       return -1;
10998   }
10999   {
11000     char path[] = "/test-command";
11001     int r;
11002     suppress_error = 0;
11003     r = guestfs_chmod (g, 493, path);
11004     if (r == -1)
11005       return -1;
11006   }
11007   {
11008     char arguments_0[] = "/test-command";
11009     char arguments_1[] = "1";
11010     char *arguments[] = {
11011       arguments_0,
11012       arguments_1,
11013       NULL
11014     };
11015     char *r;
11016     suppress_error = 0;
11017     r = guestfs_command (g, arguments);
11018     if (r == NULL)
11019       return -1;
11020     if (strcmp (r, expected) != 0) {
11021       fprintf (stderr, "test_command_0: expected \"%s\" but got \"%s\"\n", expected, r);
11022       return -1;
11023     }
11024     free (r);
11025   }
11026   return 0;
11027 }
11028
11029 static int test_command_1_skip (void)
11030 {
11031   const char *str;
11032
11033   str = getenv ("TEST_ONLY");
11034   if (str)
11035     return strstr (str, "command") == NULL;
11036   str = getenv ("SKIP_TEST_COMMAND_1");
11037   if (str && strcmp (str, "1") == 0) return 1;
11038   str = getenv ("SKIP_TEST_COMMAND");
11039   if (str && strcmp (str, "1") == 0) return 1;
11040   return 0;
11041 }
11042
11043 static int test_command_1 (void)
11044 {
11045   if (test_command_1_skip ()) {
11046     printf ("%s skipped (reason: environment variable set)\n", "test_command_1");
11047     return 0;
11048   }
11049
11050   /* InitBasicFS for test_command_1: create ext2 on /dev/sda1 */
11051   {
11052     char device[] = "/dev/sda";
11053     int r;
11054     suppress_error = 0;
11055     r = guestfs_blockdev_setrw (g, device);
11056     if (r == -1)
11057       return -1;
11058   }
11059   {
11060     int r;
11061     suppress_error = 0;
11062     r = guestfs_umount_all (g);
11063     if (r == -1)
11064       return -1;
11065   }
11066   {
11067     int r;
11068     suppress_error = 0;
11069     r = guestfs_lvm_remove_all (g);
11070     if (r == -1)
11071       return -1;
11072   }
11073   {
11074     char device[] = "/dev/sda";
11075     char lines_0[] = ",";
11076     char *lines[] = {
11077       lines_0,
11078       NULL
11079     };
11080     int r;
11081     suppress_error = 0;
11082     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11083     if (r == -1)
11084       return -1;
11085   }
11086   {
11087     char fstype[] = "ext2";
11088     char device[] = "/dev/sda1";
11089     int r;
11090     suppress_error = 0;
11091     r = guestfs_mkfs (g, fstype, device);
11092     if (r == -1)
11093       return -1;
11094   }
11095   {
11096     char device[] = "/dev/sda1";
11097     char mountpoint[] = "/";
11098     int r;
11099     suppress_error = 0;
11100     r = guestfs_mount (g, device, mountpoint);
11101     if (r == -1)
11102       return -1;
11103   }
11104   /* TestOutput for command (1) */
11105   char expected[] = "Result2\n";
11106   {
11107     char remotefilename[] = "/test-command";
11108     int r;
11109     suppress_error = 0;
11110     r = guestfs_upload (g, "test-command", remotefilename);
11111     if (r == -1)
11112       return -1;
11113   }
11114   {
11115     char path[] = "/test-command";
11116     int r;
11117     suppress_error = 0;
11118     r = guestfs_chmod (g, 493, path);
11119     if (r == -1)
11120       return -1;
11121   }
11122   {
11123     char arguments_0[] = "/test-command";
11124     char arguments_1[] = "2";
11125     char *arguments[] = {
11126       arguments_0,
11127       arguments_1,
11128       NULL
11129     };
11130     char *r;
11131     suppress_error = 0;
11132     r = guestfs_command (g, arguments);
11133     if (r == NULL)
11134       return -1;
11135     if (strcmp (r, expected) != 0) {
11136       fprintf (stderr, "test_command_1: expected \"%s\" but got \"%s\"\n", expected, r);
11137       return -1;
11138     }
11139     free (r);
11140   }
11141   return 0;
11142 }
11143
11144 static int test_command_2_skip (void)
11145 {
11146   const char *str;
11147
11148   str = getenv ("TEST_ONLY");
11149   if (str)
11150     return strstr (str, "command") == NULL;
11151   str = getenv ("SKIP_TEST_COMMAND_2");
11152   if (str && strcmp (str, "1") == 0) return 1;
11153   str = getenv ("SKIP_TEST_COMMAND");
11154   if (str && strcmp (str, "1") == 0) return 1;
11155   return 0;
11156 }
11157
11158 static int test_command_2 (void)
11159 {
11160   if (test_command_2_skip ()) {
11161     printf ("%s skipped (reason: environment variable set)\n", "test_command_2");
11162     return 0;
11163   }
11164
11165   /* InitBasicFS for test_command_2: create ext2 on /dev/sda1 */
11166   {
11167     char device[] = "/dev/sda";
11168     int r;
11169     suppress_error = 0;
11170     r = guestfs_blockdev_setrw (g, device);
11171     if (r == -1)
11172       return -1;
11173   }
11174   {
11175     int r;
11176     suppress_error = 0;
11177     r = guestfs_umount_all (g);
11178     if (r == -1)
11179       return -1;
11180   }
11181   {
11182     int r;
11183     suppress_error = 0;
11184     r = guestfs_lvm_remove_all (g);
11185     if (r == -1)
11186       return -1;
11187   }
11188   {
11189     char device[] = "/dev/sda";
11190     char lines_0[] = ",";
11191     char *lines[] = {
11192       lines_0,
11193       NULL
11194     };
11195     int r;
11196     suppress_error = 0;
11197     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11198     if (r == -1)
11199       return -1;
11200   }
11201   {
11202     char fstype[] = "ext2";
11203     char device[] = "/dev/sda1";
11204     int r;
11205     suppress_error = 0;
11206     r = guestfs_mkfs (g, fstype, device);
11207     if (r == -1)
11208       return -1;
11209   }
11210   {
11211     char device[] = "/dev/sda1";
11212     char mountpoint[] = "/";
11213     int r;
11214     suppress_error = 0;
11215     r = guestfs_mount (g, device, mountpoint);
11216     if (r == -1)
11217       return -1;
11218   }
11219   /* TestOutput for command (2) */
11220   char expected[] = "\nResult3";
11221   {
11222     char remotefilename[] = "/test-command";
11223     int r;
11224     suppress_error = 0;
11225     r = guestfs_upload (g, "test-command", remotefilename);
11226     if (r == -1)
11227       return -1;
11228   }
11229   {
11230     char path[] = "/test-command";
11231     int r;
11232     suppress_error = 0;
11233     r = guestfs_chmod (g, 493, path);
11234     if (r == -1)
11235       return -1;
11236   }
11237   {
11238     char arguments_0[] = "/test-command";
11239     char arguments_1[] = "3";
11240     char *arguments[] = {
11241       arguments_0,
11242       arguments_1,
11243       NULL
11244     };
11245     char *r;
11246     suppress_error = 0;
11247     r = guestfs_command (g, arguments);
11248     if (r == NULL)
11249       return -1;
11250     if (strcmp (r, expected) != 0) {
11251       fprintf (stderr, "test_command_2: expected \"%s\" but got \"%s\"\n", expected, r);
11252       return -1;
11253     }
11254     free (r);
11255   }
11256   return 0;
11257 }
11258
11259 static int test_command_3_skip (void)
11260 {
11261   const char *str;
11262
11263   str = getenv ("TEST_ONLY");
11264   if (str)
11265     return strstr (str, "command") == NULL;
11266   str = getenv ("SKIP_TEST_COMMAND_3");
11267   if (str && strcmp (str, "1") == 0) return 1;
11268   str = getenv ("SKIP_TEST_COMMAND");
11269   if (str && strcmp (str, "1") == 0) return 1;
11270   return 0;
11271 }
11272
11273 static int test_command_3 (void)
11274 {
11275   if (test_command_3_skip ()) {
11276     printf ("%s skipped (reason: environment variable set)\n", "test_command_3");
11277     return 0;
11278   }
11279
11280   /* InitBasicFS for test_command_3: create ext2 on /dev/sda1 */
11281   {
11282     char device[] = "/dev/sda";
11283     int r;
11284     suppress_error = 0;
11285     r = guestfs_blockdev_setrw (g, device);
11286     if (r == -1)
11287       return -1;
11288   }
11289   {
11290     int r;
11291     suppress_error = 0;
11292     r = guestfs_umount_all (g);
11293     if (r == -1)
11294       return -1;
11295   }
11296   {
11297     int r;
11298     suppress_error = 0;
11299     r = guestfs_lvm_remove_all (g);
11300     if (r == -1)
11301       return -1;
11302   }
11303   {
11304     char device[] = "/dev/sda";
11305     char lines_0[] = ",";
11306     char *lines[] = {
11307       lines_0,
11308       NULL
11309     };
11310     int r;
11311     suppress_error = 0;
11312     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11313     if (r == -1)
11314       return -1;
11315   }
11316   {
11317     char fstype[] = "ext2";
11318     char device[] = "/dev/sda1";
11319     int r;
11320     suppress_error = 0;
11321     r = guestfs_mkfs (g, fstype, device);
11322     if (r == -1)
11323       return -1;
11324   }
11325   {
11326     char device[] = "/dev/sda1";
11327     char mountpoint[] = "/";
11328     int r;
11329     suppress_error = 0;
11330     r = guestfs_mount (g, device, mountpoint);
11331     if (r == -1)
11332       return -1;
11333   }
11334   /* TestOutput for command (3) */
11335   char expected[] = "\nResult4\n";
11336   {
11337     char remotefilename[] = "/test-command";
11338     int r;
11339     suppress_error = 0;
11340     r = guestfs_upload (g, "test-command", remotefilename);
11341     if (r == -1)
11342       return -1;
11343   }
11344   {
11345     char path[] = "/test-command";
11346     int r;
11347     suppress_error = 0;
11348     r = guestfs_chmod (g, 493, path);
11349     if (r == -1)
11350       return -1;
11351   }
11352   {
11353     char arguments_0[] = "/test-command";
11354     char arguments_1[] = "4";
11355     char *arguments[] = {
11356       arguments_0,
11357       arguments_1,
11358       NULL
11359     };
11360     char *r;
11361     suppress_error = 0;
11362     r = guestfs_command (g, arguments);
11363     if (r == NULL)
11364       return -1;
11365     if (strcmp (r, expected) != 0) {
11366       fprintf (stderr, "test_command_3: expected \"%s\" but got \"%s\"\n", expected, r);
11367       return -1;
11368     }
11369     free (r);
11370   }
11371   return 0;
11372 }
11373
11374 static int test_command_4_skip (void)
11375 {
11376   const char *str;
11377
11378   str = getenv ("TEST_ONLY");
11379   if (str)
11380     return strstr (str, "command") == NULL;
11381   str = getenv ("SKIP_TEST_COMMAND_4");
11382   if (str && strcmp (str, "1") == 0) return 1;
11383   str = getenv ("SKIP_TEST_COMMAND");
11384   if (str && strcmp (str, "1") == 0) return 1;
11385   return 0;
11386 }
11387
11388 static int test_command_4 (void)
11389 {
11390   if (test_command_4_skip ()) {
11391     printf ("%s skipped (reason: environment variable set)\n", "test_command_4");
11392     return 0;
11393   }
11394
11395   /* InitBasicFS for test_command_4: create ext2 on /dev/sda1 */
11396   {
11397     char device[] = "/dev/sda";
11398     int r;
11399     suppress_error = 0;
11400     r = guestfs_blockdev_setrw (g, device);
11401     if (r == -1)
11402       return -1;
11403   }
11404   {
11405     int r;
11406     suppress_error = 0;
11407     r = guestfs_umount_all (g);
11408     if (r == -1)
11409       return -1;
11410   }
11411   {
11412     int r;
11413     suppress_error = 0;
11414     r = guestfs_lvm_remove_all (g);
11415     if (r == -1)
11416       return -1;
11417   }
11418   {
11419     char device[] = "/dev/sda";
11420     char lines_0[] = ",";
11421     char *lines[] = {
11422       lines_0,
11423       NULL
11424     };
11425     int r;
11426     suppress_error = 0;
11427     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11428     if (r == -1)
11429       return -1;
11430   }
11431   {
11432     char fstype[] = "ext2";
11433     char device[] = "/dev/sda1";
11434     int r;
11435     suppress_error = 0;
11436     r = guestfs_mkfs (g, fstype, device);
11437     if (r == -1)
11438       return -1;
11439   }
11440   {
11441     char device[] = "/dev/sda1";
11442     char mountpoint[] = "/";
11443     int r;
11444     suppress_error = 0;
11445     r = guestfs_mount (g, device, mountpoint);
11446     if (r == -1)
11447       return -1;
11448   }
11449   /* TestOutput for command (4) */
11450   char expected[] = "\nResult5\n\n";
11451   {
11452     char remotefilename[] = "/test-command";
11453     int r;
11454     suppress_error = 0;
11455     r = guestfs_upload (g, "test-command", remotefilename);
11456     if (r == -1)
11457       return -1;
11458   }
11459   {
11460     char path[] = "/test-command";
11461     int r;
11462     suppress_error = 0;
11463     r = guestfs_chmod (g, 493, path);
11464     if (r == -1)
11465       return -1;
11466   }
11467   {
11468     char arguments_0[] = "/test-command";
11469     char arguments_1[] = "5";
11470     char *arguments[] = {
11471       arguments_0,
11472       arguments_1,
11473       NULL
11474     };
11475     char *r;
11476     suppress_error = 0;
11477     r = guestfs_command (g, arguments);
11478     if (r == NULL)
11479       return -1;
11480     if (strcmp (r, expected) != 0) {
11481       fprintf (stderr, "test_command_4: expected \"%s\" but got \"%s\"\n", expected, r);
11482       return -1;
11483     }
11484     free (r);
11485   }
11486   return 0;
11487 }
11488
11489 static int test_command_5_skip (void)
11490 {
11491   const char *str;
11492
11493   str = getenv ("TEST_ONLY");
11494   if (str)
11495     return strstr (str, "command") == NULL;
11496   str = getenv ("SKIP_TEST_COMMAND_5");
11497   if (str && strcmp (str, "1") == 0) return 1;
11498   str = getenv ("SKIP_TEST_COMMAND");
11499   if (str && strcmp (str, "1") == 0) return 1;
11500   return 0;
11501 }
11502
11503 static int test_command_5 (void)
11504 {
11505   if (test_command_5_skip ()) {
11506     printf ("%s skipped (reason: environment variable set)\n", "test_command_5");
11507     return 0;
11508   }
11509
11510   /* InitBasicFS for test_command_5: create ext2 on /dev/sda1 */
11511   {
11512     char device[] = "/dev/sda";
11513     int r;
11514     suppress_error = 0;
11515     r = guestfs_blockdev_setrw (g, device);
11516     if (r == -1)
11517       return -1;
11518   }
11519   {
11520     int r;
11521     suppress_error = 0;
11522     r = guestfs_umount_all (g);
11523     if (r == -1)
11524       return -1;
11525   }
11526   {
11527     int r;
11528     suppress_error = 0;
11529     r = guestfs_lvm_remove_all (g);
11530     if (r == -1)
11531       return -1;
11532   }
11533   {
11534     char device[] = "/dev/sda";
11535     char lines_0[] = ",";
11536     char *lines[] = {
11537       lines_0,
11538       NULL
11539     };
11540     int r;
11541     suppress_error = 0;
11542     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11543     if (r == -1)
11544       return -1;
11545   }
11546   {
11547     char fstype[] = "ext2";
11548     char device[] = "/dev/sda1";
11549     int r;
11550     suppress_error = 0;
11551     r = guestfs_mkfs (g, fstype, device);
11552     if (r == -1)
11553       return -1;
11554   }
11555   {
11556     char device[] = "/dev/sda1";
11557     char mountpoint[] = "/";
11558     int r;
11559     suppress_error = 0;
11560     r = guestfs_mount (g, device, mountpoint);
11561     if (r == -1)
11562       return -1;
11563   }
11564   /* TestOutput for command (5) */
11565   char expected[] = "\n\nResult6\n\n";
11566   {
11567     char remotefilename[] = "/test-command";
11568     int r;
11569     suppress_error = 0;
11570     r = guestfs_upload (g, "test-command", remotefilename);
11571     if (r == -1)
11572       return -1;
11573   }
11574   {
11575     char path[] = "/test-command";
11576     int r;
11577     suppress_error = 0;
11578     r = guestfs_chmod (g, 493, path);
11579     if (r == -1)
11580       return -1;
11581   }
11582   {
11583     char arguments_0[] = "/test-command";
11584     char arguments_1[] = "6";
11585     char *arguments[] = {
11586       arguments_0,
11587       arguments_1,
11588       NULL
11589     };
11590     char *r;
11591     suppress_error = 0;
11592     r = guestfs_command (g, arguments);
11593     if (r == NULL)
11594       return -1;
11595     if (strcmp (r, expected) != 0) {
11596       fprintf (stderr, "test_command_5: expected \"%s\" but got \"%s\"\n", expected, r);
11597       return -1;
11598     }
11599     free (r);
11600   }
11601   return 0;
11602 }
11603
11604 static int test_command_6_skip (void)
11605 {
11606   const char *str;
11607
11608   str = getenv ("TEST_ONLY");
11609   if (str)
11610     return strstr (str, "command") == NULL;
11611   str = getenv ("SKIP_TEST_COMMAND_6");
11612   if (str && strcmp (str, "1") == 0) return 1;
11613   str = getenv ("SKIP_TEST_COMMAND");
11614   if (str && strcmp (str, "1") == 0) return 1;
11615   return 0;
11616 }
11617
11618 static int test_command_6 (void)
11619 {
11620   if (test_command_6_skip ()) {
11621     printf ("%s skipped (reason: environment variable set)\n", "test_command_6");
11622     return 0;
11623   }
11624
11625   /* InitBasicFS for test_command_6: create ext2 on /dev/sda1 */
11626   {
11627     char device[] = "/dev/sda";
11628     int r;
11629     suppress_error = 0;
11630     r = guestfs_blockdev_setrw (g, device);
11631     if (r == -1)
11632       return -1;
11633   }
11634   {
11635     int r;
11636     suppress_error = 0;
11637     r = guestfs_umount_all (g);
11638     if (r == -1)
11639       return -1;
11640   }
11641   {
11642     int r;
11643     suppress_error = 0;
11644     r = guestfs_lvm_remove_all (g);
11645     if (r == -1)
11646       return -1;
11647   }
11648   {
11649     char device[] = "/dev/sda";
11650     char lines_0[] = ",";
11651     char *lines[] = {
11652       lines_0,
11653       NULL
11654     };
11655     int r;
11656     suppress_error = 0;
11657     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11658     if (r == -1)
11659       return -1;
11660   }
11661   {
11662     char fstype[] = "ext2";
11663     char device[] = "/dev/sda1";
11664     int r;
11665     suppress_error = 0;
11666     r = guestfs_mkfs (g, fstype, device);
11667     if (r == -1)
11668       return -1;
11669   }
11670   {
11671     char device[] = "/dev/sda1";
11672     char mountpoint[] = "/";
11673     int r;
11674     suppress_error = 0;
11675     r = guestfs_mount (g, device, mountpoint);
11676     if (r == -1)
11677       return -1;
11678   }
11679   /* TestOutput for command (6) */
11680   char expected[] = "";
11681   {
11682     char remotefilename[] = "/test-command";
11683     int r;
11684     suppress_error = 0;
11685     r = guestfs_upload (g, "test-command", remotefilename);
11686     if (r == -1)
11687       return -1;
11688   }
11689   {
11690     char path[] = "/test-command";
11691     int r;
11692     suppress_error = 0;
11693     r = guestfs_chmod (g, 493, path);
11694     if (r == -1)
11695       return -1;
11696   }
11697   {
11698     char arguments_0[] = "/test-command";
11699     char arguments_1[] = "7";
11700     char *arguments[] = {
11701       arguments_0,
11702       arguments_1,
11703       NULL
11704     };
11705     char *r;
11706     suppress_error = 0;
11707     r = guestfs_command (g, arguments);
11708     if (r == NULL)
11709       return -1;
11710     if (strcmp (r, expected) != 0) {
11711       fprintf (stderr, "test_command_6: expected \"%s\" but got \"%s\"\n", expected, r);
11712       return -1;
11713     }
11714     free (r);
11715   }
11716   return 0;
11717 }
11718
11719 static int test_command_7_skip (void)
11720 {
11721   const char *str;
11722
11723   str = getenv ("TEST_ONLY");
11724   if (str)
11725     return strstr (str, "command") == NULL;
11726   str = getenv ("SKIP_TEST_COMMAND_7");
11727   if (str && strcmp (str, "1") == 0) return 1;
11728   str = getenv ("SKIP_TEST_COMMAND");
11729   if (str && strcmp (str, "1") == 0) return 1;
11730   return 0;
11731 }
11732
11733 static int test_command_7 (void)
11734 {
11735   if (test_command_7_skip ()) {
11736     printf ("%s skipped (reason: environment variable set)\n", "test_command_7");
11737     return 0;
11738   }
11739
11740   /* InitBasicFS for test_command_7: create ext2 on /dev/sda1 */
11741   {
11742     char device[] = "/dev/sda";
11743     int r;
11744     suppress_error = 0;
11745     r = guestfs_blockdev_setrw (g, device);
11746     if (r == -1)
11747       return -1;
11748   }
11749   {
11750     int r;
11751     suppress_error = 0;
11752     r = guestfs_umount_all (g);
11753     if (r == -1)
11754       return -1;
11755   }
11756   {
11757     int r;
11758     suppress_error = 0;
11759     r = guestfs_lvm_remove_all (g);
11760     if (r == -1)
11761       return -1;
11762   }
11763   {
11764     char device[] = "/dev/sda";
11765     char lines_0[] = ",";
11766     char *lines[] = {
11767       lines_0,
11768       NULL
11769     };
11770     int r;
11771     suppress_error = 0;
11772     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11773     if (r == -1)
11774       return -1;
11775   }
11776   {
11777     char fstype[] = "ext2";
11778     char device[] = "/dev/sda1";
11779     int r;
11780     suppress_error = 0;
11781     r = guestfs_mkfs (g, fstype, device);
11782     if (r == -1)
11783       return -1;
11784   }
11785   {
11786     char device[] = "/dev/sda1";
11787     char mountpoint[] = "/";
11788     int r;
11789     suppress_error = 0;
11790     r = guestfs_mount (g, device, mountpoint);
11791     if (r == -1)
11792       return -1;
11793   }
11794   /* TestOutput for command (7) */
11795   char expected[] = "\n";
11796   {
11797     char remotefilename[] = "/test-command";
11798     int r;
11799     suppress_error = 0;
11800     r = guestfs_upload (g, "test-command", remotefilename);
11801     if (r == -1)
11802       return -1;
11803   }
11804   {
11805     char path[] = "/test-command";
11806     int r;
11807     suppress_error = 0;
11808     r = guestfs_chmod (g, 493, path);
11809     if (r == -1)
11810       return -1;
11811   }
11812   {
11813     char arguments_0[] = "/test-command";
11814     char arguments_1[] = "8";
11815     char *arguments[] = {
11816       arguments_0,
11817       arguments_1,
11818       NULL
11819     };
11820     char *r;
11821     suppress_error = 0;
11822     r = guestfs_command (g, arguments);
11823     if (r == NULL)
11824       return -1;
11825     if (strcmp (r, expected) != 0) {
11826       fprintf (stderr, "test_command_7: expected \"%s\" but got \"%s\"\n", expected, r);
11827       return -1;
11828     }
11829     free (r);
11830   }
11831   return 0;
11832 }
11833
11834 static int test_command_8_skip (void)
11835 {
11836   const char *str;
11837
11838   str = getenv ("TEST_ONLY");
11839   if (str)
11840     return strstr (str, "command") == NULL;
11841   str = getenv ("SKIP_TEST_COMMAND_8");
11842   if (str && strcmp (str, "1") == 0) return 1;
11843   str = getenv ("SKIP_TEST_COMMAND");
11844   if (str && strcmp (str, "1") == 0) return 1;
11845   return 0;
11846 }
11847
11848 static int test_command_8 (void)
11849 {
11850   if (test_command_8_skip ()) {
11851     printf ("%s skipped (reason: environment variable set)\n", "test_command_8");
11852     return 0;
11853   }
11854
11855   /* InitBasicFS for test_command_8: create ext2 on /dev/sda1 */
11856   {
11857     char device[] = "/dev/sda";
11858     int r;
11859     suppress_error = 0;
11860     r = guestfs_blockdev_setrw (g, device);
11861     if (r == -1)
11862       return -1;
11863   }
11864   {
11865     int r;
11866     suppress_error = 0;
11867     r = guestfs_umount_all (g);
11868     if (r == -1)
11869       return -1;
11870   }
11871   {
11872     int r;
11873     suppress_error = 0;
11874     r = guestfs_lvm_remove_all (g);
11875     if (r == -1)
11876       return -1;
11877   }
11878   {
11879     char device[] = "/dev/sda";
11880     char lines_0[] = ",";
11881     char *lines[] = {
11882       lines_0,
11883       NULL
11884     };
11885     int r;
11886     suppress_error = 0;
11887     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
11888     if (r == -1)
11889       return -1;
11890   }
11891   {
11892     char fstype[] = "ext2";
11893     char device[] = "/dev/sda1";
11894     int r;
11895     suppress_error = 0;
11896     r = guestfs_mkfs (g, fstype, device);
11897     if (r == -1)
11898       return -1;
11899   }
11900   {
11901     char device[] = "/dev/sda1";
11902     char mountpoint[] = "/";
11903     int r;
11904     suppress_error = 0;
11905     r = guestfs_mount (g, device, mountpoint);
11906     if (r == -1)
11907       return -1;
11908   }
11909   /* TestOutput for command (8) */
11910   char expected[] = "\n\n";
11911   {
11912     char remotefilename[] = "/test-command";
11913     int r;
11914     suppress_error = 0;
11915     r = guestfs_upload (g, "test-command", remotefilename);
11916     if (r == -1)
11917       return -1;
11918   }
11919   {
11920     char path[] = "/test-command";
11921     int r;
11922     suppress_error = 0;
11923     r = guestfs_chmod (g, 493, path);
11924     if (r == -1)
11925       return -1;
11926   }
11927   {
11928     char arguments_0[] = "/test-command";
11929     char arguments_1[] = "9";
11930     char *arguments[] = {
11931       arguments_0,
11932       arguments_1,
11933       NULL
11934     };
11935     char *r;
11936     suppress_error = 0;
11937     r = guestfs_command (g, arguments);
11938     if (r == NULL)
11939       return -1;
11940     if (strcmp (r, expected) != 0) {
11941       fprintf (stderr, "test_command_8: expected \"%s\" but got \"%s\"\n", expected, r);
11942       return -1;
11943     }
11944     free (r);
11945   }
11946   return 0;
11947 }
11948
11949 static int test_command_9_skip (void)
11950 {
11951   const char *str;
11952
11953   str = getenv ("TEST_ONLY");
11954   if (str)
11955     return strstr (str, "command") == NULL;
11956   str = getenv ("SKIP_TEST_COMMAND_9");
11957   if (str && strcmp (str, "1") == 0) return 1;
11958   str = getenv ("SKIP_TEST_COMMAND");
11959   if (str && strcmp (str, "1") == 0) return 1;
11960   return 0;
11961 }
11962
11963 static int test_command_9 (void)
11964 {
11965   if (test_command_9_skip ()) {
11966     printf ("%s skipped (reason: environment variable set)\n", "test_command_9");
11967     return 0;
11968   }
11969
11970   /* InitBasicFS for test_command_9: create ext2 on /dev/sda1 */
11971   {
11972     char device[] = "/dev/sda";
11973     int r;
11974     suppress_error = 0;
11975     r = guestfs_blockdev_setrw (g, device);
11976     if (r == -1)
11977       return -1;
11978   }
11979   {
11980     int r;
11981     suppress_error = 0;
11982     r = guestfs_umount_all (g);
11983     if (r == -1)
11984       return -1;
11985   }
11986   {
11987     int r;
11988     suppress_error = 0;
11989     r = guestfs_lvm_remove_all (g);
11990     if (r == -1)
11991       return -1;
11992   }
11993   {
11994     char device[] = "/dev/sda";
11995     char lines_0[] = ",";
11996     char *lines[] = {
11997       lines_0,
11998       NULL
11999     };
12000     int r;
12001     suppress_error = 0;
12002     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12003     if (r == -1)
12004       return -1;
12005   }
12006   {
12007     char fstype[] = "ext2";
12008     char device[] = "/dev/sda1";
12009     int r;
12010     suppress_error = 0;
12011     r = guestfs_mkfs (g, fstype, device);
12012     if (r == -1)
12013       return -1;
12014   }
12015   {
12016     char device[] = "/dev/sda1";
12017     char mountpoint[] = "/";
12018     int r;
12019     suppress_error = 0;
12020     r = guestfs_mount (g, device, mountpoint);
12021     if (r == -1)
12022       return -1;
12023   }
12024   /* TestOutput for command (9) */
12025   char expected[] = "Result10-1\nResult10-2\n";
12026   {
12027     char remotefilename[] = "/test-command";
12028     int r;
12029     suppress_error = 0;
12030     r = guestfs_upload (g, "test-command", remotefilename);
12031     if (r == -1)
12032       return -1;
12033   }
12034   {
12035     char path[] = "/test-command";
12036     int r;
12037     suppress_error = 0;
12038     r = guestfs_chmod (g, 493, path);
12039     if (r == -1)
12040       return -1;
12041   }
12042   {
12043     char arguments_0[] = "/test-command";
12044     char arguments_1[] = "10";
12045     char *arguments[] = {
12046       arguments_0,
12047       arguments_1,
12048       NULL
12049     };
12050     char *r;
12051     suppress_error = 0;
12052     r = guestfs_command (g, arguments);
12053     if (r == NULL)
12054       return -1;
12055     if (strcmp (r, expected) != 0) {
12056       fprintf (stderr, "test_command_9: expected \"%s\" but got \"%s\"\n", expected, r);
12057       return -1;
12058     }
12059     free (r);
12060   }
12061   return 0;
12062 }
12063
12064 static int test_command_10_skip (void)
12065 {
12066   const char *str;
12067
12068   str = getenv ("TEST_ONLY");
12069   if (str)
12070     return strstr (str, "command") == NULL;
12071   str = getenv ("SKIP_TEST_COMMAND_10");
12072   if (str && strcmp (str, "1") == 0) return 1;
12073   str = getenv ("SKIP_TEST_COMMAND");
12074   if (str && strcmp (str, "1") == 0) return 1;
12075   return 0;
12076 }
12077
12078 static int test_command_10 (void)
12079 {
12080   if (test_command_10_skip ()) {
12081     printf ("%s skipped (reason: environment variable set)\n", "test_command_10");
12082     return 0;
12083   }
12084
12085   /* InitBasicFS for test_command_10: create ext2 on /dev/sda1 */
12086   {
12087     char device[] = "/dev/sda";
12088     int r;
12089     suppress_error = 0;
12090     r = guestfs_blockdev_setrw (g, device);
12091     if (r == -1)
12092       return -1;
12093   }
12094   {
12095     int r;
12096     suppress_error = 0;
12097     r = guestfs_umount_all (g);
12098     if (r == -1)
12099       return -1;
12100   }
12101   {
12102     int r;
12103     suppress_error = 0;
12104     r = guestfs_lvm_remove_all (g);
12105     if (r == -1)
12106       return -1;
12107   }
12108   {
12109     char device[] = "/dev/sda";
12110     char lines_0[] = ",";
12111     char *lines[] = {
12112       lines_0,
12113       NULL
12114     };
12115     int r;
12116     suppress_error = 0;
12117     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12118     if (r == -1)
12119       return -1;
12120   }
12121   {
12122     char fstype[] = "ext2";
12123     char device[] = "/dev/sda1";
12124     int r;
12125     suppress_error = 0;
12126     r = guestfs_mkfs (g, fstype, device);
12127     if (r == -1)
12128       return -1;
12129   }
12130   {
12131     char device[] = "/dev/sda1";
12132     char mountpoint[] = "/";
12133     int r;
12134     suppress_error = 0;
12135     r = guestfs_mount (g, device, mountpoint);
12136     if (r == -1)
12137       return -1;
12138   }
12139   /* TestOutput for command (10) */
12140   char expected[] = "Result11-1\nResult11-2";
12141   {
12142     char remotefilename[] = "/test-command";
12143     int r;
12144     suppress_error = 0;
12145     r = guestfs_upload (g, "test-command", remotefilename);
12146     if (r == -1)
12147       return -1;
12148   }
12149   {
12150     char path[] = "/test-command";
12151     int r;
12152     suppress_error = 0;
12153     r = guestfs_chmod (g, 493, path);
12154     if (r == -1)
12155       return -1;
12156   }
12157   {
12158     char arguments_0[] = "/test-command";
12159     char arguments_1[] = "11";
12160     char *arguments[] = {
12161       arguments_0,
12162       arguments_1,
12163       NULL
12164     };
12165     char *r;
12166     suppress_error = 0;
12167     r = guestfs_command (g, arguments);
12168     if (r == NULL)
12169       return -1;
12170     if (strcmp (r, expected) != 0) {
12171       fprintf (stderr, "test_command_10: expected \"%s\" but got \"%s\"\n", expected, r);
12172       return -1;
12173     }
12174     free (r);
12175   }
12176   return 0;
12177 }
12178
12179 static int test_command_11_skip (void)
12180 {
12181   const char *str;
12182
12183   str = getenv ("TEST_ONLY");
12184   if (str)
12185     return strstr (str, "command") == NULL;
12186   str = getenv ("SKIP_TEST_COMMAND_11");
12187   if (str && strcmp (str, "1") == 0) return 1;
12188   str = getenv ("SKIP_TEST_COMMAND");
12189   if (str && strcmp (str, "1") == 0) return 1;
12190   return 0;
12191 }
12192
12193 static int test_command_11 (void)
12194 {
12195   if (test_command_11_skip ()) {
12196     printf ("%s skipped (reason: environment variable set)\n", "test_command_11");
12197     return 0;
12198   }
12199
12200   /* InitBasicFS for test_command_11: create ext2 on /dev/sda1 */
12201   {
12202     char device[] = "/dev/sda";
12203     int r;
12204     suppress_error = 0;
12205     r = guestfs_blockdev_setrw (g, device);
12206     if (r == -1)
12207       return -1;
12208   }
12209   {
12210     int r;
12211     suppress_error = 0;
12212     r = guestfs_umount_all (g);
12213     if (r == -1)
12214       return -1;
12215   }
12216   {
12217     int r;
12218     suppress_error = 0;
12219     r = guestfs_lvm_remove_all (g);
12220     if (r == -1)
12221       return -1;
12222   }
12223   {
12224     char device[] = "/dev/sda";
12225     char lines_0[] = ",";
12226     char *lines[] = {
12227       lines_0,
12228       NULL
12229     };
12230     int r;
12231     suppress_error = 0;
12232     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12233     if (r == -1)
12234       return -1;
12235   }
12236   {
12237     char fstype[] = "ext2";
12238     char device[] = "/dev/sda1";
12239     int r;
12240     suppress_error = 0;
12241     r = guestfs_mkfs (g, fstype, device);
12242     if (r == -1)
12243       return -1;
12244   }
12245   {
12246     char device[] = "/dev/sda1";
12247     char mountpoint[] = "/";
12248     int r;
12249     suppress_error = 0;
12250     r = guestfs_mount (g, device, mountpoint);
12251     if (r == -1)
12252       return -1;
12253   }
12254   /* TestLastFail for command (11) */
12255   {
12256     char remotefilename[] = "/test-command";
12257     int r;
12258     suppress_error = 0;
12259     r = guestfs_upload (g, "test-command", remotefilename);
12260     if (r == -1)
12261       return -1;
12262   }
12263   {
12264     char path[] = "/test-command";
12265     int r;
12266     suppress_error = 0;
12267     r = guestfs_chmod (g, 493, path);
12268     if (r == -1)
12269       return -1;
12270   }
12271   {
12272     char arguments_0[] = "/test-command";
12273     char *arguments[] = {
12274       arguments_0,
12275       NULL
12276     };
12277     char *r;
12278     suppress_error = 1;
12279     r = guestfs_command (g, arguments);
12280     if (r != NULL)
12281       return -1;
12282     free (r);
12283   }
12284   return 0;
12285 }
12286
12287 static int test_file_0_skip (void)
12288 {
12289   const char *str;
12290
12291   str = getenv ("TEST_ONLY");
12292   if (str)
12293     return strstr (str, "file") == NULL;
12294   str = getenv ("SKIP_TEST_FILE_0");
12295   if (str && strcmp (str, "1") == 0) return 1;
12296   str = getenv ("SKIP_TEST_FILE");
12297   if (str && strcmp (str, "1") == 0) return 1;
12298   return 0;
12299 }
12300
12301 static int test_file_0 (void)
12302 {
12303   if (test_file_0_skip ()) {
12304     printf ("%s skipped (reason: environment variable set)\n", "test_file_0");
12305     return 0;
12306   }
12307
12308   /* InitBasicFS for test_file_0: create ext2 on /dev/sda1 */
12309   {
12310     char device[] = "/dev/sda";
12311     int r;
12312     suppress_error = 0;
12313     r = guestfs_blockdev_setrw (g, device);
12314     if (r == -1)
12315       return -1;
12316   }
12317   {
12318     int r;
12319     suppress_error = 0;
12320     r = guestfs_umount_all (g);
12321     if (r == -1)
12322       return -1;
12323   }
12324   {
12325     int r;
12326     suppress_error = 0;
12327     r = guestfs_lvm_remove_all (g);
12328     if (r == -1)
12329       return -1;
12330   }
12331   {
12332     char device[] = "/dev/sda";
12333     char lines_0[] = ",";
12334     char *lines[] = {
12335       lines_0,
12336       NULL
12337     };
12338     int r;
12339     suppress_error = 0;
12340     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12341     if (r == -1)
12342       return -1;
12343   }
12344   {
12345     char fstype[] = "ext2";
12346     char device[] = "/dev/sda1";
12347     int r;
12348     suppress_error = 0;
12349     r = guestfs_mkfs (g, fstype, device);
12350     if (r == -1)
12351       return -1;
12352   }
12353   {
12354     char device[] = "/dev/sda1";
12355     char mountpoint[] = "/";
12356     int r;
12357     suppress_error = 0;
12358     r = guestfs_mount (g, device, mountpoint);
12359     if (r == -1)
12360       return -1;
12361   }
12362   /* TestOutput for file (0) */
12363   char expected[] = "empty";
12364   {
12365     char path[] = "/new";
12366     int r;
12367     suppress_error = 0;
12368     r = guestfs_touch (g, path);
12369     if (r == -1)
12370       return -1;
12371   }
12372   {
12373     char path[] = "/new";
12374     char *r;
12375     suppress_error = 0;
12376     r = guestfs_file (g, path);
12377     if (r == NULL)
12378       return -1;
12379     if (strcmp (r, expected) != 0) {
12380       fprintf (stderr, "test_file_0: expected \"%s\" but got \"%s\"\n", expected, r);
12381       return -1;
12382     }
12383     free (r);
12384   }
12385   return 0;
12386 }
12387
12388 static int test_file_1_skip (void)
12389 {
12390   const char *str;
12391
12392   str = getenv ("TEST_ONLY");
12393   if (str)
12394     return strstr (str, "file") == NULL;
12395   str = getenv ("SKIP_TEST_FILE_1");
12396   if (str && strcmp (str, "1") == 0) return 1;
12397   str = getenv ("SKIP_TEST_FILE");
12398   if (str && strcmp (str, "1") == 0) return 1;
12399   return 0;
12400 }
12401
12402 static int test_file_1 (void)
12403 {
12404   if (test_file_1_skip ()) {
12405     printf ("%s skipped (reason: environment variable set)\n", "test_file_1");
12406     return 0;
12407   }
12408
12409   /* InitBasicFS for test_file_1: create ext2 on /dev/sda1 */
12410   {
12411     char device[] = "/dev/sda";
12412     int r;
12413     suppress_error = 0;
12414     r = guestfs_blockdev_setrw (g, device);
12415     if (r == -1)
12416       return -1;
12417   }
12418   {
12419     int r;
12420     suppress_error = 0;
12421     r = guestfs_umount_all (g);
12422     if (r == -1)
12423       return -1;
12424   }
12425   {
12426     int r;
12427     suppress_error = 0;
12428     r = guestfs_lvm_remove_all (g);
12429     if (r == -1)
12430       return -1;
12431   }
12432   {
12433     char device[] = "/dev/sda";
12434     char lines_0[] = ",";
12435     char *lines[] = {
12436       lines_0,
12437       NULL
12438     };
12439     int r;
12440     suppress_error = 0;
12441     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12442     if (r == -1)
12443       return -1;
12444   }
12445   {
12446     char fstype[] = "ext2";
12447     char device[] = "/dev/sda1";
12448     int r;
12449     suppress_error = 0;
12450     r = guestfs_mkfs (g, fstype, device);
12451     if (r == -1)
12452       return -1;
12453   }
12454   {
12455     char device[] = "/dev/sda1";
12456     char mountpoint[] = "/";
12457     int r;
12458     suppress_error = 0;
12459     r = guestfs_mount (g, device, mountpoint);
12460     if (r == -1)
12461       return -1;
12462   }
12463   /* TestOutput for file (1) */
12464   char expected[] = "ASCII text";
12465   {
12466     char path[] = "/new";
12467     char content[] = "some content\n";
12468     int r;
12469     suppress_error = 0;
12470     r = guestfs_write_file (g, path, content, 0);
12471     if (r == -1)
12472       return -1;
12473   }
12474   {
12475     char path[] = "/new";
12476     char *r;
12477     suppress_error = 0;
12478     r = guestfs_file (g, path);
12479     if (r == NULL)
12480       return -1;
12481     if (strcmp (r, expected) != 0) {
12482       fprintf (stderr, "test_file_1: expected \"%s\" but got \"%s\"\n", expected, r);
12483       return -1;
12484     }
12485     free (r);
12486   }
12487   return 0;
12488 }
12489
12490 static int test_file_2_skip (void)
12491 {
12492   const char *str;
12493
12494   str = getenv ("TEST_ONLY");
12495   if (str)
12496     return strstr (str, "file") == NULL;
12497   str = getenv ("SKIP_TEST_FILE_2");
12498   if (str && strcmp (str, "1") == 0) return 1;
12499   str = getenv ("SKIP_TEST_FILE");
12500   if (str && strcmp (str, "1") == 0) return 1;
12501   return 0;
12502 }
12503
12504 static int test_file_2 (void)
12505 {
12506   if (test_file_2_skip ()) {
12507     printf ("%s skipped (reason: environment variable set)\n", "test_file_2");
12508     return 0;
12509   }
12510
12511   /* InitBasicFS for test_file_2: create ext2 on /dev/sda1 */
12512   {
12513     char device[] = "/dev/sda";
12514     int r;
12515     suppress_error = 0;
12516     r = guestfs_blockdev_setrw (g, device);
12517     if (r == -1)
12518       return -1;
12519   }
12520   {
12521     int r;
12522     suppress_error = 0;
12523     r = guestfs_umount_all (g);
12524     if (r == -1)
12525       return -1;
12526   }
12527   {
12528     int r;
12529     suppress_error = 0;
12530     r = guestfs_lvm_remove_all (g);
12531     if (r == -1)
12532       return -1;
12533   }
12534   {
12535     char device[] = "/dev/sda";
12536     char lines_0[] = ",";
12537     char *lines[] = {
12538       lines_0,
12539       NULL
12540     };
12541     int r;
12542     suppress_error = 0;
12543     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12544     if (r == -1)
12545       return -1;
12546   }
12547   {
12548     char fstype[] = "ext2";
12549     char device[] = "/dev/sda1";
12550     int r;
12551     suppress_error = 0;
12552     r = guestfs_mkfs (g, fstype, device);
12553     if (r == -1)
12554       return -1;
12555   }
12556   {
12557     char device[] = "/dev/sda1";
12558     char mountpoint[] = "/";
12559     int r;
12560     suppress_error = 0;
12561     r = guestfs_mount (g, device, mountpoint);
12562     if (r == -1)
12563       return -1;
12564   }
12565   /* TestLastFail for file (2) */
12566   {
12567     char path[] = "/nofile";
12568     char *r;
12569     suppress_error = 1;
12570     r = guestfs_file (g, path);
12571     if (r != NULL)
12572       return -1;
12573     free (r);
12574   }
12575   return 0;
12576 }
12577
12578 static int test_umount_all_0_skip (void)
12579 {
12580   const char *str;
12581
12582   str = getenv ("TEST_ONLY");
12583   if (str)
12584     return strstr (str, "umount_all") == NULL;
12585   str = getenv ("SKIP_TEST_UMOUNT_ALL_0");
12586   if (str && strcmp (str, "1") == 0) return 1;
12587   str = getenv ("SKIP_TEST_UMOUNT_ALL");
12588   if (str && strcmp (str, "1") == 0) return 1;
12589   return 0;
12590 }
12591
12592 static int test_umount_all_0 (void)
12593 {
12594   if (test_umount_all_0_skip ()) {
12595     printf ("%s skipped (reason: environment variable set)\n", "test_umount_all_0");
12596     return 0;
12597   }
12598
12599   /* InitBasicFS for test_umount_all_0: create ext2 on /dev/sda1 */
12600   {
12601     char device[] = "/dev/sda";
12602     int r;
12603     suppress_error = 0;
12604     r = guestfs_blockdev_setrw (g, device);
12605     if (r == -1)
12606       return -1;
12607   }
12608   {
12609     int r;
12610     suppress_error = 0;
12611     r = guestfs_umount_all (g);
12612     if (r == -1)
12613       return -1;
12614   }
12615   {
12616     int r;
12617     suppress_error = 0;
12618     r = guestfs_lvm_remove_all (g);
12619     if (r == -1)
12620       return -1;
12621   }
12622   {
12623     char device[] = "/dev/sda";
12624     char lines_0[] = ",";
12625     char *lines[] = {
12626       lines_0,
12627       NULL
12628     };
12629     int r;
12630     suppress_error = 0;
12631     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12632     if (r == -1)
12633       return -1;
12634   }
12635   {
12636     char fstype[] = "ext2";
12637     char device[] = "/dev/sda1";
12638     int r;
12639     suppress_error = 0;
12640     r = guestfs_mkfs (g, fstype, device);
12641     if (r == -1)
12642       return -1;
12643   }
12644   {
12645     char device[] = "/dev/sda1";
12646     char mountpoint[] = "/";
12647     int r;
12648     suppress_error = 0;
12649     r = guestfs_mount (g, device, mountpoint);
12650     if (r == -1)
12651       return -1;
12652   }
12653   /* TestOutputList for umount_all (0) */
12654   {
12655     int r;
12656     suppress_error = 0;
12657     r = guestfs_umount_all (g);
12658     if (r == -1)
12659       return -1;
12660   }
12661   {
12662     char **r;
12663     int i;
12664     suppress_error = 0;
12665     r = guestfs_mounts (g);
12666     if (r == NULL)
12667       return -1;
12668     if (r[0] != NULL) {
12669       fprintf (stderr, "test_umount_all_0: extra elements returned from command\n");
12670       print_strings (r);
12671       return -1;
12672     }
12673     for (i = 0; r[i] != NULL; ++i)
12674       free (r[i]);
12675     free (r);
12676   }
12677   return 0;
12678 }
12679
12680 static int test_umount_all_1_skip (void)
12681 {
12682   const char *str;
12683
12684   str = getenv ("TEST_ONLY");
12685   if (str)
12686     return strstr (str, "umount_all") == NULL;
12687   str = getenv ("SKIP_TEST_UMOUNT_ALL_1");
12688   if (str && strcmp (str, "1") == 0) return 1;
12689   str = getenv ("SKIP_TEST_UMOUNT_ALL");
12690   if (str && strcmp (str, "1") == 0) return 1;
12691   return 0;
12692 }
12693
12694 static int test_umount_all_1 (void)
12695 {
12696   if (test_umount_all_1_skip ()) {
12697     printf ("%s skipped (reason: environment variable set)\n", "test_umount_all_1");
12698     return 0;
12699   }
12700
12701   /* InitNone|InitEmpty for test_umount_all_1 */
12702   {
12703     char device[] = "/dev/sda";
12704     int r;
12705     suppress_error = 0;
12706     r = guestfs_blockdev_setrw (g, device);
12707     if (r == -1)
12708       return -1;
12709   }
12710   {
12711     int r;
12712     suppress_error = 0;
12713     r = guestfs_umount_all (g);
12714     if (r == -1)
12715       return -1;
12716   }
12717   {
12718     int r;
12719     suppress_error = 0;
12720     r = guestfs_lvm_remove_all (g);
12721     if (r == -1)
12722       return -1;
12723   }
12724   /* TestOutputList for umount_all (1) */
12725   {
12726     char device[] = "/dev/sda";
12727     char lines_0[] = ",10";
12728     char lines_1[] = ",20";
12729     char lines_2[] = ",";
12730     char *lines[] = {
12731       lines_0,
12732       lines_1,
12733       lines_2,
12734       NULL
12735     };
12736     int r;
12737     suppress_error = 0;
12738     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12739     if (r == -1)
12740       return -1;
12741   }
12742   {
12743     char fstype[] = "ext2";
12744     char device[] = "/dev/sda1";
12745     int r;
12746     suppress_error = 0;
12747     r = guestfs_mkfs (g, fstype, device);
12748     if (r == -1)
12749       return -1;
12750   }
12751   {
12752     char fstype[] = "ext2";
12753     char device[] = "/dev/sda2";
12754     int r;
12755     suppress_error = 0;
12756     r = guestfs_mkfs (g, fstype, device);
12757     if (r == -1)
12758       return -1;
12759   }
12760   {
12761     char fstype[] = "ext2";
12762     char device[] = "/dev/sda3";
12763     int r;
12764     suppress_error = 0;
12765     r = guestfs_mkfs (g, fstype, device);
12766     if (r == -1)
12767       return -1;
12768   }
12769   {
12770     char device[] = "/dev/sda1";
12771     char mountpoint[] = "/";
12772     int r;
12773     suppress_error = 0;
12774     r = guestfs_mount (g, device, mountpoint);
12775     if (r == -1)
12776       return -1;
12777   }
12778   {
12779     char path[] = "/mp1";
12780     int r;
12781     suppress_error = 0;
12782     r = guestfs_mkdir (g, path);
12783     if (r == -1)
12784       return -1;
12785   }
12786   {
12787     char device[] = "/dev/sda2";
12788     char mountpoint[] = "/mp1";
12789     int r;
12790     suppress_error = 0;
12791     r = guestfs_mount (g, device, mountpoint);
12792     if (r == -1)
12793       return -1;
12794   }
12795   {
12796     char path[] = "/mp1/mp2";
12797     int r;
12798     suppress_error = 0;
12799     r = guestfs_mkdir (g, path);
12800     if (r == -1)
12801       return -1;
12802   }
12803   {
12804     char device[] = "/dev/sda3";
12805     char mountpoint[] = "/mp1/mp2";
12806     int r;
12807     suppress_error = 0;
12808     r = guestfs_mount (g, device, mountpoint);
12809     if (r == -1)
12810       return -1;
12811   }
12812   {
12813     char path[] = "/mp1/mp2/mp3";
12814     int r;
12815     suppress_error = 0;
12816     r = guestfs_mkdir (g, path);
12817     if (r == -1)
12818       return -1;
12819   }
12820   {
12821     int r;
12822     suppress_error = 0;
12823     r = guestfs_umount_all (g);
12824     if (r == -1)
12825       return -1;
12826   }
12827   {
12828     char **r;
12829     int i;
12830     suppress_error = 0;
12831     r = guestfs_mounts (g);
12832     if (r == NULL)
12833       return -1;
12834     if (r[0] != NULL) {
12835       fprintf (stderr, "test_umount_all_1: extra elements returned from command\n");
12836       print_strings (r);
12837       return -1;
12838     }
12839     for (i = 0; r[i] != NULL; ++i)
12840       free (r[i]);
12841     free (r);
12842   }
12843   return 0;
12844 }
12845
12846 static int test_mounts_0_skip (void)
12847 {
12848   const char *str;
12849
12850   str = getenv ("TEST_ONLY");
12851   if (str)
12852     return strstr (str, "mounts") == NULL;
12853   str = getenv ("SKIP_TEST_MOUNTS_0");
12854   if (str && strcmp (str, "1") == 0) return 1;
12855   str = getenv ("SKIP_TEST_MOUNTS");
12856   if (str && strcmp (str, "1") == 0) return 1;
12857   return 0;
12858 }
12859
12860 static int test_mounts_0 (void)
12861 {
12862   if (test_mounts_0_skip ()) {
12863     printf ("%s skipped (reason: environment variable set)\n", "test_mounts_0");
12864     return 0;
12865   }
12866
12867   /* InitBasicFS for test_mounts_0: create ext2 on /dev/sda1 */
12868   {
12869     char device[] = "/dev/sda";
12870     int r;
12871     suppress_error = 0;
12872     r = guestfs_blockdev_setrw (g, device);
12873     if (r == -1)
12874       return -1;
12875   }
12876   {
12877     int r;
12878     suppress_error = 0;
12879     r = guestfs_umount_all (g);
12880     if (r == -1)
12881       return -1;
12882   }
12883   {
12884     int r;
12885     suppress_error = 0;
12886     r = guestfs_lvm_remove_all (g);
12887     if (r == -1)
12888       return -1;
12889   }
12890   {
12891     char device[] = "/dev/sda";
12892     char lines_0[] = ",";
12893     char *lines[] = {
12894       lines_0,
12895       NULL
12896     };
12897     int r;
12898     suppress_error = 0;
12899     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
12900     if (r == -1)
12901       return -1;
12902   }
12903   {
12904     char fstype[] = "ext2";
12905     char device[] = "/dev/sda1";
12906     int r;
12907     suppress_error = 0;
12908     r = guestfs_mkfs (g, fstype, device);
12909     if (r == -1)
12910       return -1;
12911   }
12912   {
12913     char device[] = "/dev/sda1";
12914     char mountpoint[] = "/";
12915     int r;
12916     suppress_error = 0;
12917     r = guestfs_mount (g, device, mountpoint);
12918     if (r == -1)
12919       return -1;
12920   }
12921   /* TestOutputListOfDevices for mounts (0) */
12922   {
12923     char **r;
12924     int i;
12925     suppress_error = 0;
12926     r = guestfs_mounts (g);
12927     if (r == NULL)
12928       return -1;
12929     if (!r[0]) {
12930       fprintf (stderr, "test_mounts_0: short list returned from command\n");
12931       print_strings (r);
12932       return -1;
12933     }
12934     {
12935       char expected[] = "/dev/sda1";
12936       r[0][5] = 's';
12937       if (strcmp (r[0], expected) != 0) {
12938         fprintf (stderr, "test_mounts_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
12939         return -1;
12940       }
12941     }
12942     if (r[1] != NULL) {
12943       fprintf (stderr, "test_mounts_0: extra elements returned from command\n");
12944       print_strings (r);
12945       return -1;
12946     }
12947     for (i = 0; r[i] != NULL; ++i)
12948       free (r[i]);
12949     free (r);
12950   }
12951   return 0;
12952 }
12953
12954 static int test_umount_0_skip (void)
12955 {
12956   const char *str;
12957
12958   str = getenv ("TEST_ONLY");
12959   if (str)
12960     return strstr (str, "umount") == NULL;
12961   str = getenv ("SKIP_TEST_UMOUNT_0");
12962   if (str && strcmp (str, "1") == 0) return 1;
12963   str = getenv ("SKIP_TEST_UMOUNT");
12964   if (str && strcmp (str, "1") == 0) return 1;
12965   return 0;
12966 }
12967
12968 static int test_umount_0 (void)
12969 {
12970   if (test_umount_0_skip ()) {
12971     printf ("%s skipped (reason: environment variable set)\n", "test_umount_0");
12972     return 0;
12973   }
12974
12975   /* InitNone|InitEmpty for test_umount_0 */
12976   {
12977     char device[] = "/dev/sda";
12978     int r;
12979     suppress_error = 0;
12980     r = guestfs_blockdev_setrw (g, device);
12981     if (r == -1)
12982       return -1;
12983   }
12984   {
12985     int r;
12986     suppress_error = 0;
12987     r = guestfs_umount_all (g);
12988     if (r == -1)
12989       return -1;
12990   }
12991   {
12992     int r;
12993     suppress_error = 0;
12994     r = guestfs_lvm_remove_all (g);
12995     if (r == -1)
12996       return -1;
12997   }
12998   /* TestOutputListOfDevices for umount (0) */
12999   {
13000     char device[] = "/dev/sda";
13001     char lines_0[] = ",";
13002     char *lines[] = {
13003       lines_0,
13004       NULL
13005     };
13006     int r;
13007     suppress_error = 0;
13008     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13009     if (r == -1)
13010       return -1;
13011   }
13012   {
13013     char fstype[] = "ext2";
13014     char device[] = "/dev/sda1";
13015     int r;
13016     suppress_error = 0;
13017     r = guestfs_mkfs (g, fstype, device);
13018     if (r == -1)
13019       return -1;
13020   }
13021   {
13022     char device[] = "/dev/sda1";
13023     char mountpoint[] = "/";
13024     int r;
13025     suppress_error = 0;
13026     r = guestfs_mount (g, device, mountpoint);
13027     if (r == -1)
13028       return -1;
13029   }
13030   {
13031     char **r;
13032     int i;
13033     suppress_error = 0;
13034     r = guestfs_mounts (g);
13035     if (r == NULL)
13036       return -1;
13037     if (!r[0]) {
13038       fprintf (stderr, "test_umount_0: short list returned from command\n");
13039       print_strings (r);
13040       return -1;
13041     }
13042     {
13043       char expected[] = "/dev/sda1";
13044       r[0][5] = 's';
13045       if (strcmp (r[0], expected) != 0) {
13046         fprintf (stderr, "test_umount_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
13047         return -1;
13048       }
13049     }
13050     if (r[1] != NULL) {
13051       fprintf (stderr, "test_umount_0: extra elements returned from command\n");
13052       print_strings (r);
13053       return -1;
13054     }
13055     for (i = 0; r[i] != NULL; ++i)
13056       free (r[i]);
13057     free (r);
13058   }
13059   return 0;
13060 }
13061
13062 static int test_umount_1_skip (void)
13063 {
13064   const char *str;
13065
13066   str = getenv ("TEST_ONLY");
13067   if (str)
13068     return strstr (str, "umount") == NULL;
13069   str = getenv ("SKIP_TEST_UMOUNT_1");
13070   if (str && strcmp (str, "1") == 0) return 1;
13071   str = getenv ("SKIP_TEST_UMOUNT");
13072   if (str && strcmp (str, "1") == 0) return 1;
13073   return 0;
13074 }
13075
13076 static int test_umount_1 (void)
13077 {
13078   if (test_umount_1_skip ()) {
13079     printf ("%s skipped (reason: environment variable set)\n", "test_umount_1");
13080     return 0;
13081   }
13082
13083   /* InitNone|InitEmpty for test_umount_1 */
13084   {
13085     char device[] = "/dev/sda";
13086     int r;
13087     suppress_error = 0;
13088     r = guestfs_blockdev_setrw (g, device);
13089     if (r == -1)
13090       return -1;
13091   }
13092   {
13093     int r;
13094     suppress_error = 0;
13095     r = guestfs_umount_all (g);
13096     if (r == -1)
13097       return -1;
13098   }
13099   {
13100     int r;
13101     suppress_error = 0;
13102     r = guestfs_lvm_remove_all (g);
13103     if (r == -1)
13104       return -1;
13105   }
13106   /* TestOutputList for umount (1) */
13107   {
13108     char device[] = "/dev/sda";
13109     char lines_0[] = ",";
13110     char *lines[] = {
13111       lines_0,
13112       NULL
13113     };
13114     int r;
13115     suppress_error = 0;
13116     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13117     if (r == -1)
13118       return -1;
13119   }
13120   {
13121     char fstype[] = "ext2";
13122     char device[] = "/dev/sda1";
13123     int r;
13124     suppress_error = 0;
13125     r = guestfs_mkfs (g, fstype, device);
13126     if (r == -1)
13127       return -1;
13128   }
13129   {
13130     char device[] = "/dev/sda1";
13131     char mountpoint[] = "/";
13132     int r;
13133     suppress_error = 0;
13134     r = guestfs_mount (g, device, mountpoint);
13135     if (r == -1)
13136       return -1;
13137   }
13138   {
13139     char pathordevice[] = "/";
13140     int r;
13141     suppress_error = 0;
13142     r = guestfs_umount (g, pathordevice);
13143     if (r == -1)
13144       return -1;
13145   }
13146   {
13147     char **r;
13148     int i;
13149     suppress_error = 0;
13150     r = guestfs_mounts (g);
13151     if (r == NULL)
13152       return -1;
13153     if (r[0] != NULL) {
13154       fprintf (stderr, "test_umount_1: extra elements returned from command\n");
13155       print_strings (r);
13156       return -1;
13157     }
13158     for (i = 0; r[i] != NULL; ++i)
13159       free (r[i]);
13160     free (r);
13161   }
13162   return 0;
13163 }
13164
13165 static int test_write_file_0_skip (void)
13166 {
13167   const char *str;
13168
13169   str = getenv ("TEST_ONLY");
13170   if (str)
13171     return strstr (str, "write_file") == NULL;
13172   str = getenv ("SKIP_TEST_WRITE_FILE_0");
13173   if (str && strcmp (str, "1") == 0) return 1;
13174   str = getenv ("SKIP_TEST_WRITE_FILE");
13175   if (str && strcmp (str, "1") == 0) return 1;
13176   return 0;
13177 }
13178
13179 static int test_write_file_0 (void)
13180 {
13181   if (test_write_file_0_skip ()) {
13182     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_0");
13183     return 0;
13184   }
13185
13186   /* InitBasicFS for test_write_file_0: create ext2 on /dev/sda1 */
13187   {
13188     char device[] = "/dev/sda";
13189     int r;
13190     suppress_error = 0;
13191     r = guestfs_blockdev_setrw (g, device);
13192     if (r == -1)
13193       return -1;
13194   }
13195   {
13196     int r;
13197     suppress_error = 0;
13198     r = guestfs_umount_all (g);
13199     if (r == -1)
13200       return -1;
13201   }
13202   {
13203     int r;
13204     suppress_error = 0;
13205     r = guestfs_lvm_remove_all (g);
13206     if (r == -1)
13207       return -1;
13208   }
13209   {
13210     char device[] = "/dev/sda";
13211     char lines_0[] = ",";
13212     char *lines[] = {
13213       lines_0,
13214       NULL
13215     };
13216     int r;
13217     suppress_error = 0;
13218     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13219     if (r == -1)
13220       return -1;
13221   }
13222   {
13223     char fstype[] = "ext2";
13224     char device[] = "/dev/sda1";
13225     int r;
13226     suppress_error = 0;
13227     r = guestfs_mkfs (g, fstype, device);
13228     if (r == -1)
13229       return -1;
13230   }
13231   {
13232     char device[] = "/dev/sda1";
13233     char mountpoint[] = "/";
13234     int r;
13235     suppress_error = 0;
13236     r = guestfs_mount (g, device, mountpoint);
13237     if (r == -1)
13238       return -1;
13239   }
13240   /* TestOutput for write_file (0) */
13241   char expected[] = "new file contents";
13242   {
13243     char path[] = "/new";
13244     char content[] = "new file contents";
13245     int r;
13246     suppress_error = 0;
13247     r = guestfs_write_file (g, path, content, 0);
13248     if (r == -1)
13249       return -1;
13250   }
13251   {
13252     char path[] = "/new";
13253     char *r;
13254     suppress_error = 0;
13255     r = guestfs_cat (g, path);
13256     if (r == NULL)
13257       return -1;
13258     if (strcmp (r, expected) != 0) {
13259       fprintf (stderr, "test_write_file_0: expected \"%s\" but got \"%s\"\n", expected, r);
13260       return -1;
13261     }
13262     free (r);
13263   }
13264   return 0;
13265 }
13266
13267 static int test_write_file_1_skip (void)
13268 {
13269   const char *str;
13270
13271   str = getenv ("TEST_ONLY");
13272   if (str)
13273     return strstr (str, "write_file") == NULL;
13274   str = getenv ("SKIP_TEST_WRITE_FILE_1");
13275   if (str && strcmp (str, "1") == 0) return 1;
13276   str = getenv ("SKIP_TEST_WRITE_FILE");
13277   if (str && strcmp (str, "1") == 0) return 1;
13278   return 0;
13279 }
13280
13281 static int test_write_file_1 (void)
13282 {
13283   if (test_write_file_1_skip ()) {
13284     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_1");
13285     return 0;
13286   }
13287
13288   /* InitBasicFS for test_write_file_1: create ext2 on /dev/sda1 */
13289   {
13290     char device[] = "/dev/sda";
13291     int r;
13292     suppress_error = 0;
13293     r = guestfs_blockdev_setrw (g, device);
13294     if (r == -1)
13295       return -1;
13296   }
13297   {
13298     int r;
13299     suppress_error = 0;
13300     r = guestfs_umount_all (g);
13301     if (r == -1)
13302       return -1;
13303   }
13304   {
13305     int r;
13306     suppress_error = 0;
13307     r = guestfs_lvm_remove_all (g);
13308     if (r == -1)
13309       return -1;
13310   }
13311   {
13312     char device[] = "/dev/sda";
13313     char lines_0[] = ",";
13314     char *lines[] = {
13315       lines_0,
13316       NULL
13317     };
13318     int r;
13319     suppress_error = 0;
13320     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13321     if (r == -1)
13322       return -1;
13323   }
13324   {
13325     char fstype[] = "ext2";
13326     char device[] = "/dev/sda1";
13327     int r;
13328     suppress_error = 0;
13329     r = guestfs_mkfs (g, fstype, device);
13330     if (r == -1)
13331       return -1;
13332   }
13333   {
13334     char device[] = "/dev/sda1";
13335     char mountpoint[] = "/";
13336     int r;
13337     suppress_error = 0;
13338     r = guestfs_mount (g, device, mountpoint);
13339     if (r == -1)
13340       return -1;
13341   }
13342   /* TestOutput for write_file (1) */
13343   char expected[] = "\nnew file contents\n";
13344   {
13345     char path[] = "/new";
13346     char content[] = "\nnew file contents\n";
13347     int r;
13348     suppress_error = 0;
13349     r = guestfs_write_file (g, path, content, 0);
13350     if (r == -1)
13351       return -1;
13352   }
13353   {
13354     char path[] = "/new";
13355     char *r;
13356     suppress_error = 0;
13357     r = guestfs_cat (g, path);
13358     if (r == NULL)
13359       return -1;
13360     if (strcmp (r, expected) != 0) {
13361       fprintf (stderr, "test_write_file_1: expected \"%s\" but got \"%s\"\n", expected, r);
13362       return -1;
13363     }
13364     free (r);
13365   }
13366   return 0;
13367 }
13368
13369 static int test_write_file_2_skip (void)
13370 {
13371   const char *str;
13372
13373   str = getenv ("TEST_ONLY");
13374   if (str)
13375     return strstr (str, "write_file") == NULL;
13376   str = getenv ("SKIP_TEST_WRITE_FILE_2");
13377   if (str && strcmp (str, "1") == 0) return 1;
13378   str = getenv ("SKIP_TEST_WRITE_FILE");
13379   if (str && strcmp (str, "1") == 0) return 1;
13380   return 0;
13381 }
13382
13383 static int test_write_file_2 (void)
13384 {
13385   if (test_write_file_2_skip ()) {
13386     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_2");
13387     return 0;
13388   }
13389
13390   /* InitBasicFS for test_write_file_2: create ext2 on /dev/sda1 */
13391   {
13392     char device[] = "/dev/sda";
13393     int r;
13394     suppress_error = 0;
13395     r = guestfs_blockdev_setrw (g, device);
13396     if (r == -1)
13397       return -1;
13398   }
13399   {
13400     int r;
13401     suppress_error = 0;
13402     r = guestfs_umount_all (g);
13403     if (r == -1)
13404       return -1;
13405   }
13406   {
13407     int r;
13408     suppress_error = 0;
13409     r = guestfs_lvm_remove_all (g);
13410     if (r == -1)
13411       return -1;
13412   }
13413   {
13414     char device[] = "/dev/sda";
13415     char lines_0[] = ",";
13416     char *lines[] = {
13417       lines_0,
13418       NULL
13419     };
13420     int r;
13421     suppress_error = 0;
13422     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13423     if (r == -1)
13424       return -1;
13425   }
13426   {
13427     char fstype[] = "ext2";
13428     char device[] = "/dev/sda1";
13429     int r;
13430     suppress_error = 0;
13431     r = guestfs_mkfs (g, fstype, device);
13432     if (r == -1)
13433       return -1;
13434   }
13435   {
13436     char device[] = "/dev/sda1";
13437     char mountpoint[] = "/";
13438     int r;
13439     suppress_error = 0;
13440     r = guestfs_mount (g, device, mountpoint);
13441     if (r == -1)
13442       return -1;
13443   }
13444   /* TestOutput for write_file (2) */
13445   char expected[] = "\n\n";
13446   {
13447     char path[] = "/new";
13448     char content[] = "\n\n";
13449     int r;
13450     suppress_error = 0;
13451     r = guestfs_write_file (g, path, content, 0);
13452     if (r == -1)
13453       return -1;
13454   }
13455   {
13456     char path[] = "/new";
13457     char *r;
13458     suppress_error = 0;
13459     r = guestfs_cat (g, path);
13460     if (r == NULL)
13461       return -1;
13462     if (strcmp (r, expected) != 0) {
13463       fprintf (stderr, "test_write_file_2: expected \"%s\" but got \"%s\"\n", expected, r);
13464       return -1;
13465     }
13466     free (r);
13467   }
13468   return 0;
13469 }
13470
13471 static int test_write_file_3_skip (void)
13472 {
13473   const char *str;
13474
13475   str = getenv ("TEST_ONLY");
13476   if (str)
13477     return strstr (str, "write_file") == NULL;
13478   str = getenv ("SKIP_TEST_WRITE_FILE_3");
13479   if (str && strcmp (str, "1") == 0) return 1;
13480   str = getenv ("SKIP_TEST_WRITE_FILE");
13481   if (str && strcmp (str, "1") == 0) return 1;
13482   return 0;
13483 }
13484
13485 static int test_write_file_3 (void)
13486 {
13487   if (test_write_file_3_skip ()) {
13488     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_3");
13489     return 0;
13490   }
13491
13492   /* InitBasicFS for test_write_file_3: create ext2 on /dev/sda1 */
13493   {
13494     char device[] = "/dev/sda";
13495     int r;
13496     suppress_error = 0;
13497     r = guestfs_blockdev_setrw (g, device);
13498     if (r == -1)
13499       return -1;
13500   }
13501   {
13502     int r;
13503     suppress_error = 0;
13504     r = guestfs_umount_all (g);
13505     if (r == -1)
13506       return -1;
13507   }
13508   {
13509     int r;
13510     suppress_error = 0;
13511     r = guestfs_lvm_remove_all (g);
13512     if (r == -1)
13513       return -1;
13514   }
13515   {
13516     char device[] = "/dev/sda";
13517     char lines_0[] = ",";
13518     char *lines[] = {
13519       lines_0,
13520       NULL
13521     };
13522     int r;
13523     suppress_error = 0;
13524     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13525     if (r == -1)
13526       return -1;
13527   }
13528   {
13529     char fstype[] = "ext2";
13530     char device[] = "/dev/sda1";
13531     int r;
13532     suppress_error = 0;
13533     r = guestfs_mkfs (g, fstype, device);
13534     if (r == -1)
13535       return -1;
13536   }
13537   {
13538     char device[] = "/dev/sda1";
13539     char mountpoint[] = "/";
13540     int r;
13541     suppress_error = 0;
13542     r = guestfs_mount (g, device, mountpoint);
13543     if (r == -1)
13544       return -1;
13545   }
13546   /* TestOutput for write_file (3) */
13547   char expected[] = "";
13548   {
13549     char path[] = "/new";
13550     char content[] = "";
13551     int r;
13552     suppress_error = 0;
13553     r = guestfs_write_file (g, path, content, 0);
13554     if (r == -1)
13555       return -1;
13556   }
13557   {
13558     char path[] = "/new";
13559     char *r;
13560     suppress_error = 0;
13561     r = guestfs_cat (g, path);
13562     if (r == NULL)
13563       return -1;
13564     if (strcmp (r, expected) != 0) {
13565       fprintf (stderr, "test_write_file_3: expected \"%s\" but got \"%s\"\n", expected, r);
13566       return -1;
13567     }
13568     free (r);
13569   }
13570   return 0;
13571 }
13572
13573 static int test_write_file_4_skip (void)
13574 {
13575   const char *str;
13576
13577   str = getenv ("TEST_ONLY");
13578   if (str)
13579     return strstr (str, "write_file") == NULL;
13580   str = getenv ("SKIP_TEST_WRITE_FILE_4");
13581   if (str && strcmp (str, "1") == 0) return 1;
13582   str = getenv ("SKIP_TEST_WRITE_FILE");
13583   if (str && strcmp (str, "1") == 0) return 1;
13584   return 0;
13585 }
13586
13587 static int test_write_file_4 (void)
13588 {
13589   if (test_write_file_4_skip ()) {
13590     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_4");
13591     return 0;
13592   }
13593
13594   /* InitBasicFS for test_write_file_4: 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   /* TestOutput for write_file (4) */
13649   char expected[] = "\n\n\n";
13650   {
13651     char path[] = "/new";
13652     char content[] = "\n\n\n";
13653     int r;
13654     suppress_error = 0;
13655     r = guestfs_write_file (g, path, content, 0);
13656     if (r == -1)
13657       return -1;
13658   }
13659   {
13660     char path[] = "/new";
13661     char *r;
13662     suppress_error = 0;
13663     r = guestfs_cat (g, path);
13664     if (r == NULL)
13665       return -1;
13666     if (strcmp (r, expected) != 0) {
13667       fprintf (stderr, "test_write_file_4: expected \"%s\" but got \"%s\"\n", expected, r);
13668       return -1;
13669     }
13670     free (r);
13671   }
13672   return 0;
13673 }
13674
13675 static int test_write_file_5_skip (void)
13676 {
13677   const char *str;
13678
13679   str = getenv ("TEST_ONLY");
13680   if (str)
13681     return strstr (str, "write_file") == NULL;
13682   str = getenv ("SKIP_TEST_WRITE_FILE_5");
13683   if (str && strcmp (str, "1") == 0) return 1;
13684   str = getenv ("SKIP_TEST_WRITE_FILE");
13685   if (str && strcmp (str, "1") == 0) return 1;
13686   return 0;
13687 }
13688
13689 static int test_write_file_5 (void)
13690 {
13691   if (test_write_file_5_skip ()) {
13692     printf ("%s skipped (reason: environment variable set)\n", "test_write_file_5");
13693     return 0;
13694   }
13695
13696   /* InitBasicFS for test_write_file_5: create ext2 on /dev/sda1 */
13697   {
13698     char device[] = "/dev/sda";
13699     int r;
13700     suppress_error = 0;
13701     r = guestfs_blockdev_setrw (g, device);
13702     if (r == -1)
13703       return -1;
13704   }
13705   {
13706     int r;
13707     suppress_error = 0;
13708     r = guestfs_umount_all (g);
13709     if (r == -1)
13710       return -1;
13711   }
13712   {
13713     int r;
13714     suppress_error = 0;
13715     r = guestfs_lvm_remove_all (g);
13716     if (r == -1)
13717       return -1;
13718   }
13719   {
13720     char device[] = "/dev/sda";
13721     char lines_0[] = ",";
13722     char *lines[] = {
13723       lines_0,
13724       NULL
13725     };
13726     int r;
13727     suppress_error = 0;
13728     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13729     if (r == -1)
13730       return -1;
13731   }
13732   {
13733     char fstype[] = "ext2";
13734     char device[] = "/dev/sda1";
13735     int r;
13736     suppress_error = 0;
13737     r = guestfs_mkfs (g, fstype, device);
13738     if (r == -1)
13739       return -1;
13740   }
13741   {
13742     char device[] = "/dev/sda1";
13743     char mountpoint[] = "/";
13744     int r;
13745     suppress_error = 0;
13746     r = guestfs_mount (g, device, mountpoint);
13747     if (r == -1)
13748       return -1;
13749   }
13750   /* TestOutput for write_file (5) */
13751   char expected[] = "\n";
13752   {
13753     char path[] = "/new";
13754     char content[] = "\n";
13755     int r;
13756     suppress_error = 0;
13757     r = guestfs_write_file (g, path, content, 0);
13758     if (r == -1)
13759       return -1;
13760   }
13761   {
13762     char path[] = "/new";
13763     char *r;
13764     suppress_error = 0;
13765     r = guestfs_cat (g, path);
13766     if (r == NULL)
13767       return -1;
13768     if (strcmp (r, expected) != 0) {
13769       fprintf (stderr, "test_write_file_5: expected \"%s\" but got \"%s\"\n", expected, r);
13770       return -1;
13771     }
13772     free (r);
13773   }
13774   return 0;
13775 }
13776
13777 static int test_mkfs_0_skip (void)
13778 {
13779   const char *str;
13780
13781   str = getenv ("TEST_ONLY");
13782   if (str)
13783     return strstr (str, "mkfs") == NULL;
13784   str = getenv ("SKIP_TEST_MKFS_0");
13785   if (str && strcmp (str, "1") == 0) return 1;
13786   str = getenv ("SKIP_TEST_MKFS");
13787   if (str && strcmp (str, "1") == 0) return 1;
13788   return 0;
13789 }
13790
13791 static int test_mkfs_0 (void)
13792 {
13793   if (test_mkfs_0_skip ()) {
13794     printf ("%s skipped (reason: environment variable set)\n", "test_mkfs_0");
13795     return 0;
13796   }
13797
13798   /* InitNone|InitEmpty for test_mkfs_0 */
13799   {
13800     char device[] = "/dev/sda";
13801     int r;
13802     suppress_error = 0;
13803     r = guestfs_blockdev_setrw (g, device);
13804     if (r == -1)
13805       return -1;
13806   }
13807   {
13808     int r;
13809     suppress_error = 0;
13810     r = guestfs_umount_all (g);
13811     if (r == -1)
13812       return -1;
13813   }
13814   {
13815     int r;
13816     suppress_error = 0;
13817     r = guestfs_lvm_remove_all (g);
13818     if (r == -1)
13819       return -1;
13820   }
13821   /* TestOutput for mkfs (0) */
13822   char expected[] = "new file contents";
13823   {
13824     char device[] = "/dev/sda";
13825     char lines_0[] = ",";
13826     char *lines[] = {
13827       lines_0,
13828       NULL
13829     };
13830     int r;
13831     suppress_error = 0;
13832     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13833     if (r == -1)
13834       return -1;
13835   }
13836   {
13837     char fstype[] = "ext2";
13838     char device[] = "/dev/sda1";
13839     int r;
13840     suppress_error = 0;
13841     r = guestfs_mkfs (g, fstype, device);
13842     if (r == -1)
13843       return -1;
13844   }
13845   {
13846     char device[] = "/dev/sda1";
13847     char mountpoint[] = "/";
13848     int r;
13849     suppress_error = 0;
13850     r = guestfs_mount (g, device, mountpoint);
13851     if (r == -1)
13852       return -1;
13853   }
13854   {
13855     char path[] = "/new";
13856     char content[] = "new file contents";
13857     int r;
13858     suppress_error = 0;
13859     r = guestfs_write_file (g, path, content, 0);
13860     if (r == -1)
13861       return -1;
13862   }
13863   {
13864     char path[] = "/new";
13865     char *r;
13866     suppress_error = 0;
13867     r = guestfs_cat (g, path);
13868     if (r == NULL)
13869       return -1;
13870     if (strcmp (r, expected) != 0) {
13871       fprintf (stderr, "test_mkfs_0: expected \"%s\" but got \"%s\"\n", expected, r);
13872       return -1;
13873     }
13874     free (r);
13875   }
13876   return 0;
13877 }
13878
13879 static int test_lvcreate_0_skip (void)
13880 {
13881   const char *str;
13882
13883   str = getenv ("TEST_ONLY");
13884   if (str)
13885     return strstr (str, "lvcreate") == NULL;
13886   str = getenv ("SKIP_TEST_LVCREATE_0");
13887   if (str && strcmp (str, "1") == 0) return 1;
13888   str = getenv ("SKIP_TEST_LVCREATE");
13889   if (str && strcmp (str, "1") == 0) return 1;
13890   return 0;
13891 }
13892
13893 static int test_lvcreate_0 (void)
13894 {
13895   if (test_lvcreate_0_skip ()) {
13896     printf ("%s skipped (reason: environment variable set)\n", "test_lvcreate_0");
13897     return 0;
13898   }
13899
13900   /* InitNone|InitEmpty for test_lvcreate_0 */
13901   {
13902     char device[] = "/dev/sda";
13903     int r;
13904     suppress_error = 0;
13905     r = guestfs_blockdev_setrw (g, device);
13906     if (r == -1)
13907       return -1;
13908   }
13909   {
13910     int r;
13911     suppress_error = 0;
13912     r = guestfs_umount_all (g);
13913     if (r == -1)
13914       return -1;
13915   }
13916   {
13917     int r;
13918     suppress_error = 0;
13919     r = guestfs_lvm_remove_all (g);
13920     if (r == -1)
13921       return -1;
13922   }
13923   /* TestOutputList for lvcreate (0) */
13924   {
13925     char device[] = "/dev/sda";
13926     char lines_0[] = ",10";
13927     char lines_1[] = ",20";
13928     char lines_2[] = ",";
13929     char *lines[] = {
13930       lines_0,
13931       lines_1,
13932       lines_2,
13933       NULL
13934     };
13935     int r;
13936     suppress_error = 0;
13937     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
13938     if (r == -1)
13939       return -1;
13940   }
13941   {
13942     char device[] = "/dev/sda1";
13943     int r;
13944     suppress_error = 0;
13945     r = guestfs_pvcreate (g, device);
13946     if (r == -1)
13947       return -1;
13948   }
13949   {
13950     char device[] = "/dev/sda2";
13951     int r;
13952     suppress_error = 0;
13953     r = guestfs_pvcreate (g, device);
13954     if (r == -1)
13955       return -1;
13956   }
13957   {
13958     char device[] = "/dev/sda3";
13959     int r;
13960     suppress_error = 0;
13961     r = guestfs_pvcreate (g, device);
13962     if (r == -1)
13963       return -1;
13964   }
13965   {
13966     char volgroup[] = "VG1";
13967     char physvols_0[] = "/dev/sda1";
13968     char physvols_1[] = "/dev/sda2";
13969     char *physvols[] = {
13970       physvols_0,
13971       physvols_1,
13972       NULL
13973     };
13974     int r;
13975     suppress_error = 0;
13976     r = guestfs_vgcreate (g, volgroup, physvols);
13977     if (r == -1)
13978       return -1;
13979   }
13980   {
13981     char volgroup[] = "VG2";
13982     char physvols_0[] = "/dev/sda3";
13983     char *physvols[] = {
13984       physvols_0,
13985       NULL
13986     };
13987     int r;
13988     suppress_error = 0;
13989     r = guestfs_vgcreate (g, volgroup, physvols);
13990     if (r == -1)
13991       return -1;
13992   }
13993   {
13994     char logvol[] = "LV1";
13995     char volgroup[] = "VG1";
13996     int r;
13997     suppress_error = 0;
13998     r = guestfs_lvcreate (g, logvol, volgroup, 50);
13999     if (r == -1)
14000       return -1;
14001   }
14002   {
14003     char logvol[] = "LV2";
14004     char volgroup[] = "VG1";
14005     int r;
14006     suppress_error = 0;
14007     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14008     if (r == -1)
14009       return -1;
14010   }
14011   {
14012     char logvol[] = "LV3";
14013     char volgroup[] = "VG2";
14014     int r;
14015     suppress_error = 0;
14016     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14017     if (r == -1)
14018       return -1;
14019   }
14020   {
14021     char logvol[] = "LV4";
14022     char volgroup[] = "VG2";
14023     int r;
14024     suppress_error = 0;
14025     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14026     if (r == -1)
14027       return -1;
14028   }
14029   {
14030     char logvol[] = "LV5";
14031     char volgroup[] = "VG2";
14032     int r;
14033     suppress_error = 0;
14034     r = guestfs_lvcreate (g, logvol, volgroup, 50);
14035     if (r == -1)
14036       return -1;
14037   }
14038   {
14039     char **r;
14040     int i;
14041     suppress_error = 0;
14042     r = guestfs_lvs (g);
14043     if (r == NULL)
14044       return -1;
14045     if (!r[0]) {
14046       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
14047       print_strings (r);
14048       return -1;
14049     }
14050     {
14051       char expected[] = "/dev/VG1/LV1";
14052       if (strcmp (r[0], expected) != 0) {
14053         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14054         return -1;
14055       }
14056     }
14057     if (!r[1]) {
14058       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
14059       print_strings (r);
14060       return -1;
14061     }
14062     {
14063       char expected[] = "/dev/VG1/LV2";
14064       if (strcmp (r[1], expected) != 0) {
14065         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14066         return -1;
14067       }
14068     }
14069     if (!r[2]) {
14070       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
14071       print_strings (r);
14072       return -1;
14073     }
14074     {
14075       char expected[] = "/dev/VG2/LV3";
14076       if (strcmp (r[2], expected) != 0) {
14077         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
14078         return -1;
14079       }
14080     }
14081     if (!r[3]) {
14082       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
14083       print_strings (r);
14084       return -1;
14085     }
14086     {
14087       char expected[] = "/dev/VG2/LV4";
14088       if (strcmp (r[3], expected) != 0) {
14089         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
14090         return -1;
14091       }
14092     }
14093     if (!r[4]) {
14094       fprintf (stderr, "test_lvcreate_0: short list returned from command\n");
14095       print_strings (r);
14096       return -1;
14097     }
14098     {
14099       char expected[] = "/dev/VG2/LV5";
14100       if (strcmp (r[4], expected) != 0) {
14101         fprintf (stderr, "test_lvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[4]);
14102         return -1;
14103       }
14104     }
14105     if (r[5] != NULL) {
14106       fprintf (stderr, "test_lvcreate_0: extra elements returned from command\n");
14107       print_strings (r);
14108       return -1;
14109     }
14110     for (i = 0; r[i] != NULL; ++i)
14111       free (r[i]);
14112     free (r);
14113   }
14114   return 0;
14115 }
14116
14117 static int test_vgcreate_0_skip (void)
14118 {
14119   const char *str;
14120
14121   str = getenv ("TEST_ONLY");
14122   if (str)
14123     return strstr (str, "vgcreate") == NULL;
14124   str = getenv ("SKIP_TEST_VGCREATE_0");
14125   if (str && strcmp (str, "1") == 0) return 1;
14126   str = getenv ("SKIP_TEST_VGCREATE");
14127   if (str && strcmp (str, "1") == 0) return 1;
14128   return 0;
14129 }
14130
14131 static int test_vgcreate_0 (void)
14132 {
14133   if (test_vgcreate_0_skip ()) {
14134     printf ("%s skipped (reason: environment variable set)\n", "test_vgcreate_0");
14135     return 0;
14136   }
14137
14138   /* InitNone|InitEmpty for test_vgcreate_0 */
14139   {
14140     char device[] = "/dev/sda";
14141     int r;
14142     suppress_error = 0;
14143     r = guestfs_blockdev_setrw (g, device);
14144     if (r == -1)
14145       return -1;
14146   }
14147   {
14148     int r;
14149     suppress_error = 0;
14150     r = guestfs_umount_all (g);
14151     if (r == -1)
14152       return -1;
14153   }
14154   {
14155     int r;
14156     suppress_error = 0;
14157     r = guestfs_lvm_remove_all (g);
14158     if (r == -1)
14159       return -1;
14160   }
14161   /* TestOutputList for vgcreate (0) */
14162   {
14163     char device[] = "/dev/sda";
14164     char lines_0[] = ",10";
14165     char lines_1[] = ",20";
14166     char lines_2[] = ",";
14167     char *lines[] = {
14168       lines_0,
14169       lines_1,
14170       lines_2,
14171       NULL
14172     };
14173     int r;
14174     suppress_error = 0;
14175     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14176     if (r == -1)
14177       return -1;
14178   }
14179   {
14180     char device[] = "/dev/sda1";
14181     int r;
14182     suppress_error = 0;
14183     r = guestfs_pvcreate (g, device);
14184     if (r == -1)
14185       return -1;
14186   }
14187   {
14188     char device[] = "/dev/sda2";
14189     int r;
14190     suppress_error = 0;
14191     r = guestfs_pvcreate (g, device);
14192     if (r == -1)
14193       return -1;
14194   }
14195   {
14196     char device[] = "/dev/sda3";
14197     int r;
14198     suppress_error = 0;
14199     r = guestfs_pvcreate (g, device);
14200     if (r == -1)
14201       return -1;
14202   }
14203   {
14204     char volgroup[] = "VG1";
14205     char physvols_0[] = "/dev/sda1";
14206     char physvols_1[] = "/dev/sda2";
14207     char *physvols[] = {
14208       physvols_0,
14209       physvols_1,
14210       NULL
14211     };
14212     int r;
14213     suppress_error = 0;
14214     r = guestfs_vgcreate (g, volgroup, physvols);
14215     if (r == -1)
14216       return -1;
14217   }
14218   {
14219     char volgroup[] = "VG2";
14220     char physvols_0[] = "/dev/sda3";
14221     char *physvols[] = {
14222       physvols_0,
14223       NULL
14224     };
14225     int r;
14226     suppress_error = 0;
14227     r = guestfs_vgcreate (g, volgroup, physvols);
14228     if (r == -1)
14229       return -1;
14230   }
14231   {
14232     char **r;
14233     int i;
14234     suppress_error = 0;
14235     r = guestfs_vgs (g);
14236     if (r == NULL)
14237       return -1;
14238     if (!r[0]) {
14239       fprintf (stderr, "test_vgcreate_0: short list returned from command\n");
14240       print_strings (r);
14241       return -1;
14242     }
14243     {
14244       char expected[] = "VG1";
14245       if (strcmp (r[0], expected) != 0) {
14246         fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14247         return -1;
14248       }
14249     }
14250     if (!r[1]) {
14251       fprintf (stderr, "test_vgcreate_0: short list returned from command\n");
14252       print_strings (r);
14253       return -1;
14254     }
14255     {
14256       char expected[] = "VG2";
14257       if (strcmp (r[1], expected) != 0) {
14258         fprintf (stderr, "test_vgcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14259         return -1;
14260       }
14261     }
14262     if (r[2] != NULL) {
14263       fprintf (stderr, "test_vgcreate_0: extra elements returned from command\n");
14264       print_strings (r);
14265       return -1;
14266     }
14267     for (i = 0; r[i] != NULL; ++i)
14268       free (r[i]);
14269     free (r);
14270   }
14271   return 0;
14272 }
14273
14274 static int test_pvcreate_0_skip (void)
14275 {
14276   const char *str;
14277
14278   str = getenv ("TEST_ONLY");
14279   if (str)
14280     return strstr (str, "pvcreate") == NULL;
14281   str = getenv ("SKIP_TEST_PVCREATE_0");
14282   if (str && strcmp (str, "1") == 0) return 1;
14283   str = getenv ("SKIP_TEST_PVCREATE");
14284   if (str && strcmp (str, "1") == 0) return 1;
14285   return 0;
14286 }
14287
14288 static int test_pvcreate_0 (void)
14289 {
14290   if (test_pvcreate_0_skip ()) {
14291     printf ("%s skipped (reason: environment variable set)\n", "test_pvcreate_0");
14292     return 0;
14293   }
14294
14295   /* InitNone|InitEmpty for test_pvcreate_0 */
14296   {
14297     char device[] = "/dev/sda";
14298     int r;
14299     suppress_error = 0;
14300     r = guestfs_blockdev_setrw (g, device);
14301     if (r == -1)
14302       return -1;
14303   }
14304   {
14305     int r;
14306     suppress_error = 0;
14307     r = guestfs_umount_all (g);
14308     if (r == -1)
14309       return -1;
14310   }
14311   {
14312     int r;
14313     suppress_error = 0;
14314     r = guestfs_lvm_remove_all (g);
14315     if (r == -1)
14316       return -1;
14317   }
14318   /* TestOutputListOfDevices for pvcreate (0) */
14319   {
14320     char device[] = "/dev/sda";
14321     char lines_0[] = ",10";
14322     char lines_1[] = ",20";
14323     char lines_2[] = ",";
14324     char *lines[] = {
14325       lines_0,
14326       lines_1,
14327       lines_2,
14328       NULL
14329     };
14330     int r;
14331     suppress_error = 0;
14332     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14333     if (r == -1)
14334       return -1;
14335   }
14336   {
14337     char device[] = "/dev/sda1";
14338     int r;
14339     suppress_error = 0;
14340     r = guestfs_pvcreate (g, device);
14341     if (r == -1)
14342       return -1;
14343   }
14344   {
14345     char device[] = "/dev/sda2";
14346     int r;
14347     suppress_error = 0;
14348     r = guestfs_pvcreate (g, device);
14349     if (r == -1)
14350       return -1;
14351   }
14352   {
14353     char device[] = "/dev/sda3";
14354     int r;
14355     suppress_error = 0;
14356     r = guestfs_pvcreate (g, device);
14357     if (r == -1)
14358       return -1;
14359   }
14360   {
14361     char **r;
14362     int i;
14363     suppress_error = 0;
14364     r = guestfs_pvs (g);
14365     if (r == NULL)
14366       return -1;
14367     if (!r[0]) {
14368       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
14369       print_strings (r);
14370       return -1;
14371     }
14372     {
14373       char expected[] = "/dev/sda1";
14374       r[0][5] = 's';
14375       if (strcmp (r[0], expected) != 0) {
14376         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
14377         return -1;
14378       }
14379     }
14380     if (!r[1]) {
14381       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
14382       print_strings (r);
14383       return -1;
14384     }
14385     {
14386       char expected[] = "/dev/sda2";
14387       r[1][5] = 's';
14388       if (strcmp (r[1], expected) != 0) {
14389         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
14390         return -1;
14391       }
14392     }
14393     if (!r[2]) {
14394       fprintf (stderr, "test_pvcreate_0: short list returned from command\n");
14395       print_strings (r);
14396       return -1;
14397     }
14398     {
14399       char expected[] = "/dev/sda3";
14400       r[2][5] = 's';
14401       if (strcmp (r[2], expected) != 0) {
14402         fprintf (stderr, "test_pvcreate_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
14403         return -1;
14404       }
14405     }
14406     if (r[3] != NULL) {
14407       fprintf (stderr, "test_pvcreate_0: extra elements returned from command\n");
14408       print_strings (r);
14409       return -1;
14410     }
14411     for (i = 0; r[i] != NULL; ++i)
14412       free (r[i]);
14413     free (r);
14414   }
14415   return 0;
14416 }
14417
14418 static int test_is_dir_0_skip (void)
14419 {
14420   const char *str;
14421
14422   str = getenv ("TEST_ONLY");
14423   if (str)
14424     return strstr (str, "is_dir") == NULL;
14425   str = getenv ("SKIP_TEST_IS_DIR_0");
14426   if (str && strcmp (str, "1") == 0) return 1;
14427   str = getenv ("SKIP_TEST_IS_DIR");
14428   if (str && strcmp (str, "1") == 0) return 1;
14429   return 0;
14430 }
14431
14432 static int test_is_dir_0 (void)
14433 {
14434   if (test_is_dir_0_skip ()) {
14435     printf ("%s skipped (reason: environment variable set)\n", "test_is_dir_0");
14436     return 0;
14437   }
14438
14439   /* InitBasicFS for test_is_dir_0: create ext2 on /dev/sda1 */
14440   {
14441     char device[] = "/dev/sda";
14442     int r;
14443     suppress_error = 0;
14444     r = guestfs_blockdev_setrw (g, device);
14445     if (r == -1)
14446       return -1;
14447   }
14448   {
14449     int r;
14450     suppress_error = 0;
14451     r = guestfs_umount_all (g);
14452     if (r == -1)
14453       return -1;
14454   }
14455   {
14456     int r;
14457     suppress_error = 0;
14458     r = guestfs_lvm_remove_all (g);
14459     if (r == -1)
14460       return -1;
14461   }
14462   {
14463     char device[] = "/dev/sda";
14464     char lines_0[] = ",";
14465     char *lines[] = {
14466       lines_0,
14467       NULL
14468     };
14469     int r;
14470     suppress_error = 0;
14471     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14472     if (r == -1)
14473       return -1;
14474   }
14475   {
14476     char fstype[] = "ext2";
14477     char device[] = "/dev/sda1";
14478     int r;
14479     suppress_error = 0;
14480     r = guestfs_mkfs (g, fstype, device);
14481     if (r == -1)
14482       return -1;
14483   }
14484   {
14485     char device[] = "/dev/sda1";
14486     char mountpoint[] = "/";
14487     int r;
14488     suppress_error = 0;
14489     r = guestfs_mount (g, device, mountpoint);
14490     if (r == -1)
14491       return -1;
14492   }
14493   /* TestOutputFalse for is_dir (0) */
14494   {
14495     char path[] = "/new";
14496     int r;
14497     suppress_error = 0;
14498     r = guestfs_touch (g, path);
14499     if (r == -1)
14500       return -1;
14501   }
14502   {
14503     char path[] = "/new";
14504     int r;
14505     suppress_error = 0;
14506     r = guestfs_is_dir (g, path);
14507     if (r == -1)
14508       return -1;
14509     if (r) {
14510       fprintf (stderr, "test_is_dir_0: expected false, got true\n");
14511       return -1;
14512     }
14513   }
14514   return 0;
14515 }
14516
14517 static int test_is_dir_1_skip (void)
14518 {
14519   const char *str;
14520
14521   str = getenv ("TEST_ONLY");
14522   if (str)
14523     return strstr (str, "is_dir") == NULL;
14524   str = getenv ("SKIP_TEST_IS_DIR_1");
14525   if (str && strcmp (str, "1") == 0) return 1;
14526   str = getenv ("SKIP_TEST_IS_DIR");
14527   if (str && strcmp (str, "1") == 0) return 1;
14528   return 0;
14529 }
14530
14531 static int test_is_dir_1 (void)
14532 {
14533   if (test_is_dir_1_skip ()) {
14534     printf ("%s skipped (reason: environment variable set)\n", "test_is_dir_1");
14535     return 0;
14536   }
14537
14538   /* InitBasicFS for test_is_dir_1: create ext2 on /dev/sda1 */
14539   {
14540     char device[] = "/dev/sda";
14541     int r;
14542     suppress_error = 0;
14543     r = guestfs_blockdev_setrw (g, device);
14544     if (r == -1)
14545       return -1;
14546   }
14547   {
14548     int r;
14549     suppress_error = 0;
14550     r = guestfs_umount_all (g);
14551     if (r == -1)
14552       return -1;
14553   }
14554   {
14555     int r;
14556     suppress_error = 0;
14557     r = guestfs_lvm_remove_all (g);
14558     if (r == -1)
14559       return -1;
14560   }
14561   {
14562     char device[] = "/dev/sda";
14563     char lines_0[] = ",";
14564     char *lines[] = {
14565       lines_0,
14566       NULL
14567     };
14568     int r;
14569     suppress_error = 0;
14570     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14571     if (r == -1)
14572       return -1;
14573   }
14574   {
14575     char fstype[] = "ext2";
14576     char device[] = "/dev/sda1";
14577     int r;
14578     suppress_error = 0;
14579     r = guestfs_mkfs (g, fstype, device);
14580     if (r == -1)
14581       return -1;
14582   }
14583   {
14584     char device[] = "/dev/sda1";
14585     char mountpoint[] = "/";
14586     int r;
14587     suppress_error = 0;
14588     r = guestfs_mount (g, device, mountpoint);
14589     if (r == -1)
14590       return -1;
14591   }
14592   /* TestOutputTrue for is_dir (1) */
14593   {
14594     char path[] = "/new";
14595     int r;
14596     suppress_error = 0;
14597     r = guestfs_mkdir (g, path);
14598     if (r == -1)
14599       return -1;
14600   }
14601   {
14602     char path[] = "/new";
14603     int r;
14604     suppress_error = 0;
14605     r = guestfs_is_dir (g, path);
14606     if (r == -1)
14607       return -1;
14608     if (!r) {
14609       fprintf (stderr, "test_is_dir_1: expected true, got false\n");
14610       return -1;
14611     }
14612   }
14613   return 0;
14614 }
14615
14616 static int test_is_file_0_skip (void)
14617 {
14618   const char *str;
14619
14620   str = getenv ("TEST_ONLY");
14621   if (str)
14622     return strstr (str, "is_file") == NULL;
14623   str = getenv ("SKIP_TEST_IS_FILE_0");
14624   if (str && strcmp (str, "1") == 0) return 1;
14625   str = getenv ("SKIP_TEST_IS_FILE");
14626   if (str && strcmp (str, "1") == 0) return 1;
14627   return 0;
14628 }
14629
14630 static int test_is_file_0 (void)
14631 {
14632   if (test_is_file_0_skip ()) {
14633     printf ("%s skipped (reason: environment variable set)\n", "test_is_file_0");
14634     return 0;
14635   }
14636
14637   /* InitBasicFS for test_is_file_0: create ext2 on /dev/sda1 */
14638   {
14639     char device[] = "/dev/sda";
14640     int r;
14641     suppress_error = 0;
14642     r = guestfs_blockdev_setrw (g, device);
14643     if (r == -1)
14644       return -1;
14645   }
14646   {
14647     int r;
14648     suppress_error = 0;
14649     r = guestfs_umount_all (g);
14650     if (r == -1)
14651       return -1;
14652   }
14653   {
14654     int r;
14655     suppress_error = 0;
14656     r = guestfs_lvm_remove_all (g);
14657     if (r == -1)
14658       return -1;
14659   }
14660   {
14661     char device[] = "/dev/sda";
14662     char lines_0[] = ",";
14663     char *lines[] = {
14664       lines_0,
14665       NULL
14666     };
14667     int r;
14668     suppress_error = 0;
14669     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14670     if (r == -1)
14671       return -1;
14672   }
14673   {
14674     char fstype[] = "ext2";
14675     char device[] = "/dev/sda1";
14676     int r;
14677     suppress_error = 0;
14678     r = guestfs_mkfs (g, fstype, device);
14679     if (r == -1)
14680       return -1;
14681   }
14682   {
14683     char device[] = "/dev/sda1";
14684     char mountpoint[] = "/";
14685     int r;
14686     suppress_error = 0;
14687     r = guestfs_mount (g, device, mountpoint);
14688     if (r == -1)
14689       return -1;
14690   }
14691   /* TestOutputTrue for is_file (0) */
14692   {
14693     char path[] = "/new";
14694     int r;
14695     suppress_error = 0;
14696     r = guestfs_touch (g, path);
14697     if (r == -1)
14698       return -1;
14699   }
14700   {
14701     char path[] = "/new";
14702     int r;
14703     suppress_error = 0;
14704     r = guestfs_is_file (g, path);
14705     if (r == -1)
14706       return -1;
14707     if (!r) {
14708       fprintf (stderr, "test_is_file_0: expected true, got false\n");
14709       return -1;
14710     }
14711   }
14712   return 0;
14713 }
14714
14715 static int test_is_file_1_skip (void)
14716 {
14717   const char *str;
14718
14719   str = getenv ("TEST_ONLY");
14720   if (str)
14721     return strstr (str, "is_file") == NULL;
14722   str = getenv ("SKIP_TEST_IS_FILE_1");
14723   if (str && strcmp (str, "1") == 0) return 1;
14724   str = getenv ("SKIP_TEST_IS_FILE");
14725   if (str && strcmp (str, "1") == 0) return 1;
14726   return 0;
14727 }
14728
14729 static int test_is_file_1 (void)
14730 {
14731   if (test_is_file_1_skip ()) {
14732     printf ("%s skipped (reason: environment variable set)\n", "test_is_file_1");
14733     return 0;
14734   }
14735
14736   /* InitBasicFS for test_is_file_1: create ext2 on /dev/sda1 */
14737   {
14738     char device[] = "/dev/sda";
14739     int r;
14740     suppress_error = 0;
14741     r = guestfs_blockdev_setrw (g, device);
14742     if (r == -1)
14743       return -1;
14744   }
14745   {
14746     int r;
14747     suppress_error = 0;
14748     r = guestfs_umount_all (g);
14749     if (r == -1)
14750       return -1;
14751   }
14752   {
14753     int r;
14754     suppress_error = 0;
14755     r = guestfs_lvm_remove_all (g);
14756     if (r == -1)
14757       return -1;
14758   }
14759   {
14760     char device[] = "/dev/sda";
14761     char lines_0[] = ",";
14762     char *lines[] = {
14763       lines_0,
14764       NULL
14765     };
14766     int r;
14767     suppress_error = 0;
14768     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14769     if (r == -1)
14770       return -1;
14771   }
14772   {
14773     char fstype[] = "ext2";
14774     char device[] = "/dev/sda1";
14775     int r;
14776     suppress_error = 0;
14777     r = guestfs_mkfs (g, fstype, device);
14778     if (r == -1)
14779       return -1;
14780   }
14781   {
14782     char device[] = "/dev/sda1";
14783     char mountpoint[] = "/";
14784     int r;
14785     suppress_error = 0;
14786     r = guestfs_mount (g, device, mountpoint);
14787     if (r == -1)
14788       return -1;
14789   }
14790   /* TestOutputFalse for is_file (1) */
14791   {
14792     char path[] = "/new";
14793     int r;
14794     suppress_error = 0;
14795     r = guestfs_mkdir (g, path);
14796     if (r == -1)
14797       return -1;
14798   }
14799   {
14800     char path[] = "/new";
14801     int r;
14802     suppress_error = 0;
14803     r = guestfs_is_file (g, path);
14804     if (r == -1)
14805       return -1;
14806     if (r) {
14807       fprintf (stderr, "test_is_file_1: expected false, got true\n");
14808       return -1;
14809     }
14810   }
14811   return 0;
14812 }
14813
14814 static int test_exists_0_skip (void)
14815 {
14816   const char *str;
14817
14818   str = getenv ("TEST_ONLY");
14819   if (str)
14820     return strstr (str, "exists") == NULL;
14821   str = getenv ("SKIP_TEST_EXISTS_0");
14822   if (str && strcmp (str, "1") == 0) return 1;
14823   str = getenv ("SKIP_TEST_EXISTS");
14824   if (str && strcmp (str, "1") == 0) return 1;
14825   return 0;
14826 }
14827
14828 static int test_exists_0 (void)
14829 {
14830   if (test_exists_0_skip ()) {
14831     printf ("%s skipped (reason: environment variable set)\n", "test_exists_0");
14832     return 0;
14833   }
14834
14835   /* InitBasicFS for test_exists_0: create ext2 on /dev/sda1 */
14836   {
14837     char device[] = "/dev/sda";
14838     int r;
14839     suppress_error = 0;
14840     r = guestfs_blockdev_setrw (g, device);
14841     if (r == -1)
14842       return -1;
14843   }
14844   {
14845     int r;
14846     suppress_error = 0;
14847     r = guestfs_umount_all (g);
14848     if (r == -1)
14849       return -1;
14850   }
14851   {
14852     int r;
14853     suppress_error = 0;
14854     r = guestfs_lvm_remove_all (g);
14855     if (r == -1)
14856       return -1;
14857   }
14858   {
14859     char device[] = "/dev/sda";
14860     char lines_0[] = ",";
14861     char *lines[] = {
14862       lines_0,
14863       NULL
14864     };
14865     int r;
14866     suppress_error = 0;
14867     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14868     if (r == -1)
14869       return -1;
14870   }
14871   {
14872     char fstype[] = "ext2";
14873     char device[] = "/dev/sda1";
14874     int r;
14875     suppress_error = 0;
14876     r = guestfs_mkfs (g, fstype, device);
14877     if (r == -1)
14878       return -1;
14879   }
14880   {
14881     char device[] = "/dev/sda1";
14882     char mountpoint[] = "/";
14883     int r;
14884     suppress_error = 0;
14885     r = guestfs_mount (g, device, mountpoint);
14886     if (r == -1)
14887       return -1;
14888   }
14889   /* TestOutputTrue for exists (0) */
14890   {
14891     char path[] = "/new";
14892     int r;
14893     suppress_error = 0;
14894     r = guestfs_touch (g, path);
14895     if (r == -1)
14896       return -1;
14897   }
14898   {
14899     char path[] = "/new";
14900     int r;
14901     suppress_error = 0;
14902     r = guestfs_exists (g, path);
14903     if (r == -1)
14904       return -1;
14905     if (!r) {
14906       fprintf (stderr, "test_exists_0: expected true, got false\n");
14907       return -1;
14908     }
14909   }
14910   return 0;
14911 }
14912
14913 static int test_exists_1_skip (void)
14914 {
14915   const char *str;
14916
14917   str = getenv ("TEST_ONLY");
14918   if (str)
14919     return strstr (str, "exists") == NULL;
14920   str = getenv ("SKIP_TEST_EXISTS_1");
14921   if (str && strcmp (str, "1") == 0) return 1;
14922   str = getenv ("SKIP_TEST_EXISTS");
14923   if (str && strcmp (str, "1") == 0) return 1;
14924   return 0;
14925 }
14926
14927 static int test_exists_1 (void)
14928 {
14929   if (test_exists_1_skip ()) {
14930     printf ("%s skipped (reason: environment variable set)\n", "test_exists_1");
14931     return 0;
14932   }
14933
14934   /* InitBasicFS for test_exists_1: create ext2 on /dev/sda1 */
14935   {
14936     char device[] = "/dev/sda";
14937     int r;
14938     suppress_error = 0;
14939     r = guestfs_blockdev_setrw (g, device);
14940     if (r == -1)
14941       return -1;
14942   }
14943   {
14944     int r;
14945     suppress_error = 0;
14946     r = guestfs_umount_all (g);
14947     if (r == -1)
14948       return -1;
14949   }
14950   {
14951     int r;
14952     suppress_error = 0;
14953     r = guestfs_lvm_remove_all (g);
14954     if (r == -1)
14955       return -1;
14956   }
14957   {
14958     char device[] = "/dev/sda";
14959     char lines_0[] = ",";
14960     char *lines[] = {
14961       lines_0,
14962       NULL
14963     };
14964     int r;
14965     suppress_error = 0;
14966     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
14967     if (r == -1)
14968       return -1;
14969   }
14970   {
14971     char fstype[] = "ext2";
14972     char device[] = "/dev/sda1";
14973     int r;
14974     suppress_error = 0;
14975     r = guestfs_mkfs (g, fstype, device);
14976     if (r == -1)
14977       return -1;
14978   }
14979   {
14980     char device[] = "/dev/sda1";
14981     char mountpoint[] = "/";
14982     int r;
14983     suppress_error = 0;
14984     r = guestfs_mount (g, device, mountpoint);
14985     if (r == -1)
14986       return -1;
14987   }
14988   /* TestOutputTrue for exists (1) */
14989   {
14990     char path[] = "/new";
14991     int r;
14992     suppress_error = 0;
14993     r = guestfs_mkdir (g, path);
14994     if (r == -1)
14995       return -1;
14996   }
14997   {
14998     char path[] = "/new";
14999     int r;
15000     suppress_error = 0;
15001     r = guestfs_exists (g, path);
15002     if (r == -1)
15003       return -1;
15004     if (!r) {
15005       fprintf (stderr, "test_exists_1: expected true, got false\n");
15006       return -1;
15007     }
15008   }
15009   return 0;
15010 }
15011
15012 static int test_mkdir_p_0_skip (void)
15013 {
15014   const char *str;
15015
15016   str = getenv ("TEST_ONLY");
15017   if (str)
15018     return strstr (str, "mkdir_p") == NULL;
15019   str = getenv ("SKIP_TEST_MKDIR_P_0");
15020   if (str && strcmp (str, "1") == 0) return 1;
15021   str = getenv ("SKIP_TEST_MKDIR_P");
15022   if (str && strcmp (str, "1") == 0) return 1;
15023   return 0;
15024 }
15025
15026 static int test_mkdir_p_0 (void)
15027 {
15028   if (test_mkdir_p_0_skip ()) {
15029     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_p_0");
15030     return 0;
15031   }
15032
15033   /* InitBasicFS for test_mkdir_p_0: create ext2 on /dev/sda1 */
15034   {
15035     char device[] = "/dev/sda";
15036     int r;
15037     suppress_error = 0;
15038     r = guestfs_blockdev_setrw (g, device);
15039     if (r == -1)
15040       return -1;
15041   }
15042   {
15043     int r;
15044     suppress_error = 0;
15045     r = guestfs_umount_all (g);
15046     if (r == -1)
15047       return -1;
15048   }
15049   {
15050     int r;
15051     suppress_error = 0;
15052     r = guestfs_lvm_remove_all (g);
15053     if (r == -1)
15054       return -1;
15055   }
15056   {
15057     char device[] = "/dev/sda";
15058     char lines_0[] = ",";
15059     char *lines[] = {
15060       lines_0,
15061       NULL
15062     };
15063     int r;
15064     suppress_error = 0;
15065     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15066     if (r == -1)
15067       return -1;
15068   }
15069   {
15070     char fstype[] = "ext2";
15071     char device[] = "/dev/sda1";
15072     int r;
15073     suppress_error = 0;
15074     r = guestfs_mkfs (g, fstype, device);
15075     if (r == -1)
15076       return -1;
15077   }
15078   {
15079     char device[] = "/dev/sda1";
15080     char mountpoint[] = "/";
15081     int r;
15082     suppress_error = 0;
15083     r = guestfs_mount (g, device, mountpoint);
15084     if (r == -1)
15085       return -1;
15086   }
15087   /* TestOutputTrue for mkdir_p (0) */
15088   {
15089     char path[] = "/new/foo/bar";
15090     int r;
15091     suppress_error = 0;
15092     r = guestfs_mkdir_p (g, path);
15093     if (r == -1)
15094       return -1;
15095   }
15096   {
15097     char path[] = "/new/foo/bar";
15098     int r;
15099     suppress_error = 0;
15100     r = guestfs_is_dir (g, path);
15101     if (r == -1)
15102       return -1;
15103     if (!r) {
15104       fprintf (stderr, "test_mkdir_p_0: expected true, got false\n");
15105       return -1;
15106     }
15107   }
15108   return 0;
15109 }
15110
15111 static int test_mkdir_p_1_skip (void)
15112 {
15113   const char *str;
15114
15115   str = getenv ("TEST_ONLY");
15116   if (str)
15117     return strstr (str, "mkdir_p") == NULL;
15118   str = getenv ("SKIP_TEST_MKDIR_P_1");
15119   if (str && strcmp (str, "1") == 0) return 1;
15120   str = getenv ("SKIP_TEST_MKDIR_P");
15121   if (str && strcmp (str, "1") == 0) return 1;
15122   return 0;
15123 }
15124
15125 static int test_mkdir_p_1 (void)
15126 {
15127   if (test_mkdir_p_1_skip ()) {
15128     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_p_1");
15129     return 0;
15130   }
15131
15132   /* InitBasicFS for test_mkdir_p_1: create ext2 on /dev/sda1 */
15133   {
15134     char device[] = "/dev/sda";
15135     int r;
15136     suppress_error = 0;
15137     r = guestfs_blockdev_setrw (g, device);
15138     if (r == -1)
15139       return -1;
15140   }
15141   {
15142     int r;
15143     suppress_error = 0;
15144     r = guestfs_umount_all (g);
15145     if (r == -1)
15146       return -1;
15147   }
15148   {
15149     int r;
15150     suppress_error = 0;
15151     r = guestfs_lvm_remove_all (g);
15152     if (r == -1)
15153       return -1;
15154   }
15155   {
15156     char device[] = "/dev/sda";
15157     char lines_0[] = ",";
15158     char *lines[] = {
15159       lines_0,
15160       NULL
15161     };
15162     int r;
15163     suppress_error = 0;
15164     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15165     if (r == -1)
15166       return -1;
15167   }
15168   {
15169     char fstype[] = "ext2";
15170     char device[] = "/dev/sda1";
15171     int r;
15172     suppress_error = 0;
15173     r = guestfs_mkfs (g, fstype, device);
15174     if (r == -1)
15175       return -1;
15176   }
15177   {
15178     char device[] = "/dev/sda1";
15179     char mountpoint[] = "/";
15180     int r;
15181     suppress_error = 0;
15182     r = guestfs_mount (g, device, mountpoint);
15183     if (r == -1)
15184       return -1;
15185   }
15186   /* TestOutputTrue for mkdir_p (1) */
15187   {
15188     char path[] = "/new/foo/bar";
15189     int r;
15190     suppress_error = 0;
15191     r = guestfs_mkdir_p (g, path);
15192     if (r == -1)
15193       return -1;
15194   }
15195   {
15196     char path[] = "/new/foo";
15197     int r;
15198     suppress_error = 0;
15199     r = guestfs_is_dir (g, path);
15200     if (r == -1)
15201       return -1;
15202     if (!r) {
15203       fprintf (stderr, "test_mkdir_p_1: expected true, got false\n");
15204       return -1;
15205     }
15206   }
15207   return 0;
15208 }
15209
15210 static int test_mkdir_p_2_skip (void)
15211 {
15212   const char *str;
15213
15214   str = getenv ("TEST_ONLY");
15215   if (str)
15216     return strstr (str, "mkdir_p") == NULL;
15217   str = getenv ("SKIP_TEST_MKDIR_P_2");
15218   if (str && strcmp (str, "1") == 0) return 1;
15219   str = getenv ("SKIP_TEST_MKDIR_P");
15220   if (str && strcmp (str, "1") == 0) return 1;
15221   return 0;
15222 }
15223
15224 static int test_mkdir_p_2 (void)
15225 {
15226   if (test_mkdir_p_2_skip ()) {
15227     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_p_2");
15228     return 0;
15229   }
15230
15231   /* InitBasicFS for test_mkdir_p_2: create ext2 on /dev/sda1 */
15232   {
15233     char device[] = "/dev/sda";
15234     int r;
15235     suppress_error = 0;
15236     r = guestfs_blockdev_setrw (g, device);
15237     if (r == -1)
15238       return -1;
15239   }
15240   {
15241     int r;
15242     suppress_error = 0;
15243     r = guestfs_umount_all (g);
15244     if (r == -1)
15245       return -1;
15246   }
15247   {
15248     int r;
15249     suppress_error = 0;
15250     r = guestfs_lvm_remove_all (g);
15251     if (r == -1)
15252       return -1;
15253   }
15254   {
15255     char device[] = "/dev/sda";
15256     char lines_0[] = ",";
15257     char *lines[] = {
15258       lines_0,
15259       NULL
15260     };
15261     int r;
15262     suppress_error = 0;
15263     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15264     if (r == -1)
15265       return -1;
15266   }
15267   {
15268     char fstype[] = "ext2";
15269     char device[] = "/dev/sda1";
15270     int r;
15271     suppress_error = 0;
15272     r = guestfs_mkfs (g, fstype, device);
15273     if (r == -1)
15274       return -1;
15275   }
15276   {
15277     char device[] = "/dev/sda1";
15278     char mountpoint[] = "/";
15279     int r;
15280     suppress_error = 0;
15281     r = guestfs_mount (g, device, mountpoint);
15282     if (r == -1)
15283       return -1;
15284   }
15285   /* TestOutputTrue for mkdir_p (2) */
15286   {
15287     char path[] = "/new/foo/bar";
15288     int r;
15289     suppress_error = 0;
15290     r = guestfs_mkdir_p (g, path);
15291     if (r == -1)
15292       return -1;
15293   }
15294   {
15295     char path[] = "/new";
15296     int r;
15297     suppress_error = 0;
15298     r = guestfs_is_dir (g, path);
15299     if (r == -1)
15300       return -1;
15301     if (!r) {
15302       fprintf (stderr, "test_mkdir_p_2: expected true, got false\n");
15303       return -1;
15304     }
15305   }
15306   return 0;
15307 }
15308
15309 static int test_mkdir_p_3_skip (void)
15310 {
15311   const char *str;
15312
15313   str = getenv ("TEST_ONLY");
15314   if (str)
15315     return strstr (str, "mkdir_p") == NULL;
15316   str = getenv ("SKIP_TEST_MKDIR_P_3");
15317   if (str && strcmp (str, "1") == 0) return 1;
15318   str = getenv ("SKIP_TEST_MKDIR_P");
15319   if (str && strcmp (str, "1") == 0) return 1;
15320   return 0;
15321 }
15322
15323 static int test_mkdir_p_3 (void)
15324 {
15325   if (test_mkdir_p_3_skip ()) {
15326     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_p_3");
15327     return 0;
15328   }
15329
15330   /* InitBasicFS for test_mkdir_p_3: create ext2 on /dev/sda1 */
15331   {
15332     char device[] = "/dev/sda";
15333     int r;
15334     suppress_error = 0;
15335     r = guestfs_blockdev_setrw (g, device);
15336     if (r == -1)
15337       return -1;
15338   }
15339   {
15340     int r;
15341     suppress_error = 0;
15342     r = guestfs_umount_all (g);
15343     if (r == -1)
15344       return -1;
15345   }
15346   {
15347     int r;
15348     suppress_error = 0;
15349     r = guestfs_lvm_remove_all (g);
15350     if (r == -1)
15351       return -1;
15352   }
15353   {
15354     char device[] = "/dev/sda";
15355     char lines_0[] = ",";
15356     char *lines[] = {
15357       lines_0,
15358       NULL
15359     };
15360     int r;
15361     suppress_error = 0;
15362     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15363     if (r == -1)
15364       return -1;
15365   }
15366   {
15367     char fstype[] = "ext2";
15368     char device[] = "/dev/sda1";
15369     int r;
15370     suppress_error = 0;
15371     r = guestfs_mkfs (g, fstype, device);
15372     if (r == -1)
15373       return -1;
15374   }
15375   {
15376     char device[] = "/dev/sda1";
15377     char mountpoint[] = "/";
15378     int r;
15379     suppress_error = 0;
15380     r = guestfs_mount (g, device, mountpoint);
15381     if (r == -1)
15382       return -1;
15383   }
15384   /* TestRun for mkdir_p (3) */
15385   {
15386     char path[] = "/new";
15387     int r;
15388     suppress_error = 0;
15389     r = guestfs_mkdir (g, path);
15390     if (r == -1)
15391       return -1;
15392   }
15393   {
15394     char path[] = "/new";
15395     int r;
15396     suppress_error = 0;
15397     r = guestfs_mkdir_p (g, path);
15398     if (r == -1)
15399       return -1;
15400   }
15401   return 0;
15402 }
15403
15404 static int test_mkdir_p_4_skip (void)
15405 {
15406   const char *str;
15407
15408   str = getenv ("TEST_ONLY");
15409   if (str)
15410     return strstr (str, "mkdir_p") == NULL;
15411   str = getenv ("SKIP_TEST_MKDIR_P_4");
15412   if (str && strcmp (str, "1") == 0) return 1;
15413   str = getenv ("SKIP_TEST_MKDIR_P");
15414   if (str && strcmp (str, "1") == 0) return 1;
15415   return 0;
15416 }
15417
15418 static int test_mkdir_p_4 (void)
15419 {
15420   if (test_mkdir_p_4_skip ()) {
15421     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_p_4");
15422     return 0;
15423   }
15424
15425   /* InitBasicFS for test_mkdir_p_4: create ext2 on /dev/sda1 */
15426   {
15427     char device[] = "/dev/sda";
15428     int r;
15429     suppress_error = 0;
15430     r = guestfs_blockdev_setrw (g, device);
15431     if (r == -1)
15432       return -1;
15433   }
15434   {
15435     int r;
15436     suppress_error = 0;
15437     r = guestfs_umount_all (g);
15438     if (r == -1)
15439       return -1;
15440   }
15441   {
15442     int r;
15443     suppress_error = 0;
15444     r = guestfs_lvm_remove_all (g);
15445     if (r == -1)
15446       return -1;
15447   }
15448   {
15449     char device[] = "/dev/sda";
15450     char lines_0[] = ",";
15451     char *lines[] = {
15452       lines_0,
15453       NULL
15454     };
15455     int r;
15456     suppress_error = 0;
15457     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15458     if (r == -1)
15459       return -1;
15460   }
15461   {
15462     char fstype[] = "ext2";
15463     char device[] = "/dev/sda1";
15464     int r;
15465     suppress_error = 0;
15466     r = guestfs_mkfs (g, fstype, device);
15467     if (r == -1)
15468       return -1;
15469   }
15470   {
15471     char device[] = "/dev/sda1";
15472     char mountpoint[] = "/";
15473     int r;
15474     suppress_error = 0;
15475     r = guestfs_mount (g, device, mountpoint);
15476     if (r == -1)
15477       return -1;
15478   }
15479   /* TestLastFail for mkdir_p (4) */
15480   {
15481     char path[] = "/new";
15482     int r;
15483     suppress_error = 0;
15484     r = guestfs_touch (g, path);
15485     if (r == -1)
15486       return -1;
15487   }
15488   {
15489     char path[] = "/new";
15490     int r;
15491     suppress_error = 1;
15492     r = guestfs_mkdir_p (g, path);
15493     if (r != -1)
15494       return -1;
15495   }
15496   return 0;
15497 }
15498
15499 static int test_mkdir_0_skip (void)
15500 {
15501   const char *str;
15502
15503   str = getenv ("TEST_ONLY");
15504   if (str)
15505     return strstr (str, "mkdir") == NULL;
15506   str = getenv ("SKIP_TEST_MKDIR_0");
15507   if (str && strcmp (str, "1") == 0) return 1;
15508   str = getenv ("SKIP_TEST_MKDIR");
15509   if (str && strcmp (str, "1") == 0) return 1;
15510   return 0;
15511 }
15512
15513 static int test_mkdir_0 (void)
15514 {
15515   if (test_mkdir_0_skip ()) {
15516     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_0");
15517     return 0;
15518   }
15519
15520   /* InitBasicFS for test_mkdir_0: create ext2 on /dev/sda1 */
15521   {
15522     char device[] = "/dev/sda";
15523     int r;
15524     suppress_error = 0;
15525     r = guestfs_blockdev_setrw (g, device);
15526     if (r == -1)
15527       return -1;
15528   }
15529   {
15530     int r;
15531     suppress_error = 0;
15532     r = guestfs_umount_all (g);
15533     if (r == -1)
15534       return -1;
15535   }
15536   {
15537     int r;
15538     suppress_error = 0;
15539     r = guestfs_lvm_remove_all (g);
15540     if (r == -1)
15541       return -1;
15542   }
15543   {
15544     char device[] = "/dev/sda";
15545     char lines_0[] = ",";
15546     char *lines[] = {
15547       lines_0,
15548       NULL
15549     };
15550     int r;
15551     suppress_error = 0;
15552     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15553     if (r == -1)
15554       return -1;
15555   }
15556   {
15557     char fstype[] = "ext2";
15558     char device[] = "/dev/sda1";
15559     int r;
15560     suppress_error = 0;
15561     r = guestfs_mkfs (g, fstype, device);
15562     if (r == -1)
15563       return -1;
15564   }
15565   {
15566     char device[] = "/dev/sda1";
15567     char mountpoint[] = "/";
15568     int r;
15569     suppress_error = 0;
15570     r = guestfs_mount (g, device, mountpoint);
15571     if (r == -1)
15572       return -1;
15573   }
15574   /* TestOutputTrue for mkdir (0) */
15575   {
15576     char path[] = "/new";
15577     int r;
15578     suppress_error = 0;
15579     r = guestfs_mkdir (g, path);
15580     if (r == -1)
15581       return -1;
15582   }
15583   {
15584     char path[] = "/new";
15585     int r;
15586     suppress_error = 0;
15587     r = guestfs_is_dir (g, path);
15588     if (r == -1)
15589       return -1;
15590     if (!r) {
15591       fprintf (stderr, "test_mkdir_0: expected true, got false\n");
15592       return -1;
15593     }
15594   }
15595   return 0;
15596 }
15597
15598 static int test_mkdir_1_skip (void)
15599 {
15600   const char *str;
15601
15602   str = getenv ("TEST_ONLY");
15603   if (str)
15604     return strstr (str, "mkdir") == NULL;
15605   str = getenv ("SKIP_TEST_MKDIR_1");
15606   if (str && strcmp (str, "1") == 0) return 1;
15607   str = getenv ("SKIP_TEST_MKDIR");
15608   if (str && strcmp (str, "1") == 0) return 1;
15609   return 0;
15610 }
15611
15612 static int test_mkdir_1 (void)
15613 {
15614   if (test_mkdir_1_skip ()) {
15615     printf ("%s skipped (reason: environment variable set)\n", "test_mkdir_1");
15616     return 0;
15617   }
15618
15619   /* InitBasicFS for test_mkdir_1: create ext2 on /dev/sda1 */
15620   {
15621     char device[] = "/dev/sda";
15622     int r;
15623     suppress_error = 0;
15624     r = guestfs_blockdev_setrw (g, device);
15625     if (r == -1)
15626       return -1;
15627   }
15628   {
15629     int r;
15630     suppress_error = 0;
15631     r = guestfs_umount_all (g);
15632     if (r == -1)
15633       return -1;
15634   }
15635   {
15636     int r;
15637     suppress_error = 0;
15638     r = guestfs_lvm_remove_all (g);
15639     if (r == -1)
15640       return -1;
15641   }
15642   {
15643     char device[] = "/dev/sda";
15644     char lines_0[] = ",";
15645     char *lines[] = {
15646       lines_0,
15647       NULL
15648     };
15649     int r;
15650     suppress_error = 0;
15651     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15652     if (r == -1)
15653       return -1;
15654   }
15655   {
15656     char fstype[] = "ext2";
15657     char device[] = "/dev/sda1";
15658     int r;
15659     suppress_error = 0;
15660     r = guestfs_mkfs (g, fstype, device);
15661     if (r == -1)
15662       return -1;
15663   }
15664   {
15665     char device[] = "/dev/sda1";
15666     char mountpoint[] = "/";
15667     int r;
15668     suppress_error = 0;
15669     r = guestfs_mount (g, device, mountpoint);
15670     if (r == -1)
15671       return -1;
15672   }
15673   /* TestLastFail for mkdir (1) */
15674   {
15675     char path[] = "/new/foo/bar";
15676     int r;
15677     suppress_error = 1;
15678     r = guestfs_mkdir (g, path);
15679     if (r != -1)
15680       return -1;
15681   }
15682   return 0;
15683 }
15684
15685 static int test_rm_rf_0_skip (void)
15686 {
15687   const char *str;
15688
15689   str = getenv ("TEST_ONLY");
15690   if (str)
15691     return strstr (str, "rm_rf") == NULL;
15692   str = getenv ("SKIP_TEST_RM_RF_0");
15693   if (str && strcmp (str, "1") == 0) return 1;
15694   str = getenv ("SKIP_TEST_RM_RF");
15695   if (str && strcmp (str, "1") == 0) return 1;
15696   return 0;
15697 }
15698
15699 static int test_rm_rf_0 (void)
15700 {
15701   if (test_rm_rf_0_skip ()) {
15702     printf ("%s skipped (reason: environment variable set)\n", "test_rm_rf_0");
15703     return 0;
15704   }
15705
15706   /* InitBasicFS for test_rm_rf_0: create ext2 on /dev/sda1 */
15707   {
15708     char device[] = "/dev/sda";
15709     int r;
15710     suppress_error = 0;
15711     r = guestfs_blockdev_setrw (g, device);
15712     if (r == -1)
15713       return -1;
15714   }
15715   {
15716     int r;
15717     suppress_error = 0;
15718     r = guestfs_umount_all (g);
15719     if (r == -1)
15720       return -1;
15721   }
15722   {
15723     int r;
15724     suppress_error = 0;
15725     r = guestfs_lvm_remove_all (g);
15726     if (r == -1)
15727       return -1;
15728   }
15729   {
15730     char device[] = "/dev/sda";
15731     char lines_0[] = ",";
15732     char *lines[] = {
15733       lines_0,
15734       NULL
15735     };
15736     int r;
15737     suppress_error = 0;
15738     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15739     if (r == -1)
15740       return -1;
15741   }
15742   {
15743     char fstype[] = "ext2";
15744     char device[] = "/dev/sda1";
15745     int r;
15746     suppress_error = 0;
15747     r = guestfs_mkfs (g, fstype, device);
15748     if (r == -1)
15749       return -1;
15750   }
15751   {
15752     char device[] = "/dev/sda1";
15753     char mountpoint[] = "/";
15754     int r;
15755     suppress_error = 0;
15756     r = guestfs_mount (g, device, mountpoint);
15757     if (r == -1)
15758       return -1;
15759   }
15760   /* TestOutputFalse for rm_rf (0) */
15761   {
15762     char path[] = "/new";
15763     int r;
15764     suppress_error = 0;
15765     r = guestfs_mkdir (g, path);
15766     if (r == -1)
15767       return -1;
15768   }
15769   {
15770     char path[] = "/new/foo";
15771     int r;
15772     suppress_error = 0;
15773     r = guestfs_mkdir (g, path);
15774     if (r == -1)
15775       return -1;
15776   }
15777   {
15778     char path[] = "/new/foo/bar";
15779     int r;
15780     suppress_error = 0;
15781     r = guestfs_touch (g, path);
15782     if (r == -1)
15783       return -1;
15784   }
15785   {
15786     char path[] = "/new";
15787     int r;
15788     suppress_error = 0;
15789     r = guestfs_rm_rf (g, path);
15790     if (r == -1)
15791       return -1;
15792   }
15793   {
15794     char path[] = "/new";
15795     int r;
15796     suppress_error = 0;
15797     r = guestfs_exists (g, path);
15798     if (r == -1)
15799       return -1;
15800     if (r) {
15801       fprintf (stderr, "test_rm_rf_0: expected false, got true\n");
15802       return -1;
15803     }
15804   }
15805   return 0;
15806 }
15807
15808 static int test_rmdir_0_skip (void)
15809 {
15810   const char *str;
15811
15812   str = getenv ("TEST_ONLY");
15813   if (str)
15814     return strstr (str, "rmdir") == NULL;
15815   str = getenv ("SKIP_TEST_RMDIR_0");
15816   if (str && strcmp (str, "1") == 0) return 1;
15817   str = getenv ("SKIP_TEST_RMDIR");
15818   if (str && strcmp (str, "1") == 0) return 1;
15819   return 0;
15820 }
15821
15822 static int test_rmdir_0 (void)
15823 {
15824   if (test_rmdir_0_skip ()) {
15825     printf ("%s skipped (reason: environment variable set)\n", "test_rmdir_0");
15826     return 0;
15827   }
15828
15829   /* InitBasicFS for test_rmdir_0: create ext2 on /dev/sda1 */
15830   {
15831     char device[] = "/dev/sda";
15832     int r;
15833     suppress_error = 0;
15834     r = guestfs_blockdev_setrw (g, device);
15835     if (r == -1)
15836       return -1;
15837   }
15838   {
15839     int r;
15840     suppress_error = 0;
15841     r = guestfs_umount_all (g);
15842     if (r == -1)
15843       return -1;
15844   }
15845   {
15846     int r;
15847     suppress_error = 0;
15848     r = guestfs_lvm_remove_all (g);
15849     if (r == -1)
15850       return -1;
15851   }
15852   {
15853     char device[] = "/dev/sda";
15854     char lines_0[] = ",";
15855     char *lines[] = {
15856       lines_0,
15857       NULL
15858     };
15859     int r;
15860     suppress_error = 0;
15861     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15862     if (r == -1)
15863       return -1;
15864   }
15865   {
15866     char fstype[] = "ext2";
15867     char device[] = "/dev/sda1";
15868     int r;
15869     suppress_error = 0;
15870     r = guestfs_mkfs (g, fstype, device);
15871     if (r == -1)
15872       return -1;
15873   }
15874   {
15875     char device[] = "/dev/sda1";
15876     char mountpoint[] = "/";
15877     int r;
15878     suppress_error = 0;
15879     r = guestfs_mount (g, device, mountpoint);
15880     if (r == -1)
15881       return -1;
15882   }
15883   /* TestRun for rmdir (0) */
15884   {
15885     char path[] = "/new";
15886     int r;
15887     suppress_error = 0;
15888     r = guestfs_mkdir (g, path);
15889     if (r == -1)
15890       return -1;
15891   }
15892   {
15893     char path[] = "/new";
15894     int r;
15895     suppress_error = 0;
15896     r = guestfs_rmdir (g, path);
15897     if (r == -1)
15898       return -1;
15899   }
15900   return 0;
15901 }
15902
15903 static int test_rmdir_1_skip (void)
15904 {
15905   const char *str;
15906
15907   str = getenv ("TEST_ONLY");
15908   if (str)
15909     return strstr (str, "rmdir") == NULL;
15910   str = getenv ("SKIP_TEST_RMDIR_1");
15911   if (str && strcmp (str, "1") == 0) return 1;
15912   str = getenv ("SKIP_TEST_RMDIR");
15913   if (str && strcmp (str, "1") == 0) return 1;
15914   return 0;
15915 }
15916
15917 static int test_rmdir_1 (void)
15918 {
15919   if (test_rmdir_1_skip ()) {
15920     printf ("%s skipped (reason: environment variable set)\n", "test_rmdir_1");
15921     return 0;
15922   }
15923
15924   /* InitBasicFS for test_rmdir_1: create ext2 on /dev/sda1 */
15925   {
15926     char device[] = "/dev/sda";
15927     int r;
15928     suppress_error = 0;
15929     r = guestfs_blockdev_setrw (g, device);
15930     if (r == -1)
15931       return -1;
15932   }
15933   {
15934     int r;
15935     suppress_error = 0;
15936     r = guestfs_umount_all (g);
15937     if (r == -1)
15938       return -1;
15939   }
15940   {
15941     int r;
15942     suppress_error = 0;
15943     r = guestfs_lvm_remove_all (g);
15944     if (r == -1)
15945       return -1;
15946   }
15947   {
15948     char device[] = "/dev/sda";
15949     char lines_0[] = ",";
15950     char *lines[] = {
15951       lines_0,
15952       NULL
15953     };
15954     int r;
15955     suppress_error = 0;
15956     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
15957     if (r == -1)
15958       return -1;
15959   }
15960   {
15961     char fstype[] = "ext2";
15962     char device[] = "/dev/sda1";
15963     int r;
15964     suppress_error = 0;
15965     r = guestfs_mkfs (g, fstype, device);
15966     if (r == -1)
15967       return -1;
15968   }
15969   {
15970     char device[] = "/dev/sda1";
15971     char mountpoint[] = "/";
15972     int r;
15973     suppress_error = 0;
15974     r = guestfs_mount (g, device, mountpoint);
15975     if (r == -1)
15976       return -1;
15977   }
15978   /* TestLastFail for rmdir (1) */
15979   {
15980     char path[] = "/new";
15981     int r;
15982     suppress_error = 1;
15983     r = guestfs_rmdir (g, path);
15984     if (r != -1)
15985       return -1;
15986   }
15987   return 0;
15988 }
15989
15990 static int test_rmdir_2_skip (void)
15991 {
15992   const char *str;
15993
15994   str = getenv ("TEST_ONLY");
15995   if (str)
15996     return strstr (str, "rmdir") == NULL;
15997   str = getenv ("SKIP_TEST_RMDIR_2");
15998   if (str && strcmp (str, "1") == 0) return 1;
15999   str = getenv ("SKIP_TEST_RMDIR");
16000   if (str && strcmp (str, "1") == 0) return 1;
16001   return 0;
16002 }
16003
16004 static int test_rmdir_2 (void)
16005 {
16006   if (test_rmdir_2_skip ()) {
16007     printf ("%s skipped (reason: environment variable set)\n", "test_rmdir_2");
16008     return 0;
16009   }
16010
16011   /* InitBasicFS for test_rmdir_2: create ext2 on /dev/sda1 */
16012   {
16013     char device[] = "/dev/sda";
16014     int r;
16015     suppress_error = 0;
16016     r = guestfs_blockdev_setrw (g, device);
16017     if (r == -1)
16018       return -1;
16019   }
16020   {
16021     int r;
16022     suppress_error = 0;
16023     r = guestfs_umount_all (g);
16024     if (r == -1)
16025       return -1;
16026   }
16027   {
16028     int r;
16029     suppress_error = 0;
16030     r = guestfs_lvm_remove_all (g);
16031     if (r == -1)
16032       return -1;
16033   }
16034   {
16035     char device[] = "/dev/sda";
16036     char lines_0[] = ",";
16037     char *lines[] = {
16038       lines_0,
16039       NULL
16040     };
16041     int r;
16042     suppress_error = 0;
16043     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16044     if (r == -1)
16045       return -1;
16046   }
16047   {
16048     char fstype[] = "ext2";
16049     char device[] = "/dev/sda1";
16050     int r;
16051     suppress_error = 0;
16052     r = guestfs_mkfs (g, fstype, device);
16053     if (r == -1)
16054       return -1;
16055   }
16056   {
16057     char device[] = "/dev/sda1";
16058     char mountpoint[] = "/";
16059     int r;
16060     suppress_error = 0;
16061     r = guestfs_mount (g, device, mountpoint);
16062     if (r == -1)
16063       return -1;
16064   }
16065   /* TestLastFail for rmdir (2) */
16066   {
16067     char path[] = "/new";
16068     int r;
16069     suppress_error = 0;
16070     r = guestfs_touch (g, path);
16071     if (r == -1)
16072       return -1;
16073   }
16074   {
16075     char path[] = "/new";
16076     int r;
16077     suppress_error = 1;
16078     r = guestfs_rmdir (g, path);
16079     if (r != -1)
16080       return -1;
16081   }
16082   return 0;
16083 }
16084
16085 static int test_rm_0_skip (void)
16086 {
16087   const char *str;
16088
16089   str = getenv ("TEST_ONLY");
16090   if (str)
16091     return strstr (str, "rm") == NULL;
16092   str = getenv ("SKIP_TEST_RM_0");
16093   if (str && strcmp (str, "1") == 0) return 1;
16094   str = getenv ("SKIP_TEST_RM");
16095   if (str && strcmp (str, "1") == 0) return 1;
16096   return 0;
16097 }
16098
16099 static int test_rm_0 (void)
16100 {
16101   if (test_rm_0_skip ()) {
16102     printf ("%s skipped (reason: environment variable set)\n", "test_rm_0");
16103     return 0;
16104   }
16105
16106   /* InitBasicFS for test_rm_0: create ext2 on /dev/sda1 */
16107   {
16108     char device[] = "/dev/sda";
16109     int r;
16110     suppress_error = 0;
16111     r = guestfs_blockdev_setrw (g, device);
16112     if (r == -1)
16113       return -1;
16114   }
16115   {
16116     int r;
16117     suppress_error = 0;
16118     r = guestfs_umount_all (g);
16119     if (r == -1)
16120       return -1;
16121   }
16122   {
16123     int r;
16124     suppress_error = 0;
16125     r = guestfs_lvm_remove_all (g);
16126     if (r == -1)
16127       return -1;
16128   }
16129   {
16130     char device[] = "/dev/sda";
16131     char lines_0[] = ",";
16132     char *lines[] = {
16133       lines_0,
16134       NULL
16135     };
16136     int r;
16137     suppress_error = 0;
16138     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16139     if (r == -1)
16140       return -1;
16141   }
16142   {
16143     char fstype[] = "ext2";
16144     char device[] = "/dev/sda1";
16145     int r;
16146     suppress_error = 0;
16147     r = guestfs_mkfs (g, fstype, device);
16148     if (r == -1)
16149       return -1;
16150   }
16151   {
16152     char device[] = "/dev/sda1";
16153     char mountpoint[] = "/";
16154     int r;
16155     suppress_error = 0;
16156     r = guestfs_mount (g, device, mountpoint);
16157     if (r == -1)
16158       return -1;
16159   }
16160   /* TestRun for rm (0) */
16161   {
16162     char path[] = "/new";
16163     int r;
16164     suppress_error = 0;
16165     r = guestfs_touch (g, path);
16166     if (r == -1)
16167       return -1;
16168   }
16169   {
16170     char path[] = "/new";
16171     int r;
16172     suppress_error = 0;
16173     r = guestfs_rm (g, path);
16174     if (r == -1)
16175       return -1;
16176   }
16177   return 0;
16178 }
16179
16180 static int test_rm_1_skip (void)
16181 {
16182   const char *str;
16183
16184   str = getenv ("TEST_ONLY");
16185   if (str)
16186     return strstr (str, "rm") == NULL;
16187   str = getenv ("SKIP_TEST_RM_1");
16188   if (str && strcmp (str, "1") == 0) return 1;
16189   str = getenv ("SKIP_TEST_RM");
16190   if (str && strcmp (str, "1") == 0) return 1;
16191   return 0;
16192 }
16193
16194 static int test_rm_1 (void)
16195 {
16196   if (test_rm_1_skip ()) {
16197     printf ("%s skipped (reason: environment variable set)\n", "test_rm_1");
16198     return 0;
16199   }
16200
16201   /* InitBasicFS for test_rm_1: create ext2 on /dev/sda1 */
16202   {
16203     char device[] = "/dev/sda";
16204     int r;
16205     suppress_error = 0;
16206     r = guestfs_blockdev_setrw (g, device);
16207     if (r == -1)
16208       return -1;
16209   }
16210   {
16211     int r;
16212     suppress_error = 0;
16213     r = guestfs_umount_all (g);
16214     if (r == -1)
16215       return -1;
16216   }
16217   {
16218     int r;
16219     suppress_error = 0;
16220     r = guestfs_lvm_remove_all (g);
16221     if (r == -1)
16222       return -1;
16223   }
16224   {
16225     char device[] = "/dev/sda";
16226     char lines_0[] = ",";
16227     char *lines[] = {
16228       lines_0,
16229       NULL
16230     };
16231     int r;
16232     suppress_error = 0;
16233     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16234     if (r == -1)
16235       return -1;
16236   }
16237   {
16238     char fstype[] = "ext2";
16239     char device[] = "/dev/sda1";
16240     int r;
16241     suppress_error = 0;
16242     r = guestfs_mkfs (g, fstype, device);
16243     if (r == -1)
16244       return -1;
16245   }
16246   {
16247     char device[] = "/dev/sda1";
16248     char mountpoint[] = "/";
16249     int r;
16250     suppress_error = 0;
16251     r = guestfs_mount (g, device, mountpoint);
16252     if (r == -1)
16253       return -1;
16254   }
16255   /* TestLastFail for rm (1) */
16256   {
16257     char path[] = "/new";
16258     int r;
16259     suppress_error = 1;
16260     r = guestfs_rm (g, path);
16261     if (r != -1)
16262       return -1;
16263   }
16264   return 0;
16265 }
16266
16267 static int test_rm_2_skip (void)
16268 {
16269   const char *str;
16270
16271   str = getenv ("TEST_ONLY");
16272   if (str)
16273     return strstr (str, "rm") == NULL;
16274   str = getenv ("SKIP_TEST_RM_2");
16275   if (str && strcmp (str, "1") == 0) return 1;
16276   str = getenv ("SKIP_TEST_RM");
16277   if (str && strcmp (str, "1") == 0) return 1;
16278   return 0;
16279 }
16280
16281 static int test_rm_2 (void)
16282 {
16283   if (test_rm_2_skip ()) {
16284     printf ("%s skipped (reason: environment variable set)\n", "test_rm_2");
16285     return 0;
16286   }
16287
16288   /* InitBasicFS for test_rm_2: create ext2 on /dev/sda1 */
16289   {
16290     char device[] = "/dev/sda";
16291     int r;
16292     suppress_error = 0;
16293     r = guestfs_blockdev_setrw (g, device);
16294     if (r == -1)
16295       return -1;
16296   }
16297   {
16298     int r;
16299     suppress_error = 0;
16300     r = guestfs_umount_all (g);
16301     if (r == -1)
16302       return -1;
16303   }
16304   {
16305     int r;
16306     suppress_error = 0;
16307     r = guestfs_lvm_remove_all (g);
16308     if (r == -1)
16309       return -1;
16310   }
16311   {
16312     char device[] = "/dev/sda";
16313     char lines_0[] = ",";
16314     char *lines[] = {
16315       lines_0,
16316       NULL
16317     };
16318     int r;
16319     suppress_error = 0;
16320     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16321     if (r == -1)
16322       return -1;
16323   }
16324   {
16325     char fstype[] = "ext2";
16326     char device[] = "/dev/sda1";
16327     int r;
16328     suppress_error = 0;
16329     r = guestfs_mkfs (g, fstype, device);
16330     if (r == -1)
16331       return -1;
16332   }
16333   {
16334     char device[] = "/dev/sda1";
16335     char mountpoint[] = "/";
16336     int r;
16337     suppress_error = 0;
16338     r = guestfs_mount (g, device, mountpoint);
16339     if (r == -1)
16340       return -1;
16341   }
16342   /* TestLastFail for rm (2) */
16343   {
16344     char path[] = "/new";
16345     int r;
16346     suppress_error = 0;
16347     r = guestfs_mkdir (g, path);
16348     if (r == -1)
16349       return -1;
16350   }
16351   {
16352     char path[] = "/new";
16353     int r;
16354     suppress_error = 1;
16355     r = guestfs_rm (g, path);
16356     if (r != -1)
16357       return -1;
16358   }
16359   return 0;
16360 }
16361
16362 static int test_read_lines_0_skip (void)
16363 {
16364   const char *str;
16365
16366   str = getenv ("TEST_ONLY");
16367   if (str)
16368     return strstr (str, "read_lines") == NULL;
16369   str = getenv ("SKIP_TEST_READ_LINES_0");
16370   if (str && strcmp (str, "1") == 0) return 1;
16371   str = getenv ("SKIP_TEST_READ_LINES");
16372   if (str && strcmp (str, "1") == 0) return 1;
16373   return 0;
16374 }
16375
16376 static int test_read_lines_0 (void)
16377 {
16378   if (test_read_lines_0_skip ()) {
16379     printf ("%s skipped (reason: environment variable set)\n", "test_read_lines_0");
16380     return 0;
16381   }
16382
16383   /* InitBasicFS for test_read_lines_0: create ext2 on /dev/sda1 */
16384   {
16385     char device[] = "/dev/sda";
16386     int r;
16387     suppress_error = 0;
16388     r = guestfs_blockdev_setrw (g, device);
16389     if (r == -1)
16390       return -1;
16391   }
16392   {
16393     int r;
16394     suppress_error = 0;
16395     r = guestfs_umount_all (g);
16396     if (r == -1)
16397       return -1;
16398   }
16399   {
16400     int r;
16401     suppress_error = 0;
16402     r = guestfs_lvm_remove_all (g);
16403     if (r == -1)
16404       return -1;
16405   }
16406   {
16407     char device[] = "/dev/sda";
16408     char lines_0[] = ",";
16409     char *lines[] = {
16410       lines_0,
16411       NULL
16412     };
16413     int r;
16414     suppress_error = 0;
16415     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16416     if (r == -1)
16417       return -1;
16418   }
16419   {
16420     char fstype[] = "ext2";
16421     char device[] = "/dev/sda1";
16422     int r;
16423     suppress_error = 0;
16424     r = guestfs_mkfs (g, fstype, device);
16425     if (r == -1)
16426       return -1;
16427   }
16428   {
16429     char device[] = "/dev/sda1";
16430     char mountpoint[] = "/";
16431     int r;
16432     suppress_error = 0;
16433     r = guestfs_mount (g, device, mountpoint);
16434     if (r == -1)
16435       return -1;
16436   }
16437   /* TestOutputList for read_lines (0) */
16438   {
16439     char path[] = "/new";
16440     char content[] = "line1\r\nline2\nline3";
16441     int r;
16442     suppress_error = 0;
16443     r = guestfs_write_file (g, path, content, 0);
16444     if (r == -1)
16445       return -1;
16446   }
16447   {
16448     char path[] = "/new";
16449     char **r;
16450     int i;
16451     suppress_error = 0;
16452     r = guestfs_read_lines (g, path);
16453     if (r == NULL)
16454       return -1;
16455     if (!r[0]) {
16456       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
16457       print_strings (r);
16458       return -1;
16459     }
16460     {
16461       char expected[] = "line1";
16462       if (strcmp (r[0], expected) != 0) {
16463         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
16464         return -1;
16465       }
16466     }
16467     if (!r[1]) {
16468       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
16469       print_strings (r);
16470       return -1;
16471     }
16472     {
16473       char expected[] = "line2";
16474       if (strcmp (r[1], expected) != 0) {
16475         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
16476         return -1;
16477       }
16478     }
16479     if (!r[2]) {
16480       fprintf (stderr, "test_read_lines_0: short list returned from command\n");
16481       print_strings (r);
16482       return -1;
16483     }
16484     {
16485       char expected[] = "line3";
16486       if (strcmp (r[2], expected) != 0) {
16487         fprintf (stderr, "test_read_lines_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
16488         return -1;
16489       }
16490     }
16491     if (r[3] != NULL) {
16492       fprintf (stderr, "test_read_lines_0: extra elements returned from command\n");
16493       print_strings (r);
16494       return -1;
16495     }
16496     for (i = 0; r[i] != NULL; ++i)
16497       free (r[i]);
16498     free (r);
16499   }
16500   return 0;
16501 }
16502
16503 static int test_read_lines_1_skip (void)
16504 {
16505   const char *str;
16506
16507   str = getenv ("TEST_ONLY");
16508   if (str)
16509     return strstr (str, "read_lines") == NULL;
16510   str = getenv ("SKIP_TEST_READ_LINES_1");
16511   if (str && strcmp (str, "1") == 0) return 1;
16512   str = getenv ("SKIP_TEST_READ_LINES");
16513   if (str && strcmp (str, "1") == 0) return 1;
16514   return 0;
16515 }
16516
16517 static int test_read_lines_1 (void)
16518 {
16519   if (test_read_lines_1_skip ()) {
16520     printf ("%s skipped (reason: environment variable set)\n", "test_read_lines_1");
16521     return 0;
16522   }
16523
16524   /* InitBasicFS for test_read_lines_1: create ext2 on /dev/sda1 */
16525   {
16526     char device[] = "/dev/sda";
16527     int r;
16528     suppress_error = 0;
16529     r = guestfs_blockdev_setrw (g, device);
16530     if (r == -1)
16531       return -1;
16532   }
16533   {
16534     int r;
16535     suppress_error = 0;
16536     r = guestfs_umount_all (g);
16537     if (r == -1)
16538       return -1;
16539   }
16540   {
16541     int r;
16542     suppress_error = 0;
16543     r = guestfs_lvm_remove_all (g);
16544     if (r == -1)
16545       return -1;
16546   }
16547   {
16548     char device[] = "/dev/sda";
16549     char lines_0[] = ",";
16550     char *lines[] = {
16551       lines_0,
16552       NULL
16553     };
16554     int r;
16555     suppress_error = 0;
16556     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16557     if (r == -1)
16558       return -1;
16559   }
16560   {
16561     char fstype[] = "ext2";
16562     char device[] = "/dev/sda1";
16563     int r;
16564     suppress_error = 0;
16565     r = guestfs_mkfs (g, fstype, device);
16566     if (r == -1)
16567       return -1;
16568   }
16569   {
16570     char device[] = "/dev/sda1";
16571     char mountpoint[] = "/";
16572     int r;
16573     suppress_error = 0;
16574     r = guestfs_mount (g, device, mountpoint);
16575     if (r == -1)
16576       return -1;
16577   }
16578   /* TestOutputList for read_lines (1) */
16579   {
16580     char path[] = "/new";
16581     char content[] = "";
16582     int r;
16583     suppress_error = 0;
16584     r = guestfs_write_file (g, path, content, 0);
16585     if (r == -1)
16586       return -1;
16587   }
16588   {
16589     char path[] = "/new";
16590     char **r;
16591     int i;
16592     suppress_error = 0;
16593     r = guestfs_read_lines (g, path);
16594     if (r == NULL)
16595       return -1;
16596     if (r[0] != NULL) {
16597       fprintf (stderr, "test_read_lines_1: extra elements returned from command\n");
16598       print_strings (r);
16599       return -1;
16600     }
16601     for (i = 0; r[i] != NULL; ++i)
16602       free (r[i]);
16603     free (r);
16604   }
16605   return 0;
16606 }
16607
16608 static int test_lvs_0_skip (void)
16609 {
16610   const char *str;
16611
16612   str = getenv ("TEST_ONLY");
16613   if (str)
16614     return strstr (str, "lvs") == NULL;
16615   str = getenv ("SKIP_TEST_LVS_0");
16616   if (str && strcmp (str, "1") == 0) return 1;
16617   str = getenv ("SKIP_TEST_LVS");
16618   if (str && strcmp (str, "1") == 0) return 1;
16619   return 0;
16620 }
16621
16622 static int test_lvs_0 (void)
16623 {
16624   if (test_lvs_0_skip ()) {
16625     printf ("%s skipped (reason: environment variable set)\n", "test_lvs_0");
16626     return 0;
16627   }
16628
16629   /* InitBasicFSonLVM for test_lvs_0: create ext2 on /dev/VG/LV */
16630   {
16631     char device[] = "/dev/sda";
16632     int r;
16633     suppress_error = 0;
16634     r = guestfs_blockdev_setrw (g, device);
16635     if (r == -1)
16636       return -1;
16637   }
16638   {
16639     int r;
16640     suppress_error = 0;
16641     r = guestfs_umount_all (g);
16642     if (r == -1)
16643       return -1;
16644   }
16645   {
16646     int r;
16647     suppress_error = 0;
16648     r = guestfs_lvm_remove_all (g);
16649     if (r == -1)
16650       return -1;
16651   }
16652   {
16653     char device[] = "/dev/sda";
16654     char lines_0[] = ",";
16655     char *lines[] = {
16656       lines_0,
16657       NULL
16658     };
16659     int r;
16660     suppress_error = 0;
16661     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16662     if (r == -1)
16663       return -1;
16664   }
16665   {
16666     char device[] = "/dev/sda1";
16667     int r;
16668     suppress_error = 0;
16669     r = guestfs_pvcreate (g, device);
16670     if (r == -1)
16671       return -1;
16672   }
16673   {
16674     char volgroup[] = "VG";
16675     char physvols_0[] = "/dev/sda1";
16676     char *physvols[] = {
16677       physvols_0,
16678       NULL
16679     };
16680     int r;
16681     suppress_error = 0;
16682     r = guestfs_vgcreate (g, volgroup, physvols);
16683     if (r == -1)
16684       return -1;
16685   }
16686   {
16687     char logvol[] = "LV";
16688     char volgroup[] = "VG";
16689     int r;
16690     suppress_error = 0;
16691     r = guestfs_lvcreate (g, logvol, volgroup, 8);
16692     if (r == -1)
16693       return -1;
16694   }
16695   {
16696     char fstype[] = "ext2";
16697     char device[] = "/dev/VG/LV";
16698     int r;
16699     suppress_error = 0;
16700     r = guestfs_mkfs (g, fstype, device);
16701     if (r == -1)
16702       return -1;
16703   }
16704   {
16705     char device[] = "/dev/VG/LV";
16706     char mountpoint[] = "/";
16707     int r;
16708     suppress_error = 0;
16709     r = guestfs_mount (g, device, mountpoint);
16710     if (r == -1)
16711       return -1;
16712   }
16713   /* TestOutputList for lvs (0) */
16714   {
16715     char **r;
16716     int i;
16717     suppress_error = 0;
16718     r = guestfs_lvs (g);
16719     if (r == NULL)
16720       return -1;
16721     if (!r[0]) {
16722       fprintf (stderr, "test_lvs_0: short list returned from command\n");
16723       print_strings (r);
16724       return -1;
16725     }
16726     {
16727       char expected[] = "/dev/VG/LV";
16728       if (strcmp (r[0], expected) != 0) {
16729         fprintf (stderr, "test_lvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
16730         return -1;
16731       }
16732     }
16733     if (r[1] != NULL) {
16734       fprintf (stderr, "test_lvs_0: extra elements returned from command\n");
16735       print_strings (r);
16736       return -1;
16737     }
16738     for (i = 0; r[i] != NULL; ++i)
16739       free (r[i]);
16740     free (r);
16741   }
16742   return 0;
16743 }
16744
16745 static int test_lvs_1_skip (void)
16746 {
16747   const char *str;
16748
16749   str = getenv ("TEST_ONLY");
16750   if (str)
16751     return strstr (str, "lvs") == NULL;
16752   str = getenv ("SKIP_TEST_LVS_1");
16753   if (str && strcmp (str, "1") == 0) return 1;
16754   str = getenv ("SKIP_TEST_LVS");
16755   if (str && strcmp (str, "1") == 0) return 1;
16756   return 0;
16757 }
16758
16759 static int test_lvs_1 (void)
16760 {
16761   if (test_lvs_1_skip ()) {
16762     printf ("%s skipped (reason: environment variable set)\n", "test_lvs_1");
16763     return 0;
16764   }
16765
16766   /* InitNone|InitEmpty for test_lvs_1 */
16767   {
16768     char device[] = "/dev/sda";
16769     int r;
16770     suppress_error = 0;
16771     r = guestfs_blockdev_setrw (g, device);
16772     if (r == -1)
16773       return -1;
16774   }
16775   {
16776     int r;
16777     suppress_error = 0;
16778     r = guestfs_umount_all (g);
16779     if (r == -1)
16780       return -1;
16781   }
16782   {
16783     int r;
16784     suppress_error = 0;
16785     r = guestfs_lvm_remove_all (g);
16786     if (r == -1)
16787       return -1;
16788   }
16789   /* TestOutputList for lvs (1) */
16790   {
16791     char device[] = "/dev/sda";
16792     char lines_0[] = ",10";
16793     char lines_1[] = ",20";
16794     char lines_2[] = ",";
16795     char *lines[] = {
16796       lines_0,
16797       lines_1,
16798       lines_2,
16799       NULL
16800     };
16801     int r;
16802     suppress_error = 0;
16803     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16804     if (r == -1)
16805       return -1;
16806   }
16807   {
16808     char device[] = "/dev/sda1";
16809     int r;
16810     suppress_error = 0;
16811     r = guestfs_pvcreate (g, device);
16812     if (r == -1)
16813       return -1;
16814   }
16815   {
16816     char device[] = "/dev/sda2";
16817     int r;
16818     suppress_error = 0;
16819     r = guestfs_pvcreate (g, device);
16820     if (r == -1)
16821       return -1;
16822   }
16823   {
16824     char device[] = "/dev/sda3";
16825     int r;
16826     suppress_error = 0;
16827     r = guestfs_pvcreate (g, device);
16828     if (r == -1)
16829       return -1;
16830   }
16831   {
16832     char volgroup[] = "VG1";
16833     char physvols_0[] = "/dev/sda1";
16834     char physvols_1[] = "/dev/sda2";
16835     char *physvols[] = {
16836       physvols_0,
16837       physvols_1,
16838       NULL
16839     };
16840     int r;
16841     suppress_error = 0;
16842     r = guestfs_vgcreate (g, volgroup, physvols);
16843     if (r == -1)
16844       return -1;
16845   }
16846   {
16847     char volgroup[] = "VG2";
16848     char physvols_0[] = "/dev/sda3";
16849     char *physvols[] = {
16850       physvols_0,
16851       NULL
16852     };
16853     int r;
16854     suppress_error = 0;
16855     r = guestfs_vgcreate (g, volgroup, physvols);
16856     if (r == -1)
16857       return -1;
16858   }
16859   {
16860     char logvol[] = "LV1";
16861     char volgroup[] = "VG1";
16862     int r;
16863     suppress_error = 0;
16864     r = guestfs_lvcreate (g, logvol, volgroup, 50);
16865     if (r == -1)
16866       return -1;
16867   }
16868   {
16869     char logvol[] = "LV2";
16870     char volgroup[] = "VG1";
16871     int r;
16872     suppress_error = 0;
16873     r = guestfs_lvcreate (g, logvol, volgroup, 50);
16874     if (r == -1)
16875       return -1;
16876   }
16877   {
16878     char logvol[] = "LV3";
16879     char volgroup[] = "VG2";
16880     int r;
16881     suppress_error = 0;
16882     r = guestfs_lvcreate (g, logvol, volgroup, 50);
16883     if (r == -1)
16884       return -1;
16885   }
16886   {
16887     char **r;
16888     int i;
16889     suppress_error = 0;
16890     r = guestfs_lvs (g);
16891     if (r == NULL)
16892       return -1;
16893     if (!r[0]) {
16894       fprintf (stderr, "test_lvs_1: short list returned from command\n");
16895       print_strings (r);
16896       return -1;
16897     }
16898     {
16899       char expected[] = "/dev/VG1/LV1";
16900       if (strcmp (r[0], expected) != 0) {
16901         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
16902         return -1;
16903       }
16904     }
16905     if (!r[1]) {
16906       fprintf (stderr, "test_lvs_1: short list returned from command\n");
16907       print_strings (r);
16908       return -1;
16909     }
16910     {
16911       char expected[] = "/dev/VG1/LV2";
16912       if (strcmp (r[1], expected) != 0) {
16913         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
16914         return -1;
16915       }
16916     }
16917     if (!r[2]) {
16918       fprintf (stderr, "test_lvs_1: short list returned from command\n");
16919       print_strings (r);
16920       return -1;
16921     }
16922     {
16923       char expected[] = "/dev/VG2/LV3";
16924       if (strcmp (r[2], expected) != 0) {
16925         fprintf (stderr, "test_lvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
16926         return -1;
16927       }
16928     }
16929     if (r[3] != NULL) {
16930       fprintf (stderr, "test_lvs_1: extra elements returned from command\n");
16931       print_strings (r);
16932       return -1;
16933     }
16934     for (i = 0; r[i] != NULL; ++i)
16935       free (r[i]);
16936     free (r);
16937   }
16938   return 0;
16939 }
16940
16941 static int test_vgs_0_skip (void)
16942 {
16943   const char *str;
16944
16945   str = getenv ("TEST_ONLY");
16946   if (str)
16947     return strstr (str, "vgs") == NULL;
16948   str = getenv ("SKIP_TEST_VGS_0");
16949   if (str && strcmp (str, "1") == 0) return 1;
16950   str = getenv ("SKIP_TEST_VGS");
16951   if (str && strcmp (str, "1") == 0) return 1;
16952   return 0;
16953 }
16954
16955 static int test_vgs_0 (void)
16956 {
16957   if (test_vgs_0_skip ()) {
16958     printf ("%s skipped (reason: environment variable set)\n", "test_vgs_0");
16959     return 0;
16960   }
16961
16962   /* InitBasicFSonLVM for test_vgs_0: create ext2 on /dev/VG/LV */
16963   {
16964     char device[] = "/dev/sda";
16965     int r;
16966     suppress_error = 0;
16967     r = guestfs_blockdev_setrw (g, device);
16968     if (r == -1)
16969       return -1;
16970   }
16971   {
16972     int r;
16973     suppress_error = 0;
16974     r = guestfs_umount_all (g);
16975     if (r == -1)
16976       return -1;
16977   }
16978   {
16979     int r;
16980     suppress_error = 0;
16981     r = guestfs_lvm_remove_all (g);
16982     if (r == -1)
16983       return -1;
16984   }
16985   {
16986     char device[] = "/dev/sda";
16987     char lines_0[] = ",";
16988     char *lines[] = {
16989       lines_0,
16990       NULL
16991     };
16992     int r;
16993     suppress_error = 0;
16994     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
16995     if (r == -1)
16996       return -1;
16997   }
16998   {
16999     char device[] = "/dev/sda1";
17000     int r;
17001     suppress_error = 0;
17002     r = guestfs_pvcreate (g, device);
17003     if (r == -1)
17004       return -1;
17005   }
17006   {
17007     char volgroup[] = "VG";
17008     char physvols_0[] = "/dev/sda1";
17009     char *physvols[] = {
17010       physvols_0,
17011       NULL
17012     };
17013     int r;
17014     suppress_error = 0;
17015     r = guestfs_vgcreate (g, volgroup, physvols);
17016     if (r == -1)
17017       return -1;
17018   }
17019   {
17020     char logvol[] = "LV";
17021     char volgroup[] = "VG";
17022     int r;
17023     suppress_error = 0;
17024     r = guestfs_lvcreate (g, logvol, volgroup, 8);
17025     if (r == -1)
17026       return -1;
17027   }
17028   {
17029     char fstype[] = "ext2";
17030     char device[] = "/dev/VG/LV";
17031     int r;
17032     suppress_error = 0;
17033     r = guestfs_mkfs (g, fstype, device);
17034     if (r == -1)
17035       return -1;
17036   }
17037   {
17038     char device[] = "/dev/VG/LV";
17039     char mountpoint[] = "/";
17040     int r;
17041     suppress_error = 0;
17042     r = guestfs_mount (g, device, mountpoint);
17043     if (r == -1)
17044       return -1;
17045   }
17046   /* TestOutputList for vgs (0) */
17047   {
17048     char **r;
17049     int i;
17050     suppress_error = 0;
17051     r = guestfs_vgs (g);
17052     if (r == NULL)
17053       return -1;
17054     if (!r[0]) {
17055       fprintf (stderr, "test_vgs_0: short list returned from command\n");
17056       print_strings (r);
17057       return -1;
17058     }
17059     {
17060       char expected[] = "VG";
17061       if (strcmp (r[0], expected) != 0) {
17062         fprintf (stderr, "test_vgs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17063         return -1;
17064       }
17065     }
17066     if (r[1] != NULL) {
17067       fprintf (stderr, "test_vgs_0: extra elements returned from command\n");
17068       print_strings (r);
17069       return -1;
17070     }
17071     for (i = 0; r[i] != NULL; ++i)
17072       free (r[i]);
17073     free (r);
17074   }
17075   return 0;
17076 }
17077
17078 static int test_vgs_1_skip (void)
17079 {
17080   const char *str;
17081
17082   str = getenv ("TEST_ONLY");
17083   if (str)
17084     return strstr (str, "vgs") == NULL;
17085   str = getenv ("SKIP_TEST_VGS_1");
17086   if (str && strcmp (str, "1") == 0) return 1;
17087   str = getenv ("SKIP_TEST_VGS");
17088   if (str && strcmp (str, "1") == 0) return 1;
17089   return 0;
17090 }
17091
17092 static int test_vgs_1 (void)
17093 {
17094   if (test_vgs_1_skip ()) {
17095     printf ("%s skipped (reason: environment variable set)\n", "test_vgs_1");
17096     return 0;
17097   }
17098
17099   /* InitNone|InitEmpty for test_vgs_1 */
17100   {
17101     char device[] = "/dev/sda";
17102     int r;
17103     suppress_error = 0;
17104     r = guestfs_blockdev_setrw (g, device);
17105     if (r == -1)
17106       return -1;
17107   }
17108   {
17109     int r;
17110     suppress_error = 0;
17111     r = guestfs_umount_all (g);
17112     if (r == -1)
17113       return -1;
17114   }
17115   {
17116     int r;
17117     suppress_error = 0;
17118     r = guestfs_lvm_remove_all (g);
17119     if (r == -1)
17120       return -1;
17121   }
17122   /* TestOutputList for vgs (1) */
17123   {
17124     char device[] = "/dev/sda";
17125     char lines_0[] = ",10";
17126     char lines_1[] = ",20";
17127     char lines_2[] = ",";
17128     char *lines[] = {
17129       lines_0,
17130       lines_1,
17131       lines_2,
17132       NULL
17133     };
17134     int r;
17135     suppress_error = 0;
17136     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17137     if (r == -1)
17138       return -1;
17139   }
17140   {
17141     char device[] = "/dev/sda1";
17142     int r;
17143     suppress_error = 0;
17144     r = guestfs_pvcreate (g, device);
17145     if (r == -1)
17146       return -1;
17147   }
17148   {
17149     char device[] = "/dev/sda2";
17150     int r;
17151     suppress_error = 0;
17152     r = guestfs_pvcreate (g, device);
17153     if (r == -1)
17154       return -1;
17155   }
17156   {
17157     char device[] = "/dev/sda3";
17158     int r;
17159     suppress_error = 0;
17160     r = guestfs_pvcreate (g, device);
17161     if (r == -1)
17162       return -1;
17163   }
17164   {
17165     char volgroup[] = "VG1";
17166     char physvols_0[] = "/dev/sda1";
17167     char physvols_1[] = "/dev/sda2";
17168     char *physvols[] = {
17169       physvols_0,
17170       physvols_1,
17171       NULL
17172     };
17173     int r;
17174     suppress_error = 0;
17175     r = guestfs_vgcreate (g, volgroup, physvols);
17176     if (r == -1)
17177       return -1;
17178   }
17179   {
17180     char volgroup[] = "VG2";
17181     char physvols_0[] = "/dev/sda3";
17182     char *physvols[] = {
17183       physvols_0,
17184       NULL
17185     };
17186     int r;
17187     suppress_error = 0;
17188     r = guestfs_vgcreate (g, volgroup, physvols);
17189     if (r == -1)
17190       return -1;
17191   }
17192   {
17193     char **r;
17194     int i;
17195     suppress_error = 0;
17196     r = guestfs_vgs (g);
17197     if (r == NULL)
17198       return -1;
17199     if (!r[0]) {
17200       fprintf (stderr, "test_vgs_1: short list returned from command\n");
17201       print_strings (r);
17202       return -1;
17203     }
17204     {
17205       char expected[] = "VG1";
17206       if (strcmp (r[0], expected) != 0) {
17207         fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17208         return -1;
17209       }
17210     }
17211     if (!r[1]) {
17212       fprintf (stderr, "test_vgs_1: short list returned from command\n");
17213       print_strings (r);
17214       return -1;
17215     }
17216     {
17217       char expected[] = "VG2";
17218       if (strcmp (r[1], expected) != 0) {
17219         fprintf (stderr, "test_vgs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
17220         return -1;
17221       }
17222     }
17223     if (r[2] != NULL) {
17224       fprintf (stderr, "test_vgs_1: extra elements returned from command\n");
17225       print_strings (r);
17226       return -1;
17227     }
17228     for (i = 0; r[i] != NULL; ++i)
17229       free (r[i]);
17230     free (r);
17231   }
17232   return 0;
17233 }
17234
17235 static int test_pvs_0_skip (void)
17236 {
17237   const char *str;
17238
17239   str = getenv ("TEST_ONLY");
17240   if (str)
17241     return strstr (str, "pvs") == NULL;
17242   str = getenv ("SKIP_TEST_PVS_0");
17243   if (str && strcmp (str, "1") == 0) return 1;
17244   str = getenv ("SKIP_TEST_PVS");
17245   if (str && strcmp (str, "1") == 0) return 1;
17246   return 0;
17247 }
17248
17249 static int test_pvs_0 (void)
17250 {
17251   if (test_pvs_0_skip ()) {
17252     printf ("%s skipped (reason: environment variable set)\n", "test_pvs_0");
17253     return 0;
17254   }
17255
17256   /* InitBasicFSonLVM for test_pvs_0: create ext2 on /dev/VG/LV */
17257   {
17258     char device[] = "/dev/sda";
17259     int r;
17260     suppress_error = 0;
17261     r = guestfs_blockdev_setrw (g, device);
17262     if (r == -1)
17263       return -1;
17264   }
17265   {
17266     int r;
17267     suppress_error = 0;
17268     r = guestfs_umount_all (g);
17269     if (r == -1)
17270       return -1;
17271   }
17272   {
17273     int r;
17274     suppress_error = 0;
17275     r = guestfs_lvm_remove_all (g);
17276     if (r == -1)
17277       return -1;
17278   }
17279   {
17280     char device[] = "/dev/sda";
17281     char lines_0[] = ",";
17282     char *lines[] = {
17283       lines_0,
17284       NULL
17285     };
17286     int r;
17287     suppress_error = 0;
17288     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17289     if (r == -1)
17290       return -1;
17291   }
17292   {
17293     char device[] = "/dev/sda1";
17294     int r;
17295     suppress_error = 0;
17296     r = guestfs_pvcreate (g, device);
17297     if (r == -1)
17298       return -1;
17299   }
17300   {
17301     char volgroup[] = "VG";
17302     char physvols_0[] = "/dev/sda1";
17303     char *physvols[] = {
17304       physvols_0,
17305       NULL
17306     };
17307     int r;
17308     suppress_error = 0;
17309     r = guestfs_vgcreate (g, volgroup, physvols);
17310     if (r == -1)
17311       return -1;
17312   }
17313   {
17314     char logvol[] = "LV";
17315     char volgroup[] = "VG";
17316     int r;
17317     suppress_error = 0;
17318     r = guestfs_lvcreate (g, logvol, volgroup, 8);
17319     if (r == -1)
17320       return -1;
17321   }
17322   {
17323     char fstype[] = "ext2";
17324     char device[] = "/dev/VG/LV";
17325     int r;
17326     suppress_error = 0;
17327     r = guestfs_mkfs (g, fstype, device);
17328     if (r == -1)
17329       return -1;
17330   }
17331   {
17332     char device[] = "/dev/VG/LV";
17333     char mountpoint[] = "/";
17334     int r;
17335     suppress_error = 0;
17336     r = guestfs_mount (g, device, mountpoint);
17337     if (r == -1)
17338       return -1;
17339   }
17340   /* TestOutputListOfDevices for pvs (0) */
17341   {
17342     char **r;
17343     int i;
17344     suppress_error = 0;
17345     r = guestfs_pvs (g);
17346     if (r == NULL)
17347       return -1;
17348     if (!r[0]) {
17349       fprintf (stderr, "test_pvs_0: short list returned from command\n");
17350       print_strings (r);
17351       return -1;
17352     }
17353     {
17354       char expected[] = "/dev/sda1";
17355       r[0][5] = 's';
17356       if (strcmp (r[0], expected) != 0) {
17357         fprintf (stderr, "test_pvs_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17358         return -1;
17359       }
17360     }
17361     if (r[1] != NULL) {
17362       fprintf (stderr, "test_pvs_0: extra elements returned from command\n");
17363       print_strings (r);
17364       return -1;
17365     }
17366     for (i = 0; r[i] != NULL; ++i)
17367       free (r[i]);
17368     free (r);
17369   }
17370   return 0;
17371 }
17372
17373 static int test_pvs_1_skip (void)
17374 {
17375   const char *str;
17376
17377   str = getenv ("TEST_ONLY");
17378   if (str)
17379     return strstr (str, "pvs") == NULL;
17380   str = getenv ("SKIP_TEST_PVS_1");
17381   if (str && strcmp (str, "1") == 0) return 1;
17382   str = getenv ("SKIP_TEST_PVS");
17383   if (str && strcmp (str, "1") == 0) return 1;
17384   return 0;
17385 }
17386
17387 static int test_pvs_1 (void)
17388 {
17389   if (test_pvs_1_skip ()) {
17390     printf ("%s skipped (reason: environment variable set)\n", "test_pvs_1");
17391     return 0;
17392   }
17393
17394   /* InitNone|InitEmpty for test_pvs_1 */
17395   {
17396     char device[] = "/dev/sda";
17397     int r;
17398     suppress_error = 0;
17399     r = guestfs_blockdev_setrw (g, device);
17400     if (r == -1)
17401       return -1;
17402   }
17403   {
17404     int r;
17405     suppress_error = 0;
17406     r = guestfs_umount_all (g);
17407     if (r == -1)
17408       return -1;
17409   }
17410   {
17411     int r;
17412     suppress_error = 0;
17413     r = guestfs_lvm_remove_all (g);
17414     if (r == -1)
17415       return -1;
17416   }
17417   /* TestOutputListOfDevices for pvs (1) */
17418   {
17419     char device[] = "/dev/sda";
17420     char lines_0[] = ",10";
17421     char lines_1[] = ",20";
17422     char lines_2[] = ",";
17423     char *lines[] = {
17424       lines_0,
17425       lines_1,
17426       lines_2,
17427       NULL
17428     };
17429     int r;
17430     suppress_error = 0;
17431     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17432     if (r == -1)
17433       return -1;
17434   }
17435   {
17436     char device[] = "/dev/sda1";
17437     int r;
17438     suppress_error = 0;
17439     r = guestfs_pvcreate (g, device);
17440     if (r == -1)
17441       return -1;
17442   }
17443   {
17444     char device[] = "/dev/sda2";
17445     int r;
17446     suppress_error = 0;
17447     r = guestfs_pvcreate (g, device);
17448     if (r == -1)
17449       return -1;
17450   }
17451   {
17452     char device[] = "/dev/sda3";
17453     int r;
17454     suppress_error = 0;
17455     r = guestfs_pvcreate (g, device);
17456     if (r == -1)
17457       return -1;
17458   }
17459   {
17460     char **r;
17461     int i;
17462     suppress_error = 0;
17463     r = guestfs_pvs (g);
17464     if (r == NULL)
17465       return -1;
17466     if (!r[0]) {
17467       fprintf (stderr, "test_pvs_1: short list returned from command\n");
17468       print_strings (r);
17469       return -1;
17470     }
17471     {
17472       char expected[] = "/dev/sda1";
17473       r[0][5] = 's';
17474       if (strcmp (r[0], expected) != 0) {
17475         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17476         return -1;
17477       }
17478     }
17479     if (!r[1]) {
17480       fprintf (stderr, "test_pvs_1: short list returned from command\n");
17481       print_strings (r);
17482       return -1;
17483     }
17484     {
17485       char expected[] = "/dev/sda2";
17486       r[1][5] = 's';
17487       if (strcmp (r[1], expected) != 0) {
17488         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
17489         return -1;
17490       }
17491     }
17492     if (!r[2]) {
17493       fprintf (stderr, "test_pvs_1: short list returned from command\n");
17494       print_strings (r);
17495       return -1;
17496     }
17497     {
17498       char expected[] = "/dev/sda3";
17499       r[2][5] = 's';
17500       if (strcmp (r[2], expected) != 0) {
17501         fprintf (stderr, "test_pvs_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
17502         return -1;
17503       }
17504     }
17505     if (r[3] != NULL) {
17506       fprintf (stderr, "test_pvs_1: extra elements returned from command\n");
17507       print_strings (r);
17508       return -1;
17509     }
17510     for (i = 0; r[i] != NULL; ++i)
17511       free (r[i]);
17512     free (r);
17513   }
17514   return 0;
17515 }
17516
17517 static int test_list_partitions_0_skip (void)
17518 {
17519   const char *str;
17520
17521   str = getenv ("TEST_ONLY");
17522   if (str)
17523     return strstr (str, "list_partitions") == NULL;
17524   str = getenv ("SKIP_TEST_LIST_PARTITIONS_0");
17525   if (str && strcmp (str, "1") == 0) return 1;
17526   str = getenv ("SKIP_TEST_LIST_PARTITIONS");
17527   if (str && strcmp (str, "1") == 0) return 1;
17528   return 0;
17529 }
17530
17531 static int test_list_partitions_0 (void)
17532 {
17533   if (test_list_partitions_0_skip ()) {
17534     printf ("%s skipped (reason: environment variable set)\n", "test_list_partitions_0");
17535     return 0;
17536   }
17537
17538   /* InitBasicFS for test_list_partitions_0: create ext2 on /dev/sda1 */
17539   {
17540     char device[] = "/dev/sda";
17541     int r;
17542     suppress_error = 0;
17543     r = guestfs_blockdev_setrw (g, device);
17544     if (r == -1)
17545       return -1;
17546   }
17547   {
17548     int r;
17549     suppress_error = 0;
17550     r = guestfs_umount_all (g);
17551     if (r == -1)
17552       return -1;
17553   }
17554   {
17555     int r;
17556     suppress_error = 0;
17557     r = guestfs_lvm_remove_all (g);
17558     if (r == -1)
17559       return -1;
17560   }
17561   {
17562     char device[] = "/dev/sda";
17563     char lines_0[] = ",";
17564     char *lines[] = {
17565       lines_0,
17566       NULL
17567     };
17568     int r;
17569     suppress_error = 0;
17570     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17571     if (r == -1)
17572       return -1;
17573   }
17574   {
17575     char fstype[] = "ext2";
17576     char device[] = "/dev/sda1";
17577     int r;
17578     suppress_error = 0;
17579     r = guestfs_mkfs (g, fstype, device);
17580     if (r == -1)
17581       return -1;
17582   }
17583   {
17584     char device[] = "/dev/sda1";
17585     char mountpoint[] = "/";
17586     int r;
17587     suppress_error = 0;
17588     r = guestfs_mount (g, device, mountpoint);
17589     if (r == -1)
17590       return -1;
17591   }
17592   /* TestOutputListOfDevices for list_partitions (0) */
17593   {
17594     char **r;
17595     int i;
17596     suppress_error = 0;
17597     r = guestfs_list_partitions (g);
17598     if (r == NULL)
17599       return -1;
17600     if (!r[0]) {
17601       fprintf (stderr, "test_list_partitions_0: short list returned from command\n");
17602       print_strings (r);
17603       return -1;
17604     }
17605     {
17606       char expected[] = "/dev/sda1";
17607       r[0][5] = 's';
17608       if (strcmp (r[0], expected) != 0) {
17609         fprintf (stderr, "test_list_partitions_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17610         return -1;
17611       }
17612     }
17613     if (r[1] != NULL) {
17614       fprintf (stderr, "test_list_partitions_0: extra elements returned from command\n");
17615       print_strings (r);
17616       return -1;
17617     }
17618     for (i = 0; r[i] != NULL; ++i)
17619       free (r[i]);
17620     free (r);
17621   }
17622   return 0;
17623 }
17624
17625 static int test_list_partitions_1_skip (void)
17626 {
17627   const char *str;
17628
17629   str = getenv ("TEST_ONLY");
17630   if (str)
17631     return strstr (str, "list_partitions") == NULL;
17632   str = getenv ("SKIP_TEST_LIST_PARTITIONS_1");
17633   if (str && strcmp (str, "1") == 0) return 1;
17634   str = getenv ("SKIP_TEST_LIST_PARTITIONS");
17635   if (str && strcmp (str, "1") == 0) return 1;
17636   return 0;
17637 }
17638
17639 static int test_list_partitions_1 (void)
17640 {
17641   if (test_list_partitions_1_skip ()) {
17642     printf ("%s skipped (reason: environment variable set)\n", "test_list_partitions_1");
17643     return 0;
17644   }
17645
17646   /* InitNone|InitEmpty for test_list_partitions_1 */
17647   {
17648     char device[] = "/dev/sda";
17649     int r;
17650     suppress_error = 0;
17651     r = guestfs_blockdev_setrw (g, device);
17652     if (r == -1)
17653       return -1;
17654   }
17655   {
17656     int r;
17657     suppress_error = 0;
17658     r = guestfs_umount_all (g);
17659     if (r == -1)
17660       return -1;
17661   }
17662   {
17663     int r;
17664     suppress_error = 0;
17665     r = guestfs_lvm_remove_all (g);
17666     if (r == -1)
17667       return -1;
17668   }
17669   /* TestOutputListOfDevices for list_partitions (1) */
17670   {
17671     char device[] = "/dev/sda";
17672     char lines_0[] = ",10";
17673     char lines_1[] = ",20";
17674     char lines_2[] = ",";
17675     char *lines[] = {
17676       lines_0,
17677       lines_1,
17678       lines_2,
17679       NULL
17680     };
17681     int r;
17682     suppress_error = 0;
17683     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17684     if (r == -1)
17685       return -1;
17686   }
17687   {
17688     char **r;
17689     int i;
17690     suppress_error = 0;
17691     r = guestfs_list_partitions (g);
17692     if (r == NULL)
17693       return -1;
17694     if (!r[0]) {
17695       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
17696       print_strings (r);
17697       return -1;
17698     }
17699     {
17700       char expected[] = "/dev/sda1";
17701       r[0][5] = 's';
17702       if (strcmp (r[0], expected) != 0) {
17703         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17704         return -1;
17705       }
17706     }
17707     if (!r[1]) {
17708       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
17709       print_strings (r);
17710       return -1;
17711     }
17712     {
17713       char expected[] = "/dev/sda2";
17714       r[1][5] = 's';
17715       if (strcmp (r[1], expected) != 0) {
17716         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[1]);
17717         return -1;
17718       }
17719     }
17720     if (!r[2]) {
17721       fprintf (stderr, "test_list_partitions_1: short list returned from command\n");
17722       print_strings (r);
17723       return -1;
17724     }
17725     {
17726       char expected[] = "/dev/sda3";
17727       r[2][5] = 's';
17728       if (strcmp (r[2], expected) != 0) {
17729         fprintf (stderr, "test_list_partitions_1: expected \"%s\" but got \"%s\"\n", expected, r[2]);
17730         return -1;
17731       }
17732     }
17733     if (r[3] != NULL) {
17734       fprintf (stderr, "test_list_partitions_1: extra elements returned from command\n");
17735       print_strings (r);
17736       return -1;
17737     }
17738     for (i = 0; r[i] != NULL; ++i)
17739       free (r[i]);
17740     free (r);
17741   }
17742   return 0;
17743 }
17744
17745 static int test_list_devices_0_skip (void)
17746 {
17747   const char *str;
17748
17749   str = getenv ("TEST_ONLY");
17750   if (str)
17751     return strstr (str, "list_devices") == NULL;
17752   str = getenv ("SKIP_TEST_LIST_DEVICES_0");
17753   if (str && strcmp (str, "1") == 0) return 1;
17754   str = getenv ("SKIP_TEST_LIST_DEVICES");
17755   if (str && strcmp (str, "1") == 0) return 1;
17756   return 0;
17757 }
17758
17759 static int test_list_devices_0 (void)
17760 {
17761   if (test_list_devices_0_skip ()) {
17762     printf ("%s skipped (reason: environment variable set)\n", "test_list_devices_0");
17763     return 0;
17764   }
17765
17766   /* InitNone|InitEmpty for test_list_devices_0 */
17767   {
17768     char device[] = "/dev/sda";
17769     int r;
17770     suppress_error = 0;
17771     r = guestfs_blockdev_setrw (g, device);
17772     if (r == -1)
17773       return -1;
17774   }
17775   {
17776     int r;
17777     suppress_error = 0;
17778     r = guestfs_umount_all (g);
17779     if (r == -1)
17780       return -1;
17781   }
17782   {
17783     int r;
17784     suppress_error = 0;
17785     r = guestfs_lvm_remove_all (g);
17786     if (r == -1)
17787       return -1;
17788   }
17789   /* TestOutputListOfDevices for list_devices (0) */
17790   {
17791     char **r;
17792     int i;
17793     suppress_error = 0;
17794     r = guestfs_list_devices (g);
17795     if (r == NULL)
17796       return -1;
17797     if (!r[0]) {
17798       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
17799       print_strings (r);
17800       return -1;
17801     }
17802     {
17803       char expected[] = "/dev/sda";
17804       r[0][5] = 's';
17805       if (strcmp (r[0], expected) != 0) {
17806         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17807         return -1;
17808       }
17809     }
17810     if (!r[1]) {
17811       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
17812       print_strings (r);
17813       return -1;
17814     }
17815     {
17816       char expected[] = "/dev/sdb";
17817       r[1][5] = 's';
17818       if (strcmp (r[1], expected) != 0) {
17819         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
17820         return -1;
17821       }
17822     }
17823     if (!r[2]) {
17824       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
17825       print_strings (r);
17826       return -1;
17827     }
17828     {
17829       char expected[] = "/dev/sdc";
17830       r[2][5] = 's';
17831       if (strcmp (r[2], expected) != 0) {
17832         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
17833         return -1;
17834       }
17835     }
17836     if (!r[3]) {
17837       fprintf (stderr, "test_list_devices_0: short list returned from command\n");
17838       print_strings (r);
17839       return -1;
17840     }
17841     {
17842       char expected[] = "/dev/sdd";
17843       r[3][5] = 's';
17844       if (strcmp (r[3], expected) != 0) {
17845         fprintf (stderr, "test_list_devices_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
17846         return -1;
17847       }
17848     }
17849     if (r[4] != NULL) {
17850       fprintf (stderr, "test_list_devices_0: extra elements returned from command\n");
17851       print_strings (r);
17852       return -1;
17853     }
17854     for (i = 0; r[i] != NULL; ++i)
17855       free (r[i]);
17856     free (r);
17857   }
17858   return 0;
17859 }
17860
17861 static int test_ls_0_skip (void)
17862 {
17863   const char *str;
17864
17865   str = getenv ("TEST_ONLY");
17866   if (str)
17867     return strstr (str, "ls") == NULL;
17868   str = getenv ("SKIP_TEST_LS_0");
17869   if (str && strcmp (str, "1") == 0) return 1;
17870   str = getenv ("SKIP_TEST_LS");
17871   if (str && strcmp (str, "1") == 0) return 1;
17872   return 0;
17873 }
17874
17875 static int test_ls_0 (void)
17876 {
17877   if (test_ls_0_skip ()) {
17878     printf ("%s skipped (reason: environment variable set)\n", "test_ls_0");
17879     return 0;
17880   }
17881
17882   /* InitBasicFS for test_ls_0: create ext2 on /dev/sda1 */
17883   {
17884     char device[] = "/dev/sda";
17885     int r;
17886     suppress_error = 0;
17887     r = guestfs_blockdev_setrw (g, device);
17888     if (r == -1)
17889       return -1;
17890   }
17891   {
17892     int r;
17893     suppress_error = 0;
17894     r = guestfs_umount_all (g);
17895     if (r == -1)
17896       return -1;
17897   }
17898   {
17899     int r;
17900     suppress_error = 0;
17901     r = guestfs_lvm_remove_all (g);
17902     if (r == -1)
17903       return -1;
17904   }
17905   {
17906     char device[] = "/dev/sda";
17907     char lines_0[] = ",";
17908     char *lines[] = {
17909       lines_0,
17910       NULL
17911     };
17912     int r;
17913     suppress_error = 0;
17914     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
17915     if (r == -1)
17916       return -1;
17917   }
17918   {
17919     char fstype[] = "ext2";
17920     char device[] = "/dev/sda1";
17921     int r;
17922     suppress_error = 0;
17923     r = guestfs_mkfs (g, fstype, device);
17924     if (r == -1)
17925       return -1;
17926   }
17927   {
17928     char device[] = "/dev/sda1";
17929     char mountpoint[] = "/";
17930     int r;
17931     suppress_error = 0;
17932     r = guestfs_mount (g, device, mountpoint);
17933     if (r == -1)
17934       return -1;
17935   }
17936   /* TestOutputList for ls (0) */
17937   {
17938     char path[] = "/new";
17939     int r;
17940     suppress_error = 0;
17941     r = guestfs_touch (g, path);
17942     if (r == -1)
17943       return -1;
17944   }
17945   {
17946     char path[] = "/newer";
17947     int r;
17948     suppress_error = 0;
17949     r = guestfs_touch (g, path);
17950     if (r == -1)
17951       return -1;
17952   }
17953   {
17954     char path[] = "/newest";
17955     int r;
17956     suppress_error = 0;
17957     r = guestfs_touch (g, path);
17958     if (r == -1)
17959       return -1;
17960   }
17961   {
17962     char directory[] = "/";
17963     char **r;
17964     int i;
17965     suppress_error = 0;
17966     r = guestfs_ls (g, directory);
17967     if (r == NULL)
17968       return -1;
17969     if (!r[0]) {
17970       fprintf (stderr, "test_ls_0: short list returned from command\n");
17971       print_strings (r);
17972       return -1;
17973     }
17974     {
17975       char expected[] = "lost+found";
17976       if (strcmp (r[0], expected) != 0) {
17977         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[0]);
17978         return -1;
17979       }
17980     }
17981     if (!r[1]) {
17982       fprintf (stderr, "test_ls_0: short list returned from command\n");
17983       print_strings (r);
17984       return -1;
17985     }
17986     {
17987       char expected[] = "new";
17988       if (strcmp (r[1], expected) != 0) {
17989         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[1]);
17990         return -1;
17991       }
17992     }
17993     if (!r[2]) {
17994       fprintf (stderr, "test_ls_0: short list returned from command\n");
17995       print_strings (r);
17996       return -1;
17997     }
17998     {
17999       char expected[] = "newer";
18000       if (strcmp (r[2], expected) != 0) {
18001         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[2]);
18002         return -1;
18003       }
18004     }
18005     if (!r[3]) {
18006       fprintf (stderr, "test_ls_0: short list returned from command\n");
18007       print_strings (r);
18008       return -1;
18009     }
18010     {
18011       char expected[] = "newest";
18012       if (strcmp (r[3], expected) != 0) {
18013         fprintf (stderr, "test_ls_0: expected \"%s\" but got \"%s\"\n", expected, r[3]);
18014         return -1;
18015       }
18016     }
18017     if (r[4] != NULL) {
18018       fprintf (stderr, "test_ls_0: extra elements returned from command\n");
18019       print_strings (r);
18020       return -1;
18021     }
18022     for (i = 0; r[i] != NULL; ++i)
18023       free (r[i]);
18024     free (r);
18025   }
18026   return 0;
18027 }
18028
18029 static int test_cat_0_skip (void)
18030 {
18031   const char *str;
18032
18033   str = getenv ("TEST_ONLY");
18034   if (str)
18035     return strstr (str, "cat") == NULL;
18036   str = getenv ("SKIP_TEST_CAT_0");
18037   if (str && strcmp (str, "1") == 0) return 1;
18038   str = getenv ("SKIP_TEST_CAT");
18039   if (str && strcmp (str, "1") == 0) return 1;
18040   return 0;
18041 }
18042
18043 static int test_cat_0 (void)
18044 {
18045   if (test_cat_0_skip ()) {
18046     printf ("%s skipped (reason: environment variable set)\n", "test_cat_0");
18047     return 0;
18048   }
18049
18050   /* InitBasicFS for test_cat_0: create ext2 on /dev/sda1 */
18051   {
18052     char device[] = "/dev/sda";
18053     int r;
18054     suppress_error = 0;
18055     r = guestfs_blockdev_setrw (g, device);
18056     if (r == -1)
18057       return -1;
18058   }
18059   {
18060     int r;
18061     suppress_error = 0;
18062     r = guestfs_umount_all (g);
18063     if (r == -1)
18064       return -1;
18065   }
18066   {
18067     int r;
18068     suppress_error = 0;
18069     r = guestfs_lvm_remove_all (g);
18070     if (r == -1)
18071       return -1;
18072   }
18073   {
18074     char device[] = "/dev/sda";
18075     char lines_0[] = ",";
18076     char *lines[] = {
18077       lines_0,
18078       NULL
18079     };
18080     int r;
18081     suppress_error = 0;
18082     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
18083     if (r == -1)
18084       return -1;
18085   }
18086   {
18087     char fstype[] = "ext2";
18088     char device[] = "/dev/sda1";
18089     int r;
18090     suppress_error = 0;
18091     r = guestfs_mkfs (g, fstype, device);
18092     if (r == -1)
18093       return -1;
18094   }
18095   {
18096     char device[] = "/dev/sda1";
18097     char mountpoint[] = "/";
18098     int r;
18099     suppress_error = 0;
18100     r = guestfs_mount (g, device, mountpoint);
18101     if (r == -1)
18102       return -1;
18103   }
18104   /* TestOutput for cat (0) */
18105   char expected[] = "new file contents";
18106   {
18107     char path[] = "/new";
18108     char content[] = "new file contents";
18109     int r;
18110     suppress_error = 0;
18111     r = guestfs_write_file (g, path, content, 0);
18112     if (r == -1)
18113       return -1;
18114   }
18115   {
18116     char path[] = "/new";
18117     char *r;
18118     suppress_error = 0;
18119     r = guestfs_cat (g, path);
18120     if (r == NULL)
18121       return -1;
18122     if (strcmp (r, expected) != 0) {
18123       fprintf (stderr, "test_cat_0: expected \"%s\" but got \"%s\"\n", expected, r);
18124       return -1;
18125     }
18126     free (r);
18127   }
18128   return 0;
18129 }
18130
18131 static int test_touch_0_skip (void)
18132 {
18133   const char *str;
18134
18135   str = getenv ("TEST_ONLY");
18136   if (str)
18137     return strstr (str, "touch") == NULL;
18138   str = getenv ("SKIP_TEST_TOUCH_0");
18139   if (str && strcmp (str, "1") == 0) return 1;
18140   str = getenv ("SKIP_TEST_TOUCH");
18141   if (str && strcmp (str, "1") == 0) return 1;
18142   return 0;
18143 }
18144
18145 static int test_touch_0 (void)
18146 {
18147   if (test_touch_0_skip ()) {
18148     printf ("%s skipped (reason: environment variable set)\n", "test_touch_0");
18149     return 0;
18150   }
18151
18152   /* InitBasicFS for test_touch_0: create ext2 on /dev/sda1 */
18153   {
18154     char device[] = "/dev/sda";
18155     int r;
18156     suppress_error = 0;
18157     r = guestfs_blockdev_setrw (g, device);
18158     if (r == -1)
18159       return -1;
18160   }
18161   {
18162     int r;
18163     suppress_error = 0;
18164     r = guestfs_umount_all (g);
18165     if (r == -1)
18166       return -1;
18167   }
18168   {
18169     int r;
18170     suppress_error = 0;
18171     r = guestfs_lvm_remove_all (g);
18172     if (r == -1)
18173       return -1;
18174   }
18175   {
18176     char device[] = "/dev/sda";
18177     char lines_0[] = ",";
18178     char *lines[] = {
18179       lines_0,
18180       NULL
18181     };
18182     int r;
18183     suppress_error = 0;
18184     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
18185     if (r == -1)
18186       return -1;
18187   }
18188   {
18189     char fstype[] = "ext2";
18190     char device[] = "/dev/sda1";
18191     int r;
18192     suppress_error = 0;
18193     r = guestfs_mkfs (g, fstype, device);
18194     if (r == -1)
18195       return -1;
18196   }
18197   {
18198     char device[] = "/dev/sda1";
18199     char mountpoint[] = "/";
18200     int r;
18201     suppress_error = 0;
18202     r = guestfs_mount (g, device, mountpoint);
18203     if (r == -1)
18204       return -1;
18205   }
18206   /* TestOutputTrue for touch (0) */
18207   {
18208     char path[] = "/new";
18209     int r;
18210     suppress_error = 0;
18211     r = guestfs_touch (g, path);
18212     if (r == -1)
18213       return -1;
18214   }
18215   {
18216     char path[] = "/new";
18217     int r;
18218     suppress_error = 0;
18219     r = guestfs_exists (g, path);
18220     if (r == -1)
18221       return -1;
18222     if (!r) {
18223       fprintf (stderr, "test_touch_0: expected true, got false\n");
18224       return -1;
18225     }
18226   }
18227   return 0;
18228 }
18229
18230 static int test_sync_0_skip (void)
18231 {
18232   const char *str;
18233
18234   str = getenv ("TEST_ONLY");
18235   if (str)
18236     return strstr (str, "sync") == NULL;
18237   str = getenv ("SKIP_TEST_SYNC_0");
18238   if (str && strcmp (str, "1") == 0) return 1;
18239   str = getenv ("SKIP_TEST_SYNC");
18240   if (str && strcmp (str, "1") == 0) return 1;
18241   return 0;
18242 }
18243
18244 static int test_sync_0 (void)
18245 {
18246   if (test_sync_0_skip ()) {
18247     printf ("%s skipped (reason: environment variable set)\n", "test_sync_0");
18248     return 0;
18249   }
18250
18251   /* InitNone|InitEmpty for test_sync_0 */
18252   {
18253     char device[] = "/dev/sda";
18254     int r;
18255     suppress_error = 0;
18256     r = guestfs_blockdev_setrw (g, device);
18257     if (r == -1)
18258       return -1;
18259   }
18260   {
18261     int r;
18262     suppress_error = 0;
18263     r = guestfs_umount_all (g);
18264     if (r == -1)
18265       return -1;
18266   }
18267   {
18268     int r;
18269     suppress_error = 0;
18270     r = guestfs_lvm_remove_all (g);
18271     if (r == -1)
18272       return -1;
18273   }
18274   /* TestRun for sync (0) */
18275   {
18276     int r;
18277     suppress_error = 0;
18278     r = guestfs_sync (g);
18279     if (r == -1)
18280       return -1;
18281   }
18282   return 0;
18283 }
18284
18285 static int test_mount_0_skip (void)
18286 {
18287   const char *str;
18288
18289   str = getenv ("TEST_ONLY");
18290   if (str)
18291     return strstr (str, "mount") == NULL;
18292   str = getenv ("SKIP_TEST_MOUNT_0");
18293   if (str && strcmp (str, "1") == 0) return 1;
18294   str = getenv ("SKIP_TEST_MOUNT");
18295   if (str && strcmp (str, "1") == 0) return 1;
18296   return 0;
18297 }
18298
18299 static int test_mount_0 (void)
18300 {
18301   if (test_mount_0_skip ()) {
18302     printf ("%s skipped (reason: environment variable set)\n", "test_mount_0");
18303     return 0;
18304   }
18305
18306   /* InitNone|InitEmpty for test_mount_0 */
18307   {
18308     char device[] = "/dev/sda";
18309     int r;
18310     suppress_error = 0;
18311     r = guestfs_blockdev_setrw (g, device);
18312     if (r == -1)
18313       return -1;
18314   }
18315   {
18316     int r;
18317     suppress_error = 0;
18318     r = guestfs_umount_all (g);
18319     if (r == -1)
18320       return -1;
18321   }
18322   {
18323     int r;
18324     suppress_error = 0;
18325     r = guestfs_lvm_remove_all (g);
18326     if (r == -1)
18327       return -1;
18328   }
18329   /* TestOutput for mount (0) */
18330   char expected[] = "new file contents";
18331   {
18332     char device[] = "/dev/sda";
18333     char lines_0[] = ",";
18334     char *lines[] = {
18335       lines_0,
18336       NULL
18337     };
18338     int r;
18339     suppress_error = 0;
18340     r = guestfs_sfdisk (g, device, 0, 0, 0, lines);
18341     if (r == -1)
18342       return -1;
18343   }
18344   {
18345     char fstype[] = "ext2";
18346     char device[] = "/dev/sda1";
18347     int r;
18348     suppress_error = 0;
18349     r = guestfs_mkfs (g, fstype, device);
18350     if (r == -1)
18351       return -1;
18352   }
18353   {
18354     char device[] = "/dev/sda1";
18355     char mountpoint[] = "/";
18356     int r;
18357     suppress_error = 0;
18358     r = guestfs_mount (g, device, mountpoint);
18359     if (r == -1)
18360       return -1;
18361   }
18362   {
18363     char path[] = "/new";
18364     char content[] = "new file contents";
18365     int r;
18366     suppress_error = 0;
18367     r = guestfs_write_file (g, path, content, 0);
18368     if (r == -1)
18369       return -1;
18370   }
18371   {
18372     char path[] = "/new";
18373     char *r;
18374     suppress_error = 0;
18375     r = guestfs_cat (g, path);
18376     if (r == NULL)
18377       return -1;
18378     if (strcmp (r, expected) != 0) {
18379       fprintf (stderr, "test_mount_0: expected \"%s\" but got \"%s\"\n", expected, r);
18380       return -1;
18381     }
18382     free (r);
18383   }
18384   return 0;
18385 }
18386
18387 int main (int argc, char *argv[])
18388 {
18389   char c = 0;
18390   int failed = 0;
18391   const char *filename;
18392   int fd;
18393   int nr_tests, test_num = 0;
18394
18395   no_test_warnings ();
18396
18397   g = guestfs_create ();
18398   if (g == NULL) {
18399     printf ("guestfs_create FAILED\n");
18400     exit (1);
18401   }
18402
18403   guestfs_set_error_handler (g, print_error, NULL);
18404
18405   guestfs_set_path (g, "../appliance");
18406
18407   filename = "test1.img";
18408   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
18409   if (fd == -1) {
18410     perror (filename);
18411     exit (1);
18412   }
18413   if (lseek (fd, 524288000, SEEK_SET) == -1) {
18414     perror ("lseek");
18415     close (fd);
18416     unlink (filename);
18417     exit (1);
18418   }
18419   if (write (fd, &c, 1) == -1) {
18420     perror ("write");
18421     close (fd);
18422     unlink (filename);
18423     exit (1);
18424   }
18425   if (close (fd) == -1) {
18426     perror (filename);
18427     unlink (filename);
18428     exit (1);
18429   }
18430   if (guestfs_add_drive (g, filename) == -1) {
18431     printf ("guestfs_add_drive %s FAILED\n", filename);
18432     exit (1);
18433   }
18434
18435   filename = "test2.img";
18436   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
18437   if (fd == -1) {
18438     perror (filename);
18439     exit (1);
18440   }
18441   if (lseek (fd, 52428800, SEEK_SET) == -1) {
18442     perror ("lseek");
18443     close (fd);
18444     unlink (filename);
18445     exit (1);
18446   }
18447   if (write (fd, &c, 1) == -1) {
18448     perror ("write");
18449     close (fd);
18450     unlink (filename);
18451     exit (1);
18452   }
18453   if (close (fd) == -1) {
18454     perror (filename);
18455     unlink (filename);
18456     exit (1);
18457   }
18458   if (guestfs_add_drive (g, filename) == -1) {
18459     printf ("guestfs_add_drive %s FAILED\n", filename);
18460     exit (1);
18461   }
18462
18463   filename = "test3.img";
18464   fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666);
18465   if (fd == -1) {
18466     perror (filename);
18467     exit (1);
18468   }
18469   if (lseek (fd, 10485760, SEEK_SET) == -1) {
18470     perror ("lseek");
18471     close (fd);
18472     unlink (filename);
18473     exit (1);
18474   }
18475   if (write (fd, &c, 1) == -1) {
18476     perror ("write");
18477     close (fd);
18478     unlink (filename);
18479     exit (1);
18480   }
18481   if (close (fd) == -1) {
18482     perror (filename);
18483     unlink (filename);
18484     exit (1);
18485   }
18486   if (guestfs_add_drive (g, filename) == -1) {
18487     printf ("guestfs_add_drive %s FAILED\n", filename);
18488     exit (1);
18489   }
18490
18491   if (guestfs_add_drive_ro (g, "../images/test.sqsh") == -1) {
18492     printf ("guestfs_add_drive_ro ../images/test.sqsh FAILED\n");
18493     exit (1);
18494   }
18495
18496   if (guestfs_launch (g) == -1) {
18497     printf ("guestfs_launch FAILED\n");
18498     exit (1);
18499   }
18500
18501   /* Set a timeout in case qemu hangs during launch (RHBZ#505329). */
18502   alarm (600);
18503
18504   if (guestfs_wait_ready (g) == -1) {
18505     printf ("guestfs_wait_ready FAILED\n");
18506     exit (1);
18507   }
18508
18509   /* Cancel previous alarm. */
18510   alarm (0);
18511
18512   nr_tests = 164;
18513
18514   test_num++;
18515   printf ("%3d/%3d test_tail_n_0\n", test_num, nr_tests);
18516   if (test_tail_n_0 () == -1) {
18517     printf ("test_tail_n_0 FAILED\n");
18518     failed++;
18519   }
18520   test_num++;
18521   printf ("%3d/%3d test_tail_n_1\n", test_num, nr_tests);
18522   if (test_tail_n_1 () == -1) {
18523     printf ("test_tail_n_1 FAILED\n");
18524     failed++;
18525   }
18526   test_num++;
18527   printf ("%3d/%3d test_tail_n_2\n", test_num, nr_tests);
18528   if (test_tail_n_2 () == -1) {
18529     printf ("test_tail_n_2 FAILED\n");
18530     failed++;
18531   }
18532   test_num++;
18533   printf ("%3d/%3d test_tail_0\n", test_num, nr_tests);
18534   if (test_tail_0 () == -1) {
18535     printf ("test_tail_0 FAILED\n");
18536     failed++;
18537   }
18538   test_num++;
18539   printf ("%3d/%3d test_head_n_0\n", test_num, nr_tests);
18540   if (test_head_n_0 () == -1) {
18541     printf ("test_head_n_0 FAILED\n");
18542     failed++;
18543   }
18544   test_num++;
18545   printf ("%3d/%3d test_head_n_1\n", test_num, nr_tests);
18546   if (test_head_n_1 () == -1) {
18547     printf ("test_head_n_1 FAILED\n");
18548     failed++;
18549   }
18550   test_num++;
18551   printf ("%3d/%3d test_head_n_2\n", test_num, nr_tests);
18552   if (test_head_n_2 () == -1) {
18553     printf ("test_head_n_2 FAILED\n");
18554     failed++;
18555   }
18556   test_num++;
18557   printf ("%3d/%3d test_head_0\n", test_num, nr_tests);
18558   if (test_head_0 () == -1) {
18559     printf ("test_head_0 FAILED\n");
18560     failed++;
18561   }
18562   test_num++;
18563   printf ("%3d/%3d test_wc_c_0\n", test_num, nr_tests);
18564   if (test_wc_c_0 () == -1) {
18565     printf ("test_wc_c_0 FAILED\n");
18566     failed++;
18567   }
18568   test_num++;
18569   printf ("%3d/%3d test_wc_w_0\n", test_num, nr_tests);
18570   if (test_wc_w_0 () == -1) {
18571     printf ("test_wc_w_0 FAILED\n");
18572     failed++;
18573   }
18574   test_num++;
18575   printf ("%3d/%3d test_wc_l_0\n", test_num, nr_tests);
18576   if (test_wc_l_0 () == -1) {
18577     printf ("test_wc_l_0 FAILED\n");
18578     failed++;
18579   }
18580   test_num++;
18581   printf ("%3d/%3d test_mkdtemp_0\n", test_num, nr_tests);
18582   if (test_mkdtemp_0 () == -1) {
18583     printf ("test_mkdtemp_0 FAILED\n");
18584     failed++;
18585   }
18586   test_num++;
18587   printf ("%3d/%3d test_scrub_file_0\n", test_num, nr_tests);
18588   if (test_scrub_file_0 () == -1) {
18589     printf ("test_scrub_file_0 FAILED\n");
18590     failed++;
18591   }
18592   test_num++;
18593   printf ("%3d/%3d test_scrub_device_0\n", test_num, nr_tests);
18594   if (test_scrub_device_0 () == -1) {
18595     printf ("test_scrub_device_0 FAILED\n");
18596     failed++;
18597   }
18598   test_num++;
18599   printf ("%3d/%3d test_glob_expand_0\n", test_num, nr_tests);
18600   if (test_glob_expand_0 () == -1) {
18601     printf ("test_glob_expand_0 FAILED\n");
18602     failed++;
18603   }
18604   test_num++;
18605   printf ("%3d/%3d test_glob_expand_1\n", test_num, nr_tests);
18606   if (test_glob_expand_1 () == -1) {
18607     printf ("test_glob_expand_1 FAILED\n");
18608     failed++;
18609   }
18610   test_num++;
18611   printf ("%3d/%3d test_glob_expand_2\n", test_num, nr_tests);
18612   if (test_glob_expand_2 () == -1) {
18613     printf ("test_glob_expand_2 FAILED\n");
18614     failed++;
18615   }
18616   test_num++;
18617   printf ("%3d/%3d test_ntfs_3g_probe_0\n", test_num, nr_tests);
18618   if (test_ntfs_3g_probe_0 () == -1) {
18619     printf ("test_ntfs_3g_probe_0 FAILED\n");
18620     failed++;
18621   }
18622   test_num++;
18623   printf ("%3d/%3d test_ntfs_3g_probe_1\n", test_num, nr_tests);
18624   if (test_ntfs_3g_probe_1 () == -1) {
18625     printf ("test_ntfs_3g_probe_1 FAILED\n");
18626     failed++;
18627   }
18628   test_num++;
18629   printf ("%3d/%3d test_sleep_0\n", test_num, nr_tests);
18630   if (test_sleep_0 () == -1) {
18631     printf ("test_sleep_0 FAILED\n");
18632     failed++;
18633   }
18634   test_num++;
18635   printf ("%3d/%3d test_find_0\n", test_num, nr_tests);
18636   if (test_find_0 () == -1) {
18637     printf ("test_find_0 FAILED\n");
18638     failed++;
18639   }
18640   test_num++;
18641   printf ("%3d/%3d test_find_1\n", test_num, nr_tests);
18642   if (test_find_1 () == -1) {
18643     printf ("test_find_1 FAILED\n");
18644     failed++;
18645   }
18646   test_num++;
18647   printf ("%3d/%3d test_find_2\n", test_num, nr_tests);
18648   if (test_find_2 () == -1) {
18649     printf ("test_find_2 FAILED\n");
18650     failed++;
18651   }
18652   test_num++;
18653   printf ("%3d/%3d test_lvresize_0\n", test_num, nr_tests);
18654   if (test_lvresize_0 () == -1) {
18655     printf ("test_lvresize_0 FAILED\n");
18656     failed++;
18657   }
18658   test_num++;
18659   printf ("%3d/%3d test_zerofree_0\n", test_num, nr_tests);
18660   if (test_zerofree_0 () == -1) {
18661     printf ("test_zerofree_0 FAILED\n");
18662     failed++;
18663   }
18664   test_num++;
18665   printf ("%3d/%3d test_hexdump_0\n", test_num, nr_tests);
18666   if (test_hexdump_0 () == -1) {
18667     printf ("test_hexdump_0 FAILED\n");
18668     failed++;
18669   }
18670   test_num++;
18671   printf ("%3d/%3d test_hexdump_1\n", test_num, nr_tests);
18672   if (test_hexdump_1 () == -1) {
18673     printf ("test_hexdump_1 FAILED\n");
18674     failed++;
18675   }
18676   test_num++;
18677   printf ("%3d/%3d test_strings_e_0\n", test_num, nr_tests);
18678   if (test_strings_e_0 () == -1) {
18679     printf ("test_strings_e_0 FAILED\n");
18680     failed++;
18681   }
18682   test_num++;
18683   printf ("%3d/%3d test_strings_e_1\n", test_num, nr_tests);
18684   if (test_strings_e_1 () == -1) {
18685     printf ("test_strings_e_1 FAILED\n");
18686     failed++;
18687   }
18688   test_num++;
18689   printf ("%3d/%3d test_strings_0\n", test_num, nr_tests);
18690   if (test_strings_0 () == -1) {
18691     printf ("test_strings_0 FAILED\n");
18692     failed++;
18693   }
18694   test_num++;
18695   printf ("%3d/%3d test_strings_1\n", test_num, nr_tests);
18696   if (test_strings_1 () == -1) {
18697     printf ("test_strings_1 FAILED\n");
18698     failed++;
18699   }
18700   test_num++;
18701   printf ("%3d/%3d test_equal_0\n", test_num, nr_tests);
18702   if (test_equal_0 () == -1) {
18703     printf ("test_equal_0 FAILED\n");
18704     failed++;
18705   }
18706   test_num++;
18707   printf ("%3d/%3d test_equal_1\n", test_num, nr_tests);
18708   if (test_equal_1 () == -1) {
18709     printf ("test_equal_1 FAILED\n");
18710     failed++;
18711   }
18712   test_num++;
18713   printf ("%3d/%3d test_equal_2\n", test_num, nr_tests);
18714   if (test_equal_2 () == -1) {
18715     printf ("test_equal_2 FAILED\n");
18716     failed++;
18717   }
18718   test_num++;
18719   printf ("%3d/%3d test_ping_daemon_0\n", test_num, nr_tests);
18720   if (test_ping_daemon_0 () == -1) {
18721     printf ("test_ping_daemon_0 FAILED\n");
18722     failed++;
18723   }
18724   test_num++;
18725   printf ("%3d/%3d test_dmesg_0\n", test_num, nr_tests);
18726   if (test_dmesg_0 () == -1) {
18727     printf ("test_dmesg_0 FAILED\n");
18728     failed++;
18729   }
18730   test_num++;
18731   printf ("%3d/%3d test_drop_caches_0\n", test_num, nr_tests);
18732   if (test_drop_caches_0 () == -1) {
18733     printf ("test_drop_caches_0 FAILED\n");
18734     failed++;
18735   }
18736   test_num++;
18737   printf ("%3d/%3d test_mv_0\n", test_num, nr_tests);
18738   if (test_mv_0 () == -1) {
18739     printf ("test_mv_0 FAILED\n");
18740     failed++;
18741   }
18742   test_num++;
18743   printf ("%3d/%3d test_mv_1\n", test_num, nr_tests);
18744   if (test_mv_1 () == -1) {
18745     printf ("test_mv_1 FAILED\n");
18746     failed++;
18747   }
18748   test_num++;
18749   printf ("%3d/%3d test_cp_a_0\n", test_num, nr_tests);
18750   if (test_cp_a_0 () == -1) {
18751     printf ("test_cp_a_0 FAILED\n");
18752     failed++;
18753   }
18754   test_num++;
18755   printf ("%3d/%3d test_cp_0\n", test_num, nr_tests);
18756   if (test_cp_0 () == -1) {
18757     printf ("test_cp_0 FAILED\n");
18758     failed++;
18759   }
18760   test_num++;
18761   printf ("%3d/%3d test_cp_1\n", test_num, nr_tests);
18762   if (test_cp_1 () == -1) {
18763     printf ("test_cp_1 FAILED\n");
18764     failed++;
18765   }
18766   test_num++;
18767   printf ("%3d/%3d test_cp_2\n", test_num, nr_tests);
18768   if (test_cp_2 () == -1) {
18769     printf ("test_cp_2 FAILED\n");
18770     failed++;
18771   }
18772   test_num++;
18773   printf ("%3d/%3d test_grub_install_0\n", test_num, nr_tests);
18774   if (test_grub_install_0 () == -1) {
18775     printf ("test_grub_install_0 FAILED\n");
18776     failed++;
18777   }
18778   test_num++;
18779   printf ("%3d/%3d test_zero_0\n", test_num, nr_tests);
18780   if (test_zero_0 () == -1) {
18781     printf ("test_zero_0 FAILED\n");
18782     failed++;
18783   }
18784   test_num++;
18785   printf ("%3d/%3d test_fsck_0\n", test_num, nr_tests);
18786   if (test_fsck_0 () == -1) {
18787     printf ("test_fsck_0 FAILED\n");
18788     failed++;
18789   }
18790   test_num++;
18791   printf ("%3d/%3d test_fsck_1\n", test_num, nr_tests);
18792   if (test_fsck_1 () == -1) {
18793     printf ("test_fsck_1 FAILED\n");
18794     failed++;
18795   }
18796   test_num++;
18797   printf ("%3d/%3d test_set_e2uuid_0\n", test_num, nr_tests);
18798   if (test_set_e2uuid_0 () == -1) {
18799     printf ("test_set_e2uuid_0 FAILED\n");
18800     failed++;
18801   }
18802   test_num++;
18803   printf ("%3d/%3d test_set_e2uuid_1\n", test_num, nr_tests);
18804   if (test_set_e2uuid_1 () == -1) {
18805     printf ("test_set_e2uuid_1 FAILED\n");
18806     failed++;
18807   }
18808   test_num++;
18809   printf ("%3d/%3d test_set_e2uuid_2\n", test_num, nr_tests);
18810   if (test_set_e2uuid_2 () == -1) {
18811     printf ("test_set_e2uuid_2 FAILED\n");
18812     failed++;
18813   }
18814   test_num++;
18815   printf ("%3d/%3d test_set_e2uuid_3\n", test_num, nr_tests);
18816   if (test_set_e2uuid_3 () == -1) {
18817     printf ("test_set_e2uuid_3 FAILED\n");
18818     failed++;
18819   }
18820   test_num++;
18821   printf ("%3d/%3d test_set_e2label_0\n", test_num, nr_tests);
18822   if (test_set_e2label_0 () == -1) {
18823     printf ("test_set_e2label_0 FAILED\n");
18824     failed++;
18825   }
18826   test_num++;
18827   printf ("%3d/%3d test_pvremove_0\n", test_num, nr_tests);
18828   if (test_pvremove_0 () == -1) {
18829     printf ("test_pvremove_0 FAILED\n");
18830     failed++;
18831   }
18832   test_num++;
18833   printf ("%3d/%3d test_pvremove_1\n", test_num, nr_tests);
18834   if (test_pvremove_1 () == -1) {
18835     printf ("test_pvremove_1 FAILED\n");
18836     failed++;
18837   }
18838   test_num++;
18839   printf ("%3d/%3d test_pvremove_2\n", test_num, nr_tests);
18840   if (test_pvremove_2 () == -1) {
18841     printf ("test_pvremove_2 FAILED\n");
18842     failed++;
18843   }
18844   test_num++;
18845   printf ("%3d/%3d test_vgremove_0\n", test_num, nr_tests);
18846   if (test_vgremove_0 () == -1) {
18847     printf ("test_vgremove_0 FAILED\n");
18848     failed++;
18849   }
18850   test_num++;
18851   printf ("%3d/%3d test_vgremove_1\n", test_num, nr_tests);
18852   if (test_vgremove_1 () == -1) {
18853     printf ("test_vgremove_1 FAILED\n");
18854     failed++;
18855   }
18856   test_num++;
18857   printf ("%3d/%3d test_lvremove_0\n", test_num, nr_tests);
18858   if (test_lvremove_0 () == -1) {
18859     printf ("test_lvremove_0 FAILED\n");
18860     failed++;
18861   }
18862   test_num++;
18863   printf ("%3d/%3d test_lvremove_1\n", test_num, nr_tests);
18864   if (test_lvremove_1 () == -1) {
18865     printf ("test_lvremove_1 FAILED\n");
18866     failed++;
18867   }
18868   test_num++;
18869   printf ("%3d/%3d test_lvremove_2\n", test_num, nr_tests);
18870   if (test_lvremove_2 () == -1) {
18871     printf ("test_lvremove_2 FAILED\n");
18872     failed++;
18873   }
18874   test_num++;
18875   printf ("%3d/%3d test_mount_ro_0\n", test_num, nr_tests);
18876   if (test_mount_ro_0 () == -1) {
18877     printf ("test_mount_ro_0 FAILED\n");
18878     failed++;
18879   }
18880   test_num++;
18881   printf ("%3d/%3d test_mount_ro_1\n", test_num, nr_tests);
18882   if (test_mount_ro_1 () == -1) {
18883     printf ("test_mount_ro_1 FAILED\n");
18884     failed++;
18885   }
18886   test_num++;
18887   printf ("%3d/%3d test_tgz_in_0\n", test_num, nr_tests);
18888   if (test_tgz_in_0 () == -1) {
18889     printf ("test_tgz_in_0 FAILED\n");
18890     failed++;
18891   }
18892   test_num++;
18893   printf ("%3d/%3d test_tar_in_0\n", test_num, nr_tests);
18894   if (test_tar_in_0 () == -1) {
18895     printf ("test_tar_in_0 FAILED\n");
18896     failed++;
18897   }
18898   test_num++;
18899   printf ("%3d/%3d test_checksum_0\n", test_num, nr_tests);
18900   if (test_checksum_0 () == -1) {
18901     printf ("test_checksum_0 FAILED\n");
18902     failed++;
18903   }
18904   test_num++;
18905   printf ("%3d/%3d test_checksum_1\n", test_num, nr_tests);
18906   if (test_checksum_1 () == -1) {
18907     printf ("test_checksum_1 FAILED\n");
18908     failed++;
18909   }
18910   test_num++;
18911   printf ("%3d/%3d test_checksum_2\n", test_num, nr_tests);
18912   if (test_checksum_2 () == -1) {
18913     printf ("test_checksum_2 FAILED\n");
18914     failed++;
18915   }
18916   test_num++;
18917   printf ("%3d/%3d test_checksum_3\n", test_num, nr_tests);
18918   if (test_checksum_3 () == -1) {
18919     printf ("test_checksum_3 FAILED\n");
18920     failed++;
18921   }
18922   test_num++;
18923   printf ("%3d/%3d test_checksum_4\n", test_num, nr_tests);
18924   if (test_checksum_4 () == -1) {
18925     printf ("test_checksum_4 FAILED\n");
18926     failed++;
18927   }
18928   test_num++;
18929   printf ("%3d/%3d test_checksum_5\n", test_num, nr_tests);
18930   if (test_checksum_5 () == -1) {
18931     printf ("test_checksum_5 FAILED\n");
18932     failed++;
18933   }
18934   test_num++;
18935   printf ("%3d/%3d test_checksum_6\n", test_num, nr_tests);
18936   if (test_checksum_6 () == -1) {
18937     printf ("test_checksum_6 FAILED\n");
18938     failed++;
18939   }
18940   test_num++;
18941   printf ("%3d/%3d test_checksum_7\n", test_num, nr_tests);
18942   if (test_checksum_7 () == -1) {
18943     printf ("test_checksum_7 FAILED\n");
18944     failed++;
18945   }
18946   test_num++;
18947   printf ("%3d/%3d test_checksum_8\n", test_num, nr_tests);
18948   if (test_checksum_8 () == -1) {
18949     printf ("test_checksum_8 FAILED\n");
18950     failed++;
18951   }
18952   test_num++;
18953   printf ("%3d/%3d test_download_0\n", test_num, nr_tests);
18954   if (test_download_0 () == -1) {
18955     printf ("test_download_0 FAILED\n");
18956     failed++;
18957   }
18958   test_num++;
18959   printf ("%3d/%3d test_upload_0\n", test_num, nr_tests);
18960   if (test_upload_0 () == -1) {
18961     printf ("test_upload_0 FAILED\n");
18962     failed++;
18963   }
18964   test_num++;
18965   printf ("%3d/%3d test_blockdev_rereadpt_0\n", test_num, nr_tests);
18966   if (test_blockdev_rereadpt_0 () == -1) {
18967     printf ("test_blockdev_rereadpt_0 FAILED\n");
18968     failed++;
18969   }
18970   test_num++;
18971   printf ("%3d/%3d test_blockdev_flushbufs_0\n", test_num, nr_tests);
18972   if (test_blockdev_flushbufs_0 () == -1) {
18973     printf ("test_blockdev_flushbufs_0 FAILED\n");
18974     failed++;
18975   }
18976   test_num++;
18977   printf ("%3d/%3d test_blockdev_getsize64_0\n", test_num, nr_tests);
18978   if (test_blockdev_getsize64_0 () == -1) {
18979     printf ("test_blockdev_getsize64_0 FAILED\n");
18980     failed++;
18981   }
18982   test_num++;
18983   printf ("%3d/%3d test_blockdev_getsz_0\n", test_num, nr_tests);
18984   if (test_blockdev_getsz_0 () == -1) {
18985     printf ("test_blockdev_getsz_0 FAILED\n");
18986     failed++;
18987   }
18988   test_num++;
18989   printf ("%3d/%3d test_blockdev_getbsz_0\n", test_num, nr_tests);
18990   if (test_blockdev_getbsz_0 () == -1) {
18991     printf ("test_blockdev_getbsz_0 FAILED\n");
18992     failed++;
18993   }
18994   test_num++;
18995   printf ("%3d/%3d test_blockdev_getss_0\n", test_num, nr_tests);
18996   if (test_blockdev_getss_0 () == -1) {
18997     printf ("test_blockdev_getss_0 FAILED\n");
18998     failed++;
18999   }
19000   test_num++;
19001   printf ("%3d/%3d test_blockdev_getro_0\n", test_num, nr_tests);
19002   if (test_blockdev_getro_0 () == -1) {
19003     printf ("test_blockdev_getro_0 FAILED\n");
19004     failed++;
19005   }
19006   test_num++;
19007   printf ("%3d/%3d test_blockdev_setrw_0\n", test_num, nr_tests);
19008   if (test_blockdev_setrw_0 () == -1) {
19009     printf ("test_blockdev_setrw_0 FAILED\n");
19010     failed++;
19011   }
19012   test_num++;
19013   printf ("%3d/%3d test_blockdev_setro_0\n", test_num, nr_tests);
19014   if (test_blockdev_setro_0 () == -1) {
19015     printf ("test_blockdev_setro_0 FAILED\n");
19016     failed++;
19017   }
19018   test_num++;
19019   printf ("%3d/%3d test_statvfs_0\n", test_num, nr_tests);
19020   if (test_statvfs_0 () == -1) {
19021     printf ("test_statvfs_0 FAILED\n");
19022     failed++;
19023   }
19024   test_num++;
19025   printf ("%3d/%3d test_lstat_0\n", test_num, nr_tests);
19026   if (test_lstat_0 () == -1) {
19027     printf ("test_lstat_0 FAILED\n");
19028     failed++;
19029   }
19030   test_num++;
19031   printf ("%3d/%3d test_stat_0\n", test_num, nr_tests);
19032   if (test_stat_0 () == -1) {
19033     printf ("test_stat_0 FAILED\n");
19034     failed++;
19035   }
19036   test_num++;
19037   printf ("%3d/%3d test_command_lines_0\n", test_num, nr_tests);
19038   if (test_command_lines_0 () == -1) {
19039     printf ("test_command_lines_0 FAILED\n");
19040     failed++;
19041   }
19042   test_num++;
19043   printf ("%3d/%3d test_command_lines_1\n", test_num, nr_tests);
19044   if (test_command_lines_1 () == -1) {
19045     printf ("test_command_lines_1 FAILED\n");
19046     failed++;
19047   }
19048   test_num++;
19049   printf ("%3d/%3d test_command_lines_2\n", test_num, nr_tests);
19050   if (test_command_lines_2 () == -1) {
19051     printf ("test_command_lines_2 FAILED\n");
19052     failed++;
19053   }
19054   test_num++;
19055   printf ("%3d/%3d test_command_lines_3\n", test_num, nr_tests);
19056   if (test_command_lines_3 () == -1) {
19057     printf ("test_command_lines_3 FAILED\n");
19058     failed++;
19059   }
19060   test_num++;
19061   printf ("%3d/%3d test_command_lines_4\n", test_num, nr_tests);
19062   if (test_command_lines_4 () == -1) {
19063     printf ("test_command_lines_4 FAILED\n");
19064     failed++;
19065   }
19066   test_num++;
19067   printf ("%3d/%3d test_command_lines_5\n", test_num, nr_tests);
19068   if (test_command_lines_5 () == -1) {
19069     printf ("test_command_lines_5 FAILED\n");
19070     failed++;
19071   }
19072   test_num++;
19073   printf ("%3d/%3d test_command_lines_6\n", test_num, nr_tests);
19074   if (test_command_lines_6 () == -1) {
19075     printf ("test_command_lines_6 FAILED\n");
19076     failed++;
19077   }
19078   test_num++;
19079   printf ("%3d/%3d test_command_lines_7\n", test_num, nr_tests);
19080   if (test_command_lines_7 () == -1) {
19081     printf ("test_command_lines_7 FAILED\n");
19082     failed++;
19083   }
19084   test_num++;
19085   printf ("%3d/%3d test_command_lines_8\n", test_num, nr_tests);
19086   if (test_command_lines_8 () == -1) {
19087     printf ("test_command_lines_8 FAILED\n");
19088     failed++;
19089   }
19090   test_num++;
19091   printf ("%3d/%3d test_command_lines_9\n", test_num, nr_tests);
19092   if (test_command_lines_9 () == -1) {
19093     printf ("test_command_lines_9 FAILED\n");
19094     failed++;
19095   }
19096   test_num++;
19097   printf ("%3d/%3d test_command_lines_10\n", test_num, nr_tests);
19098   if (test_command_lines_10 () == -1) {
19099     printf ("test_command_lines_10 FAILED\n");
19100     failed++;
19101   }
19102   test_num++;
19103   printf ("%3d/%3d test_command_0\n", test_num, nr_tests);
19104   if (test_command_0 () == -1) {
19105     printf ("test_command_0 FAILED\n");
19106     failed++;
19107   }
19108   test_num++;
19109   printf ("%3d/%3d test_command_1\n", test_num, nr_tests);
19110   if (test_command_1 () == -1) {
19111     printf ("test_command_1 FAILED\n");
19112     failed++;
19113   }
19114   test_num++;
19115   printf ("%3d/%3d test_command_2\n", test_num, nr_tests);
19116   if (test_command_2 () == -1) {
19117     printf ("test_command_2 FAILED\n");
19118     failed++;
19119   }
19120   test_num++;
19121   printf ("%3d/%3d test_command_3\n", test_num, nr_tests);
19122   if (test_command_3 () == -1) {
19123     printf ("test_command_3 FAILED\n");
19124     failed++;
19125   }
19126   test_num++;
19127   printf ("%3d/%3d test_command_4\n", test_num, nr_tests);
19128   if (test_command_4 () == -1) {
19129     printf ("test_command_4 FAILED\n");
19130     failed++;
19131   }
19132   test_num++;
19133   printf ("%3d/%3d test_command_5\n", test_num, nr_tests);
19134   if (test_command_5 () == -1) {
19135     printf ("test_command_5 FAILED\n");
19136     failed++;
19137   }
19138   test_num++;
19139   printf ("%3d/%3d test_command_6\n", test_num, nr_tests);
19140   if (test_command_6 () == -1) {
19141     printf ("test_command_6 FAILED\n");
19142     failed++;
19143   }
19144   test_num++;
19145   printf ("%3d/%3d test_command_7\n", test_num, nr_tests);
19146   if (test_command_7 () == -1) {
19147     printf ("test_command_7 FAILED\n");
19148     failed++;
19149   }
19150   test_num++;
19151   printf ("%3d/%3d test_command_8\n", test_num, nr_tests);
19152   if (test_command_8 () == -1) {
19153     printf ("test_command_8 FAILED\n");
19154     failed++;
19155   }
19156   test_num++;
19157   printf ("%3d/%3d test_command_9\n", test_num, nr_tests);
19158   if (test_command_9 () == -1) {
19159     printf ("test_command_9 FAILED\n");
19160     failed++;
19161   }
19162   test_num++;
19163   printf ("%3d/%3d test_command_10\n", test_num, nr_tests);
19164   if (test_command_10 () == -1) {
19165     printf ("test_command_10 FAILED\n");
19166     failed++;
19167   }
19168   test_num++;
19169   printf ("%3d/%3d test_command_11\n", test_num, nr_tests);
19170   if (test_command_11 () == -1) {
19171     printf ("test_command_11 FAILED\n");
19172     failed++;
19173   }
19174   test_num++;
19175   printf ("%3d/%3d test_file_0\n", test_num, nr_tests);
19176   if (test_file_0 () == -1) {
19177     printf ("test_file_0 FAILED\n");
19178     failed++;
19179   }
19180   test_num++;
19181   printf ("%3d/%3d test_file_1\n", test_num, nr_tests);
19182   if (test_file_1 () == -1) {
19183     printf ("test_file_1 FAILED\n");
19184     failed++;
19185   }
19186   test_num++;
19187   printf ("%3d/%3d test_file_2\n", test_num, nr_tests);
19188   if (test_file_2 () == -1) {
19189     printf ("test_file_2 FAILED\n");
19190     failed++;
19191   }
19192   test_num++;
19193   printf ("%3d/%3d test_umount_all_0\n", test_num, nr_tests);
19194   if (test_umount_all_0 () == -1) {
19195     printf ("test_umount_all_0 FAILED\n");
19196     failed++;
19197   }
19198   test_num++;
19199   printf ("%3d/%3d test_umount_all_1\n", test_num, nr_tests);
19200   if (test_umount_all_1 () == -1) {
19201     printf ("test_umount_all_1 FAILED\n");
19202     failed++;
19203   }
19204   test_num++;
19205   printf ("%3d/%3d test_mounts_0\n", test_num, nr_tests);
19206   if (test_mounts_0 () == -1) {
19207     printf ("test_mounts_0 FAILED\n");
19208     failed++;
19209   }
19210   test_num++;
19211   printf ("%3d/%3d test_umount_0\n", test_num, nr_tests);
19212   if (test_umount_0 () == -1) {
19213     printf ("test_umount_0 FAILED\n");
19214     failed++;
19215   }
19216   test_num++;
19217   printf ("%3d/%3d test_umount_1\n", test_num, nr_tests);
19218   if (test_umount_1 () == -1) {
19219     printf ("test_umount_1 FAILED\n");
19220     failed++;
19221   }
19222   test_num++;
19223   printf ("%3d/%3d test_write_file_0\n", test_num, nr_tests);
19224   if (test_write_file_0 () == -1) {
19225     printf ("test_write_file_0 FAILED\n");
19226     failed++;
19227   }
19228   test_num++;
19229   printf ("%3d/%3d test_write_file_1\n", test_num, nr_tests);
19230   if (test_write_file_1 () == -1) {
19231     printf ("test_write_file_1 FAILED\n");
19232     failed++;
19233   }
19234   test_num++;
19235   printf ("%3d/%3d test_write_file_2\n", test_num, nr_tests);
19236   if (test_write_file_2 () == -1) {
19237     printf ("test_write_file_2 FAILED\n");
19238     failed++;
19239   }
19240   test_num++;
19241   printf ("%3d/%3d test_write_file_3\n", test_num, nr_tests);
19242   if (test_write_file_3 () == -1) {
19243     printf ("test_write_file_3 FAILED\n");
19244     failed++;
19245   }
19246   test_num++;
19247   printf ("%3d/%3d test_write_file_4\n", test_num, nr_tests);
19248   if (test_write_file_4 () == -1) {
19249     printf ("test_write_file_4 FAILED\n");
19250     failed++;
19251   }
19252   test_num++;
19253   printf ("%3d/%3d test_write_file_5\n", test_num, nr_tests);
19254   if (test_write_file_5 () == -1) {
19255     printf ("test_write_file_5 FAILED\n");
19256     failed++;
19257   }
19258   test_num++;
19259   printf ("%3d/%3d test_mkfs_0\n", test_num, nr_tests);
19260   if (test_mkfs_0 () == -1) {
19261     printf ("test_mkfs_0 FAILED\n");
19262     failed++;
19263   }
19264   test_num++;
19265   printf ("%3d/%3d test_lvcreate_0\n", test_num, nr_tests);
19266   if (test_lvcreate_0 () == -1) {
19267     printf ("test_lvcreate_0 FAILED\n");
19268     failed++;
19269   }
19270   test_num++;
19271   printf ("%3d/%3d test_vgcreate_0\n", test_num, nr_tests);
19272   if (test_vgcreate_0 () == -1) {
19273     printf ("test_vgcreate_0 FAILED\n");
19274     failed++;
19275   }
19276   test_num++;
19277   printf ("%3d/%3d test_pvcreate_0\n", test_num, nr_tests);
19278   if (test_pvcreate_0 () == -1) {
19279     printf ("test_pvcreate_0 FAILED\n");
19280     failed++;
19281   }
19282   test_num++;
19283   printf ("%3d/%3d test_is_dir_0\n", test_num, nr_tests);
19284   if (test_is_dir_0 () == -1) {
19285     printf ("test_is_dir_0 FAILED\n");
19286     failed++;
19287   }
19288   test_num++;
19289   printf ("%3d/%3d test_is_dir_1\n", test_num, nr_tests);
19290   if (test_is_dir_1 () == -1) {
19291     printf ("test_is_dir_1 FAILED\n");
19292     failed++;
19293   }
19294   test_num++;
19295   printf ("%3d/%3d test_is_file_0\n", test_num, nr_tests);
19296   if (test_is_file_0 () == -1) {
19297     printf ("test_is_file_0 FAILED\n");
19298     failed++;
19299   }
19300   test_num++;
19301   printf ("%3d/%3d test_is_file_1\n", test_num, nr_tests);
19302   if (test_is_file_1 () == -1) {
19303     printf ("test_is_file_1 FAILED\n");
19304     failed++;
19305   }
19306   test_num++;
19307   printf ("%3d/%3d test_exists_0\n", test_num, nr_tests);
19308   if (test_exists_0 () == -1) {
19309     printf ("test_exists_0 FAILED\n");
19310     failed++;
19311   }
19312   test_num++;
19313   printf ("%3d/%3d test_exists_1\n", test_num, nr_tests);
19314   if (test_exists_1 () == -1) {
19315     printf ("test_exists_1 FAILED\n");
19316     failed++;
19317   }
19318   test_num++;
19319   printf ("%3d/%3d test_mkdir_p_0\n", test_num, nr_tests);
19320   if (test_mkdir_p_0 () == -1) {
19321     printf ("test_mkdir_p_0 FAILED\n");
19322     failed++;
19323   }
19324   test_num++;
19325   printf ("%3d/%3d test_mkdir_p_1\n", test_num, nr_tests);
19326   if (test_mkdir_p_1 () == -1) {
19327     printf ("test_mkdir_p_1 FAILED\n");
19328     failed++;
19329   }
19330   test_num++;
19331   printf ("%3d/%3d test_mkdir_p_2\n", test_num, nr_tests);
19332   if (test_mkdir_p_2 () == -1) {
19333     printf ("test_mkdir_p_2 FAILED\n");
19334     failed++;
19335   }
19336   test_num++;
19337   printf ("%3d/%3d test_mkdir_p_3\n", test_num, nr_tests);
19338   if (test_mkdir_p_3 () == -1) {
19339     printf ("test_mkdir_p_3 FAILED\n");
19340     failed++;
19341   }
19342   test_num++;
19343   printf ("%3d/%3d test_mkdir_p_4\n", test_num, nr_tests);
19344   if (test_mkdir_p_4 () == -1) {
19345     printf ("test_mkdir_p_4 FAILED\n");
19346     failed++;
19347   }
19348   test_num++;
19349   printf ("%3d/%3d test_mkdir_0\n", test_num, nr_tests);
19350   if (test_mkdir_0 () == -1) {
19351     printf ("test_mkdir_0 FAILED\n");
19352     failed++;
19353   }
19354   test_num++;
19355   printf ("%3d/%3d test_mkdir_1\n", test_num, nr_tests);
19356   if (test_mkdir_1 () == -1) {
19357     printf ("test_mkdir_1 FAILED\n");
19358     failed++;
19359   }
19360   test_num++;
19361   printf ("%3d/%3d test_rm_rf_0\n", test_num, nr_tests);
19362   if (test_rm_rf_0 () == -1) {
19363     printf ("test_rm_rf_0 FAILED\n");
19364     failed++;
19365   }
19366   test_num++;
19367   printf ("%3d/%3d test_rmdir_0\n", test_num, nr_tests);
19368   if (test_rmdir_0 () == -1) {
19369     printf ("test_rmdir_0 FAILED\n");
19370     failed++;
19371   }
19372   test_num++;
19373   printf ("%3d/%3d test_rmdir_1\n", test_num, nr_tests);
19374   if (test_rmdir_1 () == -1) {
19375     printf ("test_rmdir_1 FAILED\n");
19376     failed++;
19377   }
19378   test_num++;
19379   printf ("%3d/%3d test_rmdir_2\n", test_num, nr_tests);
19380   if (test_rmdir_2 () == -1) {
19381     printf ("test_rmdir_2 FAILED\n");
19382     failed++;
19383   }
19384   test_num++;
19385   printf ("%3d/%3d test_rm_0\n", test_num, nr_tests);
19386   if (test_rm_0 () == -1) {
19387     printf ("test_rm_0 FAILED\n");
19388     failed++;
19389   }
19390   test_num++;
19391   printf ("%3d/%3d test_rm_1\n", test_num, nr_tests);
19392   if (test_rm_1 () == -1) {
19393     printf ("test_rm_1 FAILED\n");
19394     failed++;
19395   }
19396   test_num++;
19397   printf ("%3d/%3d test_rm_2\n", test_num, nr_tests);
19398   if (test_rm_2 () == -1) {
19399     printf ("test_rm_2 FAILED\n");
19400     failed++;
19401   }
19402   test_num++;
19403   printf ("%3d/%3d test_read_lines_0\n", test_num, nr_tests);
19404   if (test_read_lines_0 () == -1) {
19405     printf ("test_read_lines_0 FAILED\n");
19406     failed++;
19407   }
19408   test_num++;
19409   printf ("%3d/%3d test_read_lines_1\n", test_num, nr_tests);
19410   if (test_read_lines_1 () == -1) {
19411     printf ("test_read_lines_1 FAILED\n");
19412     failed++;
19413   }
19414   test_num++;
19415   printf ("%3d/%3d test_lvs_0\n", test_num, nr_tests);
19416   if (test_lvs_0 () == -1) {
19417     printf ("test_lvs_0 FAILED\n");
19418     failed++;
19419   }
19420   test_num++;
19421   printf ("%3d/%3d test_lvs_1\n", test_num, nr_tests);
19422   if (test_lvs_1 () == -1) {
19423     printf ("test_lvs_1 FAILED\n");
19424     failed++;
19425   }
19426   test_num++;
19427   printf ("%3d/%3d test_vgs_0\n", test_num, nr_tests);
19428   if (test_vgs_0 () == -1) {
19429     printf ("test_vgs_0 FAILED\n");
19430     failed++;
19431   }
19432   test_num++;
19433   printf ("%3d/%3d test_vgs_1\n", test_num, nr_tests);
19434   if (test_vgs_1 () == -1) {
19435     printf ("test_vgs_1 FAILED\n");
19436     failed++;
19437   }
19438   test_num++;
19439   printf ("%3d/%3d test_pvs_0\n", test_num, nr_tests);
19440   if (test_pvs_0 () == -1) {
19441     printf ("test_pvs_0 FAILED\n");
19442     failed++;
19443   }
19444   test_num++;
19445   printf ("%3d/%3d test_pvs_1\n", test_num, nr_tests);
19446   if (test_pvs_1 () == -1) {
19447     printf ("test_pvs_1 FAILED\n");
19448     failed++;
19449   }
19450   test_num++;
19451   printf ("%3d/%3d test_list_partitions_0\n", test_num, nr_tests);
19452   if (test_list_partitions_0 () == -1) {
19453     printf ("test_list_partitions_0 FAILED\n");
19454     failed++;
19455   }
19456   test_num++;
19457   printf ("%3d/%3d test_list_partitions_1\n", test_num, nr_tests);
19458   if (test_list_partitions_1 () == -1) {
19459     printf ("test_list_partitions_1 FAILED\n");
19460     failed++;
19461   }
19462   test_num++;
19463   printf ("%3d/%3d test_list_devices_0\n", test_num, nr_tests);
19464   if (test_list_devices_0 () == -1) {
19465     printf ("test_list_devices_0 FAILED\n");
19466     failed++;
19467   }
19468   test_num++;
19469   printf ("%3d/%3d test_ls_0\n", test_num, nr_tests);
19470   if (test_ls_0 () == -1) {
19471     printf ("test_ls_0 FAILED\n");
19472     failed++;
19473   }
19474   test_num++;
19475   printf ("%3d/%3d test_cat_0\n", test_num, nr_tests);
19476   if (test_cat_0 () == -1) {
19477     printf ("test_cat_0 FAILED\n");
19478     failed++;
19479   }
19480   test_num++;
19481   printf ("%3d/%3d test_touch_0\n", test_num, nr_tests);
19482   if (test_touch_0 () == -1) {
19483     printf ("test_touch_0 FAILED\n");
19484     failed++;
19485   }
19486   test_num++;
19487   printf ("%3d/%3d test_sync_0\n", test_num, nr_tests);
19488   if (test_sync_0 () == -1) {
19489     printf ("test_sync_0 FAILED\n");
19490     failed++;
19491   }
19492   test_num++;
19493   printf ("%3d/%3d test_mount_0\n", test_num, nr_tests);
19494   if (test_mount_0 () == -1) {
19495     printf ("test_mount_0 FAILED\n");
19496     failed++;
19497   }
19498
19499   guestfs_close (g);
19500   unlink ("test1.img");
19501   unlink ("test2.img");
19502   unlink ("test3.img");
19503
19504   if (failed > 0) {
19505     printf ("***** %d / %d tests FAILED *****\n", failed, nr_tests);
19506     exit (1);
19507   }
19508
19509   exit (0);
19510 }