Statistics
| Branch: | Revision:

root / check-qint.c @ fb5590f7

History | View | Annotate | Download (1.7 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 65cdadd2 Anthony Liguori
#include <glib.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 65cdadd2 Anthony Liguori
static void qint_from_int_test(void)
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 65cdadd2 Anthony Liguori
    g_assert(qi != NULL);
30 65cdadd2 Anthony Liguori
    g_assert(qi->value == value);
31 65cdadd2 Anthony Liguori
    g_assert(qi->base.refcnt == 1);
32 65cdadd2 Anthony Liguori
    g_assert(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
33 33837ba6 Luiz Capitulino
34 33837ba6 Luiz Capitulino
    // destroy doesn't exit yet
35 7267c094 Anthony Liguori
    g_free(qi);
36 33837ba6 Luiz Capitulino
}
37 33837ba6 Luiz Capitulino
38 65cdadd2 Anthony Liguori
static void qint_destroy_test(void)
39 33837ba6 Luiz Capitulino
{
40 33837ba6 Luiz Capitulino
    QInt *qi = qint_from_int(0);
41 33837ba6 Luiz Capitulino
    QDECREF(qi);
42 33837ba6 Luiz Capitulino
}
43 33837ba6 Luiz Capitulino
44 65cdadd2 Anthony Liguori
static void qint_from_int64_test(void)
45 33837ba6 Luiz Capitulino
{
46 33837ba6 Luiz Capitulino
    QInt *qi;
47 02c068c3 Pierre Riteau
    const int64_t value = 0x1234567890abcdefLL;
48 33837ba6 Luiz Capitulino
49 33837ba6 Luiz Capitulino
    qi = qint_from_int(value);
50 65cdadd2 Anthony Liguori
    g_assert((int64_t) qi->value == value);
51 33837ba6 Luiz Capitulino
52 33837ba6 Luiz Capitulino
    QDECREF(qi);
53 33837ba6 Luiz Capitulino
}
54 33837ba6 Luiz Capitulino
55 65cdadd2 Anthony Liguori
static void qint_get_int_test(void)
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 65cdadd2 Anthony Liguori
    g_assert(qint_get_int(qi) == value);
62 33837ba6 Luiz Capitulino
63 33837ba6 Luiz Capitulino
    QDECREF(qi);
64 33837ba6 Luiz Capitulino
}
65 33837ba6 Luiz Capitulino
66 65cdadd2 Anthony Liguori
static void qobject_to_qint_test(void)
67 33837ba6 Luiz Capitulino
{
68 33837ba6 Luiz Capitulino
    QInt *qi;
69 33837ba6 Luiz Capitulino
70 33837ba6 Luiz Capitulino
    qi = qint_from_int(0);
71 65cdadd2 Anthony Liguori
    g_assert(qobject_to_qint(QOBJECT(qi)) == qi);
72 33837ba6 Luiz Capitulino
73 33837ba6 Luiz Capitulino
    QDECREF(qi);
74 33837ba6 Luiz Capitulino
}
75 33837ba6 Luiz Capitulino
76 65cdadd2 Anthony Liguori
int main(int argc, char **argv)
77 33837ba6 Luiz Capitulino
{
78 65cdadd2 Anthony Liguori
    g_test_init(&argc, &argv, NULL);
79 33837ba6 Luiz Capitulino
80 65cdadd2 Anthony Liguori
    g_test_add_func("/public/from_int", qint_from_int_test);
81 65cdadd2 Anthony Liguori
    g_test_add_func("/public/destroy", qint_destroy_test);
82 65cdadd2 Anthony Liguori
    g_test_add_func("/public/from_int64", qint_from_int64_test);
83 65cdadd2 Anthony Liguori
    g_test_add_func("/public/get_int", qint_get_int_test);
84 65cdadd2 Anthony Liguori
    g_test_add_func("/public/to_qint", qobject_to_qint_test);
85 33837ba6 Luiz Capitulino
86 65cdadd2 Anthony Liguori
    return g_test_run();
87 33837ba6 Luiz Capitulino
}