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