This is an automated email from the ASF dual-hosted git repository.

szaszm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git

commit 357cc6e8ab3f39295ed92614d2818dc4870197c1
Author: Martin Zink <[email protected]>
AuthorDate: Wed Mar 12 22:13:06 2025 +0100

    MINIFICPP-2522 Various CI improvements
    
    Closes #1936
    
    Signed-off-by: Marton Szasz <[email protected]>
---
 .github/workflows/ci.yml                           | 130 +++------------------
 .github/workflows/verify-package.yml               |  46 ++------
 cmake/DockerConfig.cmake                           |   3 +-
 cmake/VerifyPackageWithDocker.cmake                |   2 +-
 cmake/VerifyPythonCompatibility.cmake              |  72 ------------
 docker/test/integration/features/couchbase.feature |   8 ++
 .../features/python_with_modules.feature           |  30 -----
 .../modbus/ReadModbusFunctions.cpp                 |   1 +
 .../modbus/ReadModbusFunctions.h                   |   4 +-
 .../tests/ConsumeWindowsEventLogTests.cpp          |   2 +-
 10 files changed, 38 insertions(+), 260 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c6b3d97c3..ad0938ed2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -8,8 +8,8 @@ env:
   CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
 jobs:
   macos_xcode:
-    name: "macos-xcode"
-    runs-on: macos-14
+    name: "macOS 15 aarch64"
+    runs-on: macos-15
     timeout-minutes: 180
     env:
       MACOS_MINIFI_OPTIONS: >-
@@ -92,7 +92,7 @@ jobs:
         run: |
           # Set core file size limit to unlimited
           ulimit -c unlimited
-          ctest -j4 --output-on-failure --timeout 300
+          ctest --timeout 300 -j4 --output-on-failure --timeout 300
         working-directory: build
       - name: linter
         run: ninja linter
@@ -112,8 +112,8 @@ jobs:
           name: macos-binaries
           path: build/bin
   windows_VS2022:
-    name: "windows-2022"
-    runs-on: windows-2022
+    name: "Windows Server 2025 x86_64"
+    runs-on: windows-2025
     timeout-minutes: 240
     env:
       WINDOWS_MINIFI_OPTIONS: >-
@@ -228,107 +228,9 @@ jobs:
         with:
           name: cpack_error
           path: 
D:/a/nifi-minifi-cpp/nifi-minifi-cpp/build/_CPack_Packages/win64/WIX/wix.log
-  ubuntu_24_04:
-    name: "ubuntu-24.04"
-    runs-on: ubuntu-24.04
-    timeout-minutes: 120
-    env:
-      UBUNTU_GCC_MINIFI_OPTIONS: >-
-        -DCMAKE_BUILD_TYPE=Release
-        -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_COUCHBASE=OFF
-        -DENABLE_ELASTICSEARCH=OFF
-        -DENABLE_ENCRYPT_CONFIG=ON
-        -DENABLE_EXPRESSION_LANGUAGE=ON
-        -DENABLE_GCP=OFF
-        -DENABLE_KUBERNETES=OFF
-        -DENABLE_LIBARCHIVE=ON
-        -DENABLE_KAFKA=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
-    steps:
-      - id: checkout
-        uses: actions/checkout@v4
-      - name: cache restore
-        uses: actions/cache/restore@v4
-        with:
-          path: ${{ env.CCACHE_DIR }}
-          key: ubuntu-24.04-ccache-${{github.ref}}-${{github.sha}}
-          restore-keys: |
-            ubuntu-24.04-ccache-${{github.ref}}-
-            ubuntu-24.04-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="${UBUNTU_GCC_MINIFI_OPTIONS}" 
--cmake-options="-DSTRICT_GSL_CHECKS=AUDIT"
-        working-directory: bootstrap
-      - name: cache save
-        uses: actions/cache/save@v4
-        if: always()
-        with:
-          path: ${{ env.CCACHE_DIR }}
-          key: ubuntu-24.04-ccache-${{github.ref}}-${{github.sha}}
-      - name: test
-        id: test
-        run: |
-          # Set core file size limit to unlimited
-          ulimit -c unlimited
-          ctest -j$(nproc) --output-on-failure
-        working-directory: build
-      - name: check-cores
-        if: ${{ failure() && steps.test.conclusion == 'failure' }}
-        run: |
-          if [ "$(ls -A /var/lib/apport/coredump/)" ]; then echo 
"CORES_EXIST=true" >> $GITHUB_ENV; fi
-      - uses: actions/upload-artifact@v4
-        if: ${{ failure() && env.CORES_EXIST == 'true' }}
-        with:
-          name: ubuntu-coredumps
-          path: /var/lib/apport/coredump/
-      - uses: actions/upload-artifact@v4
-        if: ${{ failure() && env.CORES_EXIST == 'true' }}
-        with:
-          name: ubuntu-binaries
-          path: build/bin
-  ubuntu_22_04_clang:
-    name: "ubuntu-22.04-clang"
-    runs-on: ubuntu-22.04
+  ubuntu_22_04_clang_arm:
+    name: "Ubuntu 22.04 clang aarch64"
+    runs-on: ubuntu-22.04-arm
     timeout-minutes: 240
     env:
       UBUNTU_CLANG_MINIFI_OPTIONS: >-
