[Piglit] [PATCH 3/3] framework: parse piglit core args during piglit_gl_test_config_init()
Paul Berry
stereotype441 at gmail.com
Fri Jul 26 13:11:50 PDT 2013
This makes it safe to examine argc and argv between
PIGLIT_GL_TEST_CONFIG_BEGIN and PIGLIT_GL_TEST_CONFIG_END, since
piglit fragmework arguments have already been stripped away.
That in turn means that the following tests can use
PIGLIT_GL_TEST_CONFIG_{BEGIN,END} instead of having to declare their
own main() functions:
- spec/arb_texture_buffer_object/formats.c
- spec/gl-3.0/required-renderbuffer-attachment-formats.c
- spec/gl-3.0/required-sized-texture-formats.c
- spec/gl-3.0/required-texture-attachment-formats.c
- spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
---
tests/spec/arb_texture_buffer_object/formats.c | 18 ++------------
.../required-renderbuffer-attachment-formats.c | 15 ++----------
tests/spec/gl-3.0/required-sized-texture-formats.c | 15 ++----------
.../gl-3.0/required-texture-attachment-formats.c | 15 ++----------
.../gles-3.0/oes_compressed_etc2_texture-miptree.c | 16 ++-----------
tests/util/piglit-framework-gl.c | 28 ++++++++++++----------
tests/util/piglit-framework-gl.h | 8 ++++---
tests/util/sized-internalformats.c | 2 --
8 files changed, 31 insertions(+), 86 deletions(-)
diff --git a/tests/spec/arb_texture_buffer_object/formats.c b/tests/spec/arb_texture_buffer_object/formats.c
index 0dfec7c..568951c 100644
--- a/tests/spec/arb_texture_buffer_object/formats.c
+++ b/tests/spec/arb_texture_buffer_object/formats.c
@@ -715,11 +715,7 @@ find_arg(int argc, char *argv[], const char *str)
return false;
}
-int
-main(int argc, char *argv[])
-{
- struct piglit_gl_test_config config;
-
+PIGLIT_GL_TEST_CONFIG_BEGIN
test_vs = find_arg(argc, argv, "vs");
if (!test_vs && !find_arg(argc, argv, "fs"))
usage(argv[0]);
@@ -728,11 +724,6 @@ main(int argc, char *argv[])
if (!test_arb && !find_arg(argc, argv, "core"))
usage(argv[0]);
- piglit_gl_test_config_init(&config);
-
- config.init = piglit_init;
- config.display = piglit_display;
-
if (test_arb)
config.supports_gl_compat_version = 10;
else
@@ -741,9 +732,4 @@ main(int argc, char *argv[])
config.window_width = 200;
config.window_height = 500;
config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
-
- piglit_gl_test_run(argc, argv, &config);
-
- assert(false);
- return 0;
-}
+PIGLIT_GL_TEST_CONFIG_END
diff --git a/tests/spec/gl-3.0/required-renderbuffer-attachment-formats.c b/tests/spec/gl-3.0/required-renderbuffer-attachment-formats.c
index 6a867a7..5236a3f 100644
--- a/tests/spec/gl-3.0/required-renderbuffer-attachment-formats.c
+++ b/tests/spec/gl-3.0/required-renderbuffer-attachment-formats.c
@@ -133,19 +133,8 @@ piglit_init(int argc, char **argv)
piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
-int
-main(int argc, char *argv[])
-{
- struct piglit_gl_test_config config;
-
+PIGLIT_GL_TEST_CONFIG_BEGIN
setup_required_size_test(argc, argv, &config);
target_version = MAX2(config.supports_gl_compat_version,
config.supports_gl_core_version);
- config.init = piglit_init;
- config.display = piglit_display;
-
- piglit_gl_test_run(argc, argv, &config);
-
- /* UNREACHED */
- return 0;
-}
+PIGLIT_GL_TEST_CONFIG_END
diff --git a/tests/spec/gl-3.0/required-sized-texture-formats.c b/tests/spec/gl-3.0/required-sized-texture-formats.c
index a3524e7..79ea5b1 100644
--- a/tests/spec/gl-3.0/required-sized-texture-formats.c
+++ b/tests/spec/gl-3.0/required-sized-texture-formats.c
@@ -234,19 +234,8 @@ piglit_init(int argc, char **argv)
piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
-int
-main(int argc, char *argv[])
-{
- struct piglit_gl_test_config config;
-
+PIGLIT_GL_TEST_CONFIG_BEGIN
setup_required_size_test(argc, argv, &config);
target_version = MAX2(config.supports_gl_compat_version,
config.supports_gl_core_version);
- config.init = piglit_init;
- config.display = piglit_display;
-
- piglit_gl_test_run(argc, argv, &config);
-
- /* UNREACHED */
- return 0;
-}
+PIGLIT_GL_TEST_CONFIG_END
diff --git a/tests/spec/gl-3.0/required-texture-attachment-formats.c b/tests/spec/gl-3.0/required-texture-attachment-formats.c
index 11e20ac..9c9b234 100644
--- a/tests/spec/gl-3.0/required-texture-attachment-formats.c
+++ b/tests/spec/gl-3.0/required-texture-attachment-formats.c
@@ -143,19 +143,8 @@ piglit_init(int argc, char **argv)
piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
-int
-main(int argc, char *argv[])
-{
- struct piglit_gl_test_config config;
-
+PIGLIT_GL_TEST_CONFIG_BEGIN
setup_required_size_test(argc, argv, &config);
target_version = MAX2(config.supports_gl_compat_version,
config.supports_gl_core_version);
- config.init = piglit_init;
- config.display = piglit_display;
-
- piglit_gl_test_run(argc, argv, &config);
-
- /* UNREACHED */
- return 0;
-}
+PIGLIT_GL_TEST_CONFIG_END
diff --git a/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c b/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
index 8881432..79a4c1f 100644
--- a/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
+++ b/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
@@ -314,10 +314,7 @@ piglit_display(void)
return pass ? PIGLIT_PASS : PIGLIT_FAIL;
}
-int
-main(int argc, char *argv[])
-{
- struct piglit_gl_test_config config;
+PIGLIT_GL_TEST_CONFIG_BEGIN
bool test_compat = true;
#if defined(PIGLIT_USE_OPENGL)
@@ -334,10 +331,6 @@ main(int argc, char *argv[])
print_usage_and_exit(argv[0]);
#endif
- piglit_gl_test_config_init(&config);
- config.init = piglit_init;
- config.display = piglit_display;
-
if (test_compat)
config.supports_gl_compat_version = 10;
else
@@ -348,9 +341,4 @@ main(int argc, char *argv[])
config.window_width = 150;
config.window_height = 150;
config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
-
- piglit_gl_test_run(argc, argv, &config);
-
- assert(false);
- return 0;
-}
+PIGLIT_GL_TEST_CONFIG_END
diff --git a/tests/util/piglit-framework-gl.c b/tests/util/piglit-framework-gl.c
index ece5968..46325eb 100644
--- a/tests/util/piglit-framework-gl.c
+++ b/tests/util/piglit-framework-gl.c
@@ -39,10 +39,22 @@ unsigned piglit_winsys_fbo = 0;
int piglit_width;
int piglit_height;
+static void
+process_args(int *argc, char *argv[], unsigned *force_samples);
+
void
-piglit_gl_test_config_init(struct piglit_gl_test_config *config)
+piglit_gl_test_config_init(int *argc, char *argv[],
+ 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
@@ -116,18 +128,10 @@ void
piglit_gl_test_run(int argc, char *argv[],
const struct piglit_gl_test_config *config)
{
- struct piglit_gl_test_config conf = *config;
- unsigned force_samples = 0;
-
- process_args(&argc, argv, &force_samples);
-
- if (force_samples > 1)
- conf.window_samples = force_samples;
-
- piglit_width = conf.window_width;
- piglit_height = conf.window_height;
+ piglit_width = config->window_width;
+ piglit_height = config->window_height;
- gl_fw = piglit_gl_framework_factory(&conf);
+ gl_fw = piglit_gl_framework_factory(config);
if (gl_fw == NULL) {
printf("piglit: error: failed to create "
"piglit_gl_framework\n");
diff --git a/tests/util/piglit-framework-gl.h b/tests/util/piglit-framework-gl.h
index e65c989..f8f73ad 100644
--- a/tests/util/piglit-framework-gl.h
+++ b/tests/util/piglit-framework-gl.h
@@ -171,10 +171,12 @@ struct piglit_gl_test_config {
};
/**
- * Initialize @a config with default values.
+ * Initialize @a config with default values, some of which may come
+ * from command line arguments.
*/
void
-piglit_gl_test_config_init(struct piglit_gl_test_config *config);
+piglit_gl_test_config_init(int *argc, char *argv[],
+ struct piglit_gl_test_config *config);
/**
* Run the OpenGL test described by @a config. Does not return.
@@ -208,7 +210,7 @@ piglit_gl_test_run(int argc, char *argv[],
{ \
struct piglit_gl_test_config config; \
\
- piglit_gl_test_config_init(&config); \
+ piglit_gl_test_config_init(&argc, argv, &config); \
\
config.init = piglit_init; \
config.display = piglit_display; \
diff --git a/tests/util/sized-internalformats.c b/tests/util/sized-internalformats.c
index 626d215..ae949c7 100644
--- a/tests/util/sized-internalformats.c
+++ b/tests/util/sized-internalformats.c
@@ -385,8 +385,6 @@ setup_required_size_test(int argc, char **argv,
if (argc < 2)
usage(argv[0]);
- piglit_gl_test_config_init(config);
-
target_version = strtol(argv[1], NULL, 0);
switch (target_version) {
--
1.8.3.4
More information about the Piglit
mailing list