From: Tom Stellard <[email protected]> all_cl.py will now run each OpenCV sub-test individually, and quick_cl.py will run only the OpenCV parent tests. Both profiles run the exact same tests, but all_cl.py gives finer-grained results and also takes longer due to the overhead of running each sub-test individually.
For example: ./piglit-run.py tests/all_cl.py -t Lut results/lut [Wed Jan 15 12:08:05 2014] :: running :: opencv/Arithm/Lut/Mat/2 [Wed Jan 15 12:08:06 2014] :: pass :: opencv/Arithm/Lut/Mat/2 [Wed Jan 15 12:08:06 2014] :: running :: opencv/Arithm/Lut/Mat/0 [Wed Jan 15 12:08:06 2014] :: pass :: opencv/Arithm/Lut/Mat/0 [Wed Jan 15 12:08:06 2014] :: running :: opencv/Arithm/Lut/Mat/1 [Wed Jan 15 12:08:08 2014] :: pass :: opencv/Arithm/Lut/Mat/1 ./piglit-run.py tests/quick_cl.py -t Lut results/lut-quick [Wed Jan 15 12:08:14 2014] :: running :: opencv/Arithm/Lut [Wed Jan 15 12:08:16 2014] :: pass :: opencv/Arithm/Lut --- tests/all_cl.py | 152 ++++++++++-------------------------------------------- tests/cl.py | 126 ++++++++++++++++++++++++++++++++++++++++++++ tests/quick_cl.py | 30 +++++++++++ 3 files changed, 183 insertions(+), 125 deletions(-) create mode 100644 tests/cl.py create mode 100644 tests/quick_cl.py diff --git a/tests/all_cl.py b/tests/all_cl.py index b9c112a..64d5638 100644 --- a/tests/all_cl.py +++ b/tests/all_cl.py @@ -1,128 +1,30 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- -# All OpenCL tests that come with piglit, using default settings - -__all__ = ['profile'] - -import os -import os.path as path - +# +# Copyright 2014 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Authors: Tom Stellard <[email protected]> +# + +from tests.cl import profile from tests.opencv import add_opencv_tests -from framework.core import Group, TestProfile -from framework.exectest import PlainExecTest - -###### -# Helper functions - -def add_plain_test(group, name, args): - group[name] = PlainExecTest(args) - -def add_concurrent_test(group, name, args): - test = PlainExecTest(args) - test.runConcurrent = true; - group[name] = PlainExecTest(args) - -def add_plain_program_tester_test(group, name, path): - add_plain_test(group, name, ['cl-program-tester', path]) - -###### -# Collecting all tests -profile = TestProfile() - -custom = Group() -api = Group() -program = Group() -profile.tests['Custom'] = custom -profile.tests['API'] = api -profile.tests['Program'] = program - -###### -# Tests - -# Custom -add_plain_test(custom, 'Run simple kernel', ['cl-custom-run-simple-kernel']) -add_plain_test(custom, 'Flush after enqueue kernel', ['cl-custom-flush-after-enqueue-kernel']) -add_plain_test(custom, 'r600 create release buffer bug', ['cl-custom-r600-create-release-buffer-bug']) -add_plain_test(custom, 'Buffer flags', ['cl-custom-buffer-flags']) - -# API -# Platform -add_plain_test(api, 'clGetPlatformIDs', ['cl-api-get-platform-ids']) -add_plain_test(api, 'clGetPlatformInfo', ['cl-api-get-platform-info']) -# Device -add_plain_test(api, 'clGetDeviceIDs', ['cl-api-get-device-ids']) -add_plain_test(api, 'clGetDeviceInfo', ['cl-api-get-device-info']) -# Context -add_plain_test(api, 'clCreateContext', ['cl-api-create-context']) -add_plain_test(api, 'clCreateContextFromType', ['cl-api-create-context-from-type']) -add_plain_test(api, 'clGetContextInfo', ['cl-api-get-context-info']) -add_plain_test(api, 'clRetainContext and clReleaseContext', ['cl-api-retain_release-context']) -# Command Queues -add_plain_test(api, 'clCreateCommandQueue', ['cl-api-create-command-queue']) -add_plain_test(api, 'clRetainComandQueue and clReleaseCommandQueue', ['cl-api-retain_release-command-queue']) -add_plain_test(api, 'clGetCommandQueueInfo', ['cl-api-get-command-queue-info']) -# Memory objects -add_plain_test(api, 'clCreateBuffer', ['cl-api-create-buffer']) -add_plain_test(api, 'clEnqueueCopyBuffer', ['cl-api-enqueue-copy-buffer']) -add_plain_test(api, 'clEnqueueReadBuffer and clEnqueueWriteBuffer', ['cl-api-enqueue-read_write-buffer']) -add_plain_test(api, 'clGetMemObjectInfo', ['cl-api-get-mem-object-info']) -add_plain_test(api, 'clGetImageInfo', ['cl-api-get-image-info']) -add_plain_test(api, 'clRetainMemObject and clReleaseMemObject', ['cl-api-retain_release-mem-object']) -# Program -add_plain_test(api, 'clCreateProgramWithSource', ['cl-api-create-program-with-source']) -add_plain_test(api, 'clBuildProgram', ['cl-api-build-program']) -add_plain_test(api, 'clCreateKernelsInProgram', ['cl-api-create-kernels-in-program']) -add_plain_test(api, 'clGetProgramInfo', ['cl-api-get-program-info']) -add_plain_test(api, 'clGetProgramBuildInfo', ['cl-api-get-program-build-info']) -add_plain_test(api, 'clRetainProgram and clReleaseProgram', ['cl-api-retain_release-program']) -add_plain_test(api, 'clUnloadCompiler', ['cl-api-unload-compiler']) -# Kernel -add_plain_test(api, 'clCreateKernel', ['cl-api-create-kernel']) -add_plain_test(api, 'clCreateKernelsInProgram', ['cl-api-create-kernels-in-program']) -add_plain_test(api, 'clGetKernelInfo', ['cl-api-get-kernel-info']) -add_plain_test(api, 'clGetKernelWorkGroupInfo', ['cl-api-get-kernel-work-group-info']) -add_plain_test(api, 'clRetainKernel and clReleaseKernel', ['cl-api-retain_release-kernel']) -add_plain_test(api, 'clSetKernelArg', ['cl-api-set-kernel-arg']) -# Event -add_plain_test(api, 'clGetEventInfo', ['cl-api-get-event-info']) -add_plain_test(api, 'clRetainEvent and clReleaseEvent', ['cl-api-retain_release-event']) - -# Program -add_plain_test(program, 'Run kernel with max work item sizes', ['cl-program-max-work-item-sizes']) -add_plain_test(program, 'Bitcoin: phatk kernel', ['cl-program-bitcoin-phatk']) - -# Program tester - -def add_program_test_dir(group, dirpath): - for filename in os.listdir(dirpath): - filepath = path.join(dirpath, filename) - ext = filename.rsplit('.')[-1] - if ext != 'cl' and ext != 'program_test': - continue - testname = filename[0:-(len(ext) + 1)] - add_plain_program_tester_test(group, testname, filepath) - -program_build = Group() -program_build_fail = Group() -program_execute = Group() -program["Build"] = program_build -program["Build"]["Fail"] = program_build_fail -program["Execute"] = program_execute - -add_program_test_dir(program_build, 'tests/cl/program/build') -add_program_test_dir(program_build_fail, 'tests/cl/program/build/fail') -add_program_test_dir(program_execute, 'tests/cl/program/execute') -add_program_test_dir(program_execute, 'tests/cl/program/execute/builtin/atomic') - -#Run generated built-in tests -program_execute_builtin = Group() -program["Execute"]["Builtin"] = program_execute_builtin -add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/int') -add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/math') -add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/relational') -program_execute_store = Group() -program["Execute"]["Store"] = program_execute_store -add_program_test_dir(program_execute_store, 'generated_tests/cl/store') - -add_opencv_tests(profile) +add_opencv_tests(profile, True) diff --git a/tests/cl.py b/tests/cl.py new file mode 100644 index 0000000..69803f3 --- /dev/null +++ b/tests/cl.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# All OpenCL tests that come with piglit, using default settings + +__all__ = ['profile'] + +import os +import os.path as path + +from tests.opencv import add_opencv_tests + +from framework.core import Group, TestProfile +from framework.exectest import PlainExecTest + +###### +# Helper functions + +def add_plain_test(group, name, args): + group[name] = PlainExecTest(args) + +def add_concurrent_test(group, name, args): + test = PlainExecTest(args) + test.runConcurrent = true; + group[name] = PlainExecTest(args) + +def add_plain_program_tester_test(group, name, path): + add_plain_test(group, name, ['cl-program-tester', path]) + +###### +# Collecting all tests +profile = TestProfile() + +custom = Group() +api = Group() +program = Group() +profile.tests['Custom'] = custom +profile.tests['API'] = api +profile.tests['Program'] = program + +###### +# Tests + +# Custom +add_plain_test(custom, 'Run simple kernel', ['cl-custom-run-simple-kernel']) +add_plain_test(custom, 'Flush after enqueue kernel', ['cl-custom-flush-after-enqueue-kernel']) +add_plain_test(custom, 'r600 create release buffer bug', ['cl-custom-r600-create-release-buffer-bug']) +add_plain_test(custom, 'Buffer flags', ['cl-custom-buffer-flags']) + +# API +# Platform +add_plain_test(api, 'clGetPlatformIDs', ['cl-api-get-platform-ids']) +add_plain_test(api, 'clGetPlatformInfo', ['cl-api-get-platform-info']) +# Device +add_plain_test(api, 'clGetDeviceIDs', ['cl-api-get-device-ids']) +add_plain_test(api, 'clGetDeviceInfo', ['cl-api-get-device-info']) +# Context +add_plain_test(api, 'clCreateContext', ['cl-api-create-context']) +add_plain_test(api, 'clCreateContextFromType', ['cl-api-create-context-from-type']) +add_plain_test(api, 'clGetContextInfo', ['cl-api-get-context-info']) +add_plain_test(api, 'clRetainContext and clReleaseContext', ['cl-api-retain_release-context']) +# Command Queues +add_plain_test(api, 'clCreateCommandQueue', ['cl-api-create-command-queue']) +add_plain_test(api, 'clRetainComandQueue and clReleaseCommandQueue', ['cl-api-retain_release-command-queue']) +add_plain_test(api, 'clGetCommandQueueInfo', ['cl-api-get-command-queue-info']) +# Memory objects +add_plain_test(api, 'clCreateBuffer', ['cl-api-create-buffer']) +add_plain_test(api, 'clEnqueueCopyBuffer', ['cl-api-enqueue-copy-buffer']) +add_plain_test(api, 'clEnqueueReadBuffer and clEnqueueWriteBuffer', ['cl-api-enqueue-read_write-buffer']) +add_plain_test(api, 'clGetMemObjectInfo', ['cl-api-get-mem-object-info']) +add_plain_test(api, 'clGetImageInfo', ['cl-api-get-image-info']) +add_plain_test(api, 'clRetainMemObject and clReleaseMemObject', ['cl-api-retain_release-mem-object']) +# Program +add_plain_test(api, 'clCreateProgramWithSource', ['cl-api-create-program-with-source']) +add_plain_test(api, 'clBuildProgram', ['cl-api-build-program']) +add_plain_test(api, 'clCreateKernelsInProgram', ['cl-api-create-kernels-in-program']) +add_plain_test(api, 'clGetProgramInfo', ['cl-api-get-program-info']) +add_plain_test(api, 'clGetProgramBuildInfo', ['cl-api-get-program-build-info']) +add_plain_test(api, 'clRetainProgram and clReleaseProgram', ['cl-api-retain_release-program']) +add_plain_test(api, 'clUnloadCompiler', ['cl-api-unload-compiler']) +# Kernel +add_plain_test(api, 'clCreateKernel', ['cl-api-create-kernel']) +add_plain_test(api, 'clCreateKernelsInProgram', ['cl-api-create-kernels-in-program']) +add_plain_test(api, 'clGetKernelInfo', ['cl-api-get-kernel-info']) +add_plain_test(api, 'clGetKernelWorkGroupInfo', ['cl-api-get-kernel-work-group-info']) +add_plain_test(api, 'clRetainKernel and clReleaseKernel', ['cl-api-retain_release-kernel']) +add_plain_test(api, 'clSetKernelArg', ['cl-api-set-kernel-arg']) +# Event +add_plain_test(api, 'clGetEventInfo', ['cl-api-get-event-info']) +add_plain_test(api, 'clRetainEvent and clReleaseEvent', ['cl-api-retain_release-event']) + +# Program +add_plain_test(program, 'Run kernel with max work item sizes', ['cl-program-max-work-item-sizes']) +add_plain_test(program, 'Bitcoin: phatk kernel', ['cl-program-bitcoin-phatk']) + +# Program tester + +def add_program_test_dir(group, dirpath): + for filename in os.listdir(dirpath): + filepath = path.join(dirpath, filename) + ext = filename.rsplit('.')[-1] + if ext != 'cl' and ext != 'program_test': + continue + testname = filename[0:-(len(ext) + 1)] + add_plain_program_tester_test(group, testname, filepath) + +program_build = Group() +program_build_fail = Group() +program_execute = Group() +program["Build"] = program_build +program["Build"]["Fail"] = program_build_fail +program["Execute"] = program_execute + +add_program_test_dir(program_build, 'tests/cl/program/build') +add_program_test_dir(program_build_fail, 'tests/cl/program/build/fail') +add_program_test_dir(program_execute, 'tests/cl/program/execute') +add_program_test_dir(program_execute, 'tests/cl/program/execute/builtin/atomic') + +#Run generated built-in tests +program_execute_builtin = Group() +program["Execute"]["Builtin"] = program_execute_builtin +add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/int') +add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/math') +add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/relational') +program_execute_store = Group() +program["Execute"]["Store"] = program_execute_store +add_program_test_dir(program_execute_store, 'generated_tests/cl/store') diff --git a/tests/quick_cl.py b/tests/quick_cl.py new file mode 100644 index 0000000..a4f08c1 --- /dev/null +++ b/tests/quick_cl.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# +# Copyright 2014 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Authors: Tom Stellard <[email protected]> +# + +from tests.cl import profile +from tests.opencv import add_opencv_tests + +add_opencv_tests(profile) -- 1.8.1.4 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
