From 43388de52e8974895b4d305f08799a651ba3ae6c Mon Sep 17 00:00:00 2001 From: Corbin Phipps Date: Tue, 27 Feb 2024 21:24:16 +0000 Subject: [PATCH 1/3] Remove any.proto --- protocol/protos/NetRemoteDataStream.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/protocol/protos/NetRemoteDataStream.proto b/protocol/protos/NetRemoteDataStream.proto index ed47c43e..e5280630 100644 --- a/protocol/protos/NetRemoteDataStream.proto +++ b/protocol/protos/NetRemoteDataStream.proto @@ -3,8 +3,6 @@ syntax = "proto3"; package Microsoft.Net.Remote.DataStream; -import "google/protobuf/any.proto"; - enum DataStreamOperationStatusCode { DataStreamOperationStatusCodeUnknown = 0; From 8d8adaee36a270b083888c5b3af4d483136bbbc3 Mon Sep 17 00:00:00 2001 From: Corbin Phipps Date: Tue, 27 Feb 2024 21:38:15 +0000 Subject: [PATCH 2/3] Check timeout value and handle appropriately --- tests/unit/TestNetRemoteDataStreamingReactors.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/unit/TestNetRemoteDataStreamingReactors.cxx b/tests/unit/TestNetRemoteDataStreamingReactors.cxx index 70209240..e943129a 100644 --- a/tests/unit/TestNetRemoteDataStreamingReactors.cxx +++ b/tests/unit/TestNetRemoteDataStreamingReactors.cxx @@ -37,11 +37,18 @@ grpc::Status DataStreamWriter::Await(DataStreamUploadResult* result) { std::unique_lock lock(m_writeStatusGate); - static constexpr auto timeoutValue = std::chrono::seconds(10); + static constexpr auto timeoutValue = 10s; - m_writesDone.wait_for(lock, timeoutValue, [this] { + const auto isDone = m_writesDone.wait_for(lock, timeoutValue, [this] { return m_done; }); + + if (!isDone) { + DataStreamOperationStatus status{}; + status.set_code(DataStreamOperationStatusCode::DataStreamOperationStatusCodeFailed); + status.set_message("Timeout occurred while waiting for all writes to be completed"); + *m_result.mutable_status() = std::move(status); + } *result = m_result; return m_status; From 2f73c40c7ce2e4286e2c251600e30818f90d4564 Mon Sep 17 00:00:00 2001 From: Corbin Phipps Date: Tue, 27 Feb 2024 21:40:32 +0000 Subject: [PATCH 3/3] Manually join threads --- tests/unit/TestNetRemoteDataStreamingServiceClient.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/unit/TestNetRemoteDataStreamingServiceClient.cxx b/tests/unit/TestNetRemoteDataStreamingServiceClient.cxx index 08d9aefb..e850eb0c 100644 --- a/tests/unit/TestNetRemoteDataStreamingServiceClient.cxx +++ b/tests/unit/TestNetRemoteDataStreamingServiceClient.cxx @@ -64,5 +64,9 @@ TEST_CASE("DataStreamUpload API", "[basic][rpc][client][remote][stream]") REQUIRE(result.status().code() == DataStreamOperationStatusCodeSucceeded); }); } + + for (auto& clientThread : clientThreads) { + REQUIRE_NOTHROW(clientThread.join()); + } } }