From 1eb27eb54a03f0f16018da89eb9e06edb9387f42 Mon Sep 17 00:00:00 2001
From: Fabrizio Milo (misto) <mistobaan@gmail.com>
Date: Thu, 4 Mar 2010 02:33:46 +0100
Subject: [PATCH 8/8] test: the exception must be thrown

---
 test/test_driver.py |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/test/test_driver.py b/test/test_driver.py
index 8ba7eb5..460a4f9 100644
--- a/test/test_driver.py
+++ b/test/test_driver.py
@@ -20,8 +20,6 @@ if have_pycuda():
     from pycuda.compiler import SourceModule
 
 
-
-
 class TestDriver:
     disabled = not have_pycuda()
 
@@ -316,6 +314,29 @@ class TestDriver:
         kernel(arg, block=(1,1,1,), )
 
     @mark_cuda_test
+    def test_help_user_when_passing_numpy_array_by_mistake(self):
+
+        n = 1000
+        mod = SourceModule("""
+        __global__ void kernel(int *s_data)
+        {
+          s_data[threadIdx.x] = threadIdx.x;
+        }
+        """ )
+
+        kernel = mod.get_function("kernel")
+        import numpy
+        arg = numpy.random.rand(1000)
+
+        # Test raises
+        import py.test
+        py.test.raises(TypeError, kernel, arg, block=(1,1,1,))
+
+        # Test the kernel is ok
+        arg = gpuarray.zeros((n,), dtype=numpy.int32)
+        kernel(arg, block=(1,1,1,))
+
+    @mark_cuda_test
     def test_bitlog(self):
         from pycuda.tools import bitlog2
         assert bitlog2(17) == 4
-- 
1.6.4

