Skip to content

Commit 02bdb17

Browse files
committed
Simplify and fix.
1 parent fe25dc6 commit 02bdb17

File tree

1 file changed

+31
-34
lines changed

1 file changed

+31
-34
lines changed

test/runtests.jl

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,35 @@ import Test
88
## --platform selector
99
do_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
4974
end
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])
8077
end
8178

8279
const init_code = quote

0 commit comments

Comments
 (0)