THRIFT-3877: cpp http server buffering bug oneway
Client: C++
This closes #1418
C++ HTTP server, hit with oneway RPC, then roundtrip RPC, no longer
hangs, as demonstrated by OneWayHTTPTest.
Unit-test: Hit a C++ HTTP server with a oneway rpc, and the next RPC
will hang. This test-case elicits the failure (converts to
timeout-expiry).
diff --git a/lib/cpp/test/CMakeLists.txt b/lib/cpp/test/CMakeLists.txt
index 5c5ed18..9b62cc9 100644
--- a/lib/cpp/test/CMakeLists.txt
+++ b/lib/cpp/test/CMakeLists.txt
@@ -43,6 +43,10 @@
gen-cpp/Recursive_types.h
gen-cpp/ThriftTest_types.cpp
gen-cpp/ThriftTest_types.h
+ gen-cpp/OneWayTest_types.cpp
+ gen-cpp/OneWayTest_types.h
+ gen-cpp/OneWayService.cpp
+ gen-cpp/OneWayService.h
gen-cpp/TypedefTest_types.cpp
gen-cpp/TypedefTest_types.h
ThriftTest_extras.cpp
@@ -71,6 +75,7 @@
set(UnitTest_SOURCES
UnitTestMain.cpp
+ OneWayHTTPTest.cpp
TMemoryBufferTest.cpp
TBufferBaseTest.cpp
Base64Test.cpp
@@ -394,6 +399,10 @@
COMMAND ${THRIFT_COMPILER} --gen cpp ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
)
+add_custom_command(OUTPUT gen-cpp/OneWayService.cpp gen-cpp/OneWayTest_constants.cpp gen-cpp/OneWayTest_types.h gen-cpp/OneWayService.h gen-cpp/OneWayTest_constants.h gen-cpp/OneWayTest_types.cpp
+ COMMAND ${THRIFT_COMPILER} --gen cpp ${CMAKE_CURRENT_SOURCE_DIR}/OneWayTest.thrift
+)
+
add_custom_command(OUTPUT gen-cpp/ChildService.cpp gen-cpp/ChildService.h gen-cpp/ParentService.cpp gen-cpp/ParentService.h gen-cpp/proc_types.cpp gen-cpp/proc_types.h
COMMAND ${THRIFT_COMPILER} --gen cpp:templates,cob_style ${CMAKE_CURRENT_SOURCE_DIR}/processor/proc.thrift
)