dbus-test.c revision 05a4ad6994919b352b5229d0b1b0a8ebebe2a42f
1/* -*- mode: C; c-file-style: "gnu" -*- */ 2/* dbus-test.c Program to run all tests 3 * 4 * Copyright (C) 2002 Red Hat Inc. 5 * 6 * Licensed under the Academic Free License version 1.2 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * 22 */ 23 24#include <config.h> 25#include "dbus-test.h" 26#include "dbus-sysdeps.h" 27#include <stdio.h> 28#include <stdlib.h> 29 30static void 31die (const char *failure) 32{ 33 fprintf (stderr, "Unit test failed: %s\n", failure); 34 exit (1); 35} 36 37/** 38 * An exported symbol to be run in order to execute 39 * unit tests. Should not be used by 40 * any app other than our test app, this symbol 41 * won't exist in some builds of the library. 42 * (with --enable-tests=no) 43 * 44 * @param test_data_dir the directory with test data (test/data normally) 45 */ 46void 47dbus_internal_symbol_do_not_use_run_tests (const char *test_data_dir) 48{ 49#ifdef DBUS_BUILD_TESTS 50 if (test_data_dir == NULL) 51 test_data_dir = _dbus_getenv ("DBUS_TEST_DATA"); 52 53 if (test_data_dir != NULL) 54 printf ("Test data in %s\n", test_data_dir); 55 else 56 printf ("No test data!\n"); 57 58 printf ("%s: running string tests\n", "dbus-test"); 59 if (!_dbus_string_test ()) 60 die ("strings"); 61 62 printf ("%s: running marshalling tests\n", "dbus-test"); 63 if (!_dbus_marshal_test ()) 64 die ("marshalling"); 65 66 printf ("%s: running message tests\n", "dbus-test"); 67 if (!_dbus_message_test (test_data_dir)) 68 die ("messages"); 69 70 printf ("%s: running memory pool tests\n", "dbus-test"); 71 if (!_dbus_mem_pool_test ()) 72 die ("memory pools"); 73 74 printf ("%s: running linked list tests\n", "dbus-test"); 75 if (!_dbus_list_test ()) 76 die ("lists"); 77 78 printf ("%s: running hash table tests\n", "dbus-test"); 79 if (!_dbus_hash_test ()) 80 die ("hash tables"); 81 82 printf ("%s: completed successfully\n", "dbus-test"); 83#else 84 printf ("Not compiled with unit tests, not running any\n"); 85#endif 86} 87 88 89