xref: /qemu/tests/unit/check-qstring.c (revision 407bc4bf9027f7ac4333e47cd900d773b99a23e3)
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