factor/basis/concurrency/distributed/distributed-tests.factor

41 lines
1.2 KiB
Factor

USING: accessors arrays calendar concurrency.distributed
concurrency.messaging io.sockets kernel math namespaces
sequences threads tools.test ;
FROM: concurrency.messaging => receive send ;
IN: concurrency.distributed.tests
CONSTANT: test-ip "127.0.0.1"
CONSTANT: test-port 57234
CONSTANT: test-port2 57235
[ 8 ] [
local-node get
test-ip test-port <inet4> start-node
local-node get swap local-node set-global
local-node [
[
receive first2 [ 3 + ] dip send
"thread-a" unregister-remote-thread
] "Thread A" spawn
"thread-a" register-remote-thread
5 self 2array
test-ip test-port <inet4> "thread-a" <remote-thread> send
100 seconds receive-timeout
stop-node
] with-variable
] unit-test
[ 15 ] [
local-node get
test-ip test-port2 <inet4> start-node
local-node get swap local-node set-global
local-node [
[
receive dup data>> 3 * swap reply-synchronous
"thread-s" unregister-remote-thread
] "Thread S" spawn "thread-s" register-remote-thread
5 test-ip test-port2 <inet4> "thread-s" <remote-thread> send-synchronous
stop-node
] with-variable
] unit-test