diff options
author | Dylan Baker <baker.dylan.c@gmail.com> | 2015-01-26 15:31:50 -0800 |
---|---|---|
committer | Dylan Baker <baker.dylan.c@gmail.com> | 2015-03-05 09:46:47 -0800 |
commit | 7c7f4fb942738b876601e8b157b5c6b5da567920 (patch) | |
tree | c7822d1b4f900f983bcdb3f358aff866a5798f84 /tests/cl.py | |
parent | ca7b1b00e82f6852f8f8bd13bfbe0983f929602b (diff) |
cl.py: Use TestProfile.group_manager
v2: - Fix function to work if run_concurrent is not set
Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Diffstat (limited to 'tests/cl.py')
-rw-r--r-- | tests/cl.py | 192 |
1 files changed, 93 insertions, 99 deletions
diff --git a/tests/cl.py b/tests/cl.py index 96b3344c3..cec19c549 100644 --- a/tests/cl.py +++ b/tests/cl.py @@ -19,105 +19,103 @@ from .py_modules.constants import TESTS_DIR, GENERATED_TESTS_DIR __all__ = ['profile'] -###### -# Helper functions can_do_concurrent = (not sys.platform.startswith('linux') or glob.glob('/dev/dri/render*')) -def add_plain_test(group, name, args): - group[name] = PiglitCLTest(args, run_concurrent=can_do_concurrent) +def cl_test(*args, **kwargs): + """Wrapper for PiglitCLTest that sets run_concurrent. + Always set concurrent to can_do_concurrent, but allow it to be turned off + explicitely. -def add_plain_program_tester_test(group, name, path): - add_plain_test(group, name, ['cl-program-tester', path]) + """ + if kwargs.get('run_concurrent') is not False: + kwargs['run_concurrent'] = can_do_concurrent + return PiglitCLTest(*args, **kwargs) -###### -# Collecting all tests profile = TestProfile() -custom = profile.tests['Custom'] -api = profile.tests['API'] -program = profile.tests['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, 'clCreateImage', ['cl-api-create-image']) -add_plain_test(api, 'clCreateSampler', ['cl-api-create-sampler']) -add_plain_test(api, 'clEnqueueCopyBuffer', ['cl-api-enqueue-copy-buffer']) -add_plain_test(api, 'clEnqueueCopyBufferRect', - ['cl-api-enqueue-copy-buffer-rect']) -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, 'clCreateProgramWithBinary', - ['cl-api-create-program-with-binary']) -add_plain_test(api, 'clCreateProgramWithSource', - ['cl-api-create-program-with-source']) -add_plain_test(api, 'clBuildProgram', ['cl-api-build-program']) -add_plain_test(api, 'clCompileProgram', ['cl-api-compile-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']) +with profile.group_manager(cl_test, 'custom') as g: + g(['cl-custom-run-simple-kernel'], 'Run simple kernel') + g(['cl-custom-flush-after-enqueue-kernel'], 'Flush after enqueue kernel') + g(['cl-custom-r600-create-release-buffer-bug'], + 'r600 create release buffer bug') + g(['cl-custom-buffer-flags'], 'Buffer flags') + +with profile.group_manager(cl_test, 'api') as g: + # Platform + g(['cl-api-get-platform-ids'], 'clGetPlatformIDs') + g(['cl-api-get-platform-info'], 'clGetPlatformInfo') + + # Device + g(['cl-api-get-device-ids'], 'clGetDeviceIDs') + g(['cl-api-get-device-info'], 'clGetDeviceInfo') + + # Context + g(['cl-api-create-context'], 'clCreateContext') + g(['cl-api-create-context-from-type'], 'clCreateContextFromType') + g(['cl-api-get-context-info'], 'clGetContextInfo') + g(['cl-api-retain_release-context'], + 'clRetainContext and clReleaseContext') + + # Command Queues + g(['cl-api-create-command-queue'], 'clCreateCommandQueue') + g(['cl-api-retain_release-command-queue'], + 'clRetainComandQueue and clReleaseCommandQueue') + g(['cl-api-get-command-queue-info'], 'clGetCommandQueueInfo') + + # Memory objects + g(['cl-api-create-buffer'], 'clCreateBuffer') + g(['cl-api-create-image'], 'clCreateImage') + g(['cl-api-create-sampler'], 'clCreateSampler') + g(['cl-api-enqueue-copy-buffer'], 'clEnqueueCopyBuffer') + g(['cl-api-enqueue-copy-buffer-rect'], 'clEnqueueCopyBufferRect') + g(['cl-api-enqueue-read_write-buffer'], + 'clEnqueueReadBuffer and clEnqueueWriteBuffer') + g(['cl-api-get-mem-object-info'], 'clGetMemObjectInfo') + g(['cl-api-get-image-info'], 'clGetImageInfo') + g(['cl-api-retain_release-mem-object'], + 'clRetainMemObject and clReleaseMemObject') + + g(['cl-api-create-program-with-binary'], 'clCreateProgramWithBinary') + g(['cl-api-create-program-with-source'], 'clCreateProgramWithSource') + g(['cl-api-build-program'], 'clBuildProgram') + g(['cl-api-compile-program'], 'clCompileProgram') + g(['cl-api-create-kernels-in-program'], 'clCreateKernelsInProgram') + g(['cl-api-get-program-info'], 'clGetProgramInfo') + g(['cl-api-get-program-build-info'], 'clGetProgramBuildInfo') + g(['cl-api-retain_release-program'], 'clRetainProgram and clReleaseProgram') + g(['cl-api-unload-compiler'], 'clUnloadCompiler') + + # Kernel + g(['cl-api-create-kernel'], 'clCreateKernel') + g(['cl-api-create-kernels-in-program'], 'clCreateKernelsInProgram') + g(['cl-api-get-kernel-info'], 'clGetKernelInfo') + g(['cl-api-get-kernel-work-group-info'], 'clGetKernelWorkGroupInfo') + g(['cl-api-retain_release-kernel'], 'clRetainKernel and clReleaseKernel') + g(['cl-api-set-kernel-arg'], 'clSetKernelArg') + + # Event + g(['cl-api-get-event-info'], 'clGetEventInfo') + g(['cl-api-retain_release-event'], 'clRetainEvent and clReleaseEvent') + +with profile.group_manager(cl_test, 'program') as g: + g(['cl-program-max-work-item-sizes'], + 'Run kernel with max work item sizes') + g(['cl-program-bitcoin-phatk'], 'Bitcoin: phatk kernel') + + +def add_plain_test(group, name, args): + group[name] = PiglitCLTest(args, run_concurrent=can_do_concurrent) + + +def add_plain_program_tester_test(group, name, path): + add_plain_test(group, name, ['cl-program-tester', path]) def add_program_test_dir(group, dirpath): @@ -130,31 +128,27 @@ def add_program_test_dir(group, dirpath): add_plain_program_tester_test(group, testname, filepath) -program_build = program["Build"] -program_build_fail = program["Build"]["Fail"] -program_execute = program["Execute"] -add_program_test_dir(program_build, +add_program_test_dir(profile.tests['Program']["Build"], os.path.join(TESTS_DIR, 'cl', 'program', 'build')) -add_program_test_dir(program_build_fail, +add_program_test_dir(profile.tests['Program']["Build"]['fail'], os.path.join(TESTS_DIR, 'cl', 'program', 'build', 'fail')) -add_program_test_dir(program_execute, +add_program_test_dir(profile.tests['Program']["execute"], os.path.join(TESTS_DIR, 'cl', 'program', 'execute')) -add_program_test_dir(program_execute, +add_program_test_dir(profile.tests['Program']["execute"], os.path.join(TESTS_DIR, 'cl', 'program', 'execute', 'builtin', 'atomic')) -add_program_test_dir(program_execute, +add_program_test_dir(profile.tests['Program']["execute"], os.path.join(TESTS_DIR, 'cl', 'program', 'execute', 'builtin', 'convert')) # Run generated built-in tests -program_execute_builtin = program["Execute"]["Builtin"] -add_program_test_dir(program_execute_builtin, +add_program_test_dir(profile.tests['Program']["execute"]["Builtin"], os.path.join(GENERATED_TESTS_DIR, 'cl', 'builtin', 'int')) -add_program_test_dir(program_execute_builtin, +add_program_test_dir(profile.tests['Program']["execute"]["Builtin"], os.path.join(GENERATED_TESTS_DIR, 'cl', 'builtin', 'math')) -add_program_test_dir(program_execute_builtin, +add_program_test_dir(profile.tests['Program']["execute"]["Builtin"], os.path.join(GENERATED_TESTS_DIR, 'cl', 'builtin', 'relational')) -add_program_test_dir(program["Execute"]["Store"], +add_program_test_dir(profile.tests['program']["Execute"]["Store"], os.path.join(GENERATED_TESTS_DIR, 'cl', 'store')) |