================ @@ -142,13 +147,43 @@ TEST_F(JSONRPCTransportTest, Write) { } TEST_F(JSONRPCTransportTest, InvalidTransport) { - transport = std::make_unique<JSONRPCTransport>(nullptr, nullptr); + transport = std::make_unique<TestJSONRPCTransport>(nullptr, nullptr); ASSERT_THAT_EXPECTED( transport->Read<JSONTestType>(std::chrono::milliseconds(1)), Failed<TransportInvalidError>()); } #ifndef _WIN32 +TEST_F(HTTPDelimitedJSONTransportTest, NonBlockingRead) { + ASSERT_THAT_EXPECTED( + transport->Read<JSONTestType>(std::chrono::microseconds::zero()), + llvm::FailedWithMessage( + "HTTPDelimitedJSONTransport does not support non-blocking reads")); +} + +TEST_F(JSONRPCTransportTest, NonBlockingRead) { + llvm::StringRef head = R"({"str")"; + llvm::StringRef tail = R"(: "foo"})" + "\n"; + + ASSERT_THAT_EXPECTED(input.Write(head.data(), head.size()), Succeeded()); + ASSERT_THAT_EXPECTED( + transport->Read<JSONTestType>(std::chrono::microseconds::zero()), + Failed<TransportTimeoutError>()); + + ASSERT_THAT_EXPECTED(input.Write(tail.data(), tail.size()), Succeeded()); ---------------- ashgti wrote:
Can we also test a chunk with the delimiter in the middle of the data? https://github.com/llvm/llvm-project/pull/144610 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits