fish-shell/tests/checks
Fabian Boehm 2c17d34971
Deprecate builtin test's one- and zero-argument modes (#10365)
This introduces a feature flag, "test-require-arg", that removes builtin test's zero and one argument special modes.

That means:

- `test -n` returns false
- `test -z` returns true
- `test -x` with any other option errors out with "missing argument"
- `test foo` errors out as expecting an option

`test -n` returning true is a frequent source of confusion, and so we are breaking with posix in this regard.

As always the flag defaults to off and can be turned on. In future it will default to on and then eventually be made read-only.

There is a new FLOG category "deprecated-test", run `fish -d deprecated-test` and it will show any test call that would change in future.
2024-04-21 14:25:54 +02:00
..
broken-config/fish Port config tests to littlecheck 2019-06-25 22:31:06 +02:00
abbr.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
alias.fish Support quoted escaping also when ' or \ is present 2024-04-13 15:33:05 +02:00
andandoror.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
andor.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
argparse.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
bad-option.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
basic.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
bind.fish Escape nonprintable characters when reporting invalid key name 2024-04-18 23:27:05 +02:00
braces.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
broken-config.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
builtinbuiltin.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
caller-exit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
caller-observer.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cd.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
check-all-fish-files.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
check-completions.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
check-translations.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cmdsub-limit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cmdsub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
colon-delimited-var.fish Clean up how PATH and CDPATH munging occurs 2019-11-02 16:48:08 -07:00
command-1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-not-found.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-vars-persist.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
commandline.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
complete-group-order.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
complete.fish Insert some completions with quotes instead of backslashes 2024-04-13 15:34:21 +02:00
complete_directories.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
contains_opt.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
count.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
deep-cmdsub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
default-setup-path.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
directory-redirect.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
disown-parent.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
empty.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
env.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
eval.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
exec.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
exit-status-with-closing-stderr.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
expansion.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fds.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-ampersand-nobg-in-token1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret3.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret4.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-percent-self1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-percent-self2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-qmark1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-qmark2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-string-backslashes-off.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-string-backslashes.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fish_add_path.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fish_exit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fish_user_paths.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
for.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
function-definition.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
function.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
functions.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
git.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
glob.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
history.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
indent.fish Teach fish_indent to only indent and unindent 2024-04-15 08:32:31 +02:00
init-command-2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command-mix-ordering.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command-mix.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-unreadable-cwd.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
invocation.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
job-control-noninteractive.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
job-control-not-a-tty.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
job-ids.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
jobs-are-escaped.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
jobs.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
line-continuation.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
line-number.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
locale-numeric.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
locale.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
loops.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
math.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
no-config.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
no-execute.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
noshebang.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
not.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
nuls.fish Support quoted escaping also when ' or \ is present 2024-04-13 15:33:05 +02:00
path.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
pipeline-pgroup.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
pipestatus.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
print-help.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
printf.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
prompt.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
psub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
random.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
rc-returned.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
read.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
realpath.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
redirect.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
regex-import.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
return.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
scoping.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
self-signal-usr1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
set.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
setenv.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
sigint.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
sigint2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
signal.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
slices.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
stack-overflow.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status-command.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status-value.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
string-advanced.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
string.fish Support quoted escaping also when ' or \ is present 2024-04-13 15:33:05 +02:00
switch.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
symlinks-not-overwritten.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
syntax-error-location.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
test-posix.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
test.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
threads.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
time.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-abbr.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-bind.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-bind2.fish Update commandline state snapshot lazily 2024-04-13 14:36:11 +02:00
tmux-commandline.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-complete.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-history-search.fish shift-delete to delete current history search match 2024-04-13 20:23:51 +02:00
tmux-job.fish Add test for updating the commandline state on background job exit 2024-04-13 18:24:53 +02:00
tmux-prompt.fish Send repaint requests through the input queue again 2024-04-19 12:05:27 +02:00
tmux-signal.fish Send repaint requests through the input queue again 2024-04-19 12:05:27 +02:00
trace.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
trap.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
trap_print.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
type.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
ulimit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
umask.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
variable-assignment.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
vars_as_commands.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
version.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
wait.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
wildcard.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
wraps.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
zero_based_array.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00