diff --git a/OMakefile b/OMakefile index b9ee5dc..7de7099 100644 --- a/OMakefile +++ b/OMakefile @@ -26,7 +26,7 @@ section dispatch_tests.cmo: dispatch_tests$(EXT_OBJ): - OCamlProgram(tests, tests dispatch_tests dispatch chat irc command iobuf client channel) + OCamlProgram(tests, tests dispatch chat irc command iobuf client channel) .PHONY: test test: tests diff --git a/dispatch_tests.ml b/dispatch_tests.ml deleted file mode 100644 index d353aa7..0000000 --- a/dispatch_tests.ml +++ /dev/null @@ -1,31 +0,0 @@ -open OUnit - -let unit = - "Dispatch unit tests" >::: [ - "basic" >:: - (fun () -> - let d = Dispatch.create 3 in - let a,b = Unix.socketpair Unix.PF_UNIX Unix.SOCK_STREAM 0 in - let rec handle fd events = - match events with - | [Dispatch.Input; Dispatch.Output] -> - let s = String.create 4096 in - let n = Unix.read fd s 0 4096 in - assert_equal - n - (Unix.write fd s 0 n) - | _ -> - () - in - assert_equal 2 (Unix.write a "hi" 0 2); - Dispatch.add d b handle [Dispatch.Input; Dispatch.Output]; - Dispatch.once d; - let s = String.create 4096 in - assert_equal 2 (Unix.read a s 0 4096); - assert_equal "hi" (Str.string_before s 2); - - Dispatch.destroy d; - Unix.close a; - Unix.close b - ); - ] diff --git a/tests.ml b/tests.ml index 6e854ac..9c6ba23 100644 --- a/tests.ml +++ b/tests.ml @@ -44,7 +44,7 @@ let epoll_expect e ?(n=3) l = let unit_tests = "Unit tests" >::: [ - "epoll" >:: + "Epoll" >:: (fun () -> let a,b = Unix.socketpair Unix.PF_UNIX Unix.SOCK_STREAM 0 in let e = Epoll.create 1 in @@ -95,6 +95,33 @@ let unit_tests = Epoll.destroy e ); + "Dispatch" >:: + (fun () -> + let d = Dispatch.create 3 in + let a,b = Unix.socketpair Unix.PF_UNIX Unix.SOCK_STREAM 0 in + let rec handle fd events = + match events with + | [Dispatch.Input; Dispatch.Output] -> + let s = String.create 4096 in + let n = Unix.read fd s 0 4096 in + assert_equal + n + (Unix.write fd s 0 n) + | _ -> + () + in + assert_equal 2 (Unix.write a "hi" 0 2); + Dispatch.add d b handle [Dispatch.Input; Dispatch.Output]; + Dispatch.once d; + let s = String.create 4096 in + assert_equal 2 (Unix.read a s 0 4096); + assert_equal "hi" (Str.string_before s 2); + + Dispatch.destroy d; + Unix.close a; + Unix.close b + ); + "command_of_string" >:: (fun () -> assert_equal @@ -217,6 +244,6 @@ let regression_tests = let _ = Irc.name := "testserver.test"; - run_test_tt_main (TestList [Dispatch_tests.unit; unit_tests; regression_tests]) + run_test_tt_main (TestList [unit_tests; regression_tests])