diff options
-rw-r--r-- | tests/stdlib/isolation.nim | 16 | ||||
-rw-r--r-- | tests/stdlib/tisolation.nim | 115 |
2 files changed, 115 insertions, 16 deletions
diff --git a/tests/stdlib/isolation.nim b/tests/stdlib/isolation.nim deleted file mode 100644 index 6fbadda75..000000000 --- a/tests/stdlib/isolation.nim +++ /dev/null @@ -1,16 +0,0 @@ -discard """ - targets: "c cpp js" -""" - -import std/[json, isolation] - - -proc main() = - var x: seq[Isolated[JsonNode]] - x.add isolate(newJString("1234")) - - doAssert $x == """@[(value: "1234")]""" - - -static: main() -main() diff --git a/tests/stdlib/tisolation.nim b/tests/stdlib/tisolation.nim new file mode 100644 index 000000000..11c51fe05 --- /dev/null +++ b/tests/stdlib/tisolation.nim @@ -0,0 +1,115 @@ +discard """ + targets: "c cpp" + matrix: "--gc:refc; --gc:orc" +""" + +import std/[isolation, json] + + + +proc main() = + block: # string literals + var data = isolate("string") + doAssert data.extract == "string" + doAssert data.extract == "" + + block: # string literals + var data = isolate("") + doAssert data.extract == "" + doAssert data.extract == "" + + block: + var src = "string" + var data = isolate(move src) + doAssert data.extract == "string" + doAssert src.len == 0 + + block: # int literals + var data = isolate(1) + doAssert data.extract == 1 + doAssert data.extract == 0 + + block: # float literals + var data = isolate(1.6) + doAssert data.extract == 1.6 + doAssert data.extract == 0.0 + + block: + var data = isolate(@["1", "2"]) + doAssert data.extract == @["1", "2"] + doAssert data.extract == @[] + + block: + var data = isolate(@["1", "2", "3", "4", "5"]) + doAssert data.extract == @["1", "2", "3", "4", "5"] + doAssert data.extract == @[] + + block: + var data = isolate(@["", ""]) + doAssert data.extract == @["", ""] + doAssert data.extract == @[] + + block: + var src = @["1", "2"] + var data = isolate(move src) + doAssert data.extract == @["1", "2"] + doAssert src.len == 0 + + block: + var data = isolate(@[1, 2]) + doAssert data.extract == @[1, 2] + doAssert data.extract == @[] + + block: + var data = isolate(["1", "2"]) + doAssert data.extract == ["1", "2"] + doAssert data.extract == ["", ""] + + block: + var data = isolate([1, 2]) + doAssert data.extract == [1, 2] + doAssert data.extract == [0, 0] + + block: + type + Test = object + id: int + + var data = isolate(Test(id: 12)) + doAssert data.extract.id == 12 + + block: + type + Test = object + id: int + + var src = Test(id: 12) + var data = isolate(src) + doAssert data.extract.id == 12 + + block: + type + Test = object + id: int + + var src = Test(id: 12) + var data = isolate(move src) + doAssert data.extract.id == 12 + + block: + type + Test = ref object + id: int + + var data = isolate(Test(id: 12)) + doAssert data.extract.id == 12 + + block: + var x: seq[Isolated[JsonNode]] + x.add isolate(newJString("1234")) + + doAssert $x == """@[(value: "1234")]""" + + +static: main() +main() |