fix: buildtest --no-benchmarks/--no-integration flag typos and broken TEST_INTEGRATION assignment#726
Conversation
Reserves the changelog entry for the development/buildtest fix ahead of implementation: the --no-benchmmarks/--no-integratopn flag typos and the broken TEST_INTEGRATION filter assignment. Prompt: Work on issue #679 in credfeto/scripts.
…d TEST_INTEGRATION assignment The --no-benchmmarks and --no-integratopn option names were misspelled so neither flag could ever be passed on the command line, and the TEST_INTEGRATION assignment split into a bare variable assignment followed by an attempt to execute "*.Integration.Tests" as a command instead of capturing the filter arguments. Fixes #679
|
Fixed in 2759ad0 - corrected the --no-benchmmarks/--no-integratopn flag-name typos in development/buildtest (now --no-benchmarks/--no-integration) and fixed the broken TEST_INTEGRATION assignment that was splitting into a bare variable assignment plus an attempted command execution of *.Integration.Tests; the branch previously only contained the changelog placeholder. Pushed and moved board status to Development. |
|
Simplify clean - advancing to code review |
Code Review: buildtest flag typo fix (#679)SummarySmall, well-scoped fix: corrects two Warnings (should fix, creates tech debt)
Architecture ComplianceN/A - standalone shell script, no layering. Test CoverageNo bats tests exist for What's Good
|
…n filter The TEST_INTEGRATION variable is expanded unquoted at the dotnet test call site to get word-splitting across the two --filter-not-namespace arguments. That same unquoted expansion also triggers shell pathname expansion: since the script cd's into the solution root before this runs, a *.Integration.Tests(.*)-matching file there would have its glob silently replaced by matching filenames instead of the literal filter, corrupting --no-integration. Wrap the dotnet test invocation with set -f/set +f (POSIX-portable) to disable globbing while keeping word-splitting. Prompt: Work on pull request #726 in credfeto/scripts. The repository is checked out at /workspace/repo.
|
Code review round: fixed 1 finding in 3c5866d - guarded the dotnet test invocation with set -f/set +f so an unquoted $TEST_INTEGRATION glob pattern can't be pathname-expanded against files in the solution directory. |
Code Review: buildtest flag typo fix (#679) - round 2SummaryReviewed the current diff (main...HEAD), including the set -f/set +f fix from the previous round. No new findings. Verification
What's Good
No findings - advancing to security review. |
|
Security review clean - advancing to finalize |
|
PR was in draft state; marked ready for review and auto-merge (merge commit) enabled. Ready to merge once required review/checks complete. |
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
Summary
Scaffolding PR for #679. The original OOM root cause (--parallel-algorithm aggressive racing benchmark assemblies against unit tests) is already fixed on main by #723's commit 6e022f5: the main dotnet test pass now always excludes every benchmark test project, and benchmark projects (if any) are run individually afterwards.
Remaining scope for this PR
In development/buildtest:
Fix the flag typos:
Fix the still-broken TEST_INTEGRATION assignment (line 74):
TEST_INTEGRATION=--filter-not-namespace ".Integration.Tests" --filter-not-namespace ".Integration.Tests.*"
This is parsed by sh as an env-var-prefixed command invocation (*.Integration.Tests as a command name), not a simple assignment, so --no-integration/-i is currently a silent no-op. Suggested fix, mirroring the style already used for the (now-fixed) TEST_BENCHMARKS variable and the existing "shellcheck disable=SC2086" on the dotnet test invocation that consumes it unquoted:
TEST_INTEGRATION="--filter-not-namespace *.Integration.Tests --filter-not-namespace .Integration.Tests."
No open PR/caller in this repo passes -b/-i today (confirmed via search), so renaming the flags is safe.
Verified: shellcheck development/buildtest is clean both before and after this class of change; no .csproj/.sln in this repo (shell-scripts-only, so no dotnet buildcheck applies).
Out of scope / needs follow-up
credfeto asked (issue comment, 2026-07-19) whether --parallel-algorithm sequential (and --long-running) could be reintroduced for the per-project benchmark dotnet test invocation, ideally as part of this issue's scope. This can't be verified from within credfeto/scripts itself - there are no benchmark test projects here - and prior direct evidence (#723's issue body, commit a0bf8ee) showed at least one real benchmark project's test host rejects those flags outright (exit code 5, "Zero tests ran") when run standalone. Recommend validating this against a real benchmark project (e.g. in funfair-server-ethereum) before deciding whether to add it back; flagging here rather than silently narrowing scope.
Test strategy
Closes #679