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

    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 <check.h>
   13: 
   14: #include "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: 
   23: START_TEST(qstring_from_str_test)
   24: {
   25:     QString *qstring;
   26:     const char *str = "QEMU";
   27: 
   28:     qstring = qstring_from_str(str);
   29:     fail_unless(qstring != NULL);
   30:     fail_unless(qstring->base.refcnt == 1);
   31:     fail_unless(strcmp(str, qstring->string) == 0);
   32:     fail_unless(qobject_type(QOBJECT(qstring)) == QTYPE_QSTRING);
   33: 
   34:     // destroy doesn't exit yet
   35:     qemu_free(qstring->string);
   36:     qemu_free(qstring);
   37: }
   38: END_TEST
   39: 
   40: START_TEST(qstring_destroy_test)
   41: {
   42:     QString *qstring = qstring_from_str("destroy test");
   43:     QDECREF(qstring);
   44: }
   45: END_TEST
   46: 
   47: START_TEST(qstring_get_str_test)
   48: {
   49:     QString *qstring;
   50:     const char *ret_str;
   51:     const char *str = "QEMU/KVM";
   52: 
   53:     qstring = qstring_from_str(str);
   54:     ret_str = qstring_get_str(qstring);
   55:     fail_unless(strcmp(ret_str, str) == 0);
   56: 
   57:     QDECREF(qstring);
   58: }
   59: END_TEST
   60: 
   61: START_TEST(qstring_append_chr_test)
   62: {
   63:     int i;
   64:     QString *qstring;
   65:     const char *str = "qstring append char unit-test";
   66: 
   67:     qstring = qstring_new();
   68: 
   69:     for (i = 0; str[i]; i++)
   70:         qstring_append_chr(qstring, str[i]);
   71: 
   72:     fail_unless(strcmp(str, qstring_get_str(qstring)) == 0);
   73:     QDECREF(qstring);
   74: }
   75: END_TEST
   76: 
   77: START_TEST(qstring_from_substr_test)
   78: {
   79:     QString *qs;
   80: 
   81:     qs = qstring_from_substr("virtualization", 3, 9);
   82:     fail_unless(qs != NULL);
   83:     fail_unless(strcmp(qstring_get_str(qs), "tualiza") == 0);
   84: 
   85:     QDECREF(qs);
   86: }
   87: END_TEST
   88: 
   89: 
   90: START_TEST(qobject_to_qstring_test)
   91: {
   92:     QString *qstring;
   93: 
   94:     qstring = qstring_from_str("foo");
   95:     fail_unless(qobject_to_qstring(QOBJECT(qstring)) == qstring);
   96: 
   97:     QDECREF(qstring);
   98: }
   99: END_TEST
  100: 
  101: static Suite *qstring_suite(void)
  102: {
  103:     Suite *s;
  104:     TCase *qstring_public_tcase;
  105: 
  106:     s = suite_create("QString test-suite");
  107: 
  108:     qstring_public_tcase = tcase_create("Public Interface");
  109:     suite_add_tcase(s, qstring_public_tcase);
  110:     tcase_add_test(qstring_public_tcase, qstring_from_str_test);
  111:     tcase_add_test(qstring_public_tcase, qstring_destroy_test);
  112:     tcase_add_test(qstring_public_tcase, qstring_get_str_test);
  113:     tcase_add_test(qstring_public_tcase, qstring_append_chr_test);
  114:     tcase_add_test(qstring_public_tcase, qstring_from_substr_test);
  115:     tcase_add_test(qstring_public_tcase, qobject_to_qstring_test);
  116: 
  117:     return s;
  118: }
  119: 
  120: int main(void)
  121: {
  122: 	int nf;
  123: 	Suite *s;
  124: 	SRunner *sr;
  125: 
  126: 	s = qstring_suite();
  127: 	sr = srunner_create(s);
  128: 
  129: 	srunner_run_all(sr, CK_NORMAL);
  130: 	nf = srunner_ntests_failed(sr);
  131: 	srunner_free(sr);
  132: 
  133: 	return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
  134: }

unix.superglobalmegacorp.com