diff options
Diffstat (limited to 'src/tests/get-binary-name-test.c')
| -rw-r--r-- | src/tests/get-binary-name-test.c | 25 | 
1 files changed, 23 insertions, 2 deletions
| diff --git a/src/tests/get-binary-name-test.c b/src/tests/get-binary-name-test.c index a34e38fd..e49f2eff 100644 --- a/src/tests/get-binary-name-test.c +++ b/src/tests/get-binary-name-test.c @@ -23,12 +23,33 @@  #include <limits.h>  #include <stdio.h> +#include <string.h>  #include <pulse/util.h> +#include <pulse/xmalloc.h>  int main(int argc, char *argv[]) { -    char exename[PATH_MAX]; +    char *exename; +    size_t allocated = 128; + +    for (;;) { +        exename = pa_xmalloc(allocated); + +        if (!pa_get_binary_name(exename, allocated)) { +            printf("failed to read binary name\n"); +            pa_xfree(exename); +            break; +        } + +        if (strlen(exename) < allocated - 1) { +            printf("%s\n", exename); +            pa_xfree(exename); +            break; +        } + +        pa_xfree(exename); +        allocated *= 2; +    } -    printf("%s\n", pa_get_binary_name(exename, sizeof(exename)));      return 0;  } | 
