Fix issues when building more Quiche tests for iOS and Windows
Addresses additional build and test failures for tests run as part of net_unittests in Chromium for iOS and Windows.
Calling WSAStartup in the connect tests avoids the following error in multiple tests on the win-rel bot:
```
ERROR:quic_name_lookup.cc(36)] Failed to look up localhost: Either the application has not called WSAStartup, or WSAStartup failed.
```
Using QUICHE_NO_EXPORT avoids errors like the following on win_chromium_compile_dbg_ng:
```
lld-link: error: undefined symbol: __declspec(dllimport) public: class absl::Status __thiscall quiche::BTreeScheduler<int, int>::Register(int, int const &)
```
The CustomStructWritesTooLittle test changes avoids an unused variable error on ios-simulator.
PiperOrigin-RevId: 607146214
diff --git a/quiche/common/btree_scheduler.h b/quiche/common/btree_scheduler.h
index d2bb765..75312a3 100644
--- a/quiche/common/btree_scheduler.h
+++ b/quiche/common/btree_scheduler.h
@@ -41,7 +41,7 @@
// The Id type has to define operator==, be hashable via absl::Hash, and
// printable via operator<<; the Priority type has to define operator<.
template <typename Id, typename Priority>
-class QUICHE_EXPORT BTreeScheduler {
+class QUICHE_NO_EXPORT BTreeScheduler {
public:
// Returns true if there are any streams registered.
bool HasRegistered() const { return !streams_.empty(); }
diff --git a/quiche/common/print_elements.h b/quiche/common/print_elements.h
index ae69c40..3c39cd4 100644
--- a/quiche/common/print_elements.h
+++ b/quiche/common/print_elements.h
@@ -16,7 +16,7 @@
// Print elements of any iterable container that has cbegin() and cend() methods
// and the elements have operator<<(ostream) override.
template <typename T>
-QUICHE_EXPORT inline std::string PrintElements(const T& container) {
+QUICHE_NO_EXPORT inline std::string PrintElements(const T& container) {
std::stringstream debug_string;
debug_string << "{";
auto it = container.cbegin();
diff --git a/quiche/common/wire_serialization_test.cc b/quiche/common/wire_serialization_test.cc
index 37216ca..f35c13d 100644
--- a/quiche/common/wire_serialization_test.cc
+++ b/quiche/common/wire_serialization_test.cc
@@ -237,14 +237,15 @@
};
TEST(SerializationTest, CustomStructWritesTooLittle) {
- constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
absl::Status status;
#if defined(NDEBUG)
+ constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
.status();
EXPECT_THAT(status, StatusIs(absl::StatusCode::kInternal,
::testing::HasSubstr("Excess 1 bytes")));
-#else
+#elif GTEST_HAS_DEATH_TEST
+ constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
EXPECT_QUICHE_DEBUG_DEATH(
status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
.status(),
diff --git a/quiche/http2/test_tools/hpack_example_test.cc b/quiche/http2/test_tools/hpack_example_test.cc
index 4dd24bd..abc7395 100644
--- a/quiche/http2/test_tools/hpack_example_test.cc
+++ b/quiche/http2/test_tools/hpack_example_test.cc
@@ -34,11 +34,13 @@
EXPECT_EQ(absl::string_view(kExpected, sizeof kExpected), bytes);
}
+#ifdef GTEST_HAS_DEATH_TEST
TEST(HpackExampleToStringOrDie, InvalidInput) {
EXPECT_DEATH(HpackExampleToStringOrDie("4"), "Truncated");
EXPECT_DEATH(HpackExampleToStringOrDie("4x"), "half");
EXPECT_DEATH(HpackExampleToStringOrDie(""), "empty");
}
+#endif
} // namespace
} // namespace test
diff --git a/quiche/quic/tools/connect_tunnel_test.cc b/quiche/quic/tools/connect_tunnel_test.cc
index 379da7c..f52afce 100644
--- a/quiche/quic/tools/connect_tunnel_test.cc
+++ b/quiche/quic/tools/connect_tunnel_test.cc
@@ -99,6 +99,11 @@
class ConnectTunnelTest : public quiche::test::QuicheTest {
public:
void SetUp() override {
+#if defined(_WIN32)
+ WSADATA wsa_data;
+ const WORD version_required = MAKEWORD(2, 2);
+ ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
auto socket = std::make_unique<StrictMock<MockSocket>>();
socket_ = socket.get();
ON_CALL(socket_factory_,
diff --git a/quiche/quic/tools/connect_udp_tunnel_test.cc b/quiche/quic/tools/connect_udp_tunnel_test.cc
index d86ff0c..73b06c2 100644
--- a/quiche/quic/tools/connect_udp_tunnel_test.cc
+++ b/quiche/quic/tools/connect_udp_tunnel_test.cc
@@ -113,6 +113,11 @@
class ConnectUdpTunnelTest : public quiche::test::QuicheTest {
public:
void SetUp() override {
+#if defined(_WIN32)
+ WSADATA wsa_data;
+ const WORD version_required = MAKEWORD(2, 2);
+ ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
auto socket = std::make_unique<StrictMock<MockSocket>>();
socket_ = socket.get();
ON_CALL(socket_factory_,