* Use GH Actions Matrices for multi-OS & multi-shell testing
* Drop helper script for installing zsh on Linux
- Should be available by default on ubuntu-latest
Config included by gitconfig [include] is not considered global.
Test git config values without --global to include local config as well.
Change only local config (not global) if needed.
On my system (Arch Linux), the commands {mv,rm,sed} live under
`/usr/bin`, not under `/bin`. So the tests were failing.
This commit hard-codes the initial paths to make the tests independent
on their real paths.
The previous tests assumed default locations for all commands, however
they do not exist in the same place on all *nixes. I encountered this
when the test was failing on MacOSX where it was expected hardcoded
`/bin/sed` when in fact the code was identifying the correct local
expansion of `/usr/bin/sed`.
To make this test more robust, it now checks for the original location
of all cmds and uses that in its expansion tests for
`test_shell_command_wrapping()`.
Darwin actually symlinks /var inside /private, but mktemp reports back
the logical pathat time of file creation. So make sure we always get
the full physical path to be absolutely certain when doing comparisons
later, because thats how the Ruby status_shortcuts.rb script is going to
obtain them.
`sed -r` is not present on some BSD based systems, including MacOSX
Darwin. perl is standard pretty much everywhere, so this a more
reliable way to test.
Since this is only used for tests, any performance differences
should not matter significantly.
`grep -P` gives access to the PCRE matching engine, which is nice,
however, the version of grep shipped on many BSD systems (including
Darwin) does not have this flag.
Currently, `grep -P` was being used in the `_includes()` test helper.
For cross platform compatibility in tests, do not rely upon this option.
Luckily, all existing tests seem to work fine without it already!
don’t bother on macosx (preinstalled) or if the test matrix for that
box isn’t going to be testing in zsh.
this should speed up test runs for most cases, and later we can define
fast_failure and not have to wait for the longer ones.
Requires beta access, thankfully the travis gods have blessed us for the
main repo and my fork!
This should allow us to make sure scm_breeze operates reliably in both
Linux and BSD/Darwin, because there are small shell differences
(especially with default tools) that are causing errors I noticed on
MacOSX.