diff options
author | flywind <xzsflywind@gmail.com> | 2021-06-16 17:31:20 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-16 11:31:20 +0200 |
commit | c51680e7012bff32156623fad0996d62f7918222 (patch) | |
tree | 6f6f8e12e02272c76966d26c42ea0f8d4c09b641 /tests/stdlib | |
parent | c5cf21c0c4f314e4128658d35000339d67e4824b (diff) | |
download | Nim-c51680e7012bff32156623fad0996d62f7918222.tar.gz |
fixes #17696 (#18276)
Diffstat (limited to 'tests/stdlib')
-rw-r--r-- | tests/stdlib/tsharedlist.nim | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/tests/stdlib/tsharedlist.nim b/tests/stdlib/tsharedlist.nim index a795be0f3..693f1018e 100644 --- a/tests/stdlib/tsharedlist.nim +++ b/tests/stdlib/tsharedlist.nim @@ -1,17 +1,48 @@ -import sharedlist +discard """ + matrix: "--threads:on" +""" -var - list: SharedList[int] - count: int +import std/sharedlist -init(list) +block: + var + list: SharedList[int] + count: int -for i in 1 .. 250: - list.add i + init(list) -for i in list: - inc count + for i in 1 .. 250: + list.add i -doAssert count == 250 + for i in list: + inc count -deinitSharedList(list) + doAssert count == 250 + + deinitSharedList(list) + + +block: # bug #17696 + var keysList = SharedList[string]() + init(keysList) + + keysList.add("a") + keysList.add("b") + keysList.add("c") + keysList.add("d") + keysList.add("e") + keysList.add("f") + + + # Remove element "b" and "d" from the list. + keysList.iterAndMutate(proc (key: string): bool = + if key == "b" or key == "d": # remove only "b" and "d" + return true + return false + ) + + var results: seq[string] + for key in keysList.items: + results.add key + + doAssert results == @["a", "f", "c", "e"] |