From a80a42cfd59a74e0209f1b8197b7cd63a69ce332 Mon Sep 17 00:00:00 2001 From: ygrek Date: Fri, 29 Apr 2016 17:26:26 -0700 Subject: [PATCH] fix "free" unit test --- libevent.mli | 4 +++- unittest.ml | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libevent.mli b/libevent.mli index 14a27cd..0144e5c 100644 --- a/libevent.mli +++ b/libevent.mli @@ -108,7 +108,9 @@ val reinit : event_base -> unit (** Reinitialize event base (use after fork) *) val free : event_base -> unit -(** destroy event base *) +(** Destroy event base. + + NB this is unsafe (can crash) if there are any events alive referencing this base *) (** Compatibility *) module Global : sig diff --git a/unittest.ml b/unittest.ml index 37fe2cd..091a9ad 100644 --- a/unittest.ml +++ b/unittest.ml @@ -37,9 +37,9 @@ let test_read_eof () = let test_string = "This is a test string\n\n\n" in let buflen = 512 in let buf = String.create buflen in - let read_count = ref 0 in + let read_count = ref 0 in let evt = create () in - let read_cb fd event_type = + let read_cb fd event_type = (* read data from the fd *) let len = Unix.read fd buf 0 buflen in (* when 0 bytes are read this is the EOF, and we are done. *) @@ -84,18 +84,20 @@ let test_free () = set_timer base ev ~persist:true (fun () -> incr called); add ev (Some 1.); loop base ONCE; + "callback called once as expected" @? (!called = 1); + Gc.compact (); (* make sure all events are gone before freeing base *) free base; Gc.compact (); "reached end with callback called once as expected" @? (!called = 1) (* Construct the test suite *) -let suite = "event" >::: +let suite = "event" >::: ["create_event" >:: test_create_event; "test_pending" >:: test_pending; "test_read_eof" >:: test_read_eof; "call_set" >:: call_set; "event_base_free" >:: test_free; - ] + ] (* Run the tests in the test suite *) let _ = -- 2.11.4.GIT