diff options
author | Pavithra Vetriselvan <pavithra.vetriselvan@mongodb.com> | 2018-02-22 11:31:59 -0500 |
---|---|---|
committer | Pavithra Vetriselvan <pavithra.vetriselvan@mongodb.com> | 2018-02-22 11:33:55 -0500 |
commit | f3292e4dfe808eb195073fc6ad0b9e5d0b296852 (patch) | |
tree | b663a1df3483944f3643d477f20abc71d5a56841 | |
parent | 127834fd5164c3a172f61bfe292c118542ea6241 (diff) | |
download | mongo-f3292e4dfe808eb195073fc6ad0b9e5d0b296852.tar.gz |
SERVER-33423 Adds simple autocommit unit test
-rw-r--r-- | src/mongo/db/session_test.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mongo/db/session_test.cpp b/src/mongo/db/session_test.cpp index 6dde3fc0bea..ed536c4f70d 100644 --- a/src/mongo/db/session_test.cpp +++ b/src/mongo/db/session_test.cpp @@ -618,5 +618,26 @@ TEST_F(SessionTest, StashNotRequired) { ASSERT(!opCtx()->getWriteUnitOfWork()); } +TEST_F(SessionTest, CheckAutocommitOnlyAllowedAtBeginningOfTxn) { + const auto sessionId = makeLogicalSessionIdForTest(); + Session session(sessionId); + session.refreshFromStorageIfNeeded(opCtx()); + + // Autocommit should be true by default + ASSERT(session.getAutocommit()); + + const TxnNumber txnNum = 100; + session.beginOrContinueTxn(opCtx(), txnNum, false); + + // Autocommit should be set to false + ASSERT_FALSE(session.getAutocommit()); + + // Trying to set autocommit after the first statement of a transaction + // should throw an error. + ASSERT_THROWS_CODE(session.beginOrContinueTxn(opCtx(), txnNum, true), + AssertionException, + ErrorCodes::IllegalOperation); +} + } // anonymous } // namespace mongo |