diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-04-26 13:14:35 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-04-26 14:31:54 +0000 |
commit | 1ec697c0e62e4957f680c8c32d96dc5b2ee5fea1 (patch) | |
tree | f21c98a7c98cf3e3b4a6844f3d1bd92c1c409f64 /persistence/src/tests | |
parent | e645c567e32a94abde0c7493172ff1c274d1bbc2 (diff) |
Add node retirement accessor to SPI cluster state
Diffstat (limited to 'persistence/src/tests')
-rw-r--r-- | persistence/src/tests/spi/clusterstatetest.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/persistence/src/tests/spi/clusterstatetest.cpp b/persistence/src/tests/spi/clusterstatetest.cpp index 7770b9045e0..ba9b0e28d50 100644 --- a/persistence/src/tests/spi/clusterstatetest.cpp +++ b/persistence/src/tests/spi/clusterstatetest.cpp @@ -18,12 +18,14 @@ struct ClusterStateTest : public CppUnit::TestFixture { CPPUNIT_TEST(testNodeUp); CPPUNIT_TEST(testNodeInitializing); CPPUNIT_TEST(testReady); + CPPUNIT_TEST(can_infer_own_node_retired_state); CPPUNIT_TEST_SUITE_END(); void testClusterUp(); void testNodeUp(); void testNodeInitializing(); void testReady(); + void can_infer_own_node_retired_state(); }; CPPUNIT_TEST_SUITE_REGISTRATION(ClusterStateTest); @@ -222,5 +224,31 @@ ClusterStateTest::testReady() } } +namespace { + +bool +node_marked_as_retired_in_state(const std::string& stateStr, + const lib::Distribution& d, + uint16_t node) +{ + lib::ClusterState s(stateStr); + ClusterState state(s, node, d); + return state.nodeRetired(); +} + +} + +void ClusterStateTest::can_infer_own_node_retired_state() { + lib::Distribution d(lib::Distribution::getDefaultDistributionConfig(3, 3)); + + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3", d, 0)); + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:i", d, 0)); + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:d", d, 0)); + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:m", d, 0)); + CPPUNIT_ASSERT(node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 0)); + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 1)); + CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .1.s:r", d, 0)); +} + } // spi } // storage |