Skip to content

Commit a4eec02

Browse files
benlorenzbarche
authored andcommitted
tests: keep some vectors alive for references
1 parent 4e36806 commit a4eec02

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

test/stdlib.jl

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -180,19 +180,21 @@ end
180180
@test vec isa StdVector{StdString}
181181
@test vec == ["a", "b", "c"]
182182

183-
svec_ref = CxxRef.(StdString["a", "b", "c"])
184-
vec = StdVector{StdString}(svec_ref)
185-
@test vec isa StdVector{StdString}
186-
@test vec == ["a", "b", "c"]
187-
188-
svec_deref = getindex.(svec_ref)::Vector{CxxWrap.StdLib.StdStringDereferenced}
189-
vec = StdVector{StdString}(svec_deref)
190-
@test vec isa StdVector{StdString}
191-
@test vec == ["a", "b", "c"]
192-
193-
@test_throws MethodError StdVector{Bool}([true])
194-
@test_throws MethodError StdVector{eltype(svec_alloc)}(svec_alloc)
195-
@test_throws MethodError StdVector{eltype(svec_deref)}(svec_deref)
183+
let svec = StdString["a", "b", "c"]
184+
svec_ref = CxxRef.(svec)
185+
vec = StdVector{StdString}(svec_ref)
186+
@test vec isa StdVector{StdString}
187+
@test vec == ["a", "b", "c"]
188+
189+
svec_deref = getindex.(svec_ref)::Vector{CxxWrap.StdLib.StdStringDereferenced}
190+
vec = StdVector{StdString}(svec_deref)
191+
@test vec isa StdVector{StdString}
192+
@test vec == ["a", "b", "c"]
193+
194+
@test_throws MethodError StdVector{Bool}([true])
195+
@test_throws MethodError StdVector{eltype(svec_alloc)}(svec_alloc)
196+
@test_throws MethodError StdVector{eltype(svec_deref)}(svec_deref)
197+
end
196198
end
197199

198200
@testset "constructors" begin
@@ -231,15 +233,17 @@ end
231233
@test vec isa StdVector{StdString}
232234
@test vec == ["a", "b", "c"]
233235

234-
svec_ref = CxxRef.(StdString["a", "b", "c"])
235-
vec = StdVector(svec_ref)
236-
@test vec isa StdVector{StdString}
237-
@test vec == ["a", "b", "c"]
236+
let svec = StdString["a", "b", "c"]
237+
svec_ref = CxxRef.(svec)
238+
vec = StdVector(svec_ref)
239+
@test vec isa StdVector{StdString}
240+
@test vec == ["a", "b", "c"]
238241

239-
svec_deref = getindex.(svec_ref)::Vector{CxxWrap.StdLib.StdStringDereferenced}
240-
vec = StdVector(svec_deref)
241-
@test vec isa StdVector{StdString}
242-
@test vec == ["a", "b", "c"]
242+
svec_deref = getindex.(svec_ref)::Vector{CxxWrap.StdLib.StdStringDereferenced}
243+
vec = StdVector(svec_deref)
244+
@test vec isa StdVector{StdString}
245+
@test vec == ["a", "b", "c"]
246+
end
243247

244248
@test_throws MethodError StdVector(["a", "b", "c"])
245249
end

0 commit comments

Comments
 (0)