When doing `brew test --verbose` (as `brew test-bot` does) ensure that
the output is printed when an assertion fails to more easily debug the
test failure.
- We recently deleted a load of old Homebrew/formula-patches patches for
non-existent core formulae
(https://github.com/Homebrew/formula-patches/pull/283). This is a good
action to take. Users should always be able to retrieve the patch once
it's been deleted from the repo, if the formula they continue to use
specifies a git revision to pull from, not just `master`.
- The code to detect `master` formulae was already here, so this adds
another GitHub host to the detection: `raw.githubusercontent.com` as
that's what the current patches that use `master`
(https://github.com/Homebrew/homebrew-core/pull/51329) link to.
- Fixes https://github.com/Homebrew/homebrew-core/issues/51313.
There are formulae that use resource blocks for stuff that is needed in
test blocks. If a resource is a `.zip` archive, one needs `unzip`
utility in `PATH` to extract it, but its only available at build-time,
so one observes an error like that for example:
```
==> brew test psftools --verbose
Testing psftools
==> Downloading https://www.zone38.net/font/pc8x8.zip
Already downloaded: /github/home/.cache/Homebrew/downloads/ea5f6a485687368ff5bc99e4cc43a49b06e081baa51a97ee6ddcd8d1b82d7963--pc8x8.zip
==> Verifying ea5f6a485687368ff5bc99e4cc43a49b06e081baa51a97ee6ddcd8d1b82d7963--pc8x8.zip checksum
unzip -o /github/home/.cache/Homebrew/downloads/ea5f6a485687368ff5bc99e4cc43a49b06e081baa51a97ee6ddcd8d1b82d7963--pc8x8.zip -d /tmp/d20200304-21389-ui0wr0
Error: psftools: failed
undefined method `shelljoin' for nil:NilClass
```
Of course this issue affects Linux the most, because of higher
probability that the system lacks `unzip` for example.
With this commit, all resource guessed dependencies should be available
at build and test time.
When version is nil, (version <==> other.version) also returns nil
and then the nill object doesn't have a nonzero? method.
I'm not sure what package put me into this state, but, this fix repaired
my environment.
Also, there is probably a more ruby-esque way to do this, but, I'm not a
ruby expert ;-)