summaryrefslogtreecommitdiff
path: root/src/VBox/Main/testcase/tstAPI.cpp
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2008-10-27 14:04:18 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2008-10-27 14:04:18 +0000
commitb27fe34e1fbe0949835c9dd7791b33da4506d333 (patch)
treef8dacd3e42701d056a2329214fd41abdad07fe64 /src/VBox/Main/testcase/tstAPI.cpp
parent161dcc282938f520f71e00e9e13f13e391d89b42 (diff)
downloadVirtualBox-svn-b27fe34e1fbe0949835c9dd7791b33da4506d333.tar.gz
Ported s2 branch (r37120:38456).
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@13580 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/Main/testcase/tstAPI.cpp')
-rw-r--r--src/VBox/Main/testcase/tstAPI.cpp210
1 files changed, 164 insertions, 46 deletions
diff --git a/src/VBox/Main/testcase/tstAPI.cpp b/src/VBox/Main/testcase/tstAPI.cpp
index 7f2ce2f5ece..60881e4d073 100644
--- a/src/VBox/Main/testcase/tstAPI.cpp
+++ b/src/VBox/Main/testcase/tstAPI.cpp
@@ -352,7 +352,7 @@ int main(int argc, char *argv[])
}
#endif
-#if 1
+#if 0
// Array test
////////////////////////////////////////////////////////////////////////////
{
@@ -371,6 +371,34 @@ int main(int argc, char *argv[])
CHECK_ERROR_BREAK (machines [i], COMGETTER(Name) (name.asOutParam()));
printf ("machines[%u]='%s'\n", i, Utf8Str (name).raw());
}
+
+#if 0
+ {
+ printf ("Testing [out] arrays...\n");
+ com::SafeGUIDArray uuids;
+ CHECK_ERROR_BREAK (virtualBox,
+ COMGETTER(Uuids) (ComSafeArrayAsOutParam (uuids)));
+
+ for (size_t i = 0; i < uuids.size(); ++ i)
+ printf ("uuids[%u]=%Vuuid\n", i, &uuids [i]);
+ }
+
+ {
+ printf ("Testing [in] arrays...\n");
+ com::SafeGUIDArray uuids (5);
+ for (size_t i = 0; i < uuids.size(); ++ i)
+ {
+ Guid id;
+ id.create();
+ uuids [i] = id;
+ printf ("uuids[%u]=%Vuuid\n", i, &uuids [i]);
+ }
+
+ CHECK_ERROR_BREAK (virtualBox,
+ SetUuids (ComSafeArrayAsInParam (uuids)));
+ }
+#endif
+
}
#endif
@@ -726,66 +754,156 @@ int main(int argc, char *argv[])
#endif
#if 0
+ // check for available hd backends
+ ///////////////////////////////////////////////////////////////////////////
+ {
+ printf("Supported harddisk backends: --------------------------\n");
+ ComPtr<ISystemProperties> systemProperties;
+ CHECK_ERROR_BREAK (virtualBox,
+ COMGETTER(SystemProperties) (systemProperties.asOutParam()));
+ com::SafeIfaceArray <IHardDiskFormat> hardDiskFormats;
+ CHECK_ERROR_BREAK (systemProperties,
+ COMGETTER(HardDiskFormats) (ComSafeArrayAsOutParam (hardDiskFormats)));
+
+ for (size_t i = 0; i < hardDiskFormats.size(); ++ i)
+ {
+ Bstr id;
+ CHECK_ERROR_BREAK (hardDiskFormats [i],
+ COMGETTER(Id) (id.asOutParam()));
+
+ com::SafeArray <BSTR> fileExtensions;
+ CHECK_ERROR_BREAK (hardDiskFormats [i],
+ COMGETTER(FileExtensions) (ComSafeArrayAsOutParam (fileExtensions)));
+
+ printf ("%ls:", id.raw());
+ for (size_t a = 0; a < fileExtensions.size(); ++ a)
+ printf (" %ls", Bstr(fileExtensions [a]).raw());
+ printf ("\n");
+ }
+ printf("-------------------------------------------------------\n");
+ }
+#endif
+
+#if 0
// enumerate hard disks & dvd images
///////////////////////////////////////////////////////////////////////////
do
{
{
- ComPtr <IHardDiskCollection> coll;
- CHECK_RC_BREAK (virtualBox->COMGETTER(HardDisks) (coll.asOutParam()));
- ComPtr <IHardDiskEnumerator> enumerator;
- CHECK_RC_BREAK (coll->Enumerate (enumerator.asOutParam()));
- BOOL hasmore;
- while (SUCCEEDED (enumerator->HasMore (&hasmore)) && hasmore)
+ com::SafeIfaceArray <IHardDisk2> disks;
+ CHECK_ERROR_BREAK (virtualBox,
+ COMGETTER(HardDisks2) (ComSafeArrayAsOutParam (disks)));
+
+ printf ("%u base hard disks registered (disks.isNull()=%d).\n",
+ disks.size(), disks.isNull());
+
+ for (size_t i = 0; i < disks.size(); ++ i)
{
- ComPtr <IHardDisk> disk;
- CHECK_RC_BREAK (enumerator->GetNext (disk.asOutParam()));
+ Bstr loc;
+ CHECK_ERROR_BREAK (disks [i], COMGETTER(Location) (loc.asOutParam()));
Guid id;
- CHECK_RC_BREAK (disk->COMGETTER(Id) (id.asOutParam()));
- Bstr path;
- CHECK_RC_BREAK (disk->COMGETTER(FilePath) (path.asOutParam()));
- printf ("Hard Disk: id={%s}, path={%ls}\n",
- id.toString().raw(), path.raw());
- Guid mid;
- CHECK_RC_BREAK (
- virtualBox->GetHardDiskUsage (id, ResourceUsage_All,
- mid.asOutParam())
- );
- if (mid.isEmpty())
- printf (" not used\n");
+ CHECK_ERROR_BREAK (disks [i], COMGETTER(Id) (id.asOutParam()));
+ MediaState_T state;
+ CHECK_ERROR_BREAK (disks [i], COMGETTER(State) (&state));
+ Bstr format;
+ CHECK_ERROR_BREAK (disks [i], COMGETTER(Format) (format.asOutParam()));
+
+ printf (" disks[%u]: '%ls'\n"
+ " UUID: {%Vuuid}\n"
+ " State: %s\n"
+ " Format: %ls\n",
+ i, loc.raw(), id.raw(),
+ state == MediaState_NotCreated ? "Not Created" :
+ state == MediaState_Created ? "Created" :
+ state == MediaState_Inaccessible ? "Inaccessible" :
+ state == MediaState_LockedRead ? "Locked Read" :
+ state == MediaState_LockedWrite ? "Locked Write" :
+ "???",
+ format.raw());
+
+ if (state == MediaState_Inaccessible)
+ {
+ Bstr error;
+ CHECK_ERROR_BREAK (disks [i],
+ COMGETTER(LastAccessError)(error.asOutParam()));
+ printf (" Access Error: %ls\n", error.raw());
+ }
+
+ /* get usage */
+
+ printf (" Used by VMs:\n");
+
+ com::SafeGUIDArray ids;
+ CHECK_ERROR_BREAK (disks [i],
+ COMGETTER(MachineIds) (ComSafeArrayAsOutParam (ids)));
+ if (ids.size() == 0)
+ {
+ printf (" <not used>\n");
+ }
else
- printf (" used by VM: {%s}\n", mid.toString().raw());
+ {
+ for (size_t j = 0; j < ids.size(); ++ j)
+ {
+ printf (" {%Vuuid}\n", &ids [i]);
+ }
+ }
}
- CHECK_RC_BREAK (rc);
}
-
{
- ComPtr <IDVDImageCollection> coll;
- CHECK_RC_BREAK (virtualBox->COMGETTER(DVDImages) (coll.asOutParam()));
- ComPtr <IDVDImageEnumerator> enumerator;
- CHECK_RC_BREAK (coll->Enumerate (enumerator.asOutParam()));
- BOOL hasmore;
- while (SUCCEEDED (enumerator->HasMore (&hasmore)) && hasmore)
+ com::SafeIfaceArray <IDVDImage2> images;
+ CHECK_ERROR_BREAK (virtualBox,
+ COMGETTER(DVDImages) (ComSafeArrayAsOutParam (images)));
+
+ printf ("%u DVD images registered (images.isNull()=%d).\n",
+ images.size(), images.isNull());
+
+ for (size_t i = 0; i < images.size(); ++ i)
{
- ComPtr <IDVDImage> image;
- CHECK_RC_BREAK (enumerator->GetNext (image.asOutParam()));
+ Bstr loc;
+ CHECK_ERROR_BREAK (images [i], COMGETTER(Location) (loc.asOutParam()));
Guid id;
- CHECK_RC_BREAK (image->COMGETTER(Id) (id.asOutParam()));
- Bstr path;
- CHECK_RC_BREAK (image->COMGETTER(FilePath) (path.asOutParam()));
- printf ("CD/DVD Image: id={%s}, path={%ls}\n",
- id.toString().raw(), path.raw());
- Bstr mIDs;
- CHECK_RC_BREAK (
- virtualBox->GetDVDImageUsage (id, ResourceUsage_All,
- mIDs.asOutParam())
- );
- if (mIDs.isNull())
- printf (" not used\n");
+ CHECK_ERROR_BREAK (images [i], COMGETTER(Id) (id.asOutParam()));
+ MediaState_T state;
+ CHECK_ERROR_BREAK (images [i], COMGETTER(State) (&state));
+
+ printf (" images[%u]: '%ls'\n"
+ " UUID: {%Vuuid}\n"
+ " State: %s\n",
+ i, loc.raw(), id.raw(),
+ state == MediaState_NotCreated ? "Not Created" :
+ state == MediaState_Created ? "Created" :
+ state == MediaState_Inaccessible ? "Inaccessible" :
+ state == MediaState_LockedRead ? "Locked Read" :
+ state == MediaState_LockedWrite ? "Locked Write" :
+ "???");
+
+ if (state == MediaState_Inaccessible)
+ {
+ Bstr error;
+ CHECK_ERROR_BREAK (images [i],
+ COMGETTER(LastAccessError)(error.asOutParam()));
+ printf (" Access Error: %ls\n", error.raw());
+ }
+
+ /* get usage */
+
+ printf (" Used by VMs:\n");
+
+ com::SafeGUIDArray ids;
+ CHECK_ERROR_BREAK (images [i],
+ COMGETTER(MachineIds) (ComSafeArrayAsOutParam (ids)));
+ if (ids.size() == 0)
+ {
+ printf (" <not used>\n");
+ }
else
- printf (" used by VMs: {%ls}\n", mIDs.raw());
+ {
+ for (size_t j = 0; j < ids.size(); ++ j)
+ {
+ printf (" {%Vuuid}\n", &ids [i]);
+ }
+ }
}
- CHECK_RC_BREAK (rc);
}
}
while (FALSE);