[Piglit] [PATCH 08/20] fbo: Split out a function for selecting an fbo test set by name.
Paul Berry
stereotype441 at gmail.com
Tue Jun 5 17:03:18 PDT 2012
This patch extracts code from fbo_formats_init() into a separate
function, fbo_lookup_test_set(), whose only purpose is to find an FBO
test set given its name. This will make it easier for future tests to
make use of fbo-formats.h even if they have to use different
command-line parsing than what is implemented in fbo_formats_init().
This is also one behavioural change: previously, if multiple
command-line arguments were specified to fbo_formats_init(), it would
ignore all but the last. This was clearly an unintended and
unnecessary behaviour, so I've replaced it with an error message.
---
tests/fbo/fbo-formats.h | 45 ++++++++++++++++++++++++++-------------------
1 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/tests/fbo/fbo-formats.h b/tests/fbo/fbo-formats.h
index 9ae4a97..8275c39 100644
--- a/tests/fbo/fbo-formats.h
+++ b/tests/fbo/fbo-formats.h
@@ -547,33 +547,40 @@ static void fbo_formats_key_func(unsigned char key, int x, int y)
piglit_escape_exit_key(key, x, y);
}
-static void fbo_formats_init(int argc, char **argv, GLboolean print_options)
+static int
+fbo_lookup_test_set(const char *test_set_name)
{
- int i, j, k;
+ int i, j;
+
+ for (i = 1; i < (int) ARRAY_SIZE(test_sets); i++) {
+ if (!strcmp(test_set_name, test_sets[i].param)) {
+ for (j = 0; j < 3; j++) {
+ if (test_sets[i].ext[j]) {
+ piglit_require_extension(test_sets[i].ext[j]);
+ }
+ }
+
+ return i;
+ }
+ }
+
+ fprintf(stderr, "Unknown test set: %s\n", test_set_name);
+ exit(1);
+}
+static void fbo_formats_init(int argc, char **argv, GLboolean print_options)
+{
if (!piglit_automatic)
glutKeyboardFunc(fbo_formats_key_func);
piglit_require_extension("GL_EXT_framebuffer_object");
piglit_require_extension("GL_ARB_texture_env_combine");
- for (i = 1; i < argc; i++) {
- for (j = 1; j < (int) ARRAY_SIZE(test_sets); j++) {
- if (!strcmp(argv[i], test_sets[j].param)) {
- for (k = 0; k < 3; k++) {
- if (test_sets[j].ext[k]) {
- piglit_require_extension(test_sets[j].ext[k]);
- }
- }
-
- test_index = j;
- break;
- }
- }
- if (j == ARRAY_SIZE(test_sets)) {
- fprintf(stderr, "Unknown argument: %s\n", argv[i]);
- exit(1);
- }
+ if (argc == 2) {
+ test_index = fbo_lookup_test_set(argv[1]);
+ } else if (argc > 2) {
+ printf("More than 1 test set specified\n");
+ exit(1);
}
if (!piglit_automatic && print_options) {
--
1.7.7.6
More information about the Piglit
mailing list