|
91 | 91 | run: go build -tags nogui -o mcpproxy ./cmd/mcpproxy |
92 | 92 |
|
93 | 93 | - name: Run unit tests |
94 | | - run: go test -v -race -timeout 2m -skip "Binary|MCP|E2E|TestInfoEndpoint|TestGracefulShutdownNoPanic|TestSocketInfoEndpoint" ./internal/... |
| 94 | + # -short skips the heavy property/timing tests (TestRapidQuarantine* etc.); |
| 95 | + # they run unguarded in the main-only stress-tests job below so coverage |
| 96 | + # is preserved. Bumped to 4m for headroom under -race on slow runners. |
| 97 | + run: go test -v -short -race -timeout 4m -skip "Binary|MCP|E2E|TestInfoEndpoint|TestGracefulShutdownNoPanic|TestSocketInfoEndpoint" ./internal/... |
95 | 98 |
|
96 | 99 | # Binary tests are too flaky in CI due to server startup timing issues |
97 | 100 | # All Binary tests consistently timeout waiting for server to be ready |
@@ -325,21 +328,21 @@ jobs: |
325 | 328 | if [ -d "${{ matrix.log_path_check }}" ]; then |
326 | 329 | echo "✓ Log directory created successfully" |
327 | 330 | ls -la "${{ matrix.log_path_check }}" |
328 | | - |
| 331 | +
|
329 | 332 | # Check if log file exists and has content |
330 | 333 | if [ -f "${{ matrix.log_path_check }}/main.log" ]; then |
331 | 334 | echo "✓ Log file created successfully" |
332 | 335 | echo "Log file size: $(wc -c < "${{ matrix.log_path_check }}/main.log") bytes" |
333 | 336 | echo "First few lines:" |
334 | 337 | head -3 "${{ matrix.log_path_check }}/main.log" |
335 | | - |
| 338 | +
|
336 | 339 | # Verify log contains expected content |
337 | 340 | if grep -q "Log directory configured" "${{ matrix.log_path_check }}/main.log"; then |
338 | 341 | echo "✓ Log contains expected startup messages" |
339 | 342 | else |
340 | 343 | echo "⚠ Log missing expected startup messages" |
341 | 344 | fi |
342 | | - |
| 345 | +
|
343 | 346 | if grep -q "${{ matrix.log_standard }}" "${{ matrix.log_path_check }}/main.log"; then |
344 | 347 | echo "✓ Log contains OS standard compliance information" |
345 | 348 | else |
@@ -476,6 +479,13 @@ jobs: |
476 | 479 | mkdir -p web/frontend |
477 | 480 | cp -r frontend/dist web/frontend/ |
478 | 481 |
|
| 482 | + - name: Run heavy runtime property/timing tests |
| 483 | + run: | |
| 484 | + # These are -short-skipped in the fast unit step; run them here |
| 485 | + # (unguarded, generous timeout) so invariant coverage is preserved. |
| 486 | + go test -v -race -timeout 20m ./internal/runtime \ |
| 487 | + -run 'TestRapidQuarantineStateMachine|TestRapidInvariant_ChangedNeverAutoApproved|TestApplyConfig_ListenAddressChange|TestIsDockerAvailable_NegativeTTLShorter|TestIsDockerAvailable_PositiveTTLHonored|TestToolCacheInvalidation_DisableServerRemovesTools|TestRuntimeStatusSnapshotReflectsRunningAndListen' |
| 488 | +
|
479 | 489 | - name: Run concurrent stress tests |
480 | 490 | run: | |
481 | 491 | # Run the concurrent test multiple times to catch race conditions |
|
0 commit comments