Skip to content

Commit 2852538

Browse files
committed
Fix StdString test GC rooting
1 parent e741386 commit 2852538

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

test/stdlib.jl

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,18 +171,20 @@ end
171171
@test vec isa StdVector{CxxBool}
172172
@test vec == [true, false, true]
173173

174-
vec = StdVector{StdString}(["a", "b", "c"])
174+
vec = StdVector{StdString}(["p", "q", "r"])
175175
@test vec isa StdVector{StdString}
176-
@test vec == ["a", "b", "c"]
176+
@test vec == ["p", "q", "r"]
177177

178-
svec_alloc = StdString.(["a", "b", "c"])::Vector{CxxWrap.StdLib.StdStringAllocated}
178+
svec_alloc = StdString.(["p", "q", "r"])::Vector{CxxWrap.StdLib.StdStringAllocated}
179179
vec = StdVector{StdString}(svec_alloc)
180180
@test vec isa StdVector{StdString}
181-
@test vec == ["a", "b", "c"]
181+
@test vec == ["p", "q", "r"]
182182

183183
let svec = StdString["a", "b", "c"]
184184
svec_ref = CxxRef.(svec)
185+
GC.gc()
185186
vec = StdVector{StdString}(svec_ref)
187+
GC.gc()
186188
@test vec isa StdVector{StdString}
187189
@test vec == ["a", "b", "c"]
188190

@@ -194,6 +196,10 @@ end
194196
@test_throws MethodError StdVector{Bool}([true])
195197
@test_throws MethodError StdVector{eltype(svec_alloc)}(svec_alloc)
196198
@test_throws MethodError StdVector{eltype(svec_deref)}(svec_deref)
199+
200+
@test svec[1] == "a"
201+
@test svec[2] == "b"
202+
@test svec[3] == "c"
197203
end
198204
end
199205

@@ -224,28 +230,28 @@ end
224230
@test vec isa StdVector{CxxBool}
225231
@test vec == [true, false, true]
226232

227-
vec = StdVector(StdString["a", "b", "c"])
233+
vec = StdVector(StdString["x", "y", "z"])
228234
@test vec isa StdVector{StdString}
229-
@test vec == ["a", "b", "c"]
235+
@test vec == ["x", "y", "z"]
230236

231-
svec_alloc = StdString.(["a", "b", "c"])::Vector{CxxWrap.StdLib.StdStringAllocated}
237+
svec_alloc = StdString.(["x", "y", "z"])::Vector{CxxWrap.StdLib.StdStringAllocated}
232238
vec = StdVector(svec_alloc)
233239
@test vec isa StdVector{StdString}
234-
@test vec == ["a", "b", "c"]
240+
@test vec == ["x", "y", "z"]
235241

236-
let svec = StdString["a", "b", "c"]
242+
let svec = StdString["x", "y", "z"]
237243
svec_ref = CxxRef.(svec)
238244
vec = StdVector(svec_ref)
239245
@test vec isa StdVector{StdString}
240-
@test vec == ["a", "b", "c"]
246+
@test vec == ["x", "y", "z"]
241247

242248
svec_deref = getindex.(svec_ref)::Vector{CxxWrap.StdLib.StdStringDereferenced}
243249
vec = StdVector(svec_deref)
244250
@test vec isa StdVector{StdString}
245-
@test vec == ["a", "b", "c"]
251+
@test vec == ["x", "y", "z"]
246252
end
247253

248-
@test_throws MethodError StdVector(["a", "b", "c"])
254+
@test_throws MethodError StdVector(["x", "y", "z"])
249255
end
250256

251257
@testset "mutating with integer" begin

0 commit comments

Comments
 (0)