diff options
Diffstat (limited to 'test/CMakeLists.txt')
| -rw-r--r-- | test/CMakeLists.txt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..6b76516 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required (VERSION 2.8...3.10) +set(DECODER_NAME ftp_decoder) +set(TEST_RUN_DIR ${CMAKE_INSTALL_PREFIX}/sapp) +set(SAPP_DEVEL_DIR ${TEST_RUN_DIR}/lib) +set(TEST_MAIN plugin_test_main) + +set(TEST_JSON_DIR ${CMAKE_SOURCE_DIR}/test/test_result_json) +set(TEST_PCAP_DIR ${CMAKE_SOURCE_DIR}/test/ftp_pcap) + +add_library(${lib_name}_test_plug SHARED ${lib_name}_test_plug.cpp) +target_link_libraries(${lib_name}_test_plug MESA_prof_load cjson) +set_target_properties(${lib_name}_test_plug PROPERTIES PREFIX "") + +include_directories(${CMAKE_SOURCE_DIR}/include/) +include_directories(${CMAKE_SOURCE_DIR}/src/) + +file(GLOB DEP_SRC "${CMAKE_SOURCE_DIR}/src/*.cpp") + +add_executable(gtest_ftp_decoder gtest_ftp_decoder.cpp ${DEP_SRC}) +target_link_libraries(gtest_ftp_decoder gtest fieldstat4 MESA_handle_logger MESA_prof_load MESA_htable) + +#build test env +add_test(NAME FTP_COPY_SPEC COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/stellar_plugin/ && cp ${CMAKE_SOURCE_DIR}/bin/ftp_decoder.inf ${TEST_RUN_DIR}/stellar_plugin/spec.toml") +add_test(NAME FTP_COPY_CONF COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/conf/ftp_decoder && cp ${CMAKE_SOURCE_DIR}/bin/ftp.conf ${TEST_RUN_DIR}/conf/ftp_decoder/ftp.conf") +add_test(NAME COPY_PLUGIN_TEST_MAIN COMMAND sh -c "rpm -ql sapp | grep plugin_test_main | xargs -i cp -f {} ${TEST_RUN_DIR}/") +add_test(NAME UPDATE_SAPP_LOG_LEVEL COMMAND bash -c "sed -i 's/sapp_log.fatal/sapp_log.info/' ${TEST_RUN_DIR}/etc/sapp_log.conf") + +# copy plugin lib to be tested +add_test(NAME FTP_COPY_DECODER_SO COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/stellar_plugin/${DECODER_NAME} && cp ${CMAKE_BINARY_DIR}/src/${DECODER_NAME}.so ${TEST_RUN_DIR}/stellar_plugin/${DECODER_NAME}/${DECODER_NAME}.so") +add_test(NAME FTP_COPY_TEST_PLUG_SO COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/${DECODER_NAME}_test_plug.so ${TEST_RUN_DIR}/stellar_plugin/${DECODER_NAME}/${DECODER_NAME}_test_plug.so") + +set_tests_properties(FTP_COPY_SPEC FTP_COPY_CONF COPY_PLUGIN_TEST_MAIN UPDATE_SAPP_LOG_LEVEL + FTP_COPY_DECODER_SO FTP_COPY_TEST_PLUG_SO + PROPERTIES FIXTURES_SETUP TestFixture) + +# run tests +add_test(NAME FTP_TEST_V4_PORT COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/01-ftp-port-upload-download.json + -r ${TEST_PCAP_DIR}/01-ftp-port-upload-download.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_PORT_C2S COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/01-ftp-port-upload-download_C2S.json + -r ${TEST_PCAP_DIR}/01-ftp-port-upload-download_C2S.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_PORT_S2C COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/01-ftp-port-upload-download_S2C.json + -r ${TEST_PCAP_DIR}/01-ftp-port-upload-download_S2C.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_NO_BANNER COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/04-ftp-banner-no-ftp-characters.json + -r ${TEST_PCAP_DIR}/04-ftp-banner-no-ftp-characters.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_ONLY_CTRL COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/05-only-ctrl-link.json + -r ${TEST_PCAP_DIR}/05-only-ctrl-link.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_PASV COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/06-ftp_pasv-upload-download.json + -r ${TEST_PCAP_DIR}/06-ftp_pasv-upload-download.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_PASV_C2S COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/06-ftp_pasv-upload-download_C2S.json + -r ${TEST_PCAP_DIR}/06-ftp_pasv-upload-download_C2S.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V4_PASV_S2C COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/06-ftp_pasv-upload-download_S2C.json + -r ${TEST_PCAP_DIR}/06-ftp_pasv-upload-download_S2C.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) + +add_test(NAME FTP_TEST_V6_1 COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/02-ftp_v6_1.json + -r ${TEST_PCAP_DIR}/02-ftp_v6_1.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME FTP_TEST_V6_2 COMMAND ./${TEST_MAIN} ${TEST_JSON_DIR}/03-ipv6_eport_upload_download.json + -r ${TEST_PCAP_DIR}/03-ipv6_eport_upload_download.pcap WORKING_DIRECTORY ${TEST_RUN_DIR}) +set_tests_properties(FTP_TEST_V4_PORT + FTP_TEST_V4_PORT_C2S + FTP_TEST_V4_PORT_S2C + FTP_TEST_V4_NO_BANNER + FTP_TEST_V4_ONLY_CTRL + FTP_TEST_V4_PASV + FTP_TEST_V4_PASV_C2S + FTP_TEST_V4_PASV_S2C + FTP_TEST_V6_1 + FTP_TEST_V6_2 + PROPERTIES FIXTURES_REQUIRED TestFixture)
\ No newline at end of file |
