]> code.delx.au - pulseaudio/blobdiff - src/tests/get-binary-name-test.c
tests: More useful output of make check
[pulseaudio] / src / tests / get-binary-name-test.c
index a34e38fd1980181689140001f6a5fad92b023a90..7a09bc2c482f0ed92d61eaac4d54f47831606099 100644 (file)
 #include <config.h>
 #endif
 
-#include <limits.h>
 #include <stdio.h>
+#include <string.h>
 
 #include <pulse/util.h>
+#include <pulse/xmalloc.h>
+
+#include <pulsecore/log.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)) {
+            pa_log_error("failed to read binary name");
+            pa_xfree(exename);
+            break;
+        }
+
+        if (strlen(exename) < allocated - 1) {
+            pa_log("%s", exename);
+            pa_xfree(exename);
+            return 0;
+        }
+
+        pa_xfree(exename);
+        allocated *= 2;
+    }
 
-    printf("%s\n", pa_get_binary_name(exename, sizeof(exename)));
-    return 0;
+    return 1;
 }