diff --git a/test/test_wrapper.py b/test/test_wrapper.py index 747397bd6af7324013f30763df9c57526b36192d..2e3636cb11019e4d152e42b9ba1fccae4ce77790 100644 --- a/test/test_wrapper.py +++ b/test/test_wrapper.py @@ -642,6 +642,37 @@ def test_unload_compiler(ctx_factory): skip("Intel proprietary driver does not support unloading compiler") cl.unload_platform_compiler(platform) + +def test_enqueue_task(ctx_factory): + ctx = ctx_factory() + queue = cl.CommandQueue(ctx) + mf = cl.mem_flags + + prg = cl.Program(ctx, """ + __kernel void + reverse(__global const float *in, __global float *out, int n) + { + for (int i = 0;i < n;i++) { + out[i] = in[n - 1 - i]; + } + } + """).build() + knl = prg.reverse + + n = 100 + a = np.random.rand(n).astype(np.float32) + b = np.empty_like(a) + + buf1 = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=a) + buf2 = cl.Buffer(ctx, mf.WRITE_ONLY, b.nbytes) + + knl.set_args(buf1, buf2, np.int32(n)) + cl.enqueue_task(queue, knl) + + cl.enqueue_copy(queue, b, buf2).wait() + assert la.norm(a[::-1] - b) == 0 + + if __name__ == "__main__": # make sure that import failures get reported, instead of skipping the tests. import pyopencl # noqa