diff --git a/BUILD b/BUILD index 64d1faf..bfb89c2 100644 --- a/BUILD +++ b/BUILD @@ -33,7 +33,7 @@ cc_library( "-Woverloaded-virtual", "-Wnon-virtual-dtor", "-Wno-missing-field-initializers", - "-std=c++11", + "-std=c++17", "-DGFLAGS_NS=google", ], linkopts = [ diff --git a/src/braft/ballot.h b/src/braft/ballot.h index bff9f94..6e5a58e 100644 --- a/src/braft/ballot.h +++ b/src/braft/ballot.h @@ -16,8 +16,8 @@ #pragma once #include -#include #include +#include #include "braft/configuration.h" @@ -32,12 +32,15 @@ class Ballot { }; Ballot() : _quorum(0), _old_quorum(0){}; - //FIXME(ehds): Remove optional. - // void init(const Configuration& conf, const Configuration& old_conf); - void init(const Configuration& conf, std::optional old_conf); + // FIXME(ehds): Remove optional. + // void init(const Configuration& conf, const Configuration& old_conf); + void init(const Configuration& conf, + std::optional old_conf); PosHint grant(const PeerId& peer, PosHint hint); void grant(const PeerId& peer); - bool granted() const { return _quorum <= 0 && _old_quorum <= 0; } + bool granted() const { return quorum() <= 0 && old_quorum() <= 0; } + int quorum() const { return _quorum; } + int old_quorum() const { return _old_quorum; } private: struct UnfoundPeerId { diff --git a/test/common.h b/test/common.h new file mode 100644 index 0000000..3cedf60 --- /dev/null +++ b/test/common.h @@ -0,0 +1,6 @@ +#pragma once +#ifdef private +#undef private +#endif +#include +#define private public diff --git a/test/test_ballot.cpp b/test/test_ballot.cpp index 5b10772..7a2e737 100644 --- a/test/test_ballot.cpp +++ b/test/test_ballot.cpp @@ -14,8 +14,10 @@ // Authors: Zhangyi Chen(chenzhangyi01@baidu.com) -#include +#include + #include "braft/ballot.h" +#include "common.h" class BallotTest : public testing::Test {}; @@ -29,17 +31,17 @@ TEST(BallotTest, sanity) { conf.add_peer(peer2); conf.add_peer(peer3); braft::Ballot bl; - bl.init(conf, NULL); - ASSERT_EQ(2, bl._quorum); - ASSERT_EQ(0, bl._old_quorum); + bl.init(conf, std::nullopt); + ASSERT_EQ(2, bl.quorum()); + ASSERT_EQ(0, bl.old_quorum()); bl.grant(peer1); - ASSERT_EQ(1, bl._quorum); + ASSERT_EQ(1, bl.quorum()); braft::Ballot::PosHint hint = bl.grant(peer1, braft::Ballot::PosHint()); - ASSERT_EQ(1, bl._quorum); + ASSERT_EQ(1, bl.quorum()); hint = bl.grant(peer1, hint); - ASSERT_EQ(1, bl._quorum); + ASSERT_EQ(1, bl.quorum()); hint = bl.grant(peer4, hint); - ASSERT_EQ(1, bl._quorum); + ASSERT_EQ(1, bl.quorum()); hint = bl.grant(peer2, hint); ASSERT_TRUE(bl.granted()); } @@ -54,27 +56,27 @@ TEST(BallotTest, joint_consensus_same_conf) { conf.add_peer(peer2); conf.add_peer(peer3); braft::Ballot bl; - bl.init(conf, &conf); - ASSERT_EQ(2, bl._quorum); - ASSERT_EQ(2, bl._old_quorum); + bl.init(conf, conf); + ASSERT_EQ(2, bl.quorum()); + ASSERT_EQ(2, bl.old_quorum()); bl.grant(peer1); - ASSERT_EQ(1, bl._quorum); - ASSERT_EQ(1, bl._old_quorum); + ASSERT_EQ(1, bl.quorum()); + ASSERT_EQ(1, bl.old_quorum()); braft::Ballot::PosHint hint = bl.grant(peer1, braft::Ballot::PosHint()); - ASSERT_EQ(1, bl._quorum); - ASSERT_EQ(1, bl._old_quorum); + ASSERT_EQ(1, bl.quorum()); + ASSERT_EQ(1, bl.old_quorum()); hint = bl.grant(peer1, hint); - ASSERT_EQ(1, bl._quorum); - ASSERT_EQ(1, bl._old_quorum); + ASSERT_EQ(1, bl.quorum()); + ASSERT_EQ(1, bl.old_quorum()); hint = bl.grant(peer4, hint); - ASSERT_EQ(1, bl._quorum); - ASSERT_EQ(1, bl._old_quorum); + ASSERT_EQ(1, bl.quorum()); + ASSERT_EQ(1, bl.old_quorum()); ASSERT_FALSE(bl.granted()); hint = bl.grant(peer2, hint); ASSERT_TRUE(bl.granted()); hint = bl.grant(peer3, hint); - ASSERT_EQ(-1, bl._quorum); - ASSERT_EQ(-1, bl._old_quorum); + ASSERT_EQ(-1, bl.quorum()); + ASSERT_EQ(-1, bl.old_quorum()); } TEST(BallotTest, joint_consensus_different_conf) { @@ -92,12 +94,12 @@ TEST(BallotTest, joint_consensus_different_conf) { conf2.add_peer(peer3); conf2.add_peer(peer4); braft::Ballot bl; - bl.init(conf, &conf2); + bl.init(conf, conf2); bl.grant(peer1); bl.grant(peer2); ASSERT_FALSE(bl.granted()); - ASSERT_EQ(0, bl._quorum); - ASSERT_EQ(1, bl._old_quorum); + ASSERT_EQ(0, bl.quorum()); + ASSERT_EQ(1, bl.old_quorum()); bl.grant(peer4); ASSERT_TRUE(bl.granted()); } diff --git a/test/test_ballot_box.cpp b/test/test_ballot_box.cpp index 4b907cf..efc0f02 100644 --- a/test/test_ballot_box.cpp +++ b/test/test_ballot_box.cpp @@ -3,12 +3,14 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/02/03 15:59:18 -#include -#include #include + +#include + #include "braft/ballot_box.h" #include "braft/configuration.h" #include "braft/fsm_caller.h" +#include "common.h" class BallotBoxTest : public testing::Test { protected: diff --git a/test/test_checksum.cpp b/test/test_checksum.cpp index 110274c..5666c0b 100644 --- a/test/test_checksum.cpp +++ b/test/test_checksum.cpp @@ -3,10 +3,11 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/04/11 12:15:37 -#include #include #include +#include "common.h" + class ChecksumTest : public testing::Test { protected: void SetUp() {} diff --git a/test/test_cli.cpp b/test/test_cli.cpp index ed816ab..5cd250a 100644 --- a/test/test_cli.cpp +++ b/test/test_cli.cpp @@ -3,13 +3,14 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2018/01/12 12:56:17 -#include -#include -#include #include -#include "braft/raft.h" +#include +#include + #include "braft/cli.h" #include "braft/node.h" +#include "braft/raft.h" +#include "common.h" class CliTest : public testing::Test { public: diff --git a/test/test_configuration.cpp b/test/test_configuration.cpp index 9461128..b933367 100644 --- a/test/test_configuration.cpp +++ b/test/test_configuration.cpp @@ -16,10 +16,11 @@ * ===================================================================================== */ -#include #include -#include "braft/raft.h" + #include "braft/configuration_manager.h" +#include "braft/raft.h" +#include "common.h" class TestUsageSuits : public testing::Test { protected: diff --git a/test/test_file_service.cpp b/test/test_file_service.cpp index 0f805b2..7703c76 100644 --- a/test/test_file_service.cpp +++ b/test/test_file_service.cpp @@ -3,16 +3,16 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2015/11/06 15:40:45 -#include -#include -#include +#include #include +#include +#include -#include #include "braft/file_service.h" -#include "braft/util.h" -#include "braft/remote_file_copier.h" #include "braft/file_system_adaptor.h" +#include "braft/remote_file_copier.h" +#include "braft/util.h" +#include "common.h" namespace braft { DECLARE_bool(raft_file_check_hole); diff --git a/test/test_file_system_adaptor.cpp b/test/test_file_system_adaptor.cpp index f5da03c..9670504 100644 --- a/test/test_file_system_adaptor.cpp +++ b/test/test_file_system_adaptor.cpp @@ -4,8 +4,8 @@ // Author: ZhengPengFei (zhengpengfei@baidu.com) // Date: 2017/06/16 10:29:05 -#include #include "braft/file_system_adaptor.h" +#include "common.h" class TestFileSystemAdaptorSuits : public testing::Test { protected: diff --git a/test/test_fsm_caller.cpp b/test/test_fsm_caller.cpp index bb3c186..cd2a0ff 100644 --- a/test/test_fsm_caller.cpp +++ b/test/test_fsm_caller.cpp @@ -3,14 +3,15 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2015/12/01 17:03:46 -#include -#include #include +#include + +#include "braft/configuration.h" #include "braft/fsm_caller.h" -#include "braft/raft.h" #include "braft/log.h" -#include "braft/configuration.h" #include "braft/log_manager.h" +#include "braft/raft.h" +#include "common.h" class FSMCallerTest : public testing::Test { protected: diff --git a/test/test_fsync.cpp b/test/test_fsync.cpp index 96bbdbf..604ef9a 100644 --- a/test/test_fsync.cpp +++ b/test/test_fsync.cpp @@ -3,14 +3,15 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/02/23 16:22:15 -#include -#include -#include -#include -#include #include -#include #include +#include +#include +#include +#include +#include + +#include "common.h" class FsyncTest : public testing::Test { }; diff --git a/test/test_leader_lease.cpp b/test/test_leader_lease.cpp index d296b8b..005c9d1 100644 --- a/test/test_leader_lease.cpp +++ b/test/test_leader_lease.cpp @@ -14,12 +14,13 @@ // Authors: Pengfei Zheng (zhengpengfei@baidu.com) -#include #include -#include "braft/util.h" -#include "braft/node.h" -#include "braft/lease.h" + #include "../test/util.h" +#include "braft/lease.h" +#include "braft/node.h" +#include "braft/util.h" +#include "common.h" namespace braft { DECLARE_bool(raft_enable_leader_lease); diff --git a/test/test_log.cpp b/test/test_log.cpp index 25d046f..537b492 100644 --- a/test/test_log.cpp +++ b/test/test_log.cpp @@ -4,20 +4,21 @@ // Author: WangYao (fisherman), wangyao02@baidu.com // Date: 2015/10/08 17:00:05 -#include -#include -#include -#include #include #include -#include -#include #include -#include +#include +#include #include -#include "braft/util.h" +#include +#include +#include +#include + #include "braft/log.h" #include "braft/storage.h" +#include "braft/util.h" +#include "common.h" namespace braft { DECLARE_bool(raft_trace_append_entry_latency); diff --git a/test/test_log_entry.cpp b/test/test_log_entry.cpp index 600e274..bae8a5d 100644 --- a/test/test_log_entry.cpp +++ b/test/test_log_entry.cpp @@ -16,10 +16,11 @@ * ===================================================================================== */ -#include -#include #include +#include + #include "braft/log_entry.h" +#include "common.h" class TestUsageSuits : public testing::Test { protected: diff --git a/test/test_log_manager.cpp b/test/test_log_manager.cpp index e555d4a..bc8883c 100644 --- a/test/test_log_manager.cpp +++ b/test/test_log_manager.cpp @@ -3,16 +3,15 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2015/11/24 16:30:49 -#include - +#include +#include #include #include -#include -#include -#include "braft/log_manager.h" #include "braft/configuration.h" #include "braft/log.h" +#include "braft/log_manager.h" +#include "common.h" class LogManagerTest : public testing::Test { protected: diff --git a/test/test_memory_storage.cpp b/test/test_memory_storage.cpp index 88e16ce..779abdb 100644 --- a/test/test_memory_storage.cpp +++ b/test/test_memory_storage.cpp @@ -3,8 +3,8 @@ // Author: qinduohao@baidu.com // Date: 2017/05/23 -#include #include "braft/memory_log.h" +#include "common.h" namespace braft { extern void global_init_once_or_die(); diff --git a/test/test_meta.cpp b/test/test_meta.cpp index 903a645..268b538 100644 --- a/test/test_meta.cpp +++ b/test/test_meta.cpp @@ -1,8 +1,9 @@ -#include -#include #include +#include + #include "braft/raft.h" #include "braft/raft_meta.h" +#include "common.h" namespace braft { extern void global_init_once_or_die(); diff --git a/test/test_node.cpp b/test/test_node.cpp index 10cc01a..11668d4 100644 --- a/test/test_node.cpp +++ b/test/test_node.cpp @@ -4,22 +4,24 @@ // Author: WangYao (fisherman), wangyao02@baidu.com // Date: 2015/10/08 17:00:05 -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include + #include "../test/util.h" +#include "common.h" namespace braft { extern bvar::Adder g_num_nodes; diff --git a/test/test_protobuf_file.cpp b/test/test_protobuf_file.cpp index fdb6830..a130f3a 100644 --- a/test/test_protobuf_file.cpp +++ b/test/test_protobuf_file.cpp @@ -3,7 +3,7 @@ * * Filename: test_protobuf_file.cpp * - * Description: + * Description: * * Version: 1.0 * Created: 2015/09/22 19:48:31 @@ -15,8 +15,8 @@ * * ===================================================================================== */ +#include "common.h" -#include #include "braft/local_storage.pb.h" #include "braft/protobuf_file.h" diff --git a/test/test_repeated_timer_task.cpp b/test/test_repeated_timer_task.cpp index 2e15710..df29c9d 100644 --- a/test/test_repeated_timer_task.cpp +++ b/test/test_repeated_timer_task.cpp @@ -4,7 +4,8 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/11/02 21:12:26 -#include +#include "common.h" + #include "braft/repeated_timer_task.h" class RepeatedTimerTaskTest : public testing::Test { diff --git a/test/test_route_table.cpp b/test/test_route_table.cpp index a05b26b..e8eb788 100644 --- a/test/test_route_table.cpp +++ b/test/test_route_table.cpp @@ -1,9 +1,11 @@ -#include "braft/configuration.h" -#include "braft/route_table.h" #include -#include + #include + #include "../test/util.h" +#include "braft/configuration.h" +#include "braft/route_table.h" +#include "common.h" class RouteTableTest : public testing::Test { void SetUp() { diff --git a/test/test_snapshot.cpp b/test/test_snapshot.cpp index 3b3a98c..23648a0 100644 --- a/test/test_snapshot.cpp +++ b/test/test_snapshot.cpp @@ -4,17 +4,18 @@ // Author: WangYao (fisherman), wangyao02@baidu.com // Date: 2015/10/08 17:00:05 -#include -#include -#include +#include #include +#include #include -#include -#include "braft/snapshot.h" -#include "braft/raft.h" -#include "braft/util.h" +#include + #include "braft/local_file_meta.pb.h" +#include "braft/raft.h" +#include "braft/snapshot.h" #include "braft/snapshot_throttle.h" +#include "braft/util.h" +#include "common.h" #include "memory_file_system_adaptor.h" namespace logging { diff --git a/test/test_snapshot_executor.cpp b/test/test_snapshot_executor.cpp index 7d63bb0..b564215 100644 --- a/test/test_snapshot_executor.cpp +++ b/test/test_snapshot_executor.cpp @@ -3,13 +3,14 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/07/27 20:13:42 -#include -#include #include -#include "braft/snapshot_executor.h" +#include + #include "braft/fsm_caller.h" -#include "braft/util.h" #include "braft/raft.h" +#include "braft/snapshot_executor.h" +#include "braft/util.h" +#include "common.h" namespace braft { diff --git a/test/test_storage.cpp b/test/test_storage.cpp index c9f7aea..7ea0967 100644 --- a/test/test_storage.cpp +++ b/test/test_storage.cpp @@ -3,7 +3,8 @@ // Author: Zhangyi Chen (chenzhangyi01@baidu.com) // Date: 2016/03/29 10:35:06 -#include +#include + #include "braft/storage.h" namespace braft { diff --git a/test/test_throttle.cpp b/test/test_throttle.cpp index 94b35a9..7248b36 100644 --- a/test/test_throttle.cpp +++ b/test/test_throttle.cpp @@ -4,11 +4,12 @@ // Author: Xiong Kai (xiongkai@baidu.com) // Date: 2017/09/07 14:06:13 -#include #include + #include "braft/raft.h" -#include "braft/util.h" #include "braft/snapshot_throttle.h" +#include "braft/util.h" +#include "common.h" class TestUsageSuits : public testing::Test { protected: diff --git a/test/test_util.cpp b/test/test_util.cpp index 731d9fa..6ac9a78 100644 --- a/test/test_util.cpp +++ b/test/test_util.cpp @@ -4,14 +4,14 @@ // Author: WangYao (fisherman), wangyao02@baidu.com // Date: 2015/10/08 17:00:05 -#include +#include #include -#include -#include #include -#include +#include +#include #include "braft/util.h" +#include "common.h" class TestUsageSuits : public testing::Test { protected: diff --git a/test/util.h b/test/util.h index 4730fbd..836065d 100644 --- a/test/util.h +++ b/test/util.h @@ -18,11 +18,13 @@ #define PUBLIC_RAFT_TEST_UTIL_H #include -#include "braft/node.h" + #include "braft/enum.pb.h" #include "braft/errno.pb.h" -#include "braft/snapshot_throttle.h" +#include "braft/node.h" #include "braft/snapshot_executor.h" +#include "braft/snapshot_throttle.h" +#include "common.h" using namespace braft; bool g_dont_print_apply_log = false;