Update.
This commit is contained in:
Vendored
+69
@@ -0,0 +1,69 @@
|
||||
// retoor <retoor@molodetz.nl>
|
||||
|
||||
import "websocket" for WebSocket, WebSocketServer
|
||||
import "scheduler" for Scheduler
|
||||
import "timer" for Timer
|
||||
|
||||
var port = 19877
|
||||
var payloadSize = 3 * 1024 * 1024
|
||||
var result = "pending"
|
||||
|
||||
Scheduler.add {
|
||||
var server = WebSocketServer.bind("127.0.0.1", port)
|
||||
var ws = server.accept()
|
||||
|
||||
if (ws != null) {
|
||||
var msg = ws.receive()
|
||||
if (msg != null && msg.isBinary) {
|
||||
ws.sendBinary(msg.bytes)
|
||||
}
|
||||
ws.close()
|
||||
}
|
||||
server.close()
|
||||
}
|
||||
|
||||
Timer.sleep(50)
|
||||
|
||||
Scheduler.add {
|
||||
var ws = WebSocket.connect("ws://127.0.0.1:%(port)")
|
||||
|
||||
var payload = []
|
||||
var i = 0
|
||||
while (i < payloadSize) {
|
||||
payload.add(i % 256)
|
||||
i = i + 1
|
||||
}
|
||||
|
||||
ws.sendBinary(payload)
|
||||
|
||||
var response = ws.receive()
|
||||
|
||||
if (response == null) {
|
||||
result = "error: no response"
|
||||
} else if (!response.isBinary) {
|
||||
result = "error: not binary"
|
||||
} else if (response.bytes.count != payloadSize) {
|
||||
result = "error: size mismatch %(response.bytes.count) != %(payloadSize)"
|
||||
} else {
|
||||
var mismatch = false
|
||||
i = 0
|
||||
while (i < payloadSize) {
|
||||
if (response.bytes[i] != (i % 256)) {
|
||||
mismatch = true
|
||||
break
|
||||
}
|
||||
i = i + 1
|
||||
}
|
||||
if (mismatch) {
|
||||
result = "error: data mismatch at %(i)"
|
||||
} else {
|
||||
result = "ok"
|
||||
}
|
||||
}
|
||||
|
||||
ws.close()
|
||||
}
|
||||
|
||||
Timer.sleep(30000)
|
||||
|
||||
System.print(result) // expect: ok
|
||||
Reference in New Issue
Block a user