@@ -383,10 +285,10 @@ jobs:
         uses: actions/cache/restore@v4
         with:
           path: ${{ env.CCACHE_DIR }}
-          key: ubuntu-22.04-all-clang-ccache-${{github.ref}}-${{github.sha}}
+          key: 
ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-${{github.sha}}
           restore-keys: |
-            ubuntu-22.04-all-clang-ccache-${{github.ref}}-
-            ubuntu-22.04-all-clang-ccache-refs/heads/main-
+            ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-
+            ubuntu-22.04-arm-all-clang-ccache-refs/heads/main-
       - id: install_deps
         run: |
           wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key 
add -
@@ -423,13 +325,13 @@ jobs:
         if: always()
         with:
           path: ${{ env.CCACHE_DIR }}
-          key: ubuntu-22.04-all-clang-ccache-${{github.ref}}-${{github.sha}}
+          key: 
ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-${{github.sha}}
       - name: test
         id: test
         run: |
           # Set core file size limit to unlimited
           ulimit -c unlimited
-          ctest -j$(nproc) --output-on-failure
+          ctest --timeout 300 -j$(nproc) --output-on-failure
         working-directory: build
       - name: linter
         run: cmake --build . --target linter
@@ -474,7 +376,7 @@ jobs:
           name: ubuntu-clang-binaries
           path: build/bin
   rocky:
-    name: "rocky"
+    name: "Rocky (docker) x86_64"
     runs-on: ubuntu-24.04
     timeout-minutes: 180
     steps:
@@ -543,7 +445,7 @@ jobs:
           name: rocky-binaries
           path: /tmp/bin
   docker_build:
-    name: "Docker build for integration tests"
+    name: "Docker build for integration tests (x86_64)"
     runs-on: ubuntu-22.04
     timeout-minutes: 180
     steps:
@@ -587,7 +489,7 @@ jobs:
           name: minifi_docker
           path: build/minifi_docker.tar
   docker_tests:
-    name: "Docker integration tests"
+    name: "Docker integration tests (x86_64)"
     needs: docker_build
     runs-on: ubuntu-24.04
     timeout-minutes: 180
diff --git a/.github/workflows/verify-package.yml 
b/.github/workflows/verify-package.yml
index b5a788324..99df50230 100644
--- a/.github/workflows/verify-package.yml
+++ b/.github/workflows/verify-package.yml
@@ -1,10 +1,12 @@
 name: "MiNiFi-CPP Verify Package"
-on: [workflow_dispatch]
+on:
+  schedule:
+    - cron: '0 0 * * 0'
+  workflow_dispatch:
 env:
   DOCKER_CMAKE_FLAGS: -DDOCKER_VERIFY_THREAD=3 -DUSE_SHARED_LIBS= 
