diff options
| -rwxr-xr-x | CMakeLists.txt | 5 | ||||
| -rw-r--r-- | ctest/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | test/fieldstat_test.cpp | 2 | ||||
| -rw-r--r-- | test/src/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | test/src/gtest_fieldstat.cpp | 54 | ||||
| -rw-r--r-- | vendor/CMakeLists.txt | 20 | ||||
| -rw-r--r-- | vendor/googletest-release-1.10.0.tar.gz | bin | 0 -> 904349 bytes |
7 files changed, 103 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a48d527..78df60d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,11 @@ file(GLOB SRC "src/*.cpp" ) +add_subdirectory(vendor) +add_subdirectory(test/src) +enable_testing() +add_subdirectory(./ctest) + # Shared Library Output add_library(${lib_name}_shared SHARED ${SRC}) set_target_properties(${lib_name}_shared PROPERTIES LINK_FLAGS diff --git a/ctest/CMakeLists.txt b/ctest/CMakeLists.txt new file mode 100644 index 0000000..f755124 --- /dev/null +++ b/ctest/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required (VERSION 2.8) + +project(fieldstat_ctest) + +add_test(NAME COPY_CREATE_DIR COMMAND sh -c "mkdir -p ${CMAKE_BINARY_DIR}/testing/ ") + +add_test(NAME COPY_GTEST_BINARY COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/src/gtest_fieldstat ${CMAKE_BINARY_DIR}/testing/") + +set(GTEST_RUN_DIR ${CMAKE_BINARY_DIR}/testing) +#add_test(NAME GTEST_RULE COMMAND gtest_rule WORKING_DIRECTORY ${GTEST_RUN_DIR}) +add_test(NAME GTEST_FIELDSTAT COMMAND gtest_fieldstat WORKING_DIRECTORY ${GTEST_RUN_DIR}) + diff --git a/test/fieldstat_test.cpp b/test/fieldstat_test.cpp index 4765298..eefc224 100644 --- a/test/fieldstat_test.cpp +++ b/test/fieldstat_test.cpp @@ -282,7 +282,7 @@ int main(int argc, char *argv[]) { int ret = 0; - struct fieldstat_instance *test_instance = fieldstat_instance_create("test");; + struct fieldstat_instance *test_instance = fieldstat_instance_create("test"); if(test_instance == NULL) { diff --git a/test/src/CMakeLists.txt b/test/src/CMakeLists.txt new file mode 100644 index 0000000..fae7312 --- /dev/null +++ b/test/src/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 2.8) + +include_directories(${PROJECT_SOURCE_DIR}/inc/) +include_directories(${PROJECT_SOURCE_DIR}/src/) + + +#add_executable(gtest_rule ${PROJECT_SOURCE_DIR}/src/tsg_rule.cpp ${PROJECT_SOURCE_DIR}/src/tsg_bridge.cpp ${PROJECT_SOURCE_DIR}/src/tsg_leaky_bucket.cpp gtest_common.cpp gtest_rule.cpp) +#target_link_libraries(gtest_rule gtest-static ctemplate-static cjson MESA_prof_load MESA_handle_logger MESA_jump_layer MESA_field_stat2 maatframe) + +add_executable(gtest_fieldstat ${SRC} gtest_fieldstat.cpp) +target_link_libraries(gtest_fieldstat gtest-static) diff --git a/test/src/gtest_fieldstat.cpp b/test/src/gtest_fieldstat.cpp new file mode 100644 index 0000000..9850d7f --- /dev/null +++ b/test/src/gtest_fieldstat.cpp @@ -0,0 +1,54 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <gtest/gtest.h> +#include "fieldstat.h" +#include "fieldstat_internal.h" + +extern struct prometheus_endpoint_instance g_prometheus_endpoint_instance; + +TEST(FeildStatAPI, CreateFieldStatInstance) +{ + struct fieldstat_instance *instance = fieldstat_instance_create("test"); + EXPECT_NE(nullptr, instance); + EXPECT_STREQ("test", instance->name); +} + +TEST(FeildStatAPI, FieldStatEnablePrometheusEndpoint) +{ + int ret_enable_prometheus_endpoint = 0; + int ret_req_prometheus_endpoint = 0; + + ret_enable_prometheus_endpoint = fieldstat_global_enable_prometheus_endpoint(9020, "/metrcis"); + EXPECT_EQ(0, ret_enable_prometheus_endpoint); + + ret_req_prometheus_endpoint = system("curl http://127.0.0.1:9020/metrics"); + EXPECT_EQ(0,ret_req_prometheus_endpoint); +} + +TEST(FeildStatAPI, FieldStatSetPrometheusOutput) +{ + struct fieldstat_instance *instance = NULL; + int ret_enable_prometheus_endpoint = 0; + int ret_set_prometheus_output = 0; + + instance = fieldstat_instance_create("test"); + EXPECT_STREQ("test", instance->name); + + ret_enable_prometheus_endpoint = fieldstat_global_enable_prometheus_endpoint(9020, "/metrcis"); + EXPECT_EQ(0, ret_enable_prometheus_endpoint); + + ret_set_prometheus_output = fieldstat_set_prometheus_output(instance); + EXPECT_EQ(0, ret_set_prometheus_output); + + EXPECT_EQ(1, g_prometheus_endpoint_instance.running); + EXPECT_EQ(instance, g_prometheus_endpoint_instance.fs_instance[0]); + EXPECT_EQ(1, g_prometheus_endpoint_instance.fs_instance_cnt); +} + +int main(int argc, char *argv[]) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); + return 0; +}
\ No newline at end of file diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt new file mode 100644 index 0000000..b754ac3 --- /dev/null +++ b/vendor/CMakeLists.txt @@ -0,0 +1,20 @@ +# 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}) +ExternalProject_Get_Property(libgtest INSTALL_DIR) +file(MAKE_DIRECTORY ${INSTALL_DIR}/include) +add_library(gtest-static STATIC IMPORTED GLOBAL) +add_dependencies(gtest-static libgtest) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set_property(TARGET gtest-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libgtestd.a) +else() + set_property(TARGET gtest-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libgtest.a) +endif() +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 Binary files differnew file mode 100644 index 0000000..ab10868 --- /dev/null +++ b/vendor/googletest-release-1.10.0.tar.gz |
