cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

check-qstring.c (1859B)


      1/*
      2 * QString 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 "qemu/osdep.h"
     13
     14#include "qapi/qmp/qstring.h"
     15#include "qemu-common.h"
     16
     17/*
     18 * Public Interface test-cases
     19 *
     20 * (with some violations to access 'private' data)
     21 */
     22
     23static void qstring_from_str_test(void)
     24{
     25    QString *qstring;
     26    const char *str = "QEMU";
     27
     28    qstring = qstring_from_str(str);
     29    g_assert(qstring != NULL);
     30    g_assert(qstring->base.refcnt == 1);
     31    g_assert(strcmp(str, qstring->string) == 0);
     32    g_assert(qobject_type(QOBJECT(qstring)) == QTYPE_QSTRING);
     33
     34    qobject_unref(qstring);
     35}
     36
     37static void qstring_get_str_test(void)
     38{
     39    QString *qstring;
     40    const char *ret_str;
     41    const char *str = "QEMU/KVM";
     42
     43    qstring = qstring_from_str(str);
     44    ret_str = qstring_get_str(qstring);
     45    g_assert(strcmp(ret_str, str) == 0);
     46
     47    qobject_unref(qstring);
     48}
     49
     50static void qstring_from_substr_test(void)
     51{
     52    QString *qs;
     53
     54    qs = qstring_from_substr("virtualization", 3, 10);
     55    g_assert(qs != NULL);
     56    g_assert(strcmp(qstring_get_str(qs), "tualiza") == 0);
     57
     58    qobject_unref(qs);
     59}
     60
     61
     62static void qobject_to_qstring_test(void)
     63{
     64    QString *qstring;
     65
     66    qstring = qstring_from_str("foo");
     67    g_assert(qobject_to(QString, QOBJECT(qstring)) == qstring);
     68
     69    qobject_unref(qstring);
     70}
     71
     72int main(int argc, char **argv)
     73{
     74    g_test_init(&argc, &argv, NULL);
     75
     76    g_test_add_func("/public/from_str", qstring_from_str_test);
     77    g_test_add_func("/public/get_str", qstring_get_str_test);
     78    g_test_add_func("/public/from_substr", qstring_from_substr_test);
     79    g_test_add_func("/public/to_qstring", qobject_to_qstring_test);
     80
     81    return g_test_run();
     82}