File:  [Qemu by Fabrice Bellard] / qemu / check-qint.c
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:23:41 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1000, qemu0151, qemu0150, qemu0141, qemu0140, qemu0130, HEAD
qemu 0.13.0

    1: /*
    2:  * QInt 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 <check.h>
   13: 
   14: #include "qint.h"
   15: #include "qemu-common.h"
   16: 
   17: /*
   18:  * Public Interface test-cases
   19:  *
   20:  * (with some violations to access 'private' data)
   21:  */
   22: 
   23: START_TEST(qint_from_int_test)
   24: {
   25:     QInt *qi;
   26:     const int value = -42;
   27: 
   28:     qi = qint_from_int(value);
   29:     fail_unless(qi != NULL);
   30:     fail_unless(qi->value == value);
   31:     fail_unless(qi->base.refcnt == 1);
   32:     fail_unless(qobject_type(QOBJECT(qi)) == QTYPE_QINT);
   33: 
   34:     // destroy doesn't exit yet
   35:     qemu_free(qi);
   36: }
   37: END_TEST
   38: 
   39: START_TEST(qint_destroy_test)
   40: {
   41:     QInt *qi = qint_from_int(0);
   42:     QDECREF(qi);
   43: }
   44: END_TEST
   45: 
   46: START_TEST(qint_from_int64_test)
   47: {
   48:     QInt *qi;
   49:     const int64_t value = 0x1234567890abcdefLL;
   50: 
   51:     qi = qint_from_int(value);
   52:     fail_unless((int64_t) qi->value == value);
   53: 
   54:     QDECREF(qi);
   55: }
   56: END_TEST
   57: 
   58: START_TEST(qint_get_int_test)
   59: {
   60:     QInt *qi;
   61:     const int value = 123456;
   62: 
   63:     qi = qint_from_int(value);
   64:     fail_unless(qint_get_int(qi) == value);
   65: 
   66:     QDECREF(qi);
   67: }
   68: END_TEST
   69: 
   70: START_TEST(qobject_to_qint_test)
   71: {
   72:     QInt *qi;
   73: 
   74:     qi = qint_from_int(0);
   75:     fail_unless(qobject_to_qint(QOBJECT(qi)) == qi);
   76: 
   77:     QDECREF(qi);
   78: }
   79: END_TEST
   80: 
   81: static Suite *qint_suite(void)
   82: {
   83:     Suite *s;
   84:     TCase *qint_public_tcase;
   85: 
   86:     s = suite_create("QInt test-suite");
   87: 
   88:     qint_public_tcase = tcase_create("Public Interface");
   89:     suite_add_tcase(s, qint_public_tcase);
   90:     tcase_add_test(qint_public_tcase, qint_from_int_test);
   91:     tcase_add_test(qint_public_tcase, qint_destroy_test);
   92:     tcase_add_test(qint_public_tcase, qint_from_int64_test);
   93:     tcase_add_test(qint_public_tcase, qint_get_int_test);
   94:     tcase_add_test(qint_public_tcase, qobject_to_qint_test);
   95: 
   96:     return s;
   97: }
   98: 
   99: int main(void)
  100: {
  101: 	int nf;
  102: 	Suite *s;
  103: 	SRunner *sr;
  104: 
  105: 	s = qint_suite();
  106: 	sr = srunner_create(s);
  107: 
  108: 	srunner_run_all(sr, CK_NORMAL);
  109: 	nf = srunner_ntests_failed(sr);
  110: 	srunner_free(sr);
  111: 
  112: 	return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
  113: }

unix.superglobalmegacorp.com