15de65a07SLuiz Capitulino /*
25de65a07SLuiz Capitulino * QString unit-tests.
35de65a07SLuiz Capitulino *
45de65a07SLuiz Capitulino * Copyright (C) 2009 Red Hat Inc.
55de65a07SLuiz Capitulino *
65de65a07SLuiz Capitulino * Authors:
75de65a07SLuiz Capitulino * Luiz Capitulino <lcapitulino@redhat.com>
841836a9fSLuiz Capitulino *
941836a9fSLuiz Capitulino * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
1041836a9fSLuiz Capitulino * See the COPYING.LIB file in the top-level directory.
115de65a07SLuiz Capitulino */
12681c28a3SPeter Maydell #include "qemu/osdep.h"
135de65a07SLuiz Capitulino
14*407bc4bfSDaniel P. Berrangé #include "qobject/qstring.h"
155de65a07SLuiz Capitulino
165de65a07SLuiz Capitulino /*
175de65a07SLuiz Capitulino * Public Interface test-cases
185de65a07SLuiz Capitulino *
195de65a07SLuiz Capitulino * (with some violations to access 'private' data)
205de65a07SLuiz Capitulino */
215de65a07SLuiz Capitulino
qstring_from_str_test(void)220ac7cc2aSAnthony Liguori static void qstring_from_str_test(void)
235de65a07SLuiz Capitulino {
245de65a07SLuiz Capitulino QString *qstring;
255de65a07SLuiz Capitulino const char *str = "QEMU";
265de65a07SLuiz Capitulino
275de65a07SLuiz Capitulino qstring = qstring_from_str(str);
280ac7cc2aSAnthony Liguori g_assert(qstring != NULL);
290ac7cc2aSAnthony Liguori g_assert(qstring->base.refcnt == 1);
300ac7cc2aSAnthony Liguori g_assert(strcmp(str, qstring->string) == 0);
310ac7cc2aSAnthony Liguori g_assert(qobject_type(QOBJECT(qstring)) == QTYPE_QSTRING);
325de65a07SLuiz Capitulino
33cb3e7f08SMarc-André Lureau qobject_unref(qstring);
345de65a07SLuiz Capitulino }
355de65a07SLuiz Capitulino
qstring_get_str_test(void)360ac7cc2aSAnthony Liguori static void qstring_get_str_test(void)
375de65a07SLuiz Capitulino {
385de65a07SLuiz Capitulino QString *qstring;
395de65a07SLuiz Capitulino const char *ret_str;
405de65a07SLuiz Capitulino const char *str = "QEMU/KVM";
415de65a07SLuiz Capitulino
425de65a07SLuiz Capitulino qstring = qstring_from_str(str);
435de65a07SLuiz Capitulino ret_str = qstring_get_str(qstring);
440ac7cc2aSAnthony Liguori g_assert(strcmp(ret_str, str) == 0);
455de65a07SLuiz Capitulino
46cb3e7f08SMarc-André Lureau qobject_unref(qstring);
475de65a07SLuiz Capitulino }
485de65a07SLuiz Capitulino
qstring_from_substr_test(void)490ac7cc2aSAnthony Liguori static void qstring_from_substr_test(void)
5064084a03SLuiz Capitulino {
5164084a03SLuiz Capitulino QString *qs;
5264084a03SLuiz Capitulino
53ba891d68SMarkus Armbruster qs = qstring_from_substr("virtualization", 3, 10);
540ac7cc2aSAnthony Liguori g_assert(qs != NULL);
550ac7cc2aSAnthony Liguori g_assert(strcmp(qstring_get_str(qs), "tualiza") == 0);
5664084a03SLuiz Capitulino
57cb3e7f08SMarc-André Lureau qobject_unref(qs);
5864084a03SLuiz Capitulino }
5964084a03SLuiz Capitulino
6064084a03SLuiz Capitulino
qobject_to_qstring_test(void)610ac7cc2aSAnthony Liguori static void qobject_to_qstring_test(void)
625de65a07SLuiz Capitulino {
635de65a07SLuiz Capitulino QString *qstring;
645de65a07SLuiz Capitulino
655de65a07SLuiz Capitulino qstring = qstring_from_str("foo");
667dc847ebSMax Reitz g_assert(qobject_to(QString, QOBJECT(qstring)) == qstring);
675de65a07SLuiz Capitulino
68cb3e7f08SMarc-André Lureau qobject_unref(qstring);
695de65a07SLuiz Capitulino }
705de65a07SLuiz Capitulino
main(int argc,char ** argv)710ac7cc2aSAnthony Liguori int main(int argc, char **argv)
725de65a07SLuiz Capitulino {
730ac7cc2aSAnthony Liguori g_test_init(&argc, &argv, NULL);
745de65a07SLuiz Capitulino
750ac7cc2aSAnthony Liguori g_test_add_func("/public/from_str", qstring_from_str_test);
760ac7cc2aSAnthony Liguori g_test_add_func("/public/get_str", qstring_get_str_test);
770ac7cc2aSAnthony Liguori g_test_add_func("/public/from_substr", qstring_from_substr_test);
780ac7cc2aSAnthony Liguori g_test_add_func("/public/to_qstring", qobject_to_qstring_test);
795de65a07SLuiz Capitulino
800ac7cc2aSAnthony Liguori return g_test_run();
815de65a07SLuiz Capitulino }
82