launch: Ensure g->cmdline is allocated before assigning g->cmdline[0].
[libguestfs.git] / java / t / GuestFS010Basic.java
1 /* libguestfs Java bindings
2  * Copyright (C) 2009-2010 Red Hat Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18
19 import java.io.*;
20 import java.util.Map;
21 import com.redhat.et.libguestfs.*;
22
23 public class GuestFS010Basic
24 {
25     public static void main (String[] argv)
26     {
27         try {
28             // Delete any previous test file if one was left around.
29             File old = new File ("test.img");
30             old.delete ();
31
32             RandomAccessFile f = new RandomAccessFile ("test.img", "rw");
33             f.setLength (500 * 1024 * 1024);
34             f.close ();
35
36             GuestFS g = new GuestFS ();
37             g.add_drive ("test.img");
38             g.launch ();
39
40             g.pvcreate ("/dev/sda");
41             g.vgcreate ("VG", new String[] {"/dev/sda"});
42             g.lvcreate ("LV1", "VG", 200);
43             g.lvcreate ("LV2", "VG", 200);
44
45             String[] lvs = g.lvs ();
46             assert lvs[0].equals ("/dev/VG/LV1");
47             assert lvs[1].equals ("/dev/VG/LV2");
48
49             g.mkfs ("ext2", "/dev/VG/LV1");
50
51             Map<String,String> m = g.list_filesystems ();
52             assert m.containsKey ("/dev/VG/LV1");
53             assert m.size () == 2;
54
55             assert m.get ("/dev/VG/LV1").equals ("ext2");
56             assert m.get ("/dev/VG/LV2").equals ("unknown");
57
58             g.close ();
59
60             File f2 = new File ("test.img");
61             f2.delete ();
62         }
63         catch (Exception exn) {
64             System.err.println (exn);
65             System.exit (1);
66         }
67     }
68 }