| 17 | }; |
| 18 | |
| 19 | TEST_F(AbnormalNodeTest, TestRecoredNodeDelete) { |
| 20 | FLAGS_abnormal_node_check_period_s = 10; |
| 21 | FLAGS_abnormal_node_trigger_count = 3; |
| 22 | FLAGS_abnormal_node_auto_recovery_period_s = 30; |
| 23 | AbnormalNodeMgr mgr; |
| 24 | const std::string addr = "host0"; |
| 25 | |
| 26 | mgr.RecordNodeDelete(addr, get_micros() / 1000000); |
| 27 | ASSERT_EQ(1, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 28 | ASSERT_EQ(0, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 29 | |
| 30 | mgr.RecordNodeDelete(addr, get_micros() / 1000000); |
| 31 | ASSERT_EQ(2, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 32 | ASSERT_EQ(0, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 33 | |
| 34 | int64_t t1 = get_micros() / 1000000; |
| 35 | mgr.RecordNodeDelete(addr, t1); |
| 36 | ASSERT_EQ(0, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 37 | ASSERT_EQ(1, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 38 | ASSERT_EQ(mgr.nodes_abnormal_infos_[addr].recovery_time, |
| 39 | t1 + FLAGS_abnormal_node_auto_recovery_period_s); |
| 40 | |
| 41 | mgr.RecordNodeDelete(addr, get_micros() / 1000000); |
| 42 | ASSERT_EQ(1, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 43 | ASSERT_EQ(1, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 44 | |
| 45 | mgr.RecordNodeDelete(addr, get_micros() / 1000000); |
| 46 | ASSERT_EQ(2, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 47 | ASSERT_EQ(1, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 48 | |
| 49 | int64_t t2 = get_micros() / 1000000; |
| 50 | mgr.RecordNodeDelete(addr, t2); |
| 51 | ASSERT_EQ(0, mgr.nodes_abnormal_infos_[addr].deleted_times.size()); |
| 52 | ASSERT_EQ(2, mgr.nodes_abnormal_infos_[addr].abnormal_count); |
| 53 | ASSERT_EQ(mgr.nodes_abnormal_infos_[addr].recovery_time, |
| 54 | t2 + (FLAGS_abnormal_node_auto_recovery_period_s << 1)); |
| 55 | } |
| 56 | |
| 57 | TEST_F(AbnormalNodeTest, TestIsAbnormalNode) { |
| 58 | AbnormalNodeMgr mgr; |
nothing calls this directly
no test coverage detected