@@ -8,10 +8,35 @@ import Test
88# # --platform selector
99do_platform, platform_filter = ParallelTestRunner. extract_flag! (ARGS , " --platform" , nothing )
1010
11- test_transform = function (test, expr)
11+ # determine tests to run
12+ const testsuite = find_tests (pwd ())
13+ # # GPUArrays test suite: not part of the main package
14+ const GPUArraysTestSuite = let
15+ mod = @eval module $ (gensym ())
16+ using .. Test
17+ import GPUArrays
18+ gpuarrays = pathof (GPUArrays)
19+ gpuarrays_root = dirname (dirname (gpuarrays))
20+ include (joinpath (gpuarrays_root, " test" , " testsuite.jl" ))
21+ end
22+ mod. TestSuite
23+ end
24+ for name in keys (GPUArraysTestSuite. tests)
25+ test = " gpuarrays/$name "
26+ testsuite[test] = :(GPUArraysTestSuite. tests[$ name](CLArray))
27+ end
28+ # # filter
29+ if load_preference (OpenCL, " default_memory_backend" ) == " svm"
30+ # GPUArrays' scalar indexing tests assume that indexing is not supported
31+ delete! (testsuite, " gpuarrays/indexing scalar" )
32+ return false
33+ end
34+
35+ # wrap tests in device loops
36+ function generate_test (test, expr)
1237 # some tests require native execution capabilities
13- requires_il = test in [" atomics" , " execution" , " intrinsics" , " kernelabstractions" , " statistics " ,
14- " linalg" , ] ||
38+ requires_il = test in [" atomics" , " execution" , " intrinsics" , " kernelabstractions" ,
39+ " statistics " , " linalg" , ] ||
1540 startswith (test, " gpuarrays/" )
1641
1742 # targets is a global variable that is defined in init_code
@@ -37,7 +62,7 @@ test_transform = function(test, expr)
3762 end
3863 end
3964
40- @testset device. name for (; platform, device) in targets
65+ @testset " $( device. name) " for (; platform, device) in targets
4166 cl. platform! (platform)
4267 cl. device! (device)
4368
@@ -47,36 +72,8 @@ test_transform = function(test, expr)
4772 end
4873 end
4974end
50-
51- const testsuite = find_tests (pwd ()) do path
52- expr = quote
53- include ($ path)
54- end
55- test_transform (path, expr)
56- end
57-
58- if load_preference (OpenCL, " default_memory_backend" ) == " svm"
59- # GPUArrays' scalar indexing tests assume that indexing is not supported
60- delete! (testsuite, " gpuarrays/indexing scalar" )
61- return false
62- end
63-
64- # GPUArrays has a testsuite that isn't part of the main package.
65- # Include it directly.
66- const GPUArraysTestSuite = let
67- mod = @eval module $ (gensym ())
68- using .. Test
69- import GPUArrays
70- gpuarrays = pathof (GPUArrays)
71- gpuarrays_root = dirname (dirname (gpuarrays))
72- include (joinpath (gpuarrays_root, " test" , " testsuite.jl" ))
73- end
74- mod. TestSuite
75- end
76-
77- for name in keys (GPUArraysTestSuite. tests)
78- test = " gpuarrays/$name "
79- testsuite[test] = test_transform (test, :(GPUArraysTestSuite. tests[$ name](CLArray)))
75+ for test in keys (testsuite)
76+ testsuite[test] = generate_test (test, testsuite[test])
8077end
8178
8279const init_code = quote
0 commit comments