Skip to content

Commit e739564

Browse files
committed
use gensym to generate the name of the hidden Dict
1 parent ca756ab commit e739564

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/InlineTest.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ export @addtest, runtests, @testset, @test, @test_throws
55
using Test: @test, @test_throws, @testset
66
import Test
77

8+
const INLINE_TEST = Ref{Symbol}(:__INLINE_TEST__)
9+
10+
__init__() = INLINE_TEST[] = gensym()
11+
812
function tests(m)
9-
if !isdefined(m, :__INLINE_TESTS__)
10-
@eval m __INLINE_TESTS__ = Dict{AbstractString, Expr}()
13+
inline_test::Symbol = m (InlineTest, InlineTest.InlineTestTest) ? :__INLINE_TEST__ : INLINE_TEST[]
14+
if !isdefined(m, inline_test)
15+
@eval m $inline_test = Dict{AbstractString, Expr}()
1116
end
12-
m.__INLINE_TESTS__
17+
getfield(m, inline_test)
1318
end
1419

1520
function addtest(args::Tuple, m::Module)
@@ -42,7 +47,7 @@ end
4247

4348
function runtests()
4449
foreach(values(Base.loaded_modules)) do m
45-
if isdefined(m, :__INLINE_TESTS__) && m != InlineTest && m != InlineTest.InlineTestTest
50+
if isdefined(m, INLINE_TEST[]) # will automatically skip InlineTest and InlineTest.InlineTestTest
4651
ts = runtests(m)
4752
end
4853
end

0 commit comments

Comments
 (0)