|
|
1.1 ! root 1: /* ! 2: * QString unit-tests. ! 3: * ! 4: * Copyright (C) 2009 Red Hat Inc. ! 5: * ! 6: * Authors: ! 7: * Luiz Capitulino <[email protected]> ! 8: * ! 9: * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. ! 10: * See the COPYING.LIB file in the top-level directory. ! 11: */ ! 12: #include <glib.h> ! 13: ! 14: #include "qstring.h" ! 15: #include "qemu-common.h" ! 16: ! 17: /* ! 18: * Public Interface test-cases ! 19: * ! 20: * (with some violations to access 'private' data) ! 21: */ ! 22: ! 23: static void qstring_from_str_test(void) ! 24: { ! 25: QString *qstring; ! 26: const char *str = "QEMU"; ! 27: ! 28: qstring = qstring_from_str(str); ! 29: g_assert(qstring != NULL); ! 30: g_assert(qstring->base.refcnt == 1); ! 31: g_assert(strcmp(str, qstring->string) == 0); ! 32: g_assert(qobject_type(QOBJECT(qstring)) == QTYPE_QSTRING); ! 33: ! 34: // destroy doesn't exit yet ! 35: g_free(qstring->string); ! 36: g_free(qstring); ! 37: } ! 38: ! 39: static void qstring_destroy_test(void) ! 40: { ! 41: QString *qstring = qstring_from_str("destroy test"); ! 42: QDECREF(qstring); ! 43: } ! 44: ! 45: static void qstring_get_str_test(void) ! 46: { ! 47: QString *qstring; ! 48: const char *ret_str; ! 49: const char *str = "QEMU/KVM"; ! 50: ! 51: qstring = qstring_from_str(str); ! 52: ret_str = qstring_get_str(qstring); ! 53: g_assert(strcmp(ret_str, str) == 0); ! 54: ! 55: QDECREF(qstring); ! 56: } ! 57: ! 58: static void qstring_append_chr_test(void) ! 59: { ! 60: int i; ! 61: QString *qstring; ! 62: const char *str = "qstring append char unit-test"; ! 63: ! 64: qstring = qstring_new(); ! 65: ! 66: for (i = 0; str[i]; i++) ! 67: qstring_append_chr(qstring, str[i]); ! 68: ! 69: g_assert(strcmp(str, qstring_get_str(qstring)) == 0); ! 70: QDECREF(qstring); ! 71: } ! 72: ! 73: static void qstring_from_substr_test(void) ! 74: { ! 75: QString *qs; ! 76: ! 77: qs = qstring_from_substr("virtualization", 3, 9); ! 78: g_assert(qs != NULL); ! 79: g_assert(strcmp(qstring_get_str(qs), "tualiza") == 0); ! 80: ! 81: QDECREF(qs); ! 82: } ! 83: ! 84: ! 85: static void qobject_to_qstring_test(void) ! 86: { ! 87: QString *qstring; ! 88: ! 89: qstring = qstring_from_str("foo"); ! 90: g_assert(qobject_to_qstring(QOBJECT(qstring)) == qstring); ! 91: ! 92: QDECREF(qstring); ! 93: } ! 94: ! 95: int main(int argc, char **argv) ! 96: { ! 97: g_test_init(&argc, &argv, NULL); ! 98: ! 99: g_test_add_func("/public/from_str", qstring_from_str_test); ! 100: g_test_add_func("/public/destroy", qstring_destroy_test); ! 101: g_test_add_func("/public/get_str", qstring_get_str_test); ! 102: g_test_add_func("/public/append_chr", qstring_append_chr_test); ! 103: g_test_add_func("/public/from_substr", qstring_from_substr_test); ! 104: g_test_add_func("/public/to_qstring", qobject_to_qstring_test); ! 105: ! 106: return g_test_run(); ! 107: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.