aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-02-22 15:23:34 -0800
committerDan Williams <dcbw@redhat.com>2010-02-22 15:23:34 -0800
commit98ec1bdfea443c58e938a0adf435f396212cc092 (patch)
tree94f86aa2001acdaa179c40dd230f0acc8c6a9938
parentc0e227a16bb320790e0cd10683abb3262f87d04f (diff)
qcdm: add testcases for QCDMResult objects
-rw-r--r--libqcdm/src/result.c2
-rw-r--r--libqcdm/tests/Makefile.am2
-rw-r--r--libqcdm/tests/test-qcdm-result.c71
-rw-r--r--libqcdm/tests/test-qcdm-result.h26
-rw-r--r--libqcdm/tests/test-qcdm.c4
5 files changed, 105 insertions, 0 deletions
diff --git a/libqcdm/src/result.c b/libqcdm/src/result.c
index 90ba5252..37898f39 100644
--- a/libqcdm/src/result.c
+++ b/libqcdm/src/result.c
@@ -42,6 +42,8 @@ qcdm_result_new (void)
{
QCDMResult *result;
+ g_type_init ();
+
result = g_malloc0 (sizeof (QCDMResult));
result->hash = g_hash_table_new_full (g_str_hash, g_str_equal,
NULL, gvalue_destroy);
diff --git a/libqcdm/tests/Makefile.am b/libqcdm/tests/Makefile.am
index 8f5e9ae1..3d1b7ba5 100644
--- a/libqcdm/tests/Makefile.am
+++ b/libqcdm/tests/Makefile.am
@@ -10,6 +10,8 @@ test_qcdm_SOURCES = \
test-qcdm-escaping.h \
test-qcdm-com.c \
test-qcdm-com.h \
+ test-qcdm-result.c \
+ test-qcdm-result.h \
test-qcdm.c
test_qcdm_CPPFLAGS = \
diff --git a/libqcdm/tests/test-qcdm-result.c b/libqcdm/tests/test-qcdm-result.c
new file mode 100644
index 00000000..87f264b0
--- /dev/null
+++ b/libqcdm/tests/test-qcdm-result.c
@@ -0,0 +1,71 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Copyright (C) 2010 Red Hat, Inc.
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation
+ *
+ * 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/>.
+ */
+
+#include <glib.h>
+#include <string.h>
+
+#include "test-qcdm-result.h"
+#include "result.h"
+#include "result-private.h"
+
+#define TEST_TAG "test"
+
+void
+test_result_string (void *f, void *data)
+{
+ const char *str = "foobarblahblahblah";
+ const char *tmp = NULL;
+ QCDMResult *result;
+
+ result = qcdm_result_new ();
+ qcdm_result_add_string (result, TEST_TAG, str);
+
+ qcdm_result_get_string (result, TEST_TAG, &tmp);
+ g_assert (tmp);
+ g_assert (strcmp (tmp, str) == 0);
+
+ qcdm_result_unref (result);
+}
+
+void
+test_result_uint32 (void *f, void *data)
+{
+ guint32 num = 0xDEADBEEF;
+ guint32 tmp = 0;
+ QCDMResult *result;
+
+ result = qcdm_result_new ();
+ qcdm_result_add_uint32 (result, TEST_TAG, num);
+
+ qcdm_result_get_uint32 (result, TEST_TAG, &tmp);
+ g_assert (tmp == num);
+}
+
+void
+test_result_uint8 (void *f, void *data)
+{
+ guint8 num = 0x1E;
+ guint8 tmp = 0;
+ QCDMResult *result;
+
+ result = qcdm_result_new ();
+ qcdm_result_add_uint8 (result, TEST_TAG, num);
+
+ qcdm_result_get_uint8 (result, TEST_TAG, &tmp);
+ g_assert (tmp == num);
+}
+
diff --git a/libqcdm/tests/test-qcdm-result.h b/libqcdm/tests/test-qcdm-result.h
new file mode 100644
index 00000000..20d6cec0
--- /dev/null
+++ b/libqcdm/tests/test-qcdm-result.h
@@ -0,0 +1,26 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Copyright (C) 2010 Red Hat, Inc.
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation
+ *
+ * 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/>.
+ */
+
+#ifndef TEST_QCDM_RESULT_H
+#define TEST_QCDM_RESULT_H
+
+void test_result_string (void *f, void *data);
+void test_result_uint32 (void *f, void *data);
+void test_result_uint8 (void *f, void *data);
+
+#endif /* TEST_QCDM_RESULT_H */
+
diff --git a/libqcdm/tests/test-qcdm.c b/libqcdm/tests/test-qcdm.c
index e6b0787a..65653f3c 100644
--- a/libqcdm/tests/test-qcdm.c
+++ b/libqcdm/tests/test-qcdm.c
@@ -21,6 +21,7 @@
#include "test-qcdm-crc.h"
#include "test-qcdm-escaping.h"
#include "test-qcdm-com.h"
+#include "test-qcdm-result.h"
typedef struct {
gpointer com_data;
@@ -81,6 +82,9 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_escape1, NULL));
g_test_suite_add (suite, TESTCASE (test_escape2, NULL));
g_test_suite_add (suite, TESTCASE (test_escape_unescape, NULL));
+ g_test_suite_add (suite, TESTCASE (test_result_string, NULL));
+ g_test_suite_add (suite, TESTCASE (test_result_uint32, NULL));
+ g_test_suite_add (suite, TESTCASE (test_result_uint8, NULL));
/* Live tests */
if (port) {