Statistics
| Branch: | Revision:

root / check-qint.c @ aa924ae7

History | View | Annotate | Download (2 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 33837ba6 Luiz Capitulino
 */
9 33837ba6 Luiz Capitulino
#include <check.h>
10 33837ba6 Luiz Capitulino
11 33837ba6 Luiz Capitulino
#include "qint.h"
12 33837ba6 Luiz Capitulino
#include "qemu-common.h"
13 33837ba6 Luiz Capitulino
14 33837ba6 Luiz Capitulino
/*
15 33837ba6 Luiz Capitulino
 * Public Interface test-cases
16 33837ba6 Luiz Capitulino
 *
17 33837ba6 Luiz Capitulino
 * (with some violations to access 'private' data)
18 33837ba6 Luiz Capitulino
 */
19 33837ba6 Luiz Capitulino
20 33837ba6 Luiz Capitulino
START_TEST(qint_from_int_test)
21 33837ba6 Luiz Capitulino
{
22 33837ba6 Luiz Capitulino
    QInt *qi;
23 33837ba6 Luiz Capitulino
    const int value = -42;
24 33837ba6 Luiz Capitulino
25 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
26 33837ba6 Luiz Capitulino
    fail_unless(qi != NULL);
27 33837ba6 Luiz Capitulino
    fail_unless(qi->value == value);
28 33837ba6 Luiz Capitulino
    fail_unless(qi->base.refcnt == 1);
29 33837ba6 Luiz Capitulino
    fail_unless(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
30 33837ba6 Luiz Capitulino
31 33837ba6 Luiz Capitulino
    // destroy doesn't exit yet
32 33837ba6 Luiz Capitulino
    qemu_free(qi);
33 33837ba6 Luiz Capitulino
}
34 33837ba6 Luiz Capitulino
END_TEST
35 33837ba6 Luiz Capitulino
36 33837ba6 Luiz Capitulino
START_TEST(qint_destroy_test)
37 33837ba6 Luiz Capitulino
{
38 33837ba6 Luiz Capitulino
    QInt *qi = qint_from_int(0);
39 33837ba6 Luiz Capitulino
    QDECREF(qi);
40 33837ba6 Luiz Capitulino
}
41 33837ba6 Luiz Capitulino
END_TEST
42 33837ba6 Luiz Capitulino
43 33837ba6 Luiz Capitulino
START_TEST(qint_from_int64_test)
44 33837ba6 Luiz Capitulino
{
45 33837ba6 Luiz Capitulino
    QInt *qi;
46 02c068c3 Pierre Riteau
    const int64_t value = 0x1234567890abcdefLL;
47 33837ba6 Luiz Capitulino
48 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
49 02c068c3 Pierre Riteau
    fail_unless((int64_t) qi->value == value);
50 33837ba6 Luiz Capitulino
51 33837ba6 Luiz Capitulino
    QDECREF(qi);
52 33837ba6 Luiz Capitulino
}
53 33837ba6 Luiz Capitulino
END_TEST
54 33837ba6 Luiz Capitulino
55 33837ba6 Luiz Capitulino
START_TEST(qint_get_int_test)
56 33837ba6 Luiz Capitulino
{
57 33837ba6 Luiz Capitulino
    QInt *qi;
58 33837ba6 Luiz Capitulino
    const int value = 123456;
59 33837ba6 Luiz Capitulino
60 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
61 33837ba6 Luiz Capitulino
    fail_unless(qint_get_int(qi) == value);
62 33837ba6 Luiz Capitulino
63 33837ba6 Luiz Capitulino
    QDECREF(qi);
64 33837ba6 Luiz Capitulino
}
65 33837ba6 Luiz Capitulino
END_TEST
66 33837ba6 Luiz Capitulino
67 33837ba6 Luiz Capitulino
START_TEST(qobject_to_qint_test)
68 33837ba6 Luiz Capitulino
{
69 33837ba6 Luiz Capitulino
    QInt *qi;
70 33837ba6 Luiz Capitulino
71 33837ba6 Luiz Capitulino
    qi = qint_from_int(0);
72 33837ba6 Luiz Capitulino
    fail_unless(qobject_to_qint(QOBJECT(qi)) == qi);
73 33837ba6 Luiz Capitulino
74 33837ba6 Luiz Capitulino
    QDECREF(qi);
75 33837ba6 Luiz Capitulino
}
76 33837ba6 Luiz Capitulino
END_TEST
77 33837ba6 Luiz Capitulino
78 33837ba6 Luiz Capitulino
static Suite *qint_suite(void)
79 33837ba6 Luiz Capitulino
{
80 33837ba6 Luiz Capitulino
    Suite *s;
81 33837ba6 Luiz Capitulino
    TCase *qint_public_tcase;
82 33837ba6 Luiz Capitulino
83 33837ba6 Luiz Capitulino
    s = suite_create("QInt test-suite");
84 33837ba6 Luiz Capitulino
85 33837ba6 Luiz Capitulino
    qint_public_tcase = tcase_create("Public Interface");
86 33837ba6 Luiz Capitulino
    suite_add_tcase(s, qint_public_tcase);
87 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_from_int_test);
88 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_destroy_test);
89 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_from_int64_test);
90 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qint_get_int_test);
91 33837ba6 Luiz Capitulino
    tcase_add_test(qint_public_tcase, qobject_to_qint_test);
92 33837ba6 Luiz Capitulino
93 33837ba6 Luiz Capitulino
    return s;
94 33837ba6 Luiz Capitulino
}
95 33837ba6 Luiz Capitulino
96 33837ba6 Luiz Capitulino
int main(void)
97 33837ba6 Luiz Capitulino
{
98 33837ba6 Luiz Capitulino
        int nf;
99 33837ba6 Luiz Capitulino
        Suite *s;
100 33837ba6 Luiz Capitulino
        SRunner *sr;
101 33837ba6 Luiz Capitulino
102 33837ba6 Luiz Capitulino
        s = qint_suite();
103 33837ba6 Luiz Capitulino
        sr = srunner_create(s);
104 33837ba6 Luiz Capitulino
105 33837ba6 Luiz Capitulino
        srunner_run_all(sr, CK_NORMAL);
106 33837ba6 Luiz Capitulino
        nf = srunner_ntests_failed(sr);
107 33837ba6 Luiz Capitulino
        srunner_free(sr);
108 33837ba6 Luiz Capitulino
109 33837ba6 Luiz Capitulino
        return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
110 33837ba6 Luiz Capitulino
}