From 896bc4432b536fce4a13ff1d6ade8f9f743cf090 Mon Sep 17 00:00:00 2001 From: Kimmo Vaisanen Date: Mon, 25 Nov 2019 10:01:09 +0200 Subject: [PATCH] DNS tests: Cancel asynchronous dns query if it times out In this test case if asynchronous DNS request results does not happen in requested time, the request must be cancelled to ensure it does not happen later on when test has exited already. We've seen couple of crashes in CI tests which indicate this kind of behaviour but this is very difficult to reproduce. --- TESTS/netsocket/dns/asynchronous_dns_non_async_and_async.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/TESTS/netsocket/dns/asynchronous_dns_non_async_and_async.cpp b/TESTS/netsocket/dns/asynchronous_dns_non_async_and_async.cpp index 033248fbda..48b4ac6a4b 100644 --- a/TESTS/netsocket/dns/asynchronous_dns_non_async_and_async.cpp +++ b/TESTS/netsocket/dns/asynchronous_dns_non_async_and_async.cpp @@ -30,6 +30,7 @@ void ASYNCHRONOUS_DNS_NON_ASYNC_AND_ASYNC() rtos::Semaphore semaphore; dns_application_data data; data.semaphore = &semaphore; + data.result = NSAPI_ERROR_TIMEOUT; nsapi_dns_reset(); @@ -49,7 +50,9 @@ void ASYNCHRONOUS_DNS_NON_ASYNC_AND_ASYNC() TEST_ASSERT(strlen(addr.get_ip_address()) > 1); } - semaphore.try_acquire_for(100); + if (!semaphore.try_acquire_for(1000)) { + get_interface()->gethostbyname_async_cancel(err); + } TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, data.result);