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_utils.cpp

138 lines
3.9 KiB
C++
Raw Normal View History

#include <gtest/gtest.h>
#include "utils.h"
TEST(UUID_ARRAY, FULL)
{
uuid_t uuid;
uuid_parse("00000000-0000-0000-0000-000000000001", uuid);
struct uuid_array array;
uuid_array_init(&array);
EXPECT_TRUE(uuid_array_is_full(&array) == 0);
for (int i = 0; i < MAX_RULE_NUM; i++)
{
uuid_array_append(&array, uuid);
if (i == MAX_RULE_NUM - 1)
{
EXPECT_TRUE(uuid_array_is_full(&array) == 1);
}
else
{
EXPECT_TRUE(uuid_array_is_full(&array) == 0);
}
}
EXPECT_TRUE(uuid_array_is_full(&array) == 1);
}
TEST(UUID_ARRAY, COUNT)
{
uuid_t uuid;
uuid_parse("00000000-0000-0000-0000-000000000001", uuid);
struct uuid_array array;
uuid_array_init(&array);
EXPECT_TRUE(uuid_array_get_count(&array) == 0);
for (int i = 0; i < MAX_RULE_NUM; i++)
{
uuid_array_append(&array, uuid);
EXPECT_TRUE(uuid_array_get_count(&array) == i + 1);
}
EXPECT_TRUE(uuid_array_get_count(&array) == MAX_RULE_NUM);
}
TEST(UUID_ARRAY, CONTAINS)
{
uuid_t uuid1;
uuid_t uuid2;
uuid_t uuid3;
uuid_t uuid4;
uuid_parse("00000000-0000-0000-0000-000000000001", uuid1);
uuid_parse("00000000-0000-0000-0000-000000000002", uuid2);
uuid_parse("00000000-0000-0000-0000-000000000003", uuid3);
uuid_parse("00000000-0000-0000-0000-000000000004", uuid4);
struct uuid_array array;
uuid_array_init(&array);
EXPECT_TRUE(uuid_array_contains(&array, uuid1) == 0);
EXPECT_TRUE(uuid_array_contains(&array, uuid2) == 0);
EXPECT_TRUE(uuid_array_contains(&array, uuid3) == 0);
EXPECT_TRUE(uuid_array_contains(&array, uuid4) == 0);
uuid_array_append(&array, uuid1);
uuid_array_append(&array, uuid2);
uuid_array_append(&array, uuid3);
EXPECT_TRUE(uuid_array_contains(&array, uuid1) == 1);
EXPECT_TRUE(uuid_array_contains(&array, uuid2) == 1);
EXPECT_TRUE(uuid_array_contains(&array, uuid3) == 1);
EXPECT_TRUE(uuid_array_contains(&array, uuid4) == 0);
}
TEST(UUID_ARRAY, REMOVE)
{
uuid_t uuid1;
uuid_t uuid2;
uuid_t uuid3;
uuid_parse("00000000-0000-0000-0000-000000000001", uuid1);
uuid_parse("00000000-0000-0000-0000-000000000002", uuid2);
uuid_parse("00000000-0000-0000-0000-000000000003", uuid3);
struct uuid_array array;
uuid_array_init(&array);
uuid_array_append(&array, uuid1);
uuid_array_append(&array, uuid2);
uuid_array_append(&array, uuid3);
uuid_array_append(&array, uuid1);
uuid_array_append(&array, uuid2);
EXPECT_TRUE(uuid_array_get_count(&array) == 5);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 0), uuid1) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 1), uuid2) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 2), uuid3) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 3), uuid1) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 4), uuid2) == 0);
uuid_array_remove(&array, uuid3); // 1,2,1,2
EXPECT_TRUE(uuid_array_get_count(&array) == 4);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 0), uuid1) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 1), uuid2) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 2), uuid1) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 3), uuid2) == 0);
uuid_array_remove(&array, uuid2); // 1,1
EXPECT_TRUE(uuid_array_get_count(&array) == 2);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 0), uuid1) == 0);
EXPECT_TRUE(uuid_compare(*uuid_array_get_at(&array, 1), uuid1) == 0);
uuid_array_remove(&array, uuid1);
EXPECT_TRUE(uuid_array_get_count(&array) == 0);
}
TEST(UTILS, DEVICE)
{
const char *dev_name = "lo";
char ip_buff[16] = {0};
char mac_buff[32] = {0};
EXPECT_TRUE(get_ip_by_device_name(dev_name, ip_buff) == 0);
EXPECT_TRUE(get_mac_by_device_name(dev_name, mac_buff) == 0);
printf("Dev : %s, IP : %s\n", dev_name, ip_buff);
printf("Dev : %s, MAC : %s\n", dev_name, mac_buff);
EXPECT_STREQ(ip_buff, "127.0.0.1");
EXPECT_STREQ(mac_buff, "00:00:00:00:00:00");
}
int main(int argc, char **argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}