Skip to content

ps2client: Run Linux protocol and Windows C smoke tests in CI - #33

Merged
fjtrujy merged 2 commits into
masterfrom
test/ci-integration-coverage
Oct 31, 2026
Merged

fjtrujy merged 2 commits into
masterfrom
test/ci-integration-coverage

Conversation

@fjtrujy

@fjtrujy fjtrujy commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Goal

Extend CI beyond successful compilation and the portable C smoke tests, exercising as much of the existing protocol behavior as possible without physical PS2 hardware or Python.

Changes

  • Add a dedicated Ubuntu job that builds the native C fake PS2Link server and runs the full existing Linux tests/run-tests.sh integration suite inside privileged, isolated network namespaces. This checks handshakes, host-file I/O (including large reads), timeouts, disconnects, console output, retries and error exits.
  • Run a new native C Windows smoke harness on the Windows matrix worker. It checks invalid host handling, usage errors, the UDP console, and the reset command wire packet.
  • Preserve existing macOS (Apple Silicon and Intel), Ubuntu, Windows and cross-Windows builds, plus all existing make check C suites.
  • Document running the integration suite locally.

Validation

  • macOS make all check: passes C smoke, symbolizer, and fsclient test suites.
  • bash -n tests/run-tests.sh and git diff --check: pass.
  • Linux namespace and native Windows C execution require CI runners; this PR is intended to prove both paths.

Deliberate limits

Real PS2 behavior and IOP file-I/O internals cannot be executed by the host-side fake. This PR changes only ps2client's test/CI infrastructure, not ps2link itself.

Verified CI results

  • 38/38 Linux protocol integration checks passed against the native C fake-PS2Link server using isolated Linux network namespaces.
  • 8/8 native Windows C smoke checks passed, including UDP console and reset packet checks.
  • Existing macOS/Linux C smoke, symbolizer and fsclient suites passed.
  • Codacy: zero new issues on the initial CI run.
  • Release publishing now depends on the Linux integration job as well as all build jobs, so a failed protocol test blocks a release.

The dedicated Linux and Windows checks run on GitHub-hosted runners; physical PS2 execution remains intentionally outside this PR.

Run the full fake-PS2Link namespace integration suite in an isolated Linux job and add native C Windows command/UDP smoke checks, alongside the existing macOS/Linux C test matrix. Keep PS2 hardware out of CI and preserve existing release binaries.
@fjtrujy
fjtrujy merged commit d1352e6 into master Oct 31, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant