diff --git a/.github/workflows/build-and-test-liburing-versions.yml b/.github/workflows/build-and-test-liburing-versions.yml index 47d3cba2..1680ebac 100644 --- a/.github/workflows/build-and-test-liburing-versions.yml +++ b/.github/workflows/build-and-test-liburing-versions.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - liburing-version: [ "2.3", "2.6" ] + liburing-version: [ "2.3", "2.14" ] steps: - name: Checkout Repository and Submodules diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 50da10f5..cb272726 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -13,7 +13,7 @@ on: - "**.md" env: - LIBURING_VERSION: "2.6" + LIBURING_VERSION: "2.14" jobs: build-and-test: @@ -26,7 +26,7 @@ jobs: compiler: - { cc: clang, cxx: clang++ } - { cc: gcc, cxx: g++ } - build-type: [ Debug, Release ] + build-type: [ Debug, RelWithDebInfo] sanitizer: [ tsan, asan ] steps: @@ -72,6 +72,6 @@ jobs: - name: Run Benchmarks timeout-minutes: 5 - if: matrix.build-type == 'Release' + if: matrix.build-type == 'RelWithDebInfo' working-directory: ${{github.workspace}} run: bash scripts/run-bench.sh -t 60 build/benchmarks diff --git a/tests/test_async_operations.1.cpp b/tests/test_async_operations.1.cpp index 5977b0c2..706ba734 100644 --- a/tests/test_async_operations.1.cpp +++ b/tests/test_async_operations.1.cpp @@ -620,8 +620,10 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { auto func = [&]() -> condy::Coro { condy::ProvidedBufferPool buf_pool(4, 16, IOU_PBUF_RING_INC); - auto [n, bufs] = + auto temp1 = co_await condy::async_recv(sv[0], condy::bundled(buf_pool), 0); + auto& n = temp1.first; + auto& bufs = temp1.second; REQUIRE(n == msg_len); REQUIRE(bufs.size() == 1); REQUIRE(bufs[0].owns_buffer() == false); @@ -632,8 +634,10 @@ TEST_CASE("test async_operations - recv incr and bundle provided buffer") { r = write(sv[1], msg, msg_len); REQUIRE(r == msg_len); - auto [n2, bufs2] = + auto temp2 = co_await condy::async_recv(sv[0], condy::bundled(buf_pool), 0); + auto& n2 = temp2.first; + auto& bufs2 = temp2.second; REQUIRE(n2 == msg_len * 2); REQUIRE(bufs2.size() == 3); // 3 + 16 + 7 REQUIRE(bufs2[0].size() == 3); diff --git a/tests/test_async_operations.3.cpp b/tests/test_async_operations.3.cpp index f37326dd..e618c766 100644 --- a/tests/test_async_operations.3.cpp +++ b/tests/test_async_operations.3.cpp @@ -780,7 +780,7 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { r = send(sv[1], msg.data(), msg.size() / 4, 0); REQUIRE(r == msg.size() / 4); - auto [n, bufs] = co_await condy::async_recv_multishot( + auto temp1 = co_await condy::async_recv_multishot( sv[0], condy::bundled(pool), 0, [&](auto res) { auto &[n, bufs] = res; REQUIRE(n == 256); @@ -790,6 +790,8 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { r = send(sv[1], msg.data() + count * 256, 256, 0); REQUIRE(r == 256); }); + auto& n = temp1.first; + auto& bufs = temp1.second; // This behavior seems strange... REQUIRE(n == 256); REQUIRE(bufs.size() == 1); @@ -802,10 +804,12 @@ TEST_CASE("test async_operations - test recv - bundled multishot") { REQUIRE(r == msg.size() - count * 256); close(sv[1]); - auto [n2, bufs2] = co_await condy::async_recv_multishot( + auto temp2 = co_await condy::async_recv_multishot( sv[0], condy::bundled(pool), 0, [&](const auto &) { REQUIRE(false); // Should not be called }); + auto& n2 = temp2.first; + auto& bufs2 = temp2.second; REQUIRE(n2 == 512); REQUIRE(bufs2.size() == 2); for (size_t i = 0; i < bufs2.size(); i++) {