[Piglit] [PATCH 3/3] cl: Add quick_cl.py test profile
Tom Stellard
tom at stellard.net
Wed Jan 22 10:19:29 PST 2014
From: Tom Stellard <thomas.stellard at amd.com>
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 d45036a..b62b6c1 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 <thomas.stellard at amd.com>
+#
+
+from tests.cl import profile
from framework.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..057dbfb
--- /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 framework.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..17729b2
--- /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 <thomas.stellard at amd.com>
+#
+
+from tests.cl import profile
+from framework.opencv import add_opencv_tests
+
+add_opencv_tests(profile)
--
1.8.1.4
More information about the Piglit
mailing list