From: Joao Eduardo Luis Date: Sat, 20 Aug 2016 12:04:28 +0000 (+0100) Subject: test/mon: few more cases for mon_feature_t X-Git-Tag: v11.1.0~400^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=acf4b8604c397a1f5cd702b6b6ad98776d9e5764;p=ceph.git test/mon: few more cases for mon_feature_t Signed-off-by: Joao Eduardo Luis --- diff --git a/src/test/mon/test_mon_types.cc b/src/test/mon/test_mon_types.cc index 255839a037f1..3ffb49dbccd8 100644 --- a/src/test/mon/test_mon_types.cc +++ b/src/test/mon/test_mon_types.cc @@ -112,3 +112,30 @@ TEST(mon_features, set_funcs) { ASSERT_EQ(foo.intersection(FEATURE_ALL), foo); ASSERT_EQ(bar.intersection(FEATURE_ALL), bar); } + +TEST(mon_features, set_unset) { + + mon_feature_t FEATURE_A((1ULL << 1)); + mon_feature_t FEATURE_B((1ULL << 2)); + mon_feature_t FEATURE_C((1ULL << 3)); + + mon_feature_t foo; + ASSERT_EQ(ceph::features::mon::FEATURE_NONE, foo); + + foo.set_feature(FEATURE_A); + ASSERT_EQ(FEATURE_A, foo); + ASSERT_TRUE(foo.contains_all(FEATURE_A)); + + foo.set_feature(FEATURE_B|FEATURE_C); + ASSERT_EQ((FEATURE_A|FEATURE_B|FEATURE_C), foo); + ASSERT_TRUE(foo.contains_all((FEATURE_A|FEATURE_B|FEATURE_C))); + + foo.unset_feature(FEATURE_A); + ASSERT_EQ((FEATURE_B|FEATURE_C), foo); + ASSERT_FALSE(foo.contains_any(FEATURE_A)); + ASSERT_TRUE(foo.contains_all((FEATURE_B|FEATURE_C))); + + foo.unset_feature(FEATURE_B|FEATURE_C); + ASSERT_EQ(ceph::features::mon::FEATURE_NONE, foo); + ASSERT_FALSE(foo.contains_any(FEATURE_A|FEATURE_B|FEATURE_C)); +}