From acb1d4373d0075052109d9bed6352904d6bd4b5b Mon Sep 17 00:00:00 2001 From: Alan Jowett Date: Wed, 2 Nov 2022 17:16:57 -0600 Subject: [PATCH] Correctly unwind async state on failure (#1556) Signed-off-by: Alan Jowett Signed-off-by: Alan Jowett Co-authored-by: Alan Jowett --- .../unit/execution_context_unit_test.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/execution_context/unit/execution_context_unit_test.cpp b/libs/execution_context/unit/execution_context_unit_test.cpp index 696ca3a00..369cbaf4b 100644 --- a/libs/execution_context/unit/execution_context_unit_test.cpp +++ b/libs/execution_context/unit/execution_context_unit_test.cpp @@ -738,7 +738,11 @@ TEST_CASE("ring_buffer_async_query", "[execution_context]") REQUIRE(result == EBPF_SUCCESS); }) == EBPF_SUCCESS); - REQUIRE(ebpf_ring_buffer_map_async_query(map.get(), &completion.async_query_result, &completion) == EBPF_PENDING); + ebpf_result_t result = ebpf_ring_buffer_map_async_query(map.get(), &completion.async_query_result, &completion); + if (result != EBPF_PENDING) { + ebpf_async_reset_completion_callback(&completion); + } + REQUIRE(result == EBPF_PENDING); uint64_t value = 1; REQUIRE(ebpf_ring_buffer_map_output(map.get(), reinterpret_cast(&value), sizeof(value)) == EBPF_SUCCESS); @@ -1004,10 +1008,10 @@ extern bool _ebpf_platform_code_integrity_enabled; #define NEGATIVE_TEST_PROLOG() \ std::vector> program_info_providers; \ + _ebpf_core_initializer core; \ for (const auto& type : _program_types) { \ program_info_providers.push_back(std::make_unique<_program_info_provider>(type)); \ } \ - _ebpf_core_initializer core; \ std::vector program_handles; \ std::map map_handles; \ create_various_objects(program_handles, map_handles);