支持bfd
This commit is contained in:
219
common/test/gtest_health_check_table.cpp
Normal file
219
common/test/gtest_health_check_table.cpp
Normal file
@@ -0,0 +1,219 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "bfd.h"
|
||||
#include "policy.h"
|
||||
#include "health_check.h"
|
||||
|
||||
|
||||
TEST(HEALTH_CHECK_TABLE, INSERT)
|
||||
{
|
||||
// TEST Create
|
||||
health_check_session_init("./sce.conf");
|
||||
|
||||
// TEST Insert
|
||||
struct health_check policy1;
|
||||
memset(&policy1, 0, sizeof(policy1));
|
||||
policy1.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy1.address, sizeof(policy1.address), "1.1.1.1");
|
||||
policy1.port = 65535;
|
||||
policy1.retires = 11;
|
||||
policy1.interval_ms = 111;
|
||||
EXPECT_TRUE(health_check_session_add(1, &policy1) == 0);
|
||||
EXPECT_TRUE(health_check_session_add(1, &policy1) == -1);
|
||||
|
||||
struct health_check policy2;
|
||||
memset(&policy2, 0, sizeof(policy2));
|
||||
policy2.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy2.address, sizeof(policy2.address), "2.2.2.2");
|
||||
policy2.port = 65535;
|
||||
policy2.retires = 22;
|
||||
policy2.interval_ms = 222;
|
||||
EXPECT_TRUE(health_check_session_add(2, &policy2) == 0);
|
||||
EXPECT_TRUE(health_check_session_add(2, &policy2) == -1);
|
||||
|
||||
struct health_check policy3;
|
||||
memset(&policy3, 0, sizeof(policy3));
|
||||
policy3.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy3.address, sizeof(policy3.address), "2001:0db8:0000:0000:0000:8a2e:0370:7334");
|
||||
policy3.port = 65535;
|
||||
policy3.retires = 33;
|
||||
policy3.interval_ms = 333;
|
||||
EXPECT_TRUE(health_check_session_add(3, &policy3) == 0);
|
||||
EXPECT_TRUE(health_check_session_add(3, &policy3) == -1);
|
||||
|
||||
// TEST Delete By Session ID
|
||||
EXPECT_TRUE(health_check_session_del(1) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(2) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(3) == 0);
|
||||
}
|
||||
|
||||
TEST(HEALTH_CHECK_TABLE, GET_STATUS)
|
||||
{
|
||||
// TEST Insert
|
||||
struct health_check policy1;
|
||||
memset(&policy1, 0, sizeof(policy1));
|
||||
policy1.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy1.address, sizeof(policy1.address), "4.4.4.4");
|
||||
policy1.port = 65535;
|
||||
policy1.retires = 5;
|
||||
policy1.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(4, &policy1) == 0);
|
||||
|
||||
struct health_check policy2;
|
||||
memset(&policy2, 0, sizeof(policy2));
|
||||
policy2.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy2.address, sizeof(policy2.address), "5.5.5.5");
|
||||
policy2.port = 65535;
|
||||
policy2.retires = 5;
|
||||
policy2.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(5, &policy2) == 0);
|
||||
|
||||
struct health_check policy3;
|
||||
memset(&policy3, 0, sizeof(policy3));
|
||||
policy3.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy3.address, sizeof(policy3.address), "6.6.6.6");
|
||||
policy3.port = 65535;
|
||||
policy3.retires = 5;
|
||||
policy3.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(6, &policy3) == 0);
|
||||
|
||||
// TEST get status
|
||||
EXPECT_TRUE(health_check_session_get_status(4) == 0);
|
||||
EXPECT_TRUE(health_check_session_get_status(5) == 0);
|
||||
EXPECT_TRUE(health_check_session_get_status(6) == 0);
|
||||
EXPECT_TRUE(health_check_session_get_status(7) == -1);
|
||||
|
||||
// TEST Delete By Session ID
|
||||
EXPECT_TRUE(health_check_session_del(4) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(5) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(6) == 0);
|
||||
}
|
||||
|
||||
TEST(HEALTH_CHECK_TABLE, SET_STATUS)
|
||||
{
|
||||
// TEST Insert
|
||||
struct health_check policy1;
|
||||
memset(&policy1, 0, sizeof(policy1));
|
||||
policy1.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy1.address, sizeof(policy1.address), "7.7.7.7");
|
||||
policy1.port = 65535;
|
||||
policy1.retires = 5;
|
||||
policy1.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(7, &policy1) == 0);
|
||||
|
||||
struct health_check policy2;
|
||||
memset(&policy2, 0, sizeof(policy2));
|
||||
policy2.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy2.address, sizeof(policy2.address), "8.8.8.8");
|
||||
policy2.port = 65535;
|
||||
policy2.retires = 5;
|
||||
policy2.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(8, &policy2) == 0);
|
||||
|
||||
struct health_check policy3;
|
||||
memset(&policy3, 0, sizeof(policy3));
|
||||
policy3.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy3.address, sizeof(policy3.address), "9.9.9.9");
|
||||
policy3.port = 65535;
|
||||
policy3.retires = 5;
|
||||
policy3.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(9, &policy3) == 0);
|
||||
|
||||
// TEST get status
|
||||
EXPECT_TRUE(health_check_session_get_status(7) == 0);
|
||||
EXPECT_TRUE(health_check_session_get_status(8) == 0);
|
||||
EXPECT_TRUE(health_check_session_get_status(9) == 0);
|
||||
|
||||
// TEST set status
|
||||
EXPECT_TRUE(health_check_session_set_status(7, 1) == 0);
|
||||
EXPECT_TRUE(health_check_session_set_status(8, 1) == 0);
|
||||
EXPECT_TRUE(health_check_session_set_status(9, 1) == 0);
|
||||
EXPECT_TRUE(health_check_session_set_status(10, 1) == -1);
|
||||
|
||||
// TEST get status
|
||||
EXPECT_TRUE(health_check_session_get_status(7) == 1);
|
||||
EXPECT_TRUE(health_check_session_get_status(8) == 1);
|
||||
EXPECT_TRUE(health_check_session_get_status(9) == 1);
|
||||
|
||||
// TEST Delete By Session ID
|
||||
EXPECT_TRUE(health_check_session_del(7) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(8) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(9) == 0);
|
||||
}
|
||||
|
||||
TEST(HEALTH_CHECK_TABLE, DELETE)
|
||||
{
|
||||
// TEST Insert
|
||||
struct health_check policy1;
|
||||
memset(&policy1, 0, sizeof(policy1));
|
||||
policy1.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy1.address, sizeof(policy1.address), "10.10.10.10");
|
||||
policy1.port = 65535;
|
||||
policy1.retires = 5;
|
||||
policy1.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(10, &policy1) == 0);
|
||||
|
||||
struct health_check policy2;
|
||||
memset(&policy2, 0, sizeof(policy2));
|
||||
policy2.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy2.address, sizeof(policy2.address), "11.11.11.11");
|
||||
policy2.port = 65535;
|
||||
policy2.retires = 5;
|
||||
policy2.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(11, &policy2) == 0);
|
||||
|
||||
struct health_check policy3;
|
||||
memset(&policy3, 0, sizeof(policy3));
|
||||
policy3.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy3.address, sizeof(policy3.address), "12.12.12.12");
|
||||
policy3.port = 65535;
|
||||
policy3.retires = 5;
|
||||
policy3.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(12, &policy3) == 0);
|
||||
|
||||
// TEST Delete By Session ID
|
||||
EXPECT_TRUE(health_check_session_del(10) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(10) == -1);
|
||||
EXPECT_TRUE(health_check_session_del(11) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(11) == -1);
|
||||
EXPECT_TRUE(health_check_session_del(12) == 0);
|
||||
EXPECT_TRUE(health_check_session_del(12) == -1);
|
||||
}
|
||||
|
||||
static void *bfd_get_status(void *arg)
|
||||
{
|
||||
while(1) {
|
||||
health_check_session_get_status(10);
|
||||
sleep(1);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
TEST(HEALTH_CHECK_TABLE, CHECK_BFD_ENVIRONMENT)
|
||||
{
|
||||
// TEST Insert
|
||||
struct health_check policy1;
|
||||
memset(&policy1, 0, sizeof(policy1));
|
||||
policy1.method = HEALTH_CHECK_METHOD_BFD;
|
||||
snprintf(policy1.address, sizeof(policy1.address), "192.168.32.82");
|
||||
policy1.port = 65535;
|
||||
policy1.retires = 5;
|
||||
policy1.interval_ms = 300;
|
||||
EXPECT_TRUE(health_check_session_add(10, &policy1) == 0);
|
||||
|
||||
pthread_t pid1;
|
||||
pthread_create(&pid1, NULL, bfd_get_status, NULL);
|
||||
|
||||
char mac[18] = {0};
|
||||
while(1) {
|
||||
health_check_session_get_mac(10, mac);
|
||||
sleep(5);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
Reference in New Issue
Block a user