diff options
author | Chad Versace <chad.versace@intel.com> | 2011-03-12 16:03:08 -0800 |
---|---|---|
committer | Chad Versace <chad.versace@intel.com> | 2011-03-12 17:30:29 -0800 |
commit | 7f676a15fb07fafef6c2f700b996eebb52d394b6 (patch) | |
tree | 86f6ae94b453995205dfe3a407cb2f5ccaa7eaef | |
parent | 112eaa058cc03b26a2e1f38410fd9742b239bb51 (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.c | 10 |
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(); |