~ubuntu-branches/ubuntu/wily/qemu-kvm-spice/wily

« back to all changes in this revision

Viewing changes to check-qint.c

  • Committer: Bazaar Package Importer
  • Author(s): Serge Hallyn
  • Date: 2011-10-19 10:44:56 UTC
  • Revision ID: james.westby@ubuntu.com-20111019104456-xgvskumk3sxi97f4
Tags: upstream-0.15.0+noroms
ImportĀ upstreamĀ versionĀ 0.15.0+noroms

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * QInt unit-tests.
 
3
 *
 
4
 * Copyright (C) 2009 Red Hat Inc.
 
5
 *
 
6
 * Authors:
 
7
 *  Luiz Capitulino <lcapitulino@redhat.com>
 
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 <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
}