From 5ed70badad288e2aeb230983f49423939c839f3e Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 14 Mar 2022 10:14:35 -0500 Subject: [PATCH] Add stdio test --- tests/stdio_client.nim | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/stdio_client.nim diff --git a/tests/stdio_client.nim b/tests/stdio_client.nim new file mode 100644 index 0000000..ade7729 --- /dev/null +++ b/tests/stdio_client.nim @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: ☭ 2021 Emery Hemingway +# SPDX-License-Identifier: Unlicense + +import std/[asyncdispatch, random] +import preserves +import syndicate + +import syndicate/[actors, capabilities] + +randomize() + +proc mint(): SturdyRef = + var key: array[16, byte] + mint(key, "syndicate") + +type + A* {.preservesRecord: "A".} = object + str*: string + B* {.preservesRecord: "B".} = object + str*: string + +bootDataspace("x") do (ds: Ref; turn: var Turn): + connectStdio(ds, turn) + + discard publish(turn, ds, A(str: "A stdio")) + discard publish(turn, ds, B(str: "B stdio")) + + onPublish(turn, ds, ?A) do (v: Assertion): + stderr.writeLine "received over stdio ", v + +bootDataspace("y") do (ds: Ref; turn: var Turn): + + connectUnix(turn, "/run/user/1000/dataspace", mint()) do (turn: var Turn; a: Assertion) -> TurnAction: + let ds = unembed a + + discard publish(turn, ds, A(str: "A unix")) + discard publish(turn, ds, B(str: "B unix")) + + onPublish(turn, ds, ?B) do (v: Assertion): + stderr.writeLine "received over unix ", v + +runForever()