[Piglit] [PATCH] Only specify -cl-std when test hasn't explicitly overridden -cl-std (v2)

Aaron Watry awatry at gmail.com
Mon Dec 17 20:37:49 PST 2012


The previous code would always add -cl-std if the version was > 1.0. This
ignored whatever the test itself wanted (e.g. the invalid-version-declaration
test). We should probably only add " -cl-std=x.y" when the test hasn't
requested a specific version.

Note: This doesn't address the rewrite of the intended functionality that Blaz,
Tom, and I discussed on the list last week.

v2: Remove -D __OPENCL_C_VERSION__=1%d0 and -D CL_VERSION_1_0=100
    Change the order in which the -cl-std checks are done.
---
 tests/util/piglit-framework-cl-program.c |   37 +++++++++--------------------
 1 files changed, 12 insertions(+), 25 deletions(-)

diff --git a/tests/util/piglit-framework-cl-program.c b/tests/util/piglit-framework-cl-program.c
index f504bae..a2f19f9 100644
--- a/tests/util/piglit-framework-cl-program.c
+++ b/tests/util/piglit-framework-cl-program.c
@@ -211,31 +211,6 @@ piglit_cl_program_test_run(const int argc,
 	}
 
 	/* Set build options */
-	if(version > 10) {
-		char* template = "-cl-std=CL%d.%d ";
-		char* old = build_options;
-		build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));
-		strcpy(build_options, old);
-		sprintf(build_options+strlen(old), template, env.clc_version/10,
-		                                             env.clc_version%10);
-		free(old);
-	}
-	if(env.clc_version <= 10) {
-		char* template = "-D CL_VERSION_1_0=100 ";
-		char* old = build_options;
-		build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));
-		strcpy(build_options, old);
-		sprintf(build_options+strlen(old), template);
-		free(old);
-	}
-	if(env.clc_version <= 11) {
-		char* template = "-D __OPENCL_C_VERSION__=1%d0 ";
-		char* old = build_options;
-		build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));
-		strcpy(build_options, old);
-		sprintf(build_options+strlen(old), template, env.clc_version%10);
-		free(old);
-	}
 	if(config->build_options != NULL) {
 		char* old = build_options;
 		build_options = malloc((strlen(old) + strlen(config->build_options) + 1) * sizeof(char));
@@ -243,6 +218,18 @@ piglit_cl_program_test_run(const int argc,
 		sprintf(build_options+strlen(old), config->build_options);
 		free(old);
 	}
+	if(version > 10) {
+                //If -cl-std was already in config->build_options, use what the test requested
+		if (!strstr(build_options, "-cl-std")){	
+                    char* template = " -cl-std=CL%d.%d";
+                    char* old = build_options;
+                    build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));
+                    strcpy(build_options, old);
+                    sprintf(build_options+strlen(old), template, env.clc_version/10,
+                                                                 env.clc_version%10);
+                    free(old);
+                }
+	}
 
 	printf("#   Build options: %s\n", build_options);
 
-- 
1.7.4.4



More information about the Piglit mailing list