mirror of
https://github.com/c-cube/tiny_httpd.git
synced 2025-12-06 03:05:29 -05:00
test: tests for Buf
This commit is contained in:
parent
a32297ac6c
commit
009a8d6d3b
5 changed files with 68 additions and 24 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
(test
|
(tests
|
||||||
(name t_util)
|
(names t_util t_buf)
|
||||||
(package tiny_httpd)
|
(package tiny_httpd)
|
||||||
(libraries tiny_httpd qcheck-core qcheck-core.runner))
|
(libraries tiny_httpd qcheck-core qcheck-core.runner test_util))
|
||||||
|
|
|
||||||
27
tests/unit/t_buf.ml
Normal file
27
tests/unit/t_buf.ml
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
open Test_util
|
||||||
|
open Tiny_httpd_buf
|
||||||
|
|
||||||
|
let spf = Printf.sprintf
|
||||||
|
|
||||||
|
let () =
|
||||||
|
let b = create ~size:4 () in
|
||||||
|
add_string b "hello";
|
||||||
|
assert_eq ~to_string:(spf "%S") "hello" (contents b);
|
||||||
|
|
||||||
|
add_string b " world";
|
||||||
|
assert_eq ~to_string:(spf "%S") "hello world" (contents b);
|
||||||
|
()
|
||||||
|
|
||||||
|
let buffer_of_string str =
|
||||||
|
let buf = Buffer.create 32 in
|
||||||
|
Buffer.add_string buf str;
|
||||||
|
buf
|
||||||
|
|
||||||
|
let () =
|
||||||
|
let b = create ~size:4 () in
|
||||||
|
add_buffer b (buffer_of_string "hello");
|
||||||
|
assert_eq ~to_string:(spf "%S") "hello" (contents b);
|
||||||
|
|
||||||
|
add_buffer b (buffer_of_string " world");
|
||||||
|
assert_eq ~to_string:(spf "%S") "hello world" (contents b);
|
||||||
|
()
|
||||||
|
|
@ -1,25 +1,6 @@
|
||||||
module Q = QCheck
|
open Test_util
|
||||||
|
|
||||||
(* test utils *)
|
|
||||||
let pp_res f = function
|
|
||||||
| Ok x -> f x
|
|
||||||
| Error e -> e
|
|
||||||
|
|
||||||
let pp_res_query = Q.Print.(pp_res (list (pair string string)))
|
|
||||||
|
|
||||||
let err_map f = function
|
|
||||||
| Ok x -> Ok (f x)
|
|
||||||
| Error e -> Error e
|
|
||||||
|
|
||||||
let sort_l l = List.sort compare l
|
|
||||||
let eq_sorted a b = err_map sort_l a = err_map sort_l b
|
|
||||||
let is_ascii_char c = Char.code c < 128
|
|
||||||
let assert_eq ?(cmp = ( = )) a b = assert (cmp a b)
|
|
||||||
|
|
||||||
open Tiny_httpd_util
|
open Tiny_httpd_util
|
||||||
|
|
||||||
let qchecks = ref []
|
|
||||||
let add_qcheck f = qchecks := f :: !qchecks
|
|
||||||
let () = assert_eq "hello%20world" (percent_encode "hello world")
|
let () = assert_eq "hello%20world" (percent_encode "hello world")
|
||||||
let () = assert_eq "%23%25^%24%40^%40" (percent_encode "#%^$@^@")
|
let () = assert_eq "%23%25^%24%40^%40" (percent_encode "#%^$@^@")
|
||||||
|
|
||||||
|
|
@ -67,4 +48,4 @@ let () =
|
||||||
in
|
in
|
||||||
eq_sorted (Ok l) (parse_query s))
|
eq_sorted (Ok l) (parse_query s))
|
||||||
|
|
||||||
let () = exit @@ QCheck_base_runner.run_tests ~colors:false !qchecks
|
let () = run_qcheck_and_exit ()
|
||||||
|
|
|
||||||
5
tests/unit/util/dune
Normal file
5
tests/unit/util/dune
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name test_util)
|
||||||
|
(modules test_util)
|
||||||
|
(libraries qcheck-core qcheck-core.runner))
|
||||||
31
tests/unit/util/test_util.ml
Normal file
31
tests/unit/util/test_util.ml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
module Q = QCheck
|
||||||
|
|
||||||
|
(* test utils *)
|
||||||
|
let pp_res f = function
|
||||||
|
| Ok x -> f x
|
||||||
|
| Error e -> e
|
||||||
|
|
||||||
|
let pp_res_query = Q.Print.(pp_res (list (pair string string)))
|
||||||
|
|
||||||
|
let err_map f = function
|
||||||
|
| Ok x -> Ok (f x)
|
||||||
|
| Error e -> Error e
|
||||||
|
|
||||||
|
let sort_l l = List.sort compare l
|
||||||
|
let eq_sorted a b = err_map sort_l a = err_map sort_l b
|
||||||
|
let is_ascii_char c = Char.code c < 128
|
||||||
|
|
||||||
|
let assert_eq ?to_string ?(cmp = ( = )) a b =
|
||||||
|
let ok = cmp a b in
|
||||||
|
if not ok then (
|
||||||
|
(match to_string with
|
||||||
|
| Some f -> Printf.eprintf "failed: %s != %s\n%!" (f a) (f b)
|
||||||
|
| None -> ());
|
||||||
|
failwith "test failed"
|
||||||
|
)
|
||||||
|
|
||||||
|
let qchecks = ref []
|
||||||
|
let add_qcheck f = qchecks := f :: !qchecks
|
||||||
|
|
||||||
|
let run_qcheck_and_exit () : 'a =
|
||||||
|
exit @@ QCheck_base_runner.run_tests ~colors:false !qchecks
|
||||||
Loading…
Add table
Reference in a new issue