summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabiano Fidêncio <fabiano@fidencio.org>2019-01-22 20:28:20 +0100
committerFabiano Fidêncio <fidencio@redhat.com>2019-01-24 14:50:06 +0100
commit2c86124256467b1e4db9e5afce50c38bc243f3ed (patch)
tree8cb2c24f8f973f4bfc6f2d0252548515212ae506
parentc06bf702b4ad77c2b61dc284d8c990c60691082c (diff)
downloadlibosinfo-2c86124256467b1e4db9e5afce50c38bc243f3ed.tar.gz
test-os: Add basic test for resources
This test only ensures that libosinfo is able to properly load the resource info from an OS entry. Signed-off-by: Fabiano Fidêncio <fabiano@fidencio.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r--tests/dbdata/os/libosinfo.org/test-os-resources-basic.xml37
-rw-r--r--tests/test-os.c53
2 files changed, 90 insertions, 0 deletions
diff --git a/tests/dbdata/os/libosinfo.org/test-os-resources-basic.xml b/tests/dbdata/os/libosinfo.org/test-os-resources-basic.xml
new file mode 100644
index 0000000..65f6fb2
--- /dev/null
+++ b/tests/dbdata/os/libosinfo.org/test-os-resources-basic.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<libosinfo version="0.0.1">
+ <os id="http://libosinfo.org/test/os/resources/basic">
+ <short-id>resourcesbasic</short-id>
+ <name>Resources Basic</name>
+ <vendor>libosinfo.org</vendor>
+ <family>test</family>
+
+ <resources arch="all">
+ <minimum>
+ <n-cpus>1</n-cpus>
+ <cpu>1</cpu>
+ <ram>1</ram>
+ <storage>1</storage>
+ </minimum>
+ <recommended>
+ <n-cpus>2</n-cpus>
+ <cpu>2</cpu>
+ <ram>2</ram>
+ <storage>2</storage>
+ </recommended>
+ <maximum>
+ <n-cpus>3</n-cpus>
+ <cpu>3</cpu>
+ <ram>3</ram>
+ <storage>3</storage>
+ </maximum>
+ <network-install>
+ <n-cpus>4</n-cpus>
+ <cpu>4</cpu>
+ <ram>4</ram>
+ <storage>4</storage>
+ </network-install>
+ </resources>
+
+ </os>
+</libosinfo>
diff --git a/tests/test-os.c b/tests/test-os.c
index 1c13c56..f4e758d 100644
--- a/tests/test-os.c
+++ b/tests/test-os.c
@@ -218,6 +218,58 @@ test_device_driver(void)
}
+static void test_resources_basic(void)
+{
+ OsinfoLoader *loader = osinfo_loader_new();
+ OsinfoDb *db;
+ OsinfoOs *os;
+ OsinfoResourcesList *resources_list;
+ OsinfoResources *resources;
+ GError *error = NULL;
+
+ osinfo_loader_process_path(loader, SRCDIR "/tests/dbdata", &error);
+ g_assert_no_error(error);
+ db = g_object_ref(osinfo_loader_get_db(loader));
+ g_object_unref(loader);
+
+ os = osinfo_db_get_os(db, "http://libosinfo.org/test/os/resources/basic");
+
+ resources_list = osinfo_os_get_minimum_resources(os);
+ resources = OSINFO_RESOURCES(osinfo_list_get_nth(OSINFO_LIST(resources_list), 0));
+ g_assert_cmpint(osinfo_resources_get_n_cpus(resources), ==, 1);
+ g_assert_cmpint(osinfo_resources_get_cpu(resources), ==, 1);
+ g_assert_cmpint(osinfo_resources_get_ram(resources), ==, 1);
+ g_assert_cmpint(osinfo_resources_get_storage(resources), ==, 1);
+
+ g_clear_object(&resources_list);
+ resources_list = osinfo_os_get_recommended_resources(os);
+ resources = OSINFO_RESOURCES(osinfo_list_get_nth(OSINFO_LIST(resources_list), 0));
+ g_assert_cmpint(osinfo_resources_get_n_cpus(resources), ==, 2);
+ g_assert_cmpint(osinfo_resources_get_cpu(resources), ==, 2);
+ g_assert_cmpint(osinfo_resources_get_ram(resources), ==, 2);
+ g_assert_cmpint(osinfo_resources_get_storage(resources), ==, 2);
+
+ g_clear_object(&resources_list);
+ resources_list = osinfo_os_get_maximum_resources(os);
+ resources = OSINFO_RESOURCES(osinfo_list_get_nth(OSINFO_LIST(resources_list), 0));
+ g_assert_cmpint(osinfo_resources_get_n_cpus(resources), ==, 3);
+ g_assert_cmpint(osinfo_resources_get_cpu(resources), ==, 3);
+ g_assert_cmpint(osinfo_resources_get_ram(resources), ==, 3);
+ g_assert_cmpint(osinfo_resources_get_storage(resources), ==, 3);
+
+ g_clear_object(&resources_list);
+ resources_list = osinfo_os_get_network_install_resources(os);
+ resources = OSINFO_RESOURCES(osinfo_list_get_nth(OSINFO_LIST(resources_list), 0));
+ g_assert_cmpint(osinfo_resources_get_n_cpus(resources), ==, 4);
+ g_assert_cmpint(osinfo_resources_get_cpu(resources), ==, 4);
+ g_assert_cmpint(osinfo_resources_get_ram(resources), ==, 4);
+ g_assert_cmpint(osinfo_resources_get_storage(resources), ==, 4);
+
+ g_object_unref(resources_list);
+ g_object_unref(db);
+}
+
+
static void test_n_cpus(OsinfoResources *resources1, OsinfoResources *resources2)
{
gint resources1_cpus, resources2_cpus;
@@ -947,6 +999,7 @@ main(int argc, char *argv[])
test_devices_inheritance_basic);
g_test_add_func("/os/devices/inheritance/removal",
test_devices_inheritance_removal);
+ g_test_add_func("/os/resources/basic", test_resources_basic);
g_test_add_func("/os/resources/minimum_recommended_maximum",
test_resources_minimum_recommended_maximum);
g_test_add_func("/os/resources/uniqueness", test_resources_uniqueness);