Fixed a regression introduced by workers/30496 (5.0.3) whereby %2K would
no longer be the equivalent of %K{2} (%K{green}) in prompt expansion.
That was one missing case where the is_fg flag was not passed along to
match_colour() after code factorisation.
Add tests for the different syntax variants, using echoti
as a reference.
Actual behaviour:
% is-at-least 5.8.0.2 5.8 && echo yes || echo no
yes
% is-at-least 5.8.0.2 5.8.0.0 && echo yes || echo no
no
Expected behaviour: Both commands should have printed "no".
The test harness created tempfiles with a predictable names and sourced
them without verifying they had been created by itself. This opened
anyone who ran the test suite to a symlink attacks from other local
users on the build machine.
Fix this by creating the file whilst NO_CLOBBER and ERR_EXIT are both in
scope, to ensure that we'll abort unless the file really was created as
expected.
Put the existing rm(1) call in a try/always block to help it be unlinked
on test failures, thus reducing the chances of the NO_CLOBBER check
triggering on tempfiles created by earlier test suite runs.
I had first tried to fix this by using the
.
() { ... } =(:)
.
idiom, but couldn't get that to work: it broke the %prep code of X03
with ZTST_verbose unset (its default value) but not with ZTST_verbose=3.
(I tried to set the latter to debug zpty_flush.)
While there, add a needed-in-principle-but-noop-in-this-specific-case (q).
Indentation will be restored in the next commit.
This is useful when multiple plugins add region_highlight entries and
subsequently want to remove only their own entries. Without this
functionality, recognizing one's region_highlight entries is not trivial
because the 'start' and 'end' offsets are modified by editing of $BUFFER
and the highlight specification may not be unique or distinctive.
The tweaks are as follows:
- Change zfree() to zsfree() per workers/46070.
- Remove the mem.c hunk, as it changed the signature of only one out of
two alternative definitions of zsfree(). (The definition that hunk
touched is the one that's not used by default.)
The new output is:
./Test/B02typeset.ztst: starting.
Test ./Test/B02typeset.ztst was expected to fail, but passed.
Was testing: this is the description that's after the colon on in the ztst file
./Test/B02typeset.ztst: test XPassed.
**************************************
0 successful test scripts, 1 failure, 0 skipped
**************************************
make[1]: *** [Makefile:190: check] Error 1
make: *** [Makefile:263: check] Error 2
The new function is deliberately very similar to ZTST_testfailed() just
above it.
Have V01zmodload.ztst check that all modules enabled in config.modules
load successfully. With this change, the test files for individual
modules may assume that if 'zmodload' fails that must be because the
module hadn't been compiled in, and mark themselves as skipped in that
case.