]> 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 29ebbe223f428ba30a8faa9e64b15ab5e34bc65a..7a09bc2c482f0ed92d61eaac4d54f47831606099 100644 (file)
@@ -1,11 +1,9 @@
-/* $Id$ */
-
 /***
   This file is part of PulseAudio.
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published
-  by the Free Software Foundation; either version 2 of the License,
+  by the Free Software Foundation; either version 2.1 of the License,
   or (at your option) any later version.
 
   PulseAudio is distributed in the hope that it will be useful, but
 #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;
 }