43 lines
1.6 KiB
OCaml
43 lines
1.6 KiB
OCaml
open Httpun
|
|
open IOVec
|
|
|
|
(* The length of the buffer is ignored by iovec operations *)
|
|
let buffer = Bigstringaf.empty
|
|
|
|
let test_lengthv () =
|
|
Alcotest.(check int) "lengthv [] = 0" (lengthv []) 0;
|
|
Alcotest.(check int) "lengthv [iovec] = length iovec"
|
|
(lengthv [{ buffer; off = 0; len = 0 }]) (length {buffer; off = 0; len = 0 });
|
|
Alcotest.(check int) "lengthv [iovec] = length iovec"
|
|
(lengthv [{ buffer; off = 0; len = 10 }]) (length {buffer; off = 0; len = 10 });
|
|
;;
|
|
|
|
let test_shiftv_raises () =
|
|
Alcotest.check_raises
|
|
"IOVec.shiftv: -1 is a negative number"
|
|
(Failure "IOVec.shiftv: -1 is a negative number")
|
|
(fun () -> ignore (shiftv [] (-1)));
|
|
let test f =
|
|
Alcotest.check_raises
|
|
"shiftv iovecs n raises when n > lengthv iovecs"
|
|
(Failure "shiftv: n > lengthv iovecs")
|
|
(fun () -> ignore (f ()))
|
|
in
|
|
test (fun () -> shiftv [] 1);
|
|
test (fun () -> shiftv [{ buffer; off = 0; len = 1 }] 2);
|
|
test (fun () -> shiftv [{ buffer; off = 0; len = 1 }; { buffer; off = 0; len = 1 }] 3);
|
|
;;
|
|
|
|
let test_shiftv () =
|
|
Alcotest.(check (of_pp pp_hum |> list)) "shiftv [] 0 = []" (shiftv [] 0) [];
|
|
Alcotest.(check (of_pp pp_hum |> list)) "shiftv [{... len ... }] len = []"
|
|
(shiftv [{ buffer; off = 0; len = 1 }] 1) [];
|
|
Alcotest.(check (of_pp pp_hum |> list)) "shiftv [iovec] n when length iovec < n"
|
|
(shiftv [{ buffer; off = 0; len = 4 }] 2) [{ buffer; off = 2; len = 2 }];
|
|
;;
|
|
|
|
let tests =
|
|
[ "lengthv" , `Quick, test_lengthv
|
|
; "shiftv" , `Quick, test_shiftv
|
|
; "shiftv raises ", `Quick, test_shiftv_raises
|
|
]
|