[Libosinfo] [libosinfo PATCH 07/31] tests: Add basic tests for OsinfoLink
Fabiano Fidêncio
fidencio at redhat.com
Fri Nov 23 10:14:56 UTC 2018
Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
.gitignore | 1 +
tests/Makefile.am | 5 +++
tests/test-link.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 110 insertions(+)
create mode 100644 tests/test-link.c
diff --git a/.gitignore b/.gitignore
index 1c31793..47f15db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,6 +50,7 @@ tests/test-device
tests/test-os
tests/test-entity
tests/test-hypervisor
+tests/test-link
tests/test-list
tests/test-db
tests/test-devicelist
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 303a57a..3f7f14c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,6 +4,7 @@ EXTRA_DIST = isodata dbdata
check_PROGRAMS = \
test-entity \
test-device \
+ test-link \
test-list \
test-devicelist \
test-devicelinklist \
@@ -80,6 +81,10 @@ test_platform_LDADD = $(COMMON_LDADD)
test_platform_CFLAGS = $(COMMON_CFLAGS)
test_platform_SOURCES = test-platform.c
+test_link_LDADD = $(COMMON_LDADD)
+test_link_CFLAGS = $(COMMON_CFLAGS)
+test_link_SOURCES = test-link.c
+
test_list_LDADD = $(COMMON_LDADD)
test_list_CFLAGS = $(COMMON_CFLAGS)
test_list_SOURCES = test-list.c
diff --git a/tests/test-link.c b/tests/test-link.c
new file mode 100644
index 0000000..601c776
--- /dev/null
+++ b/tests/test-link.c
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2018 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ * Authors:
+ * Fabiano Fidêncio <fidencio at redhat.com>
+ */
+
+#include <config.h>
+
+#include <osinfo/osinfo.h>
+
+/* OsinfoEntity is abstract, so we need to trivially subclass it to test it */
+typedef struct _OsinfoDummy OsinfoDummy;
+typedef struct _OsinfoDummyClass OsinfoDummyClass;
+
+struct _OsinfoDummy
+{
+ OsinfoEntity parent_instance;
+};
+
+struct _OsinfoDummyClass
+{
+ OsinfoEntityClass parent_class;
+};
+
+GType osinfo_dummy_get_type(void);
+
+G_DEFINE_TYPE(OsinfoDummy, osinfo_dummy, OSINFO_TYPE_ENTITY);
+
+static void osinfo_dummy_class_init(OsinfoDummyClass *klass G_GNUC_UNUSED){}
+static void osinfo_dummy_init(OsinfoDummy *self G_GNUC_UNUSED) {}
+
+
+typedef struct _OsinfoDummyLink OsinfoDummyLink;
+typedef struct _OsinfoDummyLinkClass OsinfoDummyLinkClass;
+
+struct _OsinfoDummyLink
+{
+ OsinfoLink parent_instance;
+};
+
+struct _OsinfoDummyLinkClass
+{
+ OsinfoLinkClass parent_class;
+};
+
+GType osinfo_dummy_link_get_type(void);
+
+G_DEFINE_TYPE(OsinfoDummyLink, osinfo_dummy_link, OSINFO_TYPE_LINK);
+
+static void osinfo_dummy_link_class_init(OsinfoDummyLinkClass *klass G_GNUC_UNUSED){}
+static void osinfo_dummy_link_init(OsinfoDummyLink *self G_GNUC_UNUSED) {}
+
+
+static void
+test_basic(void)
+{
+ OsinfoEntity *ent = g_object_new(osinfo_dummy_get_type(), "id", "wibble", NULL);
+ OsinfoDummyLink *link = g_object_new(osinfo_dummy_link_get_type(),
+ "id", osinfo_entity_get_id(ent),
+ "target", ent,
+ NULL);
+
+ g_assert_true(osinfo_link_get_target(OSINFO_LINK(link)) == ent);
+
+ g_object_unref(link);
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ g_test_init(&argc, &argv, NULL);
+
+ g_test_add_func("/link/basic", test_basic);
+
+ /* Upfront so we don't confuse valgrind */
+ osinfo_dummy_get_type();
+ osinfo_dummy_link_get_type();
+ osinfo_entity_get_type();
+ osinfo_link_get_type();
+
+ return g_test_run();
+}
+/*
+ * Local variables:
+ * indent-tabs-mode: nil
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * End:
+ */
--
2.19.1
More information about the Libosinfo
mailing list