Annotation of qemu/check-qstring.c, revision 1.1.1.3

1.1       root        1: /*
                      2:  * QString unit-tests.
                      3:  *
                      4:  * Copyright (C) 2009 Red Hat Inc.
                      5:  *
                      6:  * Authors:
                      7:  *  Luiz Capitulino <lcapitulino@redhat.com>
1.1.1.2   root        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.
1.1       root       11:  */
                     12: #include <check.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: START_TEST(qstring_from_str_test)
                     24: {
                     25:     QString *qstring;
                     26:     const char *str = "QEMU";
                     27: 
                     28:     qstring = qstring_from_str(str);
                     29:     fail_unless(qstring != NULL);
                     30:     fail_unless(qstring->base.refcnt == 1);
                     31:     fail_unless(strcmp(str, qstring->string) == 0);
                     32:     fail_unless(qobject_type(QOBJECT(qstring)) == QTYPE_QSTRING);
                     33: 
                     34:     // destroy doesn't exit yet
1.1.1.3 ! root       35:     g_free(qstring->string);
        !            36:     g_free(qstring);
1.1       root       37: }
                     38: END_TEST
                     39: 
                     40: START_TEST(qstring_destroy_test)
                     41: {
                     42:     QString *qstring = qstring_from_str("destroy test");
                     43:     QDECREF(qstring);
                     44: }
                     45: END_TEST
                     46: 
                     47: START_TEST(qstring_get_str_test)
                     48: {
                     49:     QString *qstring;
                     50:     const char *ret_str;
                     51:     const char *str = "QEMU/KVM";
                     52: 
                     53:     qstring = qstring_from_str(str);
                     54:     ret_str = qstring_get_str(qstring);
                     55:     fail_unless(strcmp(ret_str, str) == 0);
                     56: 
                     57:     QDECREF(qstring);
                     58: }
                     59: END_TEST
                     60: 
                     61: START_TEST(qstring_append_chr_test)
                     62: {
                     63:     int i;
                     64:     QString *qstring;
                     65:     const char *str = "qstring append char unit-test";
                     66: 
                     67:     qstring = qstring_new();
                     68: 
                     69:     for (i = 0; str[i]; i++)
                     70:         qstring_append_chr(qstring, str[i]);
                     71: 
                     72:     fail_unless(strcmp(str, qstring_get_str(qstring)) == 0);
                     73:     QDECREF(qstring);
                     74: }
                     75: END_TEST
                     76: 
                     77: START_TEST(qstring_from_substr_test)
                     78: {
                     79:     QString *qs;
                     80: 
                     81:     qs = qstring_from_substr("virtualization", 3, 9);
                     82:     fail_unless(qs != NULL);
                     83:     fail_unless(strcmp(qstring_get_str(qs), "tualiza") == 0);
                     84: 
                     85:     QDECREF(qs);
                     86: }
                     87: END_TEST
                     88: 
                     89: 
                     90: START_TEST(qobject_to_qstring_test)
                     91: {
                     92:     QString *qstring;
                     93: 
                     94:     qstring = qstring_from_str("foo");
                     95:     fail_unless(qobject_to_qstring(QOBJECT(qstring)) == qstring);
                     96: 
                     97:     QDECREF(qstring);
                     98: }
                     99: END_TEST
                    100: 
                    101: static Suite *qstring_suite(void)
                    102: {
                    103:     Suite *s;
                    104:     TCase *qstring_public_tcase;
                    105: 
                    106:     s = suite_create("QString test-suite");
                    107: 
                    108:     qstring_public_tcase = tcase_create("Public Interface");
                    109:     suite_add_tcase(s, qstring_public_tcase);
                    110:     tcase_add_test(qstring_public_tcase, qstring_from_str_test);
                    111:     tcase_add_test(qstring_public_tcase, qstring_destroy_test);
                    112:     tcase_add_test(qstring_public_tcase, qstring_get_str_test);
                    113:     tcase_add_test(qstring_public_tcase, qstring_append_chr_test);
                    114:     tcase_add_test(qstring_public_tcase, qstring_from_substr_test);
                    115:     tcase_add_test(qstring_public_tcase, qobject_to_qstring_test);
                    116: 
                    117:     return s;
                    118: }
                    119: 
                    120: int main(void)
                    121: {
                    122:        int nf;
                    123:        Suite *s;
                    124:        SRunner *sr;
                    125: 
                    126:        s = qstring_suite();
                    127:        sr = srunner_create(s);
                    128: 
                    129:        srunner_run_all(sr, CK_NORMAL);
                    130:        nf = srunner_ntests_failed(sr);
                    131:        srunner_free(sr);
                    132: 
                    133:        return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
                    134: }

unix.superglobalmegacorp.com