diff options
Diffstat (limited to 'src/VBox/Main/glue/tests/TestVBox.java')
| -rw-r--r-- | src/VBox/Main/glue/tests/TestVBox.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/VBox/Main/glue/tests/TestVBox.java b/src/VBox/Main/glue/tests/TestVBox.java new file mode 100644 index 000000000..d480f88f7 --- /dev/null +++ b/src/VBox/Main/glue/tests/TestVBox.java @@ -0,0 +1,107 @@ +/* $Id:$ */ +/* + * Copyright (C) 2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ +import org.virtualbox_3_2.*; +import java.util.List; + +class VBoxCallbacks extends VBoxObjectBase implements IVirtualBoxCallback +{ + public void onGuestPropertyChange(String machineId, String name, String value, String flags) + { + System.out.println("onGuestPropertyChange -- VM: " + machineId + ", " + name + "->" + value); + } + public void onSnapshotChange(String machineId, String snapshotId) + { + } + public void onSnapshotDeleted(String machineId, String snapshotId) + { + } + public void onSnapshotTaken(String machineId, String snapshotId) {} + public void onSessionStateChange(String machineId, SessionState state) + { + System.out.println("onSessionStateChange -- VM: " + machineId + ", state: " + state); + } + public void onMachineRegistered(String machineId, Boolean registered) {} + public void onMediumRegistered(String mediumId, DeviceType mediumType, Boolean registered) {} + public void onExtraDataChange(String machineId, String key, String value) + { + System.out.println("onExtraDataChange -- VM: " + machineId + ": " + key+"->"+value); + } + public Boolean onExtraDataCanChange(String machineId, String key, String value, Holder<String> error) { return true; } + public void onMachineDataChange(String machineId) + {} + public void onMachineStateChange(String machineId, MachineState state) + { + System.out.println("onMachineStateChange -- VM: " + machineId + ", state: " + state); + } +} + +public class TestVBox +{ + static void testCallbacks(VirtualBoxManager mgr, IVirtualBox vbox) + { + IVirtualBoxCallback cbs = mgr.createIVirtualBoxCallback(new VBoxCallbacks()); + vbox.registerCallback(cbs); + for (int i=0; i<100; i++) + { + mgr.waitForEvents(500); + } + vbox.unregisterCallback(cbs); + } + + static void testEnumeration(VirtualBoxManager mgr, IVirtualBox vbox) + { + List<IMachine> machs = vbox.getMachines(); + for (IMachine m : machs) + { + System.out.println("VM name: " + m.getName());// + ", RAM size: " + m.getMemorySize() + "MB"); + System.out.println(" HWVirt: " + m.getHWVirtExProperty(HWVirtExPropertyType.Enabled) + + ", Nested Paging: " + m.getHWVirtExProperty(HWVirtExPropertyType.NestedPaging) + + ", PAE: " + m.getCPUProperty(CPUPropertyType.PAE) ); + } + } + + static void testStart(VirtualBoxManager mgr, IVirtualBox vbox) + { + String m = vbox.getMachines().get(0).getName(); + System.out.println("\nAttempting to start VM '" + m + "'"); + mgr.startVm(m, null, 7000); + } + + public static void main(String[] args) + { + VirtualBoxManager mgr = VirtualBoxManager.getInstance(null); + + System.out.println("\n--> initialized\n"); + + try + { + IVirtualBox vbox = mgr.getVBox(); + System.out.println("VirtualBox version: " + vbox.getVersion() + "\n"); + testEnumeration(mgr, vbox); + testStart(mgr, vbox); + //testCallbacks(mgr, vbox); + + System.out.println("done, press Enter..."); + int ch = System.in.read(); + } + catch (Throwable e) + { + e.printStackTrace(); + } + + mgr.cleanup(); + + System.out.println("\n--< done\n"); + } + +} |
