Annotation of qemu/check-qint.c, revision 1.1.1.2

1.1       root        1: /*
                      2:  * QInt 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 "qint.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(qint_from_int_test)
                     24: {
                     25:     QInt *qi;
                     26:     const int value = -42;
                     27: 
                     28:     qi = qint_from_int(value);
                     29:     fail_unless(qi != NULL);
                     30:     fail_unless(qi->value == value);
                     31:     fail_unless(qi->base.refcnt == 1);
                     32:     fail_unless(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
                     33: 
                     34:     // destroy doesn't exit yet
                     35:     qemu_free(qi);
                     36: }
                     37: END_TEST
                     38: 
                     39: START_TEST(qint_destroy_test)
                     40: {
                     41:     QInt *qi = qint_from_int(0);
                     42:     QDECREF(qi);
                     43: }
                     44: END_TEST
                     45: 
                     46: START_TEST(qint_from_int64_test)
                     47: {
                     48:     QInt *qi;
                     49:     const int64_t value = 0x1234567890abcdefLL;
                     50: 
                     51:     qi = qint_from_int(value);
                     52:     fail_unless((int64_t) qi->value == value);
                     53: 
                     54:     QDECREF(qi);
                     55: }
                     56: END_TEST
                     57: 
                     58: START_TEST(qint_get_int_test)
                     59: {
                     60:     QInt *qi;
                     61:     const int value = 123456;
                     62: 
                     63:     qi = qint_from_int(value);
                     64:     fail_unless(qint_get_int(qi) == value);
                     65: 
                     66:     QDECREF(qi);
                     67: }
                     68: END_TEST
                     69: 
                     70: START_TEST(qobject_to_qint_test)
                     71: {
                     72:     QInt *qi;
                     73: 
                     74:     qi = qint_from_int(0);
                     75:     fail_unless(qobject_to_qint(QOBJECT(qi)) == qi);
                     76: 
                     77:     QDECREF(qi);
                     78: }
                     79: END_TEST
                     80: 
                     81: static Suite *qint_suite(void)
                     82: {
                     83:     Suite *s;
                     84:     TCase *qint_public_tcase;
                     85: 
                     86:     s = suite_create("QInt test-suite");
                     87: 
                     88:     qint_public_tcase = tcase_create("Public Interface");
                     89:     suite_add_tcase(s, qint_public_tcase);
                     90:     tcase_add_test(qint_public_tcase, qint_from_int_test);
                     91:     tcase_add_test(qint_public_tcase, qint_destroy_test);
                     92:     tcase_add_test(qint_public_tcase, qint_from_int64_test);
                     93:     tcase_add_test(qint_public_tcase, qint_get_int_test);
                     94:     tcase_add_test(qint_public_tcase, qobject_to_qint_test);
                     95: 
                     96:     return s;
                     97: }
                     98: 
                     99: int main(void)
                    100: {
                    101:        int nf;
                    102:        Suite *s;
                    103:        SRunner *sr;
                    104: 
                    105:        s = qint_suite();
                    106:        sr = srunner_create(s);
                    107: 
                    108:        srunner_run_all(sr, CK_NORMAL);
                    109:        nf = srunner_ntests_failed(sr);
                    110:        srunner_free(sr);
                    111: 
                    112:        return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
                    113: }

unix.superglobalmegacorp.com