Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 773BB200B32 for ; Wed, 8 Jun 2016 15:21:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 75ED9160A15; Wed, 8 Jun 2016 13:21:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id A035C160A29 for ; Wed, 8 Jun 2016 15:21:08 +0200 (CEST) Received: (qmail 43778 invoked by uid 500); 8 Jun 2016 13:21:07 -0000 Mailing-List: contact commits-help@quickstep.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@quickstep.incubator.apache.org Delivered-To: mailing list commits@quickstep.incubator.apache.org Received: (qmail 43765 invoked by uid 99); 8 Jun 2016 13:21:07 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2016 13:21:07 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 70059C0351 for ; Wed, 8 Jun 2016 13:21:07 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id p8TPebapu3p8 for ; Wed, 8 Jun 2016 13:21:06 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id C8FDA5FD43 for ; Wed, 8 Jun 2016 13:21:02 +0000 (UTC) Received: (qmail 43242 invoked by uid 99); 8 Jun 2016 13:21:01 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2016 13:21:01 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3802CE9E9B; Wed, 8 Jun 2016 13:21:01 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hbdeshmukh@apache.org To: commits@quickstep.incubator.apache.org Date: Wed, 08 Jun 2016 13:21:15 -0000 Message-Id: In-Reply-To: <5b3d64e7b97d480ebbff65f401847667@git.apache.org> References: <5b3d64e7b97d480ebbff65f401847667@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [15/50] [abbrv] incubator-quickstep git commit: Transaction Part 4: LockManager, CycleDetector and DeadLockDetector. (#187) archived-at: Wed, 08 Jun 2016 13:21:09 -0000 http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bbaff7a2/transaction/tests/StronglyConnectedComponents_unittest.cpp ---------------------------------------------------------------------- diff --git a/transaction/tests/StronglyConnectedComponents_unittest.cpp b/transaction/tests/StronglyConnectedComponents_unittest.cpp index 79d6881..35ef842 100644 --- a/transaction/tests/StronglyConnectedComponents_unittest.cpp +++ b/transaction/tests/StronglyConnectedComponents_unittest.cpp @@ -35,21 +35,20 @@ namespace transaction { class GraphConfiguration { public: GraphConfiguration(DirectedGraph *graph, - std::size_t no_transaction, + const std::size_t num_transactions, const std::vector> &mapping) : graph_(graph) { - for (std::size_t index = 0; index < no_transaction; ++index) { - std::unique_ptr tid = - std::make_unique(transaction_id(index)); - transaction_list_.push_back(*tid); - DirectedGraph::node_id nid = graph->addNodeUnchecked(tid.release()); + for (std::size_t index = 0; index < num_transactions; ++index) { + const transaction_id transaction = static_cast(index); + transaction_list_.push_back(transaction); + const DirectedGraph::node_id nid = graph->addNodeUnchecked(transaction); node_id_list_.push_back(nid); } for (const std::pair &edge : mapping) { - transaction_id pending = edge.first; - transaction_id owner = edge.second; + const transaction_id pending = edge.first; + const transaction_id owner = edge.second; graph_->addEdgeUnchecked(pending, owner); } } http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bbaff7a2/transaction/tests/TransactionTable_unittest.cpp ---------------------------------------------------------------------- diff --git a/transaction/tests/TransactionTable_unittest.cpp b/transaction/tests/TransactionTable_unittest.cpp index f5b5bc9..cd47a2b 100644 --- a/transaction/tests/TransactionTable_unittest.cpp +++ b/transaction/tests/TransactionTable_unittest.cpp @@ -41,91 +41,101 @@ class TransactionTableTest : public ::testing::Test { }; TEST_F(TransactionTableTest, NormalOperations) { - EXPECT_EQ(transaction_table_.putOwnEntry(tid_1_, + const AccessMode is_lock_mode = AccessMode::IsLockMode(); + const AccessMode x_lock_mode = AccessMode::XLockMode(); + + EXPECT_EQ(TransactionTableResult::kPlacedInOwned, + transaction_table_.putOwnEntry(tid_1_, ResourceId(3), - AccessMode(AccessModeType::kIsLock)), - TransactionTableResult::kPlacedInOwned); + is_lock_mode)); + - EXPECT_EQ(transaction_table_.putPendingEntry(tid_1_, + EXPECT_EQ(TransactionTableResult::kPlacedInPending, + transaction_table_.putPendingEntry(tid_1_, ResourceId(5), - AccessMode(AccessModeType::kXLock)), - TransactionTableResult::kPlacedInPending); + x_lock_mode)); } TEST_F(TransactionTableTest, DeleteEntryOperations) { - EXPECT_EQ(transaction_table_.deleteOwnEntry(tid_2_, + const AccessMode s_lock_mode = AccessMode::SLockMode(); + const AccessMode x_lock_mode = AccessMode::XLockMode(); + + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deleteOwnEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelError); + s_lock_mode)); - EXPECT_EQ(transaction_table_.putOwnEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kPlacedInOwned, + transaction_table_.putOwnEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kPlacedInOwned); + s_lock_mode)); // Tring to delete a lock with different acces mode on same resource id // will result in an error. - EXPECT_EQ(transaction_table_.deleteOwnEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deleteOwnEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kXLock)), - TransactionTableResult::kDelError); + x_lock_mode)); // Transaction 3 does not have a lock on this resource id. - EXPECT_EQ(transaction_table_.deleteOwnEntry(tid_3_, + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deleteOwnEntry(tid_3_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelError); + s_lock_mode)); // This will result in success since transaction 2 have acquired the lock on // this resource with the corresponding mode. - EXPECT_EQ(transaction_table_.deleteOwnEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kDelFromOwned, + transaction_table_.deleteOwnEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelFromOwned); + s_lock_mode)); // Repeat the previous sequence, with pending list. - EXPECT_EQ(transaction_table_.deletePendingEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deletePendingEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelError); + s_lock_mode)); - EXPECT_EQ(transaction_table_.putPendingEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kPlacedInPending, + transaction_table_.putPendingEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kPlacedInPending); + s_lock_mode)); - EXPECT_EQ(transaction_table_.deletePendingEntry(tid_2_, + + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deletePendingEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kXLock)), - TransactionTableResult::kDelError); + x_lock_mode)); - EXPECT_EQ(transaction_table_.deletePendingEntry(tid_3_, + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deletePendingEntry(tid_3_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelError); + s_lock_mode)); - EXPECT_EQ(transaction_table_.deletePendingEntry(tid_2_, + EXPECT_EQ(TransactionTableResult::kDelFromPending, + transaction_table_.deletePendingEntry(tid_2_, ResourceId(5), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelFromPending); + s_lock_mode)); } TEST_F(TransactionTableTest, TransactionEntries) { - EXPECT_EQ(transaction_table_.deleteTransaction(tid_1_), - TransactionTableResult::kTransactionDeleteError); + const AccessMode s_lock_mode = AccessMode::SLockMode(); + + EXPECT_EQ(TransactionTableResult::kTransactionDeleteError, + transaction_table_.deleteTransaction(tid_1_)); - EXPECT_EQ(transaction_table_.putOwnEntry(tid_1_, + EXPECT_EQ(TransactionTableResult::kPlacedInOwned, + transaction_table_.putOwnEntry(tid_1_, ResourceId(4), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kPlacedInOwned); + s_lock_mode)); - EXPECT_EQ(transaction_table_.deleteTransaction(tid_1_), - TransactionTableResult::kTransactionDeleteOk); + EXPECT_EQ(TransactionTableResult::kTransactionDeleteOk, + transaction_table_.deleteTransaction(tid_1_)); - EXPECT_EQ(transaction_table_.deleteOwnEntry(tid_1_, + EXPECT_EQ(TransactionTableResult::kDelError, + transaction_table_.deleteOwnEntry(tid_1_, ResourceId(4), - AccessMode(AccessModeType::kSLock)), - TransactionTableResult::kDelError); + s_lock_mode)); } } // namespace transaction