Statistics
| Branch: | Revision:

root / check-qint.c @ f8d3d128

History | View | Annotate | Download (1.7 kB)

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 <glib.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
static void qint_from_int_test(void)
24
{
25
    QInt *qi;
26
    const int value = -42;
27

    
28
    qi = qint_from_int(value);
29
    g_assert(qi != NULL);
30
    g_assert(qi->value == value);
31
    g_assert(qi->base.refcnt == 1);
32
    g_assert(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
33

    
34
    // destroy doesn't exit yet
35
    g_free(qi);
36
}
37

    
38
static void qint_destroy_test(void)
39
{
40
    QInt *qi = qint_from_int(0);
41
    QDECREF(qi);
42
}
43

    
44
static void qint_from_int64_test(void)
45
{
46
    QInt *qi;
47
    const int64_t value = 0x1234567890abcdefLL;
48

    
49
    qi = qint_from_int(value);
50
    g_assert((int64_t) qi->value == value);
51

    
52
    QDECREF(qi);
53
}
54

    
55
static void qint_get_int_test(void)
56
{
57
    QInt *qi;
58
    const int value = 123456;
59

    
60
    qi = qint_from_int(value);
61
    g_assert(qint_get_int(qi) == value);
62

    
63
    QDECREF(qi);
64
}
65

    
66
static void qobject_to_qint_test(void)
67
{
68
    QInt *qi;
69

    
70
    qi = qint_from_int(0);
71
    g_assert(qobject_to_qint(QOBJECT(qi)) == qi);
72

    
73
    QDECREF(qi);
74
}
75

    
76
int main(int argc, char **argv)
77
{
78
    g_test_init(&argc, &argv, NULL);
79

    
80
    g_test_add_func("/public/from_int", qint_from_int_test);
81
    g_test_add_func("/public/destroy", qint_destroy_test);
82
    g_test_add_func("/public/from_int64", qint_from_int64_test);
83
    g_test_add_func("/public/get_int", qint_get_int_test);
84
    g_test_add_func("/public/to_qint", qobject_to_qint_test);
85

    
86
    return g_test_run();
87
}