Skip to content

Commit

Permalink
memcheck
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Zink committed Oct 15, 2024
1 parent f5f6a02 commit 406a79a
Show file tree
Hide file tree
Showing 19 changed files with 112 additions and 1 deletion.
88 changes: 88 additions & 0 deletions .github/workflows/memcheck_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: "MiNiFi-CPP memcheck"
on: [push, pull_request, workflow_dispatch]
env:
CMAKE_FLAGS: >-
-DCMAKE_BUILD_TYPE=Debug
-DCI_BUILD=OFF
-DCUSTOM_MALLOC=OFF
-DDOCKER_BUILD_ONLY=OFF
-DDOCKER_PUSH=OFF
-DDOCKER_SKIP_TESTS=ON
-DENABLE_ALL=OFF
-DENABLE_AWS=OFF
-DENABLE_AZURE=OFF
-DENABLE_BUSTACHE=ON
-DENABLE_BZIP2=ON
-DENABLE_CIVET=ON
-DENABLE_CONTROLLER=ON
-DENABLE_ELASTICSEARCH=OFF
-DENABLE_ENCRYPT_CONFIG=ON
-DENABLE_EXPRESSION_LANGUAGE=ON
-DENABLE_GCP=OFF
-DENABLE_KUBERNETES=OFF
-DENABLE_LIBARCHIVE=ON
-DENABLE_LIBRDKAFKA=OFF
-DENABLE_LUA_SCRIPTING=OFF
-DENABLE_LZMA=ON
-DENABLE_MQTT=OFF
-DENABLE_OPC=OFF
-DENABLE_OPENCV=OFF
-DENABLE_OPS=ON
-DENABLE_PROCFS=OFF
-DENABLE_PROMETHEUS=ON
-DENABLE_PYTHON_SCRIPTING=OFF
-DENABLE_ROCKSDB=ON
-DENABLE_SFTP=ON
-DENABLE_SPLUNK=OFF
-DENABLE_SQL=OFF
-DENABLE_SYSTEMD=ON
-DENABLE_TEST_PROCESSORS=OFF
-DFORCE_COLORED_OUTPUT=ON
-DMINIFI_FAIL_ON_WARNINGS=ON
-DPORTABLE=ON
-DSKIP_TESTS=OFF
-DMINIFI_USE_REAL_ODBC_TEST_DRIVER=OFF
-DUSE_SHARED_LIBS=ON
SCCACHE_GHA_ENABLE: true
CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
jobs:
ubuntu_24_04:
name: "ubuntu-24.04"
runs-on: ubuntu-24.04
timeout-minutes: 120
steps:
- id: checkout
uses: actions/checkout@v4
- name: cache restore
uses: actions/cache/restore@v4
with:
path: ${{ env.CCACHE_DIR }}
key: memcheck-ccache-${{github.ref}}-${{github.sha}}
restore-keys: |
memcheck-ccache-${{github.ref}}-
memcheck-ccache-refs/heads/main-
- id: install_deps
run: |
sudo apt update
sudo apt install -y ccache libfl-dev python3 python3-venv
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null
- name: build
run: |
python3 -m venv venv && source venv/bin/activate \
&& pip install -r requirements.txt \
&& python main.py --noninteractive --minifi-options="${CMAKE_FLAGS}"
working-directory: bootstrap
- name: cache save
uses: actions/cache/save@v4
if: always()
with:
path: ${{ env.CCACHE_DIR }}
key: memcheck-ccache-${{github.ref}}-${{github.sha}}
- name: test
id: test
run: |
# Set core file size limit to unlimited
ulimit -c unlimited
ctest -j$(nproc) -L memchecked -T memcheck
working-directory: build
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,10 @@ include(CPack)
### include modules

if (NOT SKIP_TESTS)
enable_testing()
set(BUILD_TESTING ON)
set(CTEST_NEW_FORMAT true)
include(CTest)
include(BuildTests)

