also looking at this
test: exercise full host filesystem recovery
#58
13 files
+644
-5
| @@ -32,7 +32,27 @@ jobs: | ||
| 32 | 32 | - run: python3 -m unittest discover -s tests/hardware |
| 33 | 33 | - name: Verify a kernel-confirmed full input pipe on Linux |
| 34 | 34 | run: bun test tests/unit/runtime.test.ts --test-name-pattern 'kernel-confirmed full input FIFO' |
| 35 | - name: Verify an actual partial host image write and fresh-process recovery | |
| 36 | env: | |
| 37 | RUNTIME_HOST_FILE_LIMIT_EVIDENCE: ${{ runner.temp }}/runtime-host-file-limit-evidence | |
| 38 | run: bun test tests/unit/updates-host-writes.test.ts | |
| 39 | - uses: actions/upload-artifact@v4 | |
| 40 | if: always() | |
| 41 | with: | |
| 42 | name: runtime-host-file-limit-evidence | |
| 43 | if-no-files-found: ignore | |
| 44 | retention-days: 7 | |
| 45 | path: ${{ runner.temp }}/runtime-host-file-limit-evidence | |
| 35 | 46 | - run: ./buddy test |
| 47 | env: | |
| 48 | RUNTIME_HOST_FILE_LIMIT_EVIDENCE: ${{ runner.temp }}/runtime-host-file-limit-full-evidence | |
| 49 | - uses: actions/upload-artifact@v4 | |
| 50 | if: always() | |
| 51 | with: | |
| 52 | name: runtime-host-file-limit-full-evidence | |
| 53 | if-no-files-found: ignore | |
| 54 | retention-days: 7 | |
| 55 | path: ${{ runner.temp }}/runtime-host-file-limit-full-evidence | |
| 36 | 56 | - run: bun run runtime:cli |
| 37 | 57 | - name: Verify signed test-image staging through the portable CLI outside the checkout |
| 38 | 58 | run: bun tests/fixtures/updates/qualify.ts "$RUNNER_TEMP/runtime-update-qualification" "$GITHUB_WORKSPACE/storage/runtime-build/cli/drone" |
| @@ -414,6 +434,26 @@ jobs: | ||
| 414 | 434 | - run: bun install --frozen-lockfile |
| 415 | 435 | - run: cp .env.example .env |
| 416 | 436 | - run: ./buddy key:generate |
| 437 | - name: Qualify actual ENOSPC and fresh runtime recovery in a private filesystem | |
| 438 | shell: bash | |
| 439 | run: | | |
| 440 | set -euo pipefail | |
| 441 | sudo --non-interactive env RUNTIME_HOST_ENOSPC_TEST=1 RUNTIME_HOST_ENOSPC_EVIDENCE="$RUNNER_TEMP/runtime-host-enospc" unshare --mount --propagation private --fork "$(command -v bun)" test ./tests/integration/runtime-host-storage.test.ts | |
| 442 | - name: Make the owned filesystem campaign artifacts readable by the runner | |
| 443 | if: always() | |
| 444 | shell: bash | |
| 445 | run: | | |
| 446 | set -euo pipefail | |
| 447 | if sudo --non-interactive test -d "$RUNNER_TEMP/runtime-host-enospc"; then | |
| 448 | sudo --non-interactive chown -R --no-dereference "$(id -u):$(id -g)" "$RUNNER_TEMP/runtime-host-enospc" | |
| 449 | fi | |
| 450 | - uses: actions/upload-artifact@v4 | |
| 451 | if: always() | |
| 452 | with: | |
| 453 | name: runtime-host-enospc-evidence | |
| 454 | if-no-files-found: ignore | |
| 455 | retention-days: 7 | |
| 456 | path: ${{ runner.temp }}/runtime-host-enospc | |
| 417 | 457 | - name: Qualify accepted purge with real process and mount isolation |
| 418 | 458 | run: sudo --non-interactive env PUBLIC_SAFETY_PURGE_NAMESPACE_TEST=1 unshare --fork --pid --mount-proc "$(command -v bun)" test ./tests/integration/public-safety-purge.test.ts |
| 419 | 459 | firmware: |