Skip to content

Commit

Permalink
FIX: improved UDP scheme server/client test scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
Oldes committed Jul 19, 2022
1 parent b4d35eb commit da4f114
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
8 changes: 5 additions & 3 deletions src/tests/test-udp-client.r3
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ wait 1 ;= pretending some work here...
write-udp "I'm done!"
write-udp "quit"

either system/options/script [
ask as-red "CLIENT DONE"
][ print as-red "CLIENT DONE" wait 0.5]
print as-red "CLIENT DONE"
wait 0.5
if system/options/script [
ask "ENTER to quit"
]
23 changes: 15 additions & 8 deletions src/tests/test-udp-server.r3
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,28 @@ udp-server: try/except [open udp://:1189][
]
stdout: system/ports/output

udp-server/awake: func [event] [
udp-server/awake: func [event /local port str] [
port: event/port
print ["[UDP Server] event:" event/type]
switch event/type [
read [
str: to string! port/data
clear port/data
print ["[UDP Server] received:" as-green mold str]
if str = "quit" [port/state: 'quit]
]
]
;; console output is buffered and so messages could come out of order;
;; to prevent it, just use the `flush`!
flush stdout
flush stdout
true
]

forever [
wait read udp-server
str: to string! udp-server/data
print ["[UDP Server] received:" as-green mold str]
flush stdout ;= flush console buffer!
if str = "quit" [close udp-server break]
clear udp-server/data
if udp-server/state = 'quit [
close udp-server
break
]
]

print as-red "SERVER DONE"

0 comments on commit da4f114

Please sign in to comment.