From 3ee443f2f4fc0297f5ef92919f9af464eefcb2fd Mon Sep 17 00:00:00 2001
From: Yichao Yu <yyc1992@gmail.com>
Date: Sun, 29 Jun 2014 07:49:21 +0800
Subject: [PATCH] test_enqueue_task

---
 test/test_wrapper.py | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/test/test_wrapper.py b/test/test_wrapper.py
index 747397bd..406cd046 100644
--- a/test/test_wrapper.py
+++ b/test/test_wrapper.py
@@ -642,6 +642,36 @@ 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 = 1000000
+    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_read_buffer(queue, buf2, b).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
-- 
GitLab