diff options
author | Jason Carey <jcarey@argv.me> | 2019-02-01 16:20:49 -0500 |
---|---|---|
committer | Jason Carey <jcarey@argv.me> | 2019-02-01 16:20:49 -0500 |
commit | d0296d551c0dc079c6d57c2154b69d4dbe92a1e1 (patch) | |
tree | 59598448feb71d37885c61dfde7903d7b6e14fdc | |
parent | 161446183ef54319533aefeb2540556c72d0cb16 (diff) | |
download | mongo-d0296d551c0dc079c6d57c2154b69d4dbe92a1e1.tar.gz |
SERVER-39331 Remove StressTest from NIA Test
It's removed in 4.0+ and flakey
-rw-r--r-- | src/mongo/executor/network_interface_asio_integration_test.cpp | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/src/mongo/executor/network_interface_asio_integration_test.cpp b/src/mongo/executor/network_interface_asio_integration_test.cpp index 30dd842a7ca..635ecf8a361 100644 --- a/src/mongo/executor/network_interface_asio_integration_test.cpp +++ b/src/mongo/executor/network_interface_asio_integration_test.cpp @@ -79,126 +79,6 @@ TEST_F(NetworkInterfaceASIOIntegrationFixture, Timeouts) { Milliseconds(10000000)); } -class StressTestOp { -public: - using Fixture = NetworkInterfaceASIOIntegrationFixture; - using Pool = ThreadPoolInterface; - - void run(Fixture* fixture, - StartCommandCB onFinish, - Milliseconds timeout = RemoteCommandRequest::kNoTimeout) { - auto cb = makeCallbackHandle(); - - RemoteCommandRequest request{unittest::getFixtureConnectionString().getServers()[0], - "admin", - _command, - nullptr, - timeout}; - - fixture->startCommand(cb, request, onFinish); - - if (_cancel) { - invariant(fixture->getRandomNumberGenerator()); - sleepmillis(fixture->getRandomNumberGenerator()->nextInt32(10)); - fixture->net().cancelCommand(cb); - } - } - - static void runTimeoutOp(Fixture* fixture, StartCommandCB onFinish) { - return StressTestOp(BSON("sleep" << 1 << "lock" - << "none" - << "secs" - << 1), - false) - .run(fixture, onFinish, Milliseconds(100)); - } - - static void runCompleteOp(Fixture* fixture, StartCommandCB onFinish) { - return StressTestOp(BSON("sleep" << 1 << "lock" - << "none" - << "millis" - << 100), - false) - .run(fixture, onFinish); - } - - static void runCancelOp(Fixture* fixture, StartCommandCB onFinish) { - return StressTestOp(BSON("sleep" << 1 << "lock" - << "none" - << "secs" - << 10), - true) - .run(fixture, onFinish); - } - - static void runLongOp(Fixture* fixture, StartCommandCB onFinish) { - return StressTestOp(BSON("sleep" << 1 << "lock" - << "none" - << "secs" - << 30), - false) - .run(fixture, onFinish); - } - -private: - StressTestOp(const BSONObj& command, bool cancel) : _command(command), _cancel(cancel) {} - - BSONObj _command; - bool _cancel; -}; - -TEST_F(NetworkInterfaceASIOIntegrationFixture, StressTest) { - constexpr std::size_t numOps = 500; - RemoteCommandResponse testResults[numOps]; - ErrorCodes::Error expectedResults[numOps]; - CountdownLatch cl(numOps); - - startNet(); - - std::unique_ptr<SecureRandom> seedSource{SecureRandom::create()}; - auto seed = seedSource->nextInt64(); - - log() << "Random seed is " << seed; - auto rng = PseudoRandom(seed); // TODO: read from command line - setRandomNumberGenerator(&rng); - log() << "Starting stress test..."; - - for (std::size_t i = 0; i < numOps; ++i) { - // stagger operations slightly to mitigate connection pool contention - sleepmillis(rng.nextInt32(50)); - - auto r = rng.nextCanonicalDouble(); - - auto cb = [&testResults, &cl, i](const RemoteCommandResponse& resp) { - testResults[i] = resp; - cl.countDown(); - }; - - if (r < .3) { - expectedResults[i] = ErrorCodes::CallbackCanceled; - StressTestOp::runCancelOp(this, cb); - } else if (r < .7) { - expectedResults[i] = ErrorCodes::OK; - StressTestOp::runCompleteOp(this, cb); - } else if (r < .99) { - expectedResults[i] = ErrorCodes::NetworkInterfaceExceededTimeLimit; - StressTestOp::runTimeoutOp(this, cb); - } else { - // Just a sprinkling of long ops, to mitigate connection pool contention - expectedResults[i] = ErrorCodes::OK; - StressTestOp::runLongOp(this, cb); - } - }; - - cl.await(); - - for (std::size_t i = 0; i < numOps; ++i) { - const auto& resp = testResults[i]; - auto ec = resp.isOK() ? getStatusFromCommandResult(resp.data) : resp.status; - ASSERT_EQ(ec, expectedResults[i]); - } -} - // Hook that intentionally never finishes class HangingHook : public executor::NetworkConnectionHook { Status validateHost(const HostAndPort&, const RemoteCommandResponse&) final { |