Statistics
| Branch: | Revision:

root / check-qint.c @ a74cdab4

History | View | Annotate | Download (2.1 kB)

1 33837ba6 Luiz Capitulino
/*
2 33837ba6 Luiz Capitulino
 * QInt unit-tests.
3 33837ba6 Luiz Capitulino
 *
4 33837ba6 Luiz Capitulino
 * Copyright (C) 2009 Red Hat Inc.
5 33837ba6 Luiz Capitulino
 *
6 33837ba6 Luiz Capitulino
 * Authors:
7 33837ba6 Luiz Capitulino
 *  Luiz Capitulino <lcapitulino@redhat.com>
8 41836a9f Luiz Capitulino
 *
9 41836a9f Luiz Capitulino
 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
10 41836a9f Luiz Capitulino
 * See the COPYING.LIB file in the top-level directory.
11 33837ba6 Luiz Capitulino
 */
12 33837ba6 Luiz Capitulino
#include <check.h>
13 33837ba6 Luiz Capitulino
14 33837ba6 Luiz Capitulino
#include "qint.h"
15 33837ba6 Luiz Capitulino
#include "qemu-common.h"
16 33837ba6 Luiz Capitulino
17 33837ba6 Luiz Capitulino
/*
18 33837ba6 Luiz Capitulino
 * Public Interface test-cases
19 33837ba6 Luiz Capitulino
 *
20 33837ba6 Luiz Capitulino
 * (with some violations to access 'private' data)
21 33837ba6 Luiz Capitulino
 */
22 33837ba6 Luiz Capitulino
23 33837ba6 Luiz Capitulino
START_TEST(qint_from_int_test)
24 33837ba6 Luiz Capitulino
{
25 33837ba6 Luiz Capitulino
    QInt *qi;
26 33837ba6 Luiz Capitulino
    const int value = -42;
27 33837ba6 Luiz Capitulino
28 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
29 33837ba6 Luiz Capitulino
    fail_unless(qi != NULL);
30 33837ba6 Luiz Capitulino
    fail_unless(qi->value == value);
31 33837ba6 Luiz Capitulino
    fail_unless(qi->base.refcnt == 1);
32 33837ba6 Luiz Capitulino
    fail_unless(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
33 33837ba6 Luiz Capitulino
34 33837ba6 Luiz Capitulino
    // destroy doesn't exit yet
35 33837ba6 Luiz Capitulino
    qemu_free(qi);
36 33837ba6 Luiz Capitulino
}
37 33837ba6 Luiz Capitulino
END_TEST
38 33837ba6 Luiz Capitulino
39 33837ba6 Luiz Capitulino
START_TEST(qint_destroy_test)
40 33837ba6 Luiz Capitulino
{
41 33837ba6 Luiz Capitulino
    QInt *qi = qint_from_int(0);
42 33837ba6 Luiz Capitulino
    QDECREF(qi);
43 33837ba6 Luiz Capitulino
}
44 33837ba6 Luiz Capitulino
END_TEST
45 33837ba6 Luiz Capitulino
46 33837ba6 Luiz Capitulino
START_TEST(qint_from_int64_test)
47 33837ba6 Luiz Capitulino
{
48 33837ba6 Luiz Capitulino
    QInt *qi;
49 02c068c3 Pierre Riteau
    const int64_t value = 0x1234567890abcdefLL;
50 33837ba6 Luiz Capitulino
51 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
52 02c068c3 Pierre Riteau
    fail_unless((int64_t) qi->value == value);
53 33837ba6 Luiz Capitulino
54 33837ba6 Luiz Capitulino
    QDECREF(qi);
55 33837ba6 Luiz Capitulino
}
56 33837ba6 Luiz Capitulino
END_TEST
57 33837ba6 Luiz Capitulino
58 33837ba6 Luiz Capitulino
START_TEST(qint_get_int_test)
59 33837ba6 Luiz Capitulino
{
60 33837ba6 Luiz Capitulino
    QInt *qi;
61 33837ba6 Luiz Capitulino
    const int value = 123456;
62 33837ba6 Luiz Capitulino
63 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
64 33837ba6 Luiz Capitulino
    fail_unless(qint_get_int(qi) == value);
65 33837ba6 Luiz Capitulino
66 33837ba6 Luiz Capitulino
    QDECREF(qi);
67 33837ba6 Luiz Capitulino
}
68 33837ba6 Luiz Capitulino
END_TEST
69 33837ba6 Luiz Capitulino
70 33837ba6 Luiz Capitulino
START_TEST(qobject_to_qint_test)
71 33837ba6 Luiz Capitulino
{
72 33837ba6 Luiz Capitulino
    QInt *qi;
73 33837ba6 Luiz Capitulino
74 33837ba6 Luiz Capitulino
    qi = qint_from_int(0);
75 33837ba6 Luiz Capitulino
    fail_unless(qobject_to_qint(QOBJECT(qi)) == qi);
76 33837ba6 Luiz Capitulino
77 33837ba6 Luiz Capitulino
    QDECREF(qi);
78 33837ba6 Luiz Capitulino
}
79 33837ba6 Luiz Capitulino
END_TEST
80 33837ba6 Luiz Capitulino
81 33837ba6 Luiz Capitulino
static Suite *qint_suite(void)
82 33837ba6 Luiz Capitulino
{
83 33837ba6 Luiz Capitulino
    Suite *s;
84 33837ba6 Luiz Capitulino
    TCase *qint_public_tcase;
85 33837ba6 Luiz Capitulino
86 33837ba6 Luiz Capitulino
    s = suite_create("QInt test-suite");
87 33837ba6 Luiz Capitulino
88 33837ba6 Luiz Capitulino
    qint_public_tcase = tcase_create("Public Interface");
89 33837ba6 Luiz Capitulino
    suite_add_tcase(s, qint_public_tcase);
90 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_from_int_test);
91 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_destroy_test);
92 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_from_int64_test);
93 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_get_int_test);
94 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qobject_to_qint_test);
95 33837ba6 Luiz Capitulino
96 33837ba6 Luiz Capitulino
    return s;
97 33837ba6 Luiz Capitulino
}
98 33837ba6 Luiz Capitulino
99 33837ba6 Luiz Capitulino
int main(void)
100 33837ba6 Luiz Capitulino
{
101 33837ba6 Luiz Capitulino
        int nf;
102 33837ba6 Luiz Capitulino
        Suite *s;
103 33837ba6 Luiz Capitulino
        SRunner *sr;
104 33837ba6 Luiz Capitulino
105 33837ba6 Luiz Capitulino
        s = qint_suite();
106 33837ba6 Luiz Capitulino
        sr = srunner_create(s);
107 33837ba6 Luiz Capitulino
108 33837ba6 Luiz Capitulino
        srunner_run_all(sr, CK_NORMAL);
109 33837ba6 Luiz Capitulino
        nf = srunner_ntests_failed(sr);
110 33837ba6 Luiz Capitulino
        srunner_free(sr);
111 33837ba6 Luiz Capitulino
112 33837ba6 Luiz Capitulino
        return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
113 33837ba6 Luiz Capitulino
}