Skip to content

Commit da4f114

Browse files
committed
FIX: improved UDP scheme server/client test scripts
related to: Oldes/Rebol-issues#1803
1 parent b4d35eb commit da4f114

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

src/tests/test-udp-client.r3

+5-3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ wait 1 ;= pretending some work here...
3535
write-udp "I'm done!"
3636
write-udp "quit"
3737

38-
either system/options/script [
39-
ask as-red "CLIENT DONE"
40-
][ print as-red "CLIENT DONE" wait 0.5]
38+
print as-red "CLIENT DONE"
39+
wait 0.5
40+
if system/options/script [
41+
ask "ENTER to quit"
42+
]

src/tests/test-udp-server.r3

+15-8
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,28 @@ udp-server: try/except [open udp://:1189][
1212
]
1313
stdout: system/ports/output
1414

15-
udp-server/awake: func [event] [
15+
udp-server/awake: func [event /local port str] [
16+
port: event/port
1617
print ["[UDP Server] event:" event/type]
18+
switch event/type [
19+
read [
20+
str: to string! port/data
21+
clear port/data
22+
print ["[UDP Server] received:" as-green mold str]
23+
if str = "quit" [port/state: 'quit]
24+
]
25+
]
1726
;; console output is buffered and so messages could come out of order;
1827
;; to prevent it, just use the `flush`!
19-
flush stdout
28+
flush stdout
2029
true
2130
]
22-
2331
forever [
2432
wait read udp-server
25-
str: to string! udp-server/data
26-
print ["[UDP Server] received:" as-green mold str]
27-
flush stdout ;= flush console buffer!
28-
if str = "quit" [close udp-server break]
29-
clear udp-server/data
33+
if udp-server/state = 'quit [
34+
close udp-server
35+
break
36+
]
3037
]
3138

3239
print as-red "SERVER DONE"

0 commit comments

Comments
 (0)