Skip to content

Development and Testing

Karialo edited this page Aug 3, 2026 · 1 revision

Development and Testing

Noob mode

From a checkout:

bash -n binman.sh
binman test stress --quick

The stress test is the quickest way to find out whether a change has annoyed the installer, the app detector, or both.

Pro mode

The stress harness creates temporary fixtures and exercises single-file copy installs, link-mode apps, app shims, manifests, uninstall, PATH handling, odd filenames, backup, restore, and related paths. Useful controls include:

--quick       shorter run
--jobs N      parallel jobs
--verbose     detailed output
--keep        retain temporary fixtures

Some TUI paths require /dev/tty; a non-TTY test runner can report that the terminal is unavailable even when the core installer is healthy.

Before committing changes:

bash -n binman.sh
git diff --check
groff -man -Tutf8 binman.1 >/dev/null
binman test stress --quick

For bundled scripts, remember that findinfiles.sh is Python 3 with a shell extension. Run it with its interpreter or through BinMan rather than assuming every .sh file is Bash.

Contributing safely

Prefer explicit targets and flags in automation. Capture exit statuses. Use temporary directories for generated archives and ensure generated backups, bundles, stress fixtures, and local screenshots are ignored before committing. When a feature touches disks, network interfaces, containers, sudo, or GitHub, test the dry-run and confirmation path as well as the happy path.

Clone this wiki locally