Skip to content

Commit 8b8c73f

Browse files
vchuravymaleadt
andauthored
Switch test suite to FileCheck (#703)
Co-authored-by: Tim Besard <[email protected]>
1 parent 79e0f56 commit 8b8c73f

File tree

15 files changed

+1009
-528
lines changed

15 files changed

+1009
-528
lines changed

test/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
44
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
5+
IOCapture = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
56
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
67
LLVM = "929cbde3-209d-540e-8aea-75f648917ca0"
8+
LLVM_jll = "86de99a1-58d6-5da7-8064-bd56ce2e322c"
79
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
810
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
911
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"

test/bpf.jl

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,68 @@
11
@testset "No-op" begin
2-
kernel() = 0
2+
mod = @eval module $(gensym())
3+
kernel() = 0
4+
end
35

4-
output = sprint(io->BPF.code_native(io, kernel, ()))
5-
@test occursin("\tr0 = 0\n\texit", output)
6+
@test @filecheck begin
7+
check"CHECK-LABEL: julia_kernel_{{[0-9_]*}}:"
8+
check"CHECK: r0 = 0"
9+
check"CHECK-NEXT: exit"
10+
BPF.code_native(mod.kernel, ())
11+
end
612
end
713
@testset "Return argument" begin
8-
kernel(x) = x
14+
mod = @eval module $(gensym())
15+
kernel(x) = x
16+
end
917

10-
output = sprint(io->BPF.code_native(io, kernel, (UInt64,)))
11-
@test occursin("\tr0 = r1\n\texit", output)
18+
@test @filecheck begin
19+
check"CHECK-LABEL: julia_kernel_{{[0-9_]*}}:"
20+
check"CHECK: r0 = r1"
21+
check"CHECK-NEXT: exit"
22+
BPF.code_native(mod.kernel, (UInt64,))
23+
end
1224
end
1325
@testset "Addition" begin
14-
kernel(x) = x+1
26+
mod = @eval module $(gensym())
27+
kernel(x) = x+1
28+
end
1529

16-
output = sprint(io->BPF.code_native(io, kernel, (UInt64,)))
17-
@test occursin("\tr0 = r1\n\tr0 += 1\n\texit", output)
30+
@test @filecheck begin
31+
check"CHECK-LABEL: julia_kernel_{{[0-9_]*}}:"
32+
check"CHECK: r0 = r1"
33+
check"CHECK-NEXT: r0 += 1"
34+
check"CHECK-NEXT: exit"
35+
BPF.code_native(mod.kernel, (UInt64,))
36+
end
1837
end
1938
@testset "Errors" begin
20-
kernel(x) = fakefunc(x)
39+
mod = @eval module $(gensym())
40+
kernel(x) = fakefunc(x)
41+
end
2142

22-
@test_throws GPUCompiler.InvalidIRError BPF.code_execution(kernel, (UInt64,))
43+
@test_throws GPUCompiler.InvalidIRError BPF.code_execution(mod.kernel, (UInt64,))
2344
end
2445
@testset "Function Pointers" begin
2546
@testset "valid" begin
26-
goodcall(x) = Base.llvmcall("%2 = call i64 inttoptr (i64 3 to i64 (i64)*)(i64 %0)\nret i64 %2", Int, Tuple{Int}, x)
27-
kernel(x) = goodcall(x)
47+
mod = @eval module $(gensym())
48+
goodcall(x) = Base.llvmcall("%2 = call i64 inttoptr (i64 3 to i64 (i64)*)(i64 %0)\nret i64 %2", Int, Tuple{Int}, x)
49+
kernel(x) = goodcall(x)
50+
end
2851

29-
output = sprint(io->BPF.code_native(io, kernel, (Int,)))
30-
@test occursin(r"\tcall .*\n\texit", output)
52+
@test @filecheck begin
53+
check"CHECK-LABEL: julia_kernel_{{[0-9_]*}}:"
54+
check"CHECK: call"
55+
check"CHECK-NEXT: exit"
56+
BPF.code_native(mod.kernel, (Int,))
57+
end
3158
end
59+
3260
@testset "invalid" begin
33-
badcall(x) = Base.llvmcall("%2 = call i64 inttoptr (i64 3000 to i64 (i64)*)(i64 %0)\nret i64 %2", Int, Tuple{Int}, x)
34-
kernel(x) = badcall(x)
61+
mod = @eval module $(gensym())
62+
badcall(x) = Base.llvmcall("%2 = call i64 inttoptr (i64 3000 to i64 (i64)*)(i64 %0)\nret i64 %2", Int, Tuple{Int}, x)
63+
kernel(x) = badcall(x)
64+
end
3565

36-
@test_throws GPUCompiler.InvalidIRError BPF.code_execution(kernel, (Int,))
66+
@test_throws GPUCompiler.InvalidIRError BPF.code_execution(mod.kernel, (Int,))
3767
end
3868
end

0 commit comments

Comments
 (0)