From: Ian Romanick <ian.d.roman...@intel.com>

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.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Cc: Chad Versace <chad.vers...@linux.intel.com>
---
 tests/texturing/shaders/texelFetch.c  | 10 ++++++----
 tests/texturing/shaders/textureSize.c | 10 ++++++----
 tests/util/piglit-framework-gl.c      | 24 ++++++++++++++----------
 tests/util/piglit-framework-gl.h      | 10 +++++++---
 4 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/tests/texturing/shaders/texelFetch.c 
b/tests/texturing/shaders/texelFetch.c
index ebd48cd..bc6cc8f 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 f010d9c..ee64b07 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 2a315be..dd2e6a5 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 7520f38..fcc1594 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);                                               \
-- 
1.8.1.4

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to