Command parsing and dispatch have their own source file beside their
tests. Help text, build version, output, and returned errors stay the
same. The entry point keeps run, which creates and cancels the signal
context before it calls the command parser.