-
AFAIK older versions of the POSIX Standard didn't specify a way to locate commands. Many operating systems and distributions added a which(1) utility for that purpose, unfortunately without consistent behavior across the board. OTOH POSIX.1-2008 (or was it older? POSIX.1-2001 mentions it too, but with a restriction: “On systems supporting the User Portability Utilities option”) specifies that `command -v` can be used for that purpose: https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/utilities/command.html Moreover the standard adds that if the argument is neither a valid utility, builtin, shell function nor alias then “no output shall be written and the exit status shall reflect that the name was not found”. It's therefore no longer needed to void the error output (spewing error messages was one of the inconsistent behavior of the different which(1) utilities). The upcoming Debian 12 (codename Bookworm) appears to have deprecated its which(1) utility (as a first step for its removal from the base system): $ which foo /usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead. In most places the deprecation notice isn't visible when running the test suite because most `which` calls run with the error output redirected to /dev/null, however this is not the case everywhere: https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.4.3/tests/integrity-compat-test#L333 https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.4.3/tests/reencryption-compat-test2#L232 This commit replaces all `which` calls from tests/* with `command -v`, and removes the error output redirection.
cbc143bf