add_subdirectory("${TEST_DIR}/libtest")
Expand Down
1 change: 1 addition & 0 deletions extensions/aws/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ FOREACH(testfile ${AWS_INTEGRATION_TESTS})
target_link_libraries(${testfilename} minifi-expression-language-extensions)
MATH(EXPR AWS_TEST_COUNT "${AWS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "aws")
ENDFOREACH()
message("-- Finished building ${AWS_TEST_COUNT} AWS related test file(s)...")
1 change: 1 addition & 0 deletions extensions/azure/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ FOREACH(testfile ${AZURE_INTEGRATION_TESTS})
target_link_libraries(${testfilename} minifi-expression-language-extensions)
MATH(EXPR AZURE_TEST_COUNT "${AZURE_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "azure;memchecked")
ENDFOREACH()
message("-- Finished building ${AZURE_TEST_COUNT} Azure related test file(s)...")
1 change: 1 addition & 0 deletions extensions/bustache/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@ FOREACH(testfile ${BUSTACHE_INTEGRATION_TESTS})
target_link_libraries(${testfilename} Catch2WithMain)
MATH(EXPR BUSTACHE-EXTENSIONS_TEST_COUNT "${BUSTACHE-EXTENSIONS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "bustache;memchecked")
ENDFOREACH()
message("-- Finished building ${BUSTACHE-EXTENSIONS_TEST_COUNT} Bustache related test file(s)...")
1 change: 1 addition & 0 deletions extensions/civetweb/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,6 @@ FOREACH(testfile ${CIVETWEB_INTEGRATION_TESTS})
"${CMAKE_SOURCE_DIR}/extensions/civetweb/tests/resources"
"$<TARGET_FILE_DIR:${testfilename}>/resources"
)
set_tests_properties("${testfilename}" PROPERTIES LABELS "civetweb")
ENDFOREACH()
message("-- Finished building ${CIVETWEB-EXTENSIONS_TEST_COUNT} civetweb related test file(s)...")
1 change: 1 addition & 0 deletions extensions/elasticsearch/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,6 @@ FOREACH(testfile ${ELASTICSEARCH_TESTS})
target_link_libraries(${testfilename} minifi-standard-processors)
MATH(EXPR ELASTICSEARCH_TEST_COUNT "${ELASTICSEARCH_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "elasticsearch;memchecked")
ENDFOREACH()
message("-- Finished building ${ELASTICSEARCH_TEST_COUNT} Elasticsearch related test file(s)...")
2 changes: 2 additions & 0 deletions extensions/execute-process/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ add_minifi_executable(ExecuteProcessTests ExecuteProcessTests.cpp)
target_link_libraries(ExecuteProcessTests minifi-execute-process minifi-standard-processors Catch2WithMain)
target_include_directories(ExecuteProcessTests PRIVATE BEFORE "${CMAKE_SOURCE_DIR}/libminifi/test")
add_test(NAME ExecuteProcessTests COMMAND ExecuteProcessTests WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties(ExecuteProcessTests PROPERTIES LABELS "execute-process;memchecked")

createTests(ExecuteProcessTests)

add_dependencies(ExecuteProcessTests EchoParameters)
1 change: 1 addition & 0 deletions extensions/expression-language/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ FOREACH(testfile ${EXPRESSION_LANGUAGE_TESTS})

MATH(EXPR EXTENSIONS_TEST_COUNT "${EXTENSIONS_TEST_COUNT}+1")
add_test(NAME ${testfilename} COMMAND ${testfilename} WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "expression-language;memchecked")
ENDFOREACH()


Expand Down
1 change: 1 addition & 0 deletions extensions/grafana-loki/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,6 @@ FOREACH(testfile ${GRAFANA_LOKI_TESTS})
target_link_libraries(${testfilename} minifi-standard-processors)
MATH(EXPR GRAFANA_LOKI_TEST_COUNT "${GRAFANA_LOKI_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "grafana-loki;memchecked")
ENDFOREACH()
message("-- Finished building ${GRAFANA_LOKI_TEST_COUNT} Grafana Loki related test file(s)...")
1 change: 1 addition & 0 deletions extensions/kubernetes/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ FOREACH(TEST_FILE ${KUBERNETES_UNIT_TESTS})
createTests("${TEST_TARGET}")
add_test(NAME ${TEST_TARGET} COMMAND "${TEST_TARGET}" WORKING_DIRECTORY "${TEST_DIR}")
MATH(EXPR KUBERNETES_UNIT_TEST_COUNT "${KUBERNETES_UNIT_TEST_COUNT}+1")
set_tests_properties("${TEST_TARGET}" PROPERTIES LABELS "kubernetes;memchecked")
ENDFOREACH()
message("-- Finished building ${KUBERNETES_UNIT_TEST_COUNT} Kubernetes related test file(s)...")
1 change: 1 addition & 0 deletions extensions/librdkafka/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ FOREACH(testfile ${KAFKA_INTEGRATION_TESTS})
target_link_libraries(${testfilename} minifi-standard-processors)
MATH(EXPR EXTENSIONS_TEST_COUNT "${EXTENSIONS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "librdkafka;memchecked")
ENDFOREACH()
message("-- Finished building ${KAFKA-EXTENSIONS_TEST_COUNT} Lib Kafka related test file(s)...")
1 change: 1 addition & 0 deletions extensions/lua/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ FOREACH(testfile ${EXECUTESCRIPT_LUA_TESTS})
createTests("${testfilename}")
MATH(EXPR EXTENSIONS_TEST_COUNT "${EXTENSIONS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "lua;memchecked")
ENDFOREACH()

copyTestResources(${CMAKE_CURRENT_SOURCE_DIR}/test_lua_scripts/ ${CMAKE_BINARY_DIR}/bin/resources/test_lua_scripts/)
Expand Down
1 change: 1 addition & 0 deletions extensions/mqtt/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ FOREACH(testfile ${MQTT_TESTS})
target_link_libraries(${testfilename} minifi-mqtt-extensions)
target_link_libraries(${testfilename} minifi-standard-processors)
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "mqtt;memchecked")
ENDFOREACH()

list(LENGTH MQTT_TESTS TEST_COUNT)
Expand Down
1 change: 1 addition & 0 deletions extensions/opencv/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ FOREACH(testfile ${OPENCV_TESTS})
MATH(EXPR OPENCV_TEST_COUNT "${OPENCV_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
target_link_libraries(${testfilename} Catch2WithMain)
set_tests_properties("${testfilename}" PROPERTIES LABELS "opencv;memchecked")
ENDFOREACH()
message("-- Finished building ${OPENCV_TEST_COUNT} OpenCV related test file(s)...")
1 change: 1 addition & 0 deletions extensions/pdh/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@ FOREACH(testfile ${PDH_TESTS})
target_link_libraries(${testfilename} minifi-standard-processors)
MATH(EXPR PDH_TEST_COUNT "${PDH_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
set_tests_properties("${testfilename}" PROPERTIES LABELS "phd;memchecked")
ENDFOREACH()
message("-- Finished building ${PDH_TEST_COUNT} PDH related test file(s)...")
1 change: 1 addition & 0 deletions extensions/procfs/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ FOREACH(testfile ${PROCFS_TESTS})
target_link_libraries(${testfilename} minifi-standard-processors)
MATH(EXPR PROCFS_TEST_COUNT "${PROCFS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}")
set_tests_properties("${testfilename}" PROPERTIES LABELS "procfs;memchecked")
ENDFOREACH()
file(COPY "${CMAKE_SOURCE_DIR}/extensions/procfs/tests/mockprocfs_t0" DESTINATION "${CMAKE_BINARY_DIR}/bin/procfs-test/")
file(COPY "${CMAKE_SOURCE_DIR}/extensions/procfs/tests/mockprocfs_t1" DESTINATION "${CMAKE_BINARY_DIR}/bin/procfs-test/")
Expand Down
1 change: 1 addition & 0 deletions extensions/prometheus/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ FOREACH(testfile ${PROMETHEUS_TESTS})
target_link_libraries(${testfilename} minifi-prometheus)
MATH(EXPR PROMETHEUS_TEST_COUNT "${PROMETHEUS_TEST_COUNT}+1")
add_test(NAME "${testfilename}" COMMAND "${testfilename}")
set_tests_properties("${testfilename}" PROPERTIES LABELS "prometheus;memchecked")
ENDFOREACH()
message("-- Finished building ${PROMETHEUS_TEST_COUNT} Prometheus related test file(s)...")
4 changes: 3 additions & 1 deletion extensions/script/ExecuteScript.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ class ExecuteScript : public core::Processor {
void initialize() override;
void onSchedule(core::ProcessContext& context, core::ProcessSessionFactory& session_factory) override;
void onTrigger(core::ProcessContext& context, core::ProcessSession& session) override;

void notifyStop() override {
script_executor_.reset();
}
private:
std::shared_ptr<core::logging::Logger> logger_ = core::logging::LoggerFactory<ExecuteScript>::getLogger(uuid_);

Expand Down

0 comments on commit 406a79a

Please sign in to comment.