This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
46
unikernel/duniverse/ocaml-h1/lib_test/test_websocket.ml
Normal file
46
unikernel/duniverse/ocaml-h1/lib_test/test_websocket.ml
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
open H1.Websocket
|
||||
|
||||
module Testable = struct
|
||||
let opcode = Alcotest.testable Opcode.pp_hum ( = )
|
||||
end
|
||||
|
||||
let parse_frame serialized_frame =
|
||||
match Angstrom.parse_string ~consume:All Frame.parse serialized_frame with
|
||||
| Ok frame -> frame
|
||||
| Error err -> Alcotest.fail err
|
||||
|
||||
let test_parsing_ping_frame () =
|
||||
let frame = parse_frame "\137\128\000\000\046\216" in
|
||||
Alcotest.check Testable.opcode "opcode" `Ping (Frame.opcode frame);
|
||||
Alcotest.(check bool) "has mask" true (Frame.has_mask frame);
|
||||
Alcotest.(check int32) "mask" 11992l (Frame.mask_exn frame);
|
||||
Alcotest.(check int) "payload_length" (Frame.payload_length frame) 0;
|
||||
Alcotest.(check int) "length" (Frame.length frame) 6
|
||||
|
||||
let test_parsing_close_frame () =
|
||||
let frame = parse_frame "\136\000" in
|
||||
Alcotest.check Testable.opcode "opcode" `Connection_close
|
||||
(Frame.opcode frame);
|
||||
Alcotest.(check int) "payload_length" (Frame.payload_length frame) 0;
|
||||
Alcotest.(check int) "length" (Frame.length frame) 2
|
||||
|
||||
let test_parsing_text_frame () =
|
||||
let frame =
|
||||
parse_frame
|
||||
"\129\139\086\057\046\216\103\011\029\236\099\015\025\224\111\009\036"
|
||||
in
|
||||
Alcotest.check Testable.opcode "opcode" `Text (Frame.opcode frame);
|
||||
Alcotest.(check bool) "has mask" true (Frame.has_mask frame);
|
||||
Alcotest.(check int32) "mask" 1446588120l (Frame.mask_exn frame);
|
||||
Alcotest.(check int) "payload_length" (Frame.payload_length frame) 11;
|
||||
Alcotest.(check int) "length" (Frame.length frame) 17;
|
||||
Frame.unmask_inplace frame;
|
||||
let payload = Bstr.to_string (Frame.payload_view frame) in
|
||||
Alcotest.(check string) "payload" "1234567890\n" payload
|
||||
|
||||
let tests =
|
||||
[
|
||||
("parsing ping frame", `Quick, test_parsing_ping_frame);
|
||||
("parsing close frame", `Quick, test_parsing_close_frame);
|
||||
("parsing text frame", `Quick, test_parsing_text_frame);
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue