Skip to content

MINIFICPP-2718 Windows based docker tests#2133

Open
martinzink wants to merge 4 commits intoapache:mainfrom
martinzink:MINIFICPP-2718
Open

MINIFICPP-2718 Windows based docker tests#2133
martinzink wants to merge 4 commits intoapache:mainfrom
martinzink:MINIFICPP-2718

Conversation

@martinzink
Copy link
Member

This PR allows windows based docker containers to run the behave test suite with some limitations:

  • I only enabled a handful of features because some of the tests are requiring thirdparty containers (linux only and windows doesnt allow mixed (windows and linux) containers)
  • Even the tests that dont require thirdparty containers might rely on extra linux commands that needs to be replicated in powershell
  • Its unfeasable to enable these in github CI, because this requires nested virtualization (which is quite rare for VMs).

So this is only the MVP for this feature, but it is still a huge help for future developments especially for using it to develop external extensions using the upcoming C api. It cuts down the local verification time.

I've also replaced the previous m2crypto based ssl_utils with the industry standard cryptography, this should help with the setup on macs and windows systems (m2crypto was quite difficult to install on these systems)


Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced
    in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically main)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

Comment on lines +69 to +68
@retry_check(max_tries=12, retry_interval=5)
@retry_check(12, 5)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the reason for this change?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was mismatched with the actual naming of the parameters
def retry_check(max_tries: int = 5, retry_interval_seconds: int = 1)

should I instead correct and keep the named arguments?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'd keep the named arguments, but I leave it up to you to decide which is better.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +362 to +368
command = (
f"powershell -Command \"if ((Test-Path -LiteralPath '{directory_path}' -PathType Container) "
f"-and (Get-ChildItem -LiteralPath '{directory_path}' -Force | Select-Object -First 1)) "
f"{{ exit 0 }} else {{ exit 1 }}\""
)

exit_code, _ = self.exec_run(command)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not _run_powershell here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea, review changes

Comment on lines 15 to +21
[tool.setuptools]
package-dir = {"" = "src"}
packages = ["minifi_test_framework"]

[tool.setuptools.packages.find]
where = ["src"]
include = ["minifi_test_framework*"]

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is required for wheel building

Comment on lines +69 to +68
@retry_check(max_tries=12, retry_interval=5)
@retry_check(12, 5)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was mismatched with the actual naming of the parameters
def retry_check(max_tries: int = 5, retry_interval_seconds: int = 1)

should I instead correct and keep the named arguments?

@martinzink martinzink marked this pull request as ready for review March 11, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants