Commit Graph

5 Commits (ffbe58d4feb02aa7751c2a3734d52cbdd22b3d09)

Author SHA1 Message Date
Yosuke Shimizu 4dc6e86cbb wolfsshd: bound the shell child reap and flush the held backlog
- The child's stdin pipe and the pty master are closed before the
  reap. The reap polls waitpid() with WNOHANG for
  WOLFSSHD_CHILD_REAP_TRIES x WOLFSSHD_CHILD_REAP_WAIT_US, then
  sends SIGKILL; a failed kill() is logged and ends the wait.
- ChildSig is installed before forkpty() instead of after it.
- An EIO read from the pty master ends the child's output
  instead of the loop.
- A held backlog is sent with SHELL_FlushOut() before the pipe
  drain; the drain is skipped when the backlog is not sent.
- New sshd_channel_close_test.sh (paramiko) closes the channel
  while output is held, for an exec command and a pty shell, and
  checks that the command and the connection both end; it also
  checks exit status 3 from an exec and an interactive shell.
  run_all runs it.
- sshd-test.yml and code-coverage.yml install python3-paramiko
  through install-apt-deps, and the ubuntu-24.04-tests bundle
  lists it.
2026-10-09 10:30:29 -07:00
John Safranek 3c5b1e9034 CI: install apt packages from ghcr .deb bundles
Port wolfSSL's install-apt-deps action and ci-deps-image workflow. A
daily job on master downloads each package list's .debs and publishes
them as ghcr.io/wolfssl/wolfssh-ci-debs; the workflows install from
that bundle offline and fall back to the mirror with bounded retries.

- two bundles: ubuntu-24.04-tests and ubuntu-24.04-compilers
- every apt-get install step in the workflows now uses the action
- the package must be made public once after the first build; until
  then every job takes the mirror fallback
- sshd-test job timeout goes from 10 to 15 minutes to fit the install
2026-10-07 21:39:28 -05:00
John Safranek ebadd998be CI: retry apt-get and time-limit install steps
Every workflow that installs packages now passes Acquire::Retries=3
to apt-get, and each install step gets its own timeout, sized to fit
inside its job's limit, so a stalled mirror fails fast under a step
name that says what went wrong.

- cppcheck runs apt-get update before installing, and installs with -y
- sftp-test and sshd-test move their inline installs into their own
  steps
- test-fatfs job timeout goes from 4 to 10 minutes to hold its installs
2026-10-07 21:39:28 -05:00
John Safranek 399c83b1b6 coverage: survive a truncated raw profile
The merge step takes --failure-mode=all, so a raw profile left short by
a killed process is warned about and skipped instead of aborting the
report. Tests SIGKILL their servers in cleanup traps, and a process
killed while writing its profile leaves a corrupt header behind. The
step still fails when no profile can be read at all.
2026-09-14 15:22:14 -07:00
Paul Adelsbach 581053bcf6 CI: add code coverage workflow, misc script updates 2026-08-21 11:30:40 -07:00