The exit code numbers are useful enough, and the messages are the sort of thing that might turn into lies eventually.
This tests that the target file isn't removed or changed if building fails.