diff options
author | Dan Williams <dcbw@redhat.com> | 2010-02-22 15:23:34 -0800 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-02-22 15:23:34 -0800 |
commit | 98ec1bdfea443c58e938a0adf435f396212cc092 (patch) | |
tree | 94f86aa2001acdaa179c40dd230f0acc8c6a9938 /libqcdm | |
parent | c0e227a16bb320790e0cd10683abb3262f87d04f (diff) |
qcdm: add testcases for QCDMResult objects
Diffstat (limited to 'libqcdm')
-rw-r--r-- | libqcdm/src/result.c | 2 | ||||
-rw-r--r-- | libqcdm/tests/Makefile.am | 2 | ||||
-rw-r--r-- | libqcdm/tests/test-qcdm-result.c | 71 | ||||
-rw-r--r-- | libqcdm/tests/test-qcdm-result.h | 26 | ||||
-rw-r--r-- | libqcdm/tests/test-qcdm.c | 4 |
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) { |