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

204 lines
7.3 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)
{
uint64_t session_id1 = 0;
uint64_t session_id2 = 0;
uint64_t session_id3 = 0;
uint64_t session_id4 = 0;
uint64_t session_id5 = 0;
// TEST Create
health_check_session_init("./sce.conf", NULL);
// 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.retires = 11;
policy1.interval_ms = 111;
EXPECT_TRUE((session_id1 = health_check_session_add(1, 0, &policy1)) > 0);
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.retires = 22;
policy2.interval_ms = 222;
EXPECT_TRUE((session_id2 = health_check_session_add(2, 0, &policy2)) > 0);
EXPECT_TRUE((session_id3 = health_check_session_add(3, 0, &policy2)) > 0);
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.retires = 33;
policy3.interval_ms = 333;
EXPECT_TRUE((session_id4 = health_check_session_add(4, 0, &policy3)) > 0);
EXPECT_TRUE((session_id5 = health_check_session_add(5, 0, &policy3)) > 0);
// TEST Delete By Session ID
EXPECT_TRUE(health_check_session_del(session_id1, 1, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id2, 2, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id3, 3, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id4, 4, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id5, 5, 0) == 0);
}
TEST(HEALTH_CHECK_TABLE, GET_STATUS)
{
uint64_t session_id1 = 0;
uint64_t session_id2 = 0;
uint64_t session_id3 = 0;
// 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.retires = 5;
policy1.interval_ms = 300;
EXPECT_TRUE((session_id1 = health_check_session_add(1, 0, &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.retires = 5;
policy2.interval_ms = 300;
EXPECT_TRUE((session_id2 = health_check_session_add(2, 0, &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.retires = 5;
policy3.interval_ms = 300;
EXPECT_TRUE((session_id3 = health_check_session_add(3, 0, &policy3)) > 0);
// TEST get status
EXPECT_TRUE(health_check_session_get_status(session_id1) == 0);
EXPECT_TRUE(health_check_session_get_status(session_id2) == 0);
EXPECT_TRUE(health_check_session_get_status(session_id3) == 0);
EXPECT_TRUE(health_check_session_get_status(7) == -1);
// TEST Delete By Session ID
EXPECT_TRUE(health_check_session_del(session_id1, 1, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id2, 2, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id3, 3, 0) == 0);
}
TEST(HEALTH_CHECK_TABLE, SET_STATUS)
{
uint64_t session_id1 = 0;
uint64_t session_id2 = 0;
uint64_t session_id3 = 0;
// 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.retires = 5;
policy1.interval_ms = 300;
EXPECT_TRUE((session_id1 = health_check_session_add(1, 0, &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.retires = 5;
policy2.interval_ms = 300;
EXPECT_TRUE((session_id2 = health_check_session_add(2, 0, &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.retires = 5;
policy3.interval_ms = 300;
EXPECT_TRUE((session_id3 = health_check_session_add(3, 0, &policy3)) > 0);
// TEST get status
EXPECT_TRUE(health_check_session_get_status(session_id1) == 0);
EXPECT_TRUE(health_check_session_get_status(session_id2) == 0);
EXPECT_TRUE(health_check_session_get_status(session_id3) == 0);
// TEST set status
EXPECT_TRUE(health_check_session_set_status(session_id1, 1) == 0);
EXPECT_TRUE(health_check_session_set_status(session_id2, 1) == 0);
EXPECT_TRUE(health_check_session_set_status(session_id3, 1) == 0);
EXPECT_TRUE(health_check_session_set_status(10, 1) == -1);
// TEST get status
EXPECT_TRUE(health_check_session_get_status(session_id1) == 1);
EXPECT_TRUE(health_check_session_get_status(session_id2) == 1);
EXPECT_TRUE(health_check_session_get_status(session_id3) == 1);
// TEST Delete By Session ID
EXPECT_TRUE(health_check_session_del(session_id1, 1, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id2, 2, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id3, 3, 0) == 0);
}
#if 0
TEST(HEALTH_CHECK_TABLE, DELETE)
{
uint64_t session_id1 = 0;
uint64_t session_id2 = 0;
uint64_t session_id3 = 0;
uint64_t session_id4 = 0;
uint64_t session_id5 = 0;
uint64_t session_id6 = 0;
// 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.retires = 5;
policy1.interval_ms = 300;
EXPECT_TRUE((session_id1 = health_check_session_add(1, 0, &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.retires = 5;
policy2.interval_ms = 300;
EXPECT_TRUE((session_id2 = health_check_session_add(2, 0, &policy2)) > 0);
EXPECT_TRUE((session_id3 = health_check_session_add(3, 0, &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.retires = 5;
policy3.interval_ms = 300;
EXPECT_TRUE((session_id4 = health_check_session_add(4, 0, &policy3)) > 0);
EXPECT_TRUE((session_id5 = health_check_session_add(5, 0, &policy3)) > 0);
EXPECT_TRUE((session_id6 = health_check_session_add(6, 0, &policy3)) > 0);
// TEST Delete By Session ID
EXPECT_TRUE(health_check_session_del(session_id1, 1, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id1, 1, 0) == -1);
EXPECT_TRUE(health_check_session_del(session_id2, 2, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id3, 3, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id3, 3, 0) == -1);
EXPECT_TRUE(health_check_session_del(session_id5, 4, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id5, 5, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id6, 6, 0) == 0);
EXPECT_TRUE(health_check_session_del(session_id6, 6, 0) == -1);
}
#endif
int main(int argc, char **argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}