From c697cbfd9ede7d241025907f85e5848d2a1301d0 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Mon, 16 Dec 2019 23:45:53 -0500 Subject: [PATCH] ut/event: Add test case for SPDK event call Signed-off-by: Shuhei Matsumoto Change-Id: I4977d1e438b1187411d1e20c392708520780fb3f Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478155 Tested-by: SPDK CI Jenkins Community-CI: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris Reviewed-by: Paul Luse Reviewed-by: Ben Walker --- test/unit/lib/event/reactor.c/reactor_ut.c | 41 +++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/test/unit/lib/event/reactor.c/reactor_ut.c b/test/unit/lib/event/reactor.c/reactor_ut.c index 87e1b1c5f..f0578bf4b 100644 --- a/test/unit/lib/event/reactor.c/reactor_ut.c +++ b/test/unit/lib/event/reactor.c/reactor_ut.c @@ -71,6 +71,44 @@ test_init_reactors(void) free_cores(); } +static void +ut_event_fn(void *arg1, void *arg2) +{ + uint8_t *test1 = arg1; + uint8_t *test2 = arg2; + + *test1 = 1; + *test2 = 0xFF; +} + +static void +test_event_call(void) +{ + uint8_t test1 = 0, test2 = 0; + struct spdk_event *evt; + struct spdk_reactor *reactor; + + allocate_cores(1); + + CU_ASSERT(spdk_reactors_init() == 0); + + evt = spdk_event_allocate(0, ut_event_fn, &test1, &test2); + CU_ASSERT(evt != NULL); + + spdk_event_call(evt); + + reactor = spdk_reactor_get(0); + CU_ASSERT(reactor != NULL); + + CU_ASSERT(_spdk_event_queue_run_batch(reactor) == 1); + CU_ASSERT(test1 == 1); + CU_ASSERT(test2 == 0xFF); + + spdk_reactors_fini(); + + free_cores(); +} + int main(int argc, char **argv) { @@ -89,7 +127,8 @@ main(int argc, char **argv) if ( CU_add_test(suite, "test_create_reactor", test_create_reactor) == NULL || - CU_add_test(suite, "test_init_reactors", test_init_reactors) == NULL + CU_add_test(suite, "test_init_reactors", test_init_reactors) == NULL || + CU_add_test(suite, "test_event_call", test_event_call) == NULL ) { CU_cleanup_registry(); return CU_get_error();