qemu/tests/check-qfloat.c
<<
>>
Prefs
   1/*
   2 * QFloat unit-tests.
   3 *
   4 * Copyright IBM, Corp. 2009
   5 *
   6 * Authors:
   7 *  Anthony Liguori   <aliguori@us.ibm.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 */
  13#include "qemu/osdep.h"
  14
  15#include "qapi/qmp/qfloat.h"
  16#include "qemu-common.h"
  17
  18/*
  19 * Public Interface test-cases
  20 *
  21 * (with some violations to access 'private' data)
  22 */
  23
  24static void qfloat_from_double_test(void)
  25{
  26    QFloat *qf;
  27    const double value = -42.23423;
  28
  29    qf = qfloat_from_double(value);
  30    g_assert(qf != NULL);
  31    g_assert(qf->value == value);
  32    g_assert(qf->base.refcnt == 1);
  33    g_assert(qobject_type(QOBJECT(qf)) == QTYPE_QFLOAT);
  34
  35    // destroy doesn't exit yet
  36    g_free(qf);
  37}
  38
  39static void qfloat_destroy_test(void)
  40{
  41    QFloat *qf = qfloat_from_double(0.0);
  42    QDECREF(qf);
  43}
  44
  45int main(int argc, char **argv)
  46{
  47    g_test_init(&argc, &argv, NULL);
  48
  49    g_test_add_func("/public/from_double", qfloat_from_double_test);
  50    g_test_add_func("/public/destroy", qfloat_destroy_test);
  51
  52    return g_test_run();
  53}
  54