When you rewrite a command-line tool, the happy path is the easy part. Output for valid input gets compared early and often. Error messages are where rewrites quietly drift: a different wording, a missing file name, a raw (os error 20) instead of the sentence a script or a person expects.
I have been running behave against uutils coreutils , the Rust rewrite of GNU coreutils. behave probes a CLI as a black box (flags from --help , stdin, files, odd inputs), records what the reference tool does, and replays the same cases against the rewrite. I record from GNU 9.12, the release uutils targets.
One probe case added in v0.1.7 is simply "a regular file passed with a trailing slash" ( f/ ).…