1/*** 2 This file is part of PulseAudio. 3 4 PulseAudio is free software; you can redistribute it and/or modify 5 it under the terms of the GNU Lesser General Public License as published 6 by the Free Software Foundation; either version 2.1 of the License, 7 or (at your option) any later version. 8 9 PulseAudio is distributed in the hope that it will be useful, but 10 WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public License 15 along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. 16***/ 17 18#ifdef HAVE_CONFIG_H 19#include <config.h> 20#endif 21 22#include <stdio.h> 23#include <string.h> 24 25#include <check.h> 26 27#include <pulse/util.h> 28#include <pulse/xmalloc.h> 29 30#include <pulsecore/log.h> 31 32START_TEST (getbinaryname_test) { 33 char *exename; 34 size_t allocated = 128; 35 36 for (;;) { 37 exename = pa_xmalloc(allocated); 38 39 if (!pa_get_binary_name(exename, allocated)) { 40 pa_log_error("failed to read binary name"); 41 pa_xfree(exename); 42 ck_abort(); 43 } 44 45 if (strlen(exename) < allocated - 1) { 46 pa_log("%s", exename); 47 pa_xfree(exename); 48 return; 49 } 50 51 pa_xfree(exename); 52 allocated *= 2; 53 } 54} 55END_TEST 56 57int main(int argc, char *argv[]) { 58 int failed = 0; 59 Suite *s; 60 TCase *tc; 61 SRunner *sr; 62 63 s = suite_create("Binary Name"); 64 tc = tcase_create("getbinaryname"); 65 tcase_add_test(tc, getbinaryname_test); 66 suite_add_tcase(s, tc); 67 68 sr = srunner_create(s); 69 srunner_run_all(sr, CK_NORMAL); 70 failed = srunner_ntests_failed(sr); 71 srunner_free(sr); 72 73 return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; 74} 75