From: Luiz Augusto von Dentz Date: Wed, 9 Nov 2022 21:00:47 +0000 (-0800) Subject: shared/tester: Add tester_io_set_complete_func X-Git-Tag: accepted/tizen/unified/20240117.163238~431 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=983f34b2fa02ec2215cd05d4e8631a0b6b8bb31a;p=platform%2Fupstream%2Fbluez.git shared/tester: Add tester_io_set_complete_func This adds tester_io_set_complete_func which can be used to set a callback when all iovec has been sent/received. --- diff --git a/src/shared/tester.c b/src/shared/tester.c index fab1d47..0f35b36 100755 --- a/src/shared/tester.c +++ b/src/shared/tester.c @@ -88,6 +88,7 @@ struct test_case { tester_data_func_t test_func; tester_data_func_t teardown_func; tester_data_func_t post_teardown_func; + tester_data_func_t io_complete_func; gdouble start_time; gdouble end_time; unsigned int timeout; @@ -912,6 +913,9 @@ static bool test_io_send(struct io *io, void *user_data) g_assert_cmpint(len, ==, iov->iov_len); + if (!test->iovcnt && test->io_complete_func) + test->io_complete_func(test->test_data); + return false; } @@ -936,10 +940,15 @@ static bool test_io_recv(struct io *io, void *user_data) g_assert_cmpint(len, ==, iov->iov_len); + if (memcmp(buf, iov->iov_base, len)) + tester_monitor('!', 0x0004, 0x0000, iov->iov_base, len); + g_assert(memcmp(buf, iov->iov_base, len) == 0); if (test->iovcnt) io_set_write_handler(io, test_io_send, NULL, NULL); + else if (test->io_complete_func) + test->io_complete_func(test->test_data); return true; } @@ -1003,6 +1012,13 @@ void tester_io_send(void) io_set_write_handler(ios[1], test_io_send, NULL, NULL); } +void tester_io_set_complete_func(tester_data_func_t func) +{ + struct test_case *test = tester_get_test(); + + test->io_complete_func = func; +} + int tester_run(void) { int ret; diff --git a/src/shared/tester.h b/src/shared/tester.h index c28f61e..4961018 100755 --- a/src/shared/tester.h +++ b/src/shared/tester.h @@ -78,3 +78,4 @@ void tester_wait(unsigned int seconds, tester_wait_func_t func, struct io *tester_setup_io(const struct iovec *iov, int iovcnt); void tester_io_send(void); +void tester_io_set_complete_func(tester_data_func_t func);