summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2013-10-15 14:25:13 -0700
committerIan Romanick <ian.d.romanick@intel.com>2013-10-30 10:51:39 -0700
commit0565f39a436a354c1248aeaf2d10e57864e07c1c (patch)
treeb213d5de3f1490f816114cbb05386784383ba5d6
parenteff721155a5740eef349b0f2691e379947ae0d16 (diff)
util: Move command-line parsing out of piglit_gl_test_config_init
Create a new function, piglit_gl_process_args, that does the command-line parsing. This happens after the test code between PIGLIT_GL_TEST_CONFIG_BEGIN and PIGLIT_GL_TEST_CONFIG_END. By having an explicit function that does this, tests can call it inside the BEGIN/END block. This may be useful for tests that expect certain arguments to be in specific positions. piglit_gl_process_args removes processed arguments from the argc/argv list. This makes it safe to call multiple times since later calls shouldn't see any arguments that they would process. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
-rw-r--r--tests/texturing/shaders/texelFetch.c10
-rw-r--r--tests/texturing/shaders/textureSize.c10
-rw-r--r--tests/util/piglit-framework-gl.c24
-rw-r--r--tests/util/piglit-framework-gl.h10
4 files changed, 33 insertions, 21 deletions
diff --git a/tests/texturing/shaders/texelFetch.c b/tests/texturing/shaders/texelFetch.c
index ebd48cd67..bc6cc8fcd 100644
--- a/tests/texturing/shaders/texelFetch.c
+++ b/tests/texturing/shaders/texelFetch.c
@@ -84,6 +84,12 @@ static enum shader_target test_stage = UNKNOWN;
PIGLIT_GL_TEST_CONFIG_BEGIN
+ config.window_width = 900;
+ config.window_height = 600;
+ config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
+
+ piglit_gl_process_args(&argc, argv, &config);
+
parse_args(argc, argv);
if (test_stage == GS) {
config.supports_gl_compat_version = 32;
@@ -93,10 +99,6 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
config.supports_gl_core_version = 31;
}
- config.window_width = 900;
- config.window_height = 600;
- config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
-
PIGLIT_GL_TEST_CONFIG_END
#define MAX_LOD_OR_SAMPLES 10.0
diff --git a/tests/texturing/shaders/textureSize.c b/tests/texturing/shaders/textureSize.c
index f010d9c22..ee64b07c2 100644
--- a/tests/texturing/shaders/textureSize.c
+++ b/tests/texturing/shaders/textureSize.c
@@ -52,6 +52,12 @@ static enum shader_target test_stage = UNKNOWN;
PIGLIT_GL_TEST_CONFIG_BEGIN
+ config.window_width = 150;
+ config.window_height = 30;
+ config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;
+
+ piglit_gl_process_args(&argc, argv, &config);
+
parse_args(argc, argv);
if (test_stage == GS) {
config.supports_gl_compat_version = 32;
@@ -61,10 +67,6 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
config.supports_gl_core_version = 31;
}
- config.window_width = 150;
- config.window_height = 30;
- config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;
-
PIGLIT_GL_TEST_CONFIG_END
static int lod_location;
diff --git a/tests/util/piglit-framework-gl.c b/tests/util/piglit-framework-gl.c
index 2a315be1f..dd2e6a5db 100644
--- a/tests/util/piglit-framework-gl.c
+++ b/tests/util/piglit-framework-gl.c
@@ -43,18 +43,9 @@ static void
process_args(int *argc, char *argv[], unsigned *force_samples);
void
-piglit_gl_test_config_init(int *argc, char *argv[],
- struct piglit_gl_test_config *config)
+piglit_gl_test_config_init(struct piglit_gl_test_config *config)
{
- unsigned force_samples = 0;
-
memset(config, 0, sizeof(*config));
-
- process_args(argc, argv, &force_samples);
-
- if (force_samples > 1)
- config->window_samples = force_samples;
-
}
static void
@@ -125,6 +116,19 @@ process_args(int *argc, char *argv[], unsigned *force_samples)
}
void
+piglit_gl_process_args(int *argc, char *argv[],
+ struct piglit_gl_test_config *config)
+{
+ unsigned force_samples = 0;
+
+ process_args(argc, argv, &force_samples);
+
+ if (force_samples > 1)
+ config->window_samples = force_samples;
+
+}
+
+void
piglit_gl_test_run(int argc, char *argv[],
const struct piglit_gl_test_config *config)
{
diff --git a/tests/util/piglit-framework-gl.h b/tests/util/piglit-framework-gl.h
index 7520f3817..fcc1594e8 100644
--- a/tests/util/piglit-framework-gl.h
+++ b/tests/util/piglit-framework-gl.h
@@ -175,8 +175,11 @@ struct piglit_gl_test_config {
* from command line arguments.
*/
void
-piglit_gl_test_config_init(int *argc, char *argv[],
- struct piglit_gl_test_config *config);
+piglit_gl_test_config_init(struct piglit_gl_test_config *config);
+
+void
+piglit_gl_process_args(int *argc, char *argv[],
+ struct piglit_gl_test_config *config);
/**
* Run the OpenGL test described by @a config. Does not return.
@@ -210,7 +213,7 @@ piglit_gl_test_run(int argc, char *argv[],
{ \
struct piglit_gl_test_config config; \
\
- piglit_gl_test_config_init(&argc, argv, &config); \
+ piglit_gl_test_config_init(&config); \
\
config.init = piglit_init; \
config.display = piglit_display; \
@@ -230,6 +233,7 @@ piglit_gl_test_run(int argc, char *argv[],
#define PIGLIT_GL_TEST_CONFIG_END \
} \
\
+ piglit_gl_process_args(&argc, argv, &config); \
piglit_gl_test_run(argc, argv, &config); \
\
assert(false); \