-DSTRICT_GSL_CHECKS=AUDIT -DCI_BUILD=ON -DENABLE_AWS=ON -DENABLE_KAFKA=ON 
-DENABLE_MQTT=ON -DENABLE_AZURE=ON -DENABLE_SQL=ON \
     -DENABLE_SPLUNK=ON -DENABLE_GCP=ON -DENABLE_OPC=ON 
-DENABLE_PYTHON_SCRIPTING=ON -DENABLE_LUA_SCRIPTING=ON -DENABLE_KUBERNETES=ON 
-DENABLE_TEST_PROCESSORS=ON -DENABLE_PROMETHEUS=ON \
     -DENABLE_ELASTICSEARCH=OFF -DENABLE_GRAFANA_LOKI=ON -DENABLE_COUCHBASE=ON 
-DDOCKER_BUILD_ONLY=ON
-  CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
 jobs:
   rocky-x86-64-build:
     name: "Build package (Rocky 8 x86_64)"
@@ -13,29 +15,13 @@ jobs:
     steps:
       - id: checkout
         uses: actions/checkout@v4
-      - name: cache restore
-        uses: actions/cache/restore@v4
-        with:
-          path: ~/.ccache
-          key: verify-package-ccache-${{github.ref}}-${{github.sha}}
-          restore-keys: |
-            verify-package-ccache-${{github.ref}}-
-            verify-package-ccache-refs/heads/main-
       - id: install_deps
         run: |
           sudo apt update
-          sudo apt install -y ccache cmake
-          echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
+          sudo apt install -y cmake
       - id: build
         run: |
-          if [ -d ~/.ccache ]; then mv ~/.ccache .; fi
-          mkdir build && cd build && cmake ${DOCKER_CMAKE_FLAGS} 
-DDOCKER_CCACHE_DUMP_LOCATION=${{ env.CCACHE_DIR }} .. && make rocky
-      - name: cache save
-        uses: actions/cache/save@v4
-        if: always()
-        with:
-          path: ${{ env.CCACHE_DIR }}
-          key: verify-package-ccache-${{github.ref}}-${{github.sha}}
+          mkdir build && cd build && cmake ${DOCKER_CMAKE_FLAGS} .. && make 
rocky
       - uses: actions/upload-artifact@v4
         with:
           name: minifi-x86-64-tar
@@ -49,29 +35,13 @@ jobs:
     steps:
       - id: checkout
         uses: actions/checkout@v4
-      - name: cache restore
-        uses: actions/cache/restore@v4
-        with:
-          path: ~/.ccache
-          key: verify-package-arm-ccache-${{github.ref}}-${{github.sha}}
-          restore-keys: |
-            verify-package-arm-ccache-${{github.ref}}-
-            verify-package-arm-ccache-refs/heads/main-
       - id: install_deps
         run: |
           sudo apt update
-          sudo apt install -y ccache cmake
-          echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
+          sudo apt install -y cmake
       - id: build
         run: |
-          if [ -d ~/.ccache ]; then mv ~/.ccache .; fi
-          mkdir build && cd build && cmake ${DOCKER_CMAKE_FLAGS} 
-DDOCKER_CCACHE_DUMP_LOCATION=${{ env.CCACHE_DIR }} .. && make rocky
-      - name: cache save
-        uses: actions/cache/save@v4
-        if: always()
-        with:
-          path: ${{ env.CCACHE_DIR }}
-          key: verify-package-arm-ccache-${{github.ref}}-${{github.sha}}
+          mkdir build && cd build && cmake ${DOCKER_CMAKE_FLAGS} .. && make 
rocky
       - uses: actions/upload-artifact@v4
         with:
           name: minifi-aarch64-tar
diff --git a/cmake/DockerConfig.cmake b/cmake/DockerConfig.cmake
index 956d0c097..d1d88d65e 100644
--- a/cmake/DockerConfig.cmake
+++ b/cmake/DockerConfig.cmake
@@ -152,7 +152,7 @@ if (EXISTS 
${CMAKE_SOURCE_DIR}/docker/test/integration/features)
         endif()
     endforeach()
 
