This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tango-tsg-service-chaining-…/common/test/gtest_health_check_table.cpp
2023-02-23 20:56:23 +08:00

188 lines
6.0 KiB
C++

#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);
}
int main(int argc, char **argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}