summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Carey <jcarey@argv.me>2019-02-01 16:20:49 -0500
committerJason Carey <jcarey@argv.me>2019-02-01 16:20:49 -0500
commitd0296d551c0dc079c6d57c2154b69d4dbe92a1e1 (patch)
tree59598448feb71d37885c61dfde7903d7b6e14fdc
parent161446183ef54319533aefeb2540556c72d0cb16 (diff)
downloadmongo-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.cpp120
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 {