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

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to