blob: 28abfe7c9c710af4cc84d946333c849bf6293722 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cronet_c.h"
#include "base/logging.h"
#include "components/cronet/native/test/test_util.h"
#include "components/grpc_support/test/get_stream_engine.h"
namespace grpc_support {
// Provides stream_engine support for testing of bidirectional_stream C API for
// GRPC using native Cronet_Engine.
Cronet_EnginePtr g_cronet_engine = nullptr;
int quic_server_port = 0;
// Returns a stream_engine* for testing with the QuicTestServer.
// The engine returned resolve "test.example.com" as localhost:|port|,
// and should have "test.example.com" configured as a QUIC server.
stream_engine* GetTestStreamEngine(int port) {
CHECK(g_cronet_engine);
CHECK_EQ(port, quic_server_port);
return Cronet_Engine_GetStreamEngine(g_cronet_engine);
}
// Starts the stream_engine* for testing with the QuicTestServer.
// Has the same properties as GetTestStreamEngine. This function is
// used when the stream_engine* needs to be shut down and restarted
// between test cases (including between all of the bidirectional
// stream test cases and all other tests for the engine; this is the
// situation for Cronet).
void StartTestStreamEngine(int port) {
CHECK(!g_cronet_engine);
quic_server_port = port;
g_cronet_engine = cronet::test::CreateTestEngine(port);
}
// Shuts a stream_engine* started with |StartTestStreamEngine| down.
// See comment above.
void ShutdownTestStreamEngine() {
CHECK(g_cronet_engine);
Cronet_Engine_Destroy(g_cronet_engine);
g_cronet_engine = nullptr;
quic_server_port = 0;
}
} // namespace grpc_support