summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijia <[email protected]>2021-10-26 22:05:15 +0800
committerlijia <[email protected]>2021-10-26 22:05:15 +0800
commit5bcadbe07819f8ca5e460260b0588f3157df6bbc (patch)
tree3971e0afaab03cfb53d8e1d3ce0317fb48ae4d9a
parentdaef36bc337d8f99d2e8eaa8f48fdec2a92a8b66 (diff)
添加依赖库googletest.
-rw-r--r--.gitlab-ci.yml16
-rw-r--r--CMakeLists.txt20
-rw-r--r--src/CMakeLists.txt23
-rw-r--r--test/CMakeLists.txt16
-rw-r--r--test/gtest_jump_layer.cpp10
-rw-r--r--vendor/CMakeLists.txt21
-rw-r--r--vendor/googletest-release-1.10.0.tar.gzbin0 -> 904349 bytes
7 files changed, 85 insertions, 21 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d98f134..49fa02b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,6 +7,22 @@ variables:
stages:
- build
+- test
+
+
+google_test:
+ stage: test
+ script:
+ - yum makecache
+ - pwd
+ - ls -l /opt/MESA/lib
+ - echo "/opt/MESA/lib" >> /etc/ld.so.conf
+ - ldconfig
+ - cd /home/mesasoft/sapp_run
+ - ulimit -c 0
+ - ./gtest_jump_layer
+ tags:
+ - share
.build_by_travis:
before_script:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb84b10..bafb94d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,23 +34,11 @@ elseif(ASAN_OPTION MATCHES "THREAD")
endif()
# end of for ASAN
-include_directories(${PROJECT_SOURCE_DIR}/include/)
-
-file(GLOB SRC
- "src/*.c"
- "src/*.cpp"
-)
-
-# Shared Library Output
-add_library(${lib_name}_shared SHARED ${SRC})
-target_link_libraries(${lib_name}_shared m)
-if(DEFINED MESA_SHARED_INSTALL_DIR)
- set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name} LIBRARY_OUTPUT_DIRECTORY ${MESA_SHARED_INSTALL_DIR})
-else()
- set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name})
-endif()
+add_subdirectory(./vendor)
+add_subdirectory(./src)
+add_subdirectory(./test)
-install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARY)
+install(TARGETS ${lib_name} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARY)
install(FILES inc/MESA_jump_layer.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT HEADER)
include(Package)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..558a10a
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 2.8)
+
+set(MESA_SDK_PREFIX "/opt/MESA" CACHE STRING "MESA Framework Prefix")
+
+include_directories(${MESA_SDK_PREFIX}/include)
+include_directories(${MESA_SDK_PREFIX}/include/MESA)
+include_directories(${MESA_SDK_PREFIX}/include/MESA/include)
+include_directories(${MESA_SDK_PREFIX}/include/MESA/stream_inc)
+
+include_directories(${PROJECT_SOURCE_DIR}/include/)
+
+LINK_DIRECTORIES(/opt/MESA/lib)
+
+add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
+add_definitions(-DSAPP_V4=1)
+
+add_definitions(-fPIC)
+add_definitions(-std=c++11)
+
+add_library(${lib_name} SHARED MESA_jump_layer.cpp)
+target_link_libraries(${lib_name} m)
+
+
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 0000000..b7eb670
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 2.8)
+
+include_directories(${CMAKE_SOURCE_DIR}/inc)
+include_directories(${MESA_SDK_PREFIX}/include)
+include_directories(${MESA_SDK_PREFIX}/include/MESA)
+
+
+add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
+add_definitions(-fPIC -std=c++11)
+LINK_DIRECTORIES(/opt/MESA/lib)
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
+
+add_executable(gtest_jump_layer gtest_jump_layer.cpp)
+target_link_libraries(gtest_jump_layer pcap gtest-static MESA_jump_layer)
+
+
diff --git a/test/gtest_jump_layer.cpp b/test/gtest_jump_layer.cpp
index 9e4b7d1..e2dd1a1 100644
--- a/test/gtest_jump_layer.cpp
+++ b/test/gtest_jump_layer.cpp
@@ -56,11 +56,11 @@ static int jump_check_ipv4_pkt(const struct ip *ip4hdr, int expect_tot_len, unsi
return -1;
}
if(ip4hdr->ip_hl*4 < 20){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4 header check header length error!\033[0m\n");
+ printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4 header check header length error, iphdr less than 20Byte!\033[0m\n");
return -1;
}
if(ntohs(ip4hdr->ip_len) != expect_tot_len){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4 header check length error!\033[0m\n");
+ printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4 header check length error, ip len is:%d, but expect:%d!\033[0m\n", ntohs(ip4hdr->ip_len), expect_tot_len);
return -1;
}
@@ -205,7 +205,6 @@ static int jmp_file_md5_checksum(const char *filename, const char *expect_md5sum
static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr *hdr, const u_char *data)
{
int ret;
- int tot_pkt_len;
const void *eth_header, *ipv4_header, *tcp_header;
const void *next_header;
@@ -219,7 +218,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
}
const struct ip* ip4hdr = (struct ip*)ipv4_header;
- jump_check_ipv4_pkt(ip4hdr, tot_pkt_len-sizeof(struct ethhdr), IPPROTO_TCP, "192.168.10.250", "192.168.10.234");
+ jump_check_ipv4_pkt(ip4hdr, 60, IPPROTO_TCP, "192.168.10.250", "192.168.10.234");
tcp_header = MESA_net_jump_to_layer((void *)ipv4_header, ADDR_TYPE_IPV4, ADDR_TYPE_TCP);
if(NULL == tcp_header){
@@ -254,7 +253,8 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
TEST(jump_layer, eth_ipv4_tcp)
{
- int fun_ret, chk_res = -1;
+ int fun_ret;
+ u_char chk_res = -1;
fun_ret = jmp_file_md5_checksum("./sample_pcap/tcp_simple.pcap", "eb4b176720c698e86c1acbacf2f30ede");
ASSERT_EQ(fun_ret, 0);
diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt
new file mode 100644
index 0000000..25c905c
--- /dev/null
+++ b/vendor/CMakeLists.txt
@@ -0,0 +1,21 @@
+# CMakeFiles for 3rd vendor library
+
+include(ExternalProject)
+# libgtest
+ExternalProject_Add(libgtest PREFIX libgtest
+ URL ${CMAKE_SOURCE_DIR}/vendor/googletest-release-1.10.0.tar.gz
+ URL_MD5 ecd1fa65e7de707cd5c00bdac56022cd
+ #CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=RELWITHDEBINFO)
+ExternalProject_Get_Property(libgtest INSTALL_DIR)
+file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
+add_library(gtest-static STATIC IMPORTED GLOBAL)
+add_dependencies(gtest-static libgtest)
+set_property(TARGET gtest-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libgtest.a)
+set_property(TARGET gtest-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
+set_property(TARGET gtest-static PROPERTY INTERFACE_LINK_LIBRARIES pthread)
+
+
+
+
+
diff --git a/vendor/googletest-release-1.10.0.tar.gz b/vendor/googletest-release-1.10.0.tar.gz
new file mode 100644
index 0000000..ab10868
--- /dev/null
+++ b/vendor/googletest-release-1.10.0.tar.gz
Binary files differ