summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Versace <chad.versace@intel.com>2011-03-12 16:03:08 -0800
committerChad Versace <chad.versace@intel.com>2011-03-12 17:30:29 -0800
commit7f676a15fb07fafef6c2f700b996eebb52d394b6 (patch)
tree86f6ae94b453995205dfe3a407cb2f5ccaa7eaef
parent112eaa058cc03b26a2e1f38410fd9742b239bb51 (diff)
shader_runner: Implicity determine shader path from script filepath
If argv[2] is not given, then set `path = dirname(argv[1])`. Signed-off-by: Chad Versace <chad.versace@intel.com>
-rw-r--r--tests/shaders/shader_runner.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 32b98403f..6737c6773 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -31,6 +31,7 @@
#endif
#include <string.h>
#include <ctype.h>
+#include <libgen.h>
#include "piglit-util.h"
int piglit_width = 250, piglit_height = 250;
@@ -853,8 +854,15 @@ piglit_init(int argc, char **argv)
glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS,
&gl_max_vertex_uniform_components);
- if (argc > 2)
+ if (argc > 2) {
path = argv[2];
+ } else {
+ /* Because dirname()'s memory handling is unpredictable, we
+ * must copy both its input and ouput. */
+ char* scriptpath = strdup(argv[1]);
+ path = strdup(dirname(scriptpath));
+ free(scriptpath);
+ }
process_test_script(argv[1]);
link_and_use_shaders();