2008-02-18 08:30:16 -05:00
|
|
|
USING: io.files io.sockets io kernel threads
|
|
|
|
namespaces tools.test continuations strings byte-arrays
|
2008-05-05 03:32:35 -04:00
|
|
|
sequences prettyprint system io.encodings.binary io.encodings.ascii
|
2008-09-11 01:20:06 -04:00
|
|
|
io.streams.duplex destructors make ;
|
2008-03-01 17:00:45 -05:00
|
|
|
IN: io.unix.tests
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
! Unix domain stream sockets
|
2008-02-25 20:37:43 -05:00
|
|
|
: socket-server "unix-domain-socket-test" temp-file ;
|
|
|
|
|
2007-09-20 18:09:08 -04:00
|
|
|
[
|
2008-02-25 20:37:43 -05:00
|
|
|
[ socket-server delete-file ] ignore-errors
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
socket-server <local>
|
2008-02-25 14:54:35 -05:00
|
|
|
ascii <server> [
|
2008-04-11 17:08:40 -04:00
|
|
|
accept drop [
|
2007-09-20 18:09:08 -04:00
|
|
|
"Hello world" print flush
|
|
|
|
readln "XYZ" = "FOO" "BAR" ? print flush
|
|
|
|
] with-stream
|
2008-02-25 14:54:35 -05:00
|
|
|
] with-disposal
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
socket-server delete-file
|
2008-02-18 06:07:40 -05:00
|
|
|
] "Test" spawn drop
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
yield
|
|
|
|
|
|
|
|
[ { "Hello world" "FOO" } ] [
|
|
|
|
[
|
2008-05-05 03:19:25 -04:00
|
|
|
socket-server <local> ascii [
|
2007-09-20 18:09:08 -04:00
|
|
|
readln ,
|
|
|
|
"XYZ" print flush
|
|
|
|
readln ,
|
2008-05-05 03:19:25 -04:00
|
|
|
] with-client
|
2007-09-20 18:09:08 -04:00
|
|
|
] { } make
|
|
|
|
] unit-test
|
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
: datagram-server "unix-domain-datagram-test" temp-file ;
|
|
|
|
: datagram-client "unix-domain-datagram-test-2" temp-file ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
! Unix domain datagram sockets
|
|
|
|
[ datagram-server delete-file ] ignore-errors
|
|
|
|
[ datagram-client delete-file ] ignore-errors
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
[
|
|
|
|
[
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server <local> <datagram> "d" set
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
"Receive 1" print
|
|
|
|
|
|
|
|
"d" get receive >r reverse r>
|
|
|
|
|
|
|
|
"Send 1" print
|
|
|
|
dup .
|
|
|
|
|
|
|
|
"d" get send
|
|
|
|
|
|
|
|
"Receive 2" print
|
|
|
|
|
2008-02-01 17:02:02 -05:00
|
|
|
"d" get receive >r " world" append r>
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
"Send 1" print
|
|
|
|
dup .
|
|
|
|
|
|
|
|
"d" get send
|
|
|
|
|
2008-01-31 01:52:06 -05:00
|
|
|
"d" get dispose
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
"Done" print
|
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server delete-file
|
2007-09-20 18:09:08 -04:00
|
|
|
] with-scope
|
2008-02-18 06:07:40 -05:00
|
|
|
] "Test" spawn drop
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
yield
|
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
[ datagram-client delete-file ] ignore-errors
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-client <local> <datagram>
|
2007-09-20 18:09:08 -04:00
|
|
|
"d" set
|
|
|
|
|
|
|
|
[ ] [
|
|
|
|
"hello" >byte-array
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server <local>
|
2007-09-20 18:09:08 -04:00
|
|
|
"d" get send
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[ "olleh" t ] [
|
|
|
|
"d" get receive
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server <local> =
|
2007-09-20 18:09:08 -04:00
|
|
|
>r >string r>
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[ ] [
|
|
|
|
"hello" >byte-array
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server <local>
|
2007-09-20 18:09:08 -04:00
|
|
|
"d" get send
|
|
|
|
] unit-test
|
|
|
|
|
2008-02-01 17:02:02 -05:00
|
|
|
[ "hello world" t ] [
|
2007-09-20 18:09:08 -04:00
|
|
|
"d" get receive
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-server <local> =
|
2007-09-20 18:09:08 -04:00
|
|
|
>r >string r>
|
|
|
|
] unit-test
|
|
|
|
|
2008-01-31 01:52:06 -05:00
|
|
|
[ ] [ "d" get dispose ] unit-test
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
! Test error behavior
|
2008-02-25 20:37:43 -05:00
|
|
|
: another-datagram "unix-domain-datagram-test-3" temp-file ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
[ another-datagram delete-file ] ignore-errors
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
datagram-client delete-file
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
[ ] [ datagram-client <local> <datagram> "d" set ] unit-test
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
[ B{ 1 2 3 } another-datagram <local> "d" get send ] must-fail
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-01-31 01:52:06 -05:00
|
|
|
[ ] [ "d" get dispose ] unit-test
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
! See what happens on send/receive after close
|
|
|
|
|
2008-02-06 14:47:19 -05:00
|
|
|
[ "d" get receive ] must-fail
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-25 20:37:43 -05:00
|
|
|
[ B{ 1 2 } datagram-server <local> "d" get send ] must-fail
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
! Invalid parameter tests
|
|
|
|
|
|
|
|
[
|
2008-05-05 03:19:25 -04:00
|
|
|
image binary [ input-stream get accept ] with-file-reader
|
2008-02-06 14:47:19 -05:00
|
|
|
] must-fail
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
[
|
2008-05-05 03:19:25 -04:00
|
|
|
image binary [ input-stream get receive ] with-file-reader
|
2008-02-06 14:47:19 -05:00
|
|
|
] must-fail
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
[
|
2008-02-16 23:17:41 -05:00
|
|
|
image binary [
|
2008-02-26 02:24:40 -05:00
|
|
|
B{ 1 2 } datagram-server <local>
|
2008-05-05 03:19:25 -04:00
|
|
|
input-stream get send
|
2008-02-15 23:20:31 -05:00
|
|
|
] with-file-reader
|
2008-02-06 14:47:19 -05:00
|
|
|
] must-fail
|