-    set(DISABLED_TAGS "SKIP_CI,NEEDS_NUMPY")
+    set(DISABLED_TAGS "SKIP_CI")
 
     add_custom_target(
         docker-verify
@@ -172,5 +172,4 @@ function(CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE BASE_IMAGE 
TAG_PREFIX INSTALL_P
             ${CMAKE_BINARY_DIR})
 endfunction()
 
-include(VerifyPythonCompatibility)
 include(VerifyPackageWithDocker)
diff --git a/cmake/VerifyPackageWithDocker.cmake 
b/cmake/VerifyPackageWithDocker.cmake
index af201791a..0a76710f8 100644
--- a/cmake/VerifyPackageWithDocker.cmake
+++ b/cmake/VerifyPackageWithDocker.cmake
@@ -28,7 +28,7 @@ function(ADD_PACKAGE_VERIFY TAG_PREFIX)
         endif()
     endforeach()
 
-    set(DISABLED_TAGS "SKIP_CI,NEEDS_NUMPY")
+    set(DISABLED_TAGS "SKIP_CI")
 
     add_custom_target(
             docker-verify-${TAG_PREFIX}
diff --git a/cmake/VerifyPythonCompatibility.cmake 
b/cmake/VerifyPythonCompatibility.cmake
deleted file mode 100644
index a8b11f5b0..000000000
--- a/cmake/VerifyPythonCompatibility.cmake
+++ /dev/null
@@ -1,72 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-if (NOT (ENABLE_ALL OR ENABLE_PYTHON_SCRIPTING))
-    return()
-endif()
-
-set(MINIFI_VERSION_STR 
${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
-
-function(ADD_DOCKER_VERIFY_PYTHON TAG_PREFIX HAS_MODULES)
-    if (HAS_MODULES)
-        add_custom_target(
-                docker-verify-${TAG_PREFIX}
-                COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerVerify.sh 
--image-tag-prefix ${TAG_PREFIX} ${MINIFI_VERSION_STR} ENABLE_PYTHON_SCRIPTING)
-    else()
-        add_custom_target(
-                docker-verify-${TAG_PREFIX}
-                COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerVerify.sh 
--image-tag-prefix ${TAG_PREFIX} ${MINIFI_VERSION_STR} ENABLE_PYTHON_SCRIPTING 
--tags_to_exclude NEEDS_NUMPY)
-    endif()
-endfunction()
-
-function(ADD_CONDA_TO_DOCKER TAG_PREFIX)
-    add_custom_target(
-            conda_${TAG_PREFIX}_from_rocky_package
-            COMMAND DOCKER_BUILDKIT=1 docker build
-            --build-arg 
BASE_IMAGE=apacheminificpp:${TAG_PREFIX}-${MINIFI_VERSION_STR}
-            -t apacheminificpp:conda_${TAG_PREFIX}-${MINIFI_VERSION_STR}
-            -f ${CMAKE_SOURCE_DIR}/docker/python-verify/conda.Dockerfile
-            ${CMAKE_BINARY_DIR})
-endfunction()
-
-function(ADD_VENV_TO_DOCKER TAG_PREFIX)
-    add_custom_target(
-            venv_${TAG_PREFIX}_from_rocky_package
-            COMMAND DOCKER_BUILDKIT=1 docker build
-            --build-arg 
BASE_IMAGE=apacheminificpp:${TAG_PREFIX}-${MINIFI_VERSION_STR}
-            -t apacheminificpp:venv_${TAG_PREFIX}-${MINIFI_VERSION_STR}
-            -f ${CMAKE_SOURCE_DIR}/docker/python-verify/venv.Dockerfile
-            ${CMAKE_BINARY_DIR})
-endfunction()
-
-
-CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE(debian:bullseye patched_bullseye_py 
"apt update \\&\\& apt install -y patchelf libpython3-dev python3-venv 
python3-pip wget \\&\\& patchelf 
/opt/minifi/minifi-current/extensions/libminifi-python-script-extension.so 
--replace-needed libpython3.so libpython3.9.so")
-CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE(ubuntu:jammy patched_jammy_py "apt 
update \\&\\& apt install -y patchelf libpython3.10-dev python3.10-venv 
python3-pip wget \\&\\& patchelf 
/opt/minifi/minifi-current/extensions/libminifi-python-script-extension.so 
--replace-needed libpython3.so libpython3.10.so.1.0")
-CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE(rockylinux:8 rocky8_py "yum install -y 
python3-libs python3-pip python3-devel gcc-c++ wget")
-CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE(rockylinux:9 rocky9_py "yum install -y 
python3-libs python3-pip wget")
-CREATE_DOCKER_TARGET_FROM_ROCKY_PACKAGE(ubuntu:jammy jammy_py "apt update 
\\&\\& apt install -y wget")
-ADD_CONDA_TO_DOCKER(jammy_py)
-ADD_VENV_TO_DOCKER(rocky9_py)
-
-if (EXISTS ${CMAKE_SOURCE_DIR}/docker/test/integration/features)
-    ADD_DOCKER_VERIFY_PYTHON(rocky8_py FALSE)
-    ADD_DOCKER_VERIFY_PYTHON(rocky9_py FALSE)
-    ADD_DOCKER_VERIFY_PYTHON(patched_jammy_py FALSE)
-    ADD_DOCKER_VERIFY_PYTHON(patched_bullseye_py FALSE)
-    ADD_DOCKER_VERIFY_PYTHON(conda_jammy_py TRUE)
-    ADD_DOCKER_VERIFY_PYTHON(venv_rocky9_py TRUE)
-endif()
diff --git a/docker/test/integration/features/couchbase.feature 
b/docker/test/integration/features/couchbase.feature
index 7b74a6c3d..90cb0df0d 100644
--- a/docker/test/integration/features/couchbase.feature
+++ b/docker/test/integration/features/couchbase.feature
@@ -29,6 +29,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the LogAttribute
 
     When a Couchbase server is started
@@ -53,6 +54,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the LogAttribute
 
     When a Couchbase server is started
@@ -80,6 +82,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
     And the "success" relationship of the GetCouchbaseKey processor is 
connected to the PutFile
     And the "success" relationship of the PutFile processor is connected to 
the LogAttribute
@@ -109,6 +112,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
     And the "success" relationship of the GetCouchbaseKey processor is 
connected to the PutFile
     And the "success" relationship of the PutFile processor is connected to 
the LogAttribute
@@ -139,6 +143,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
     And the "success" relationship of the GetCouchbaseKey processor is 
connected to the PutFile
     And the "success" relationship of the PutFile processor is connected to 
the LogAttribute
@@ -167,6 +172,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up with the name 
"CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
 
     When a Couchbase server is started
@@ -190,6 +196,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is set up up with SSL connection with the 
name "CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
     And the "success" relationship of the GetCouchbaseKey processor is 
connected to the PutFile
     And the "success" relationship of the PutFile processor is connected to 
the LogAttribute
@@ -218,6 +225,7 @@ Feature: Executing Couchbase operations from MiNiFi-C++
     And a CouchbaseClusterService is setup up using mTLS authentication with 
the name "CouchbaseClusterService"
 
     And the "success" relationship of the GetFile processor is connected to 
the PutCouchbaseKey
+    And the "failure" relationship of the PutCouchbaseKey processor is 
connected to the PutCouchbaseKey
     And the "success" relationship of the PutCouchbaseKey processor is 
connected to the GetCouchbaseKey
     And the "success" relationship of the GetCouchbaseKey processor is 
connected to the PutFile
     And the "success" relationship of the PutFile processor is connected to 
the LogAttribute
diff --git a/docker/test/integration/features/python_with_modules.feature 
b/docker/test/integration/features/python_with_modules.feature
deleted file mode 100644
index 85272a7aa..000000000
--- a/docker/test/integration/features/python_with_modules.feature
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@ENABLE_PYTHON_SCRIPTING
-@NEEDS_NUMPY
-Feature: MiNiFi can use python modules
-  Background:
-    Given the content of "/tmp/output" is monitored
-
-  Scenario: MiNiFi can use python modules
-    Given the example MiNiFi python processors are present
-    And a GaussianDistributionWithNumpy processor
-    And the scheduling period of the GaussianDistributionWithNumpy processor 
is set to "10 min"
-    And a PutFile processor with the "Directory" property set to "/tmp/output"
-    And the "success" relationship of the GaussianDistributionWithNumpy 
processor is connected to the PutFile
-
-    When the MiNiFi instance starts up
-    Then 1 flowfile is placed in the monitored directory in 20 seconds
diff --git a/extensions/standard-processors/modbus/ReadModbusFunctions.cpp 
b/extensions/standard-processors/modbus/ReadModbusFunctions.cpp
index 0eaf49e47..6ade0dcf3 100644
--- a/extensions/standard-processors/modbus/ReadModbusFunctions.cpp
+++ b/extensions/standard-processors/modbus/ReadModbusFunctions.cpp
@@ -21,6 +21,7 @@
 #include <range/v3/view/drop.hpp>
 
 namespace org::apache::nifi::minifi::modbus {
+
 std::vector<std::byte> ReadModbusFunction::requestBytes() const {
   constexpr std::array modbus_service_protocol_identifier = {std::byte{0}, 
std::byte{0}};
   const auto pdu = rawPdu();
diff --git a/extensions/standard-processors/modbus/ReadModbusFunctions.h 
b/extensions/standard-processors/modbus/ReadModbusFunctions.h
index 8433c7352..cf6be3061 100644
--- a/extensions/standard-processors/modbus/ReadModbusFunctions.h
+++ b/extensions/standard-processors/modbus/ReadModbusFunctions.h
@@ -69,7 +69,7 @@ class ReadModbusFunction {
   const uint8_t unit_id_;
 };
 
-class ReadCoilStatus final : public ReadModbusFunction {
+class ReadCoilStatus : public ReadModbusFunction {
  public:
   ReadCoilStatus(const uint16_t transaction_id, const uint8_t unit_id, const 
uint16_t starting_address, const uint16_t number_of_points)
       : ReadModbusFunction(transaction_id, unit_id),
@@ -94,7 +94,7 @@ class ReadCoilStatus final : public ReadModbusFunction {
 };
 
 template<typename T>
-class ReadRegisters final : public ReadModbusFunction {
+class ReadRegisters : public ReadModbusFunction {
  public:
   ReadRegisters(const RegisterType register_type, const uint16_t 
transaction_id, const uint8_t unit_id, const uint16_t starting_address, const 
uint16_t number_of_points)
       : ReadModbusFunction(transaction_id, unit_id),
diff --git a/extensions/windows-event-log/tests/ConsumeWindowsEventLogTests.cpp 
b/extensions/windows-event-log/tests/ConsumeWindowsEventLogTests.cpp
index e2061d644..63e7fed08 100644
--- a/extensions/windows-event-log/tests/ConsumeWindowsEventLogTests.cpp
+++ b/extensions/windows-event-log/tests/ConsumeWindowsEventLogTests.cpp
@@ -359,7 +359,7 @@ TEST_CASE("ConsumeWindowsEventLog prints events in plain 
text correctly", "[onTr
   CHECK(event.find(R"(Date:          )") != std::string::npos);
   CHECK(event.find(R"(Record ID:     )") != std::string::npos);
   CHECK(event.find(R"(Event ID:      14985)") != std::string::npos);
-  CHECK(event.find(R"(Task Category: N/A)") != std::string::npos);
+  CHECK((event.find(R"(Task Category: N/A)") != std::string::npos || 
event.find(R"(Task Category: None)") != std::string::npos));
   CHECK(event.find(R"(Level:         Information)") != std::string::npos);
   CHECK(event.find(R"(Keywords:      Classic)") != std::string::npos);
   CHECK(event.find(R"(User:          N/A)") != std::string::npos);

Reply via email to