@@ -963,6 +963,75 @@ def test_pyx_capi_make_general():
963
963
assert zd_arr ._pointer == mat ._pointer
964
964
965
965
966
+ def test_pyx_capi_make_fns_invalid_typenum ():
967
+ q = get_queue_or_skip ()
968
+ usm_ndarray = dpt .empty (tuple (), dtype = "i4" , sycl_queue = q )
969
+
970
+ make_simple_from_ptr = _pyx_capi_fnptr_to_callable (
971
+ usm_ndarray ,
972
+ "UsmNDArray_MakeSimpleFromPtr" ,
973
+ b"PyObject *(size_t, int, DPCTLSyclUSMRef, "
974
+ b"DPCTLSyclQueueRef, PyObject *)" ,
975
+ fn_restype = ctypes .py_object ,
976
+ fn_argtypes = (
977
+ ctypes .c_size_t ,
978
+ ctypes .c_int ,
979
+ ctypes .c_void_p ,
980
+ ctypes .c_void_p ,
981
+ ctypes .py_object ,
982
+ ),
983
+ )
984
+
985
+ nelems = 10
986
+ dtype = dpt .int64
987
+ arr = dpt .arange (nelems , dtype = dtype , sycl_queue = q )
988
+
989
+ with pytest .raises (ValueError ):
990
+ make_simple_from_ptr (
991
+ ctypes .c_size_t (nelems ),
992
+ - 1 ,
993
+ arr ._pointer ,
994
+ arr .sycl_queue .addressof_ref (),
995
+ arr ,
996
+ )
997
+
998
+ make_from_ptr = _pyx_capi_fnptr_to_callable (
999
+ usm_ndarray ,
1000
+ "UsmNDArray_MakeFromPtr" ,
1001
+ b"PyObject *(int, Py_ssize_t const *, int, Py_ssize_t const *, "
1002
+ b"DPCTLSyclUSMRef, DPCTLSyclQueueRef, Py_ssize_t, PyObject *)" ,
1003
+ fn_restype = ctypes .py_object ,
1004
+ fn_argtypes = (
1005
+ ctypes .c_int ,
1006
+ ctypes .POINTER (ctypes .c_ssize_t ),
1007
+ ctypes .c_int ,
1008
+ ctypes .POINTER (ctypes .c_ssize_t ),
1009
+ ctypes .c_void_p ,
1010
+ ctypes .c_void_p ,
1011
+ ctypes .c_ssize_t ,
1012
+ ctypes .py_object ,
1013
+ ),
1014
+ )
1015
+ c_shape = (ctypes .c_ssize_t * 1 )(
1016
+ nelems ,
1017
+ )
1018
+ c_strides = (ctypes .c_ssize_t * 1 )(
1019
+ 1 ,
1020
+ )
1021
+ with pytest .raises (ValueError ):
1022
+ make_from_ptr (
1023
+ ctypes .c_int (1 ),
1024
+ c_shape ,
1025
+ - 1 ,
1026
+ c_strides ,
1027
+ arr ._pointer ,
1028
+ arr .sycl_queue .addressof_ref (),
1029
+ ctypes .c_ssize_t (0 ),
1030
+ arr ,
1031
+ )
1032
+ del arr
1033
+
1034
+
966
1035
def _pyx_capi_int (X , pyx_capi_name , caps_name = b"int" , val_restype = ctypes .c_int ):
967
1036
import sys
968
1037
0 commit comments