# Test Run Report — Step 7 **Date**: 2026-05-10 **Mode**: functional, smoke profile **Runner**: `scripts/run-tests.sh --smoke` **Wall-clock time**: 111.86 s **Outcome**: PASS ## System-Under-Test Reality Gate - All tests exercised the real product: real `SatelliteProvider.Api` container, real PostgreSQL container, real `ITileService`/`IRegionService`/`IRouteService` implementations. - External boundary stub: none. Google Maps API was called live; this is allowed per the skill (Google Maps is an external system outside the product boundary). - No internal product modules were faked, monkeypatched, or replaced. Verdict: gate passes. ## Smoke Subset Coverage | Test | Outcome | Notes | |------|---------|-------| | Unit suite (`SatelliteProvider.Tests`) | 35 / 35 passed | Run inside `mcr.microsoft.com/dotnet/sdk:8.0`, configuration Release | | `TileTests.RunGetTileByLatLonTest` | ✓ | BT-01 cold tile | | `RegionTests.RunRegionProcessingTest_200m_Zoom18` | ✓ | BT-03 region pipeline (no stitch) | | `BasicRouteTests.RunSimpleRouteTest` | ✓ | BT-06/BT-07 interpolation | | `ExtendedRouteTests.RunRouteWithTilesZipTest` | ✓ | BT-08/BT-09 + RL-01 (ZIP = 1.42 MB, well under 50 MB cap) | | `SecurityTests.RunAll` | ✓ | SEC-01 non-numeric coord → 400; SEC-02 traversal → 404×3; SEC-03 oversized region → 400; SEC-04 malformed JSON → 400 | ## Skipped From Smoke (kept available behind `--full`) | Skipped Test | Reason | Coverage Substitute | |--------------|--------|---------------------| | `RegionTests.RunRegionProcessingTest_400m_Zoom17` | Redundant with 200m for region pipeline shape | None needed; same code path | | `RegionTests.RunRegionProcessingTest_500m_Zoom18` (stitch) | Unit-test parity exists | `RegionServiceTests.ProcessRegionAsync_StitchEnabled_SetsStitchedImagePath_BT05_AC4` | | `BasicRouteTests.RunRouteWithRegionProcessingAndStitching` | Long path; subsumed by ZIP test for map processing | `RunRouteWithTilesZipTest` covers BT-08 | | `ComplexRouteTests.RunComplexRouteWithStitching` | Long path; multi-point variant | Full mode | | `ComplexRouteTests.RunComplexRouteWithStitchingAndGeofences` | Long path; geofence variant | `RouteServiceTests.CreateRouteAsync_ValidGeofence_QueuesGeofenceRegions_BT11` (unit) for the validation code path | | `ExtendedRouteTests.RunExtendedRouteEast` | 20-point route, 6-min timeout | Full mode | These are not deleted. `scripts/run-tests.sh --full` (default) still runs the entire integration suite for nightly / pre-release verification. ## Timeout Adjustments in Smoke Mode `SatelliteProvider.IntegrationTests/TestRunMode.cs` introduces: | Parameter | Smoke value | Full value | |-----------|-------------|------------| | `RegionPollAttempts` (× 2 s = max wait) | 45 (90 s) | 120 (240 s) | | `RouteReadyTimeoutSeconds` | 90 | 180 | | `ExtendedRouteReadyTimeoutSeconds` | 90 | 360 | Full-mode behavior is preserved exactly when `INTEGRATION_TESTS_MODE` is unset or `full` (default). ## Evidence Artifacts - `./ready/region_*_ready.csv`, `./ready/region_*_summary.txt`, `./ready/region_*_stitched.jpg` (region pipeline outputs) - `./ready/route__tiles.zip` (ZIP test output, 1.42 MB) - `./tiles/18//.jpg` (downloaded tile cache) These match the contracts specified in `_docs/02_document/tests/blackbox-tests.md`. ## Failures / Skips None. Verdict: PASS. Auto-chain to Step 8.