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
stellar-stellar-2022/src/packet_io/test/gtest_packet_io.cpp
2022-08-31 22:04:05 +08:00

281 lines
7.2 KiB
C++

#include <gtest/gtest.h>
#include "utils.h"
#include "packet.h"
#include "packet_io.h"
#include "packet_io_util.h"
TEST(PACKET_IO_Test, packet_io_instance_create_and_destroy) {
struct packet_io_instance *ppio_inst = packet_io_instance_create(nullptr, PACKET_IO_RUN_MODE_PCAP_FILE);
EXPECT_EQ(ppio_inst, nullptr);
ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_MAX);
EXPECT_EQ(ppio_inst, nullptr);
ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_FILE);
EXPECT_NE(ppio_inst, nullptr);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, packet_io_device_open_and_close) {
struct packet_io_device *pdev = packet_io_device_open(nullptr, nullptr, 1, 1);
EXPECT_EQ(pdev, nullptr);
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_LIVE);
EXPECT_NE(ppio_inst, nullptr);
pdev = packet_io_device_open(ppio_inst, nullptr, 1, 1);
EXPECT_EQ(pdev, nullptr);
pdev = packet_io_device_open(ppio_inst, "lo", 1, 1);
EXPECT_NE(pdev, nullptr);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, packet_io_device_rx) {
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_FILE);
struct packet_io_device *pdev = packet_io_device_open(ppio_inst, "./src/packet_io/test/test-64.pcapng", 1, 1);
EXPECT_NE(pdev, nullptr);
struct stellar_packet *rx_pkts[64];
ssize_t fetch_num = packet_io_device_rx(pdev, 0, rx_pkts, 1);
EXPECT_EQ(fetch_num, 1);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, packet_io_device_tx) {
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_LIVE);
struct packet_io_device *pdev = packet_io_device_open(ppio_inst, "lo", 1, 1);
EXPECT_NE(pdev, nullptr);
struct stellar_packet *rx_pkts[64];
ssize_t send_num = packet_io_device_tx(pdev, 0, rx_pkts, 1);
EXPECT_EQ(send_num, 0);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, packet_io_pkts_free) {
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_FILE);
struct packet_io_device *pdev = packet_io_device_open(ppio_inst, "./src/packet_io/test/test-64.pcapng", 1, 1);
EXPECT_NE(pdev, nullptr);
struct stellar_packet *rx_pkts[64];
ssize_t fetch_num = packet_io_device_rx(pdev, 0, rx_pkts, 1);
EXPECT_EQ(fetch_num, 1);
packet_io_pkts_free(pdev, 0, rx_pkts, 1);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, get_stellar_packet_ctrlzone) {
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_FILE);
struct packet_io_device *pdev = packet_io_device_open(ppio_inst, "./src/packet_io/test/test-64.pcapng", 1, 1);
EXPECT_NE(pdev, nullptr);
struct stellar_packet *rx_pkts[64];
ssize_t fetch_num = packet_io_device_rx(pdev, 0, rx_pkts, 1);
EXPECT_EQ(fetch_num, 1);
size_t ctrlzone_len = 0;
void *buff_ctrlzone = get_stellar_packet_ctrlzone(rx_pkts[0], &ctrlzone_len);
EXPECT_EQ(buff_ctrlzone, rx_pkts[0]);
packet_io_pkts_free(pdev, 0, rx_pkts, 1);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_Test, get_stellar_packet_data) {
struct packet_io_instance *ppio_inst = packet_io_instance_create("stellar", PACKET_IO_RUN_MODE_PCAP_FILE);
struct packet_io_device *pdev = packet_io_device_open(ppio_inst, "./src/packet_io/test/test-64.pcapng", 1, 1);
EXPECT_NE(pdev, nullptr);
struct stellar_packet *rx_pkts[64];
ssize_t fetch_num = packet_io_device_rx(pdev, 0, rx_pkts, 1);
EXPECT_EQ(fetch_num, 1);
size_t data_len = 0;
void *buff_ctrlzone = get_stellar_packet_data(rx_pkts[0], &data_len);
EXPECT_EQ(buff_ctrlzone, (uint8_t *)rx_pkts[0]+64);
packet_io_pkts_free(pdev, 0, rx_pkts, 1);
packet_io_device_close(pdev);
packet_io_fini(ppio_inst);
}
TEST(PACKET_IO_UTIL_Test, strncpy_safe) {
ssize_t res = strncpy_safe(nullptr, nullptr, 0);
EXPECT_EQ(res, -1);
char dst[5];
res = strncpy_safe(dst, "hello", sizeof(dst));
EXPECT_STREQ(dst, "hell");
EXPECT_EQ(res, 0);
memset(dst, 0, sizeof(dst));
res = strncpy_safe(dst, "he", sizeof(dst));
EXPECT_STREQ(dst, "he");
EXPECT_EQ(res, 0);
}
TEST(PACKET_IO_UTIL_Test, packet_copy_data) {
uint8_t dst[5];
uint8_t src[4] = {0x12, 0x34, 0x56, 0x78};
ssize_t res = packet_copy_data(dst, src, sizeof(src));
EXPECT_EQ(res, 0);
EXPECT_EQ(dst[0], 0x12);
EXPECT_EQ(dst[1], 0x34);
EXPECT_EQ(dst[2], 0x56);
EXPECT_EQ(dst[3], 0x78);
}
TEST(PACKET_IO_UTIL_Test, pio_packet_hash) {
struct pio_packet *p = (struct pio_packet *)malloc(MAX_SIZE_OF_PIO_PACKET);
memset(p, 0, MAX_SIZE_OF_PIO_PACKET);
uint64_t res = pio_packet_hash(p);
EXPECT_EQ(res, 0);
FREE(p);
}
TEST(PACKET_IO_UTIL_Test, pio_packet_queue_init) {
}
TEST(PACKET_IO_UTIL_Test, pio_packet_enqueue) {
}
TEST(PACKET_IO_UTIL_Test, pio_packet_dequeue) {
}
TEST(PACKET_IO_UTIL_Test, release_pio_packet_queue) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_instance_create) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_instance_destroy) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_open) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_close) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_receive) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_send) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_pkt_free) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_buff_ctrlzone) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_buff_mtod) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_buff_buflen) {
}
TEST(PACKET_IO_PIO_MARSIO_Test, pio_marsio_device_buff_datalen) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_instance_create) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_instance_destroy) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_open) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_close) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_receive) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_pkt_free) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_buff_ctrlzone) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_buff_mtod) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_buff_buflen) {
}
TEST(PACKET_IO_PIO_PCAP_FILE_Test, pio_pcap_file_device_buff_datalen) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_instance_create) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_instance_destroy) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_open) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_close) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_receive) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_send) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_pkt_free) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_buff_ctrlzone) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_buff_mtod) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_buff_buflen) {
}
TEST(PACKET_IO_PIO_PCAP_LIVE_Test, pio_pcap_live_device_buff_datalen) {
}
int main(int argc, char ** argv)
{
int ret=0;
::testing::InitGoogleTest(&argc, argv);
ret=RUN_ALL_TESTS();
return ret;
}