@@ -297,7 +297,7 @@ void cancel_test(int N)
297297 }
298298
299299 for (int i = N - 1 ; i >= 0 ; i -- ) {
300- equeue_cancel (& q , ids [i ]);
300+ test_assert ( equeue_cancel (& q , ids [i ]) );
301301 }
302302
303303 free (ids );
@@ -317,13 +317,13 @@ void cancel_inflight_test(void)
317317 bool touched = false;
318318
319319 int id = equeue_call (& q , simple_func , & touched );
320- equeue_cancel (& q , id );
320+ test_assert ( equeue_cancel (& q , id ) );
321321
322322 equeue_dispatch (& q , 0 );
323323 test_assert (!touched );
324324
325325 id = equeue_call (& q , simple_func , & touched );
326- equeue_cancel (& q , id );
326+ test_assert ( equeue_cancel (& q , id ) );
327327
328328 equeue_dispatch (& q , 0 );
329329 test_assert (!touched );
@@ -352,19 +352,19 @@ void cancel_unnecessarily_test(void)
352352
353353 int id = equeue_call (& q , pass_func , 0 );
354354 for (int i = 0 ; i < 5 ; i ++ ) {
355- equeue_cancel (& q , id );
355+ test_assert ( equeue_cancel (& q , id ) == ( i == 0 ) );
356356 }
357357
358358 id = equeue_call (& q , pass_func , 0 );
359359 equeue_dispatch (& q , 0 );
360360 for (int i = 0 ; i < 5 ; i ++ ) {
361- equeue_cancel (& q , id );
361+ test_assert (! equeue_cancel (& q , id ) );
362362 }
363363
364364 bool touched = false;
365365 equeue_call (& q , simple_func , & touched );
366366 for (int i = 0 ; i < 5 ; i ++ ) {
367- equeue_cancel (& q , id );
367+ test_assert (! equeue_cancel (& q , id ) );
368368 }
369369
370370 equeue_dispatch (& q , 0 );
@@ -595,8 +595,8 @@ void chain_test(void)
595595 id2 = equeue_call_in (& q2 , 5 , simple_func , & touched );
596596 test_assert (id1 && id2 );
597597
598- equeue_cancel (& q1 , id1 );
599- equeue_cancel (& q2 , id2 );
598+ test_assert ( equeue_cancel (& q1 , id1 ) );
599+ test_assert ( equeue_cancel (& q2 , id2 ) );
600600
601601 id1 = equeue_call_in (& q1 , 10 , simple_func , & touched );
602602 id2 = equeue_call_in (& q2 , 10 , simple_func , & touched );
@@ -768,7 +768,7 @@ void break_request_cleared_on_timeout(void)
768768 equeue_dispatch (& q , 10 );
769769 test_assert (pq .p == 1 );
770770
771- equeue_cancel (& q , id );
771+ test_assert ( equeue_cancel (& q , id ) );
772772
773773 int count = 0 ;
774774 equeue_call_every (& q , 10 , simple_func , & count );
@@ -796,9 +796,9 @@ void sibling_test(void)
796796 test_assert (!s -> next );
797797 }
798798 }
799- equeue_cancel (& q , id0 );
800- equeue_cancel (& q , id1 );
801- equeue_cancel (& q , id2 );
799+ test_assert ( equeue_cancel (& q , id0 ) );
800+ test_assert ( equeue_cancel (& q , id1 ) );
801+ test_assert ( equeue_cancel (& q , id2 ) );
802802 equeue_destroy (& q );
803803}
804804
@@ -829,7 +829,7 @@ void user_allocated_event_test()
829829 equeue_post_user_allocated (& q , simple_func , & e3 .e );
830830 equeue_post_user_allocated (& q , simple_func , & e4 .e );
831831 equeue_post_user_allocated (& q , simple_func , & e5 .e );
832- equeue_cancel_user_allocated (& q , & e3 .e );
832+ test_assert ( equeue_cancel_user_allocated (& q , & e3 .e ) );
833833
834834 equeue_dispatch (& q , 1 );
835835
@@ -852,6 +852,21 @@ void user_allocated_event_test()
852852 equeue_destroy (& q );
853853}
854854
855+ void id_cycle ()
856+ {
857+ equeue_t q ;
858+ int err = equeue_create (& q , 10000000 );
859+ test_assert (!err );
860+
861+ for (int i = 0 ; i < 300 ; i ++ ) {
862+ int id = equeue_call (& q , pass_func , 0 );
863+ test_assert (id != 0 );
864+ test_assert (equeue_cancel (& q , id ));
865+ }
866+
867+ equeue_destroy (& q );
868+ }
869+
855870int main ()
856871{
857872 printf ("beginning tests...\n" );
@@ -881,6 +896,7 @@ int main()
881896 test_run (break_request_cleared_on_timeout );
882897 test_run (sibling_test );
883898 test_run (user_allocated_event_test );
899+ test_run (id_cycle );
884900 printf ("done!\n" );
885901 return test_failure ;
886902}
0 commit comments