test: Stop using grep -q in integration test
When a TTY is attached to the test unit, grep -q will generate SIGPIPE for the previous command in the pipeline which in combo with `pipefail` will cause the command to fail with exit status 141 which will fail the test. Replace with >/dev/null to avoid this from happening. See also https://www.gnu.org/software/grep/manual/html_node/Usage.html > There is a related problem with Bash’s set -e -o pipefail. Since grep > does not always read all its input, a command outputting to a pipe read > by grep can fail when grep exits before reading all its input, and the > command’s failure can cause Bash to exit. Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
co-authored by
Yu Watanabe
parent
d065fdd337
commit
ee6b3d1aa2
@@ -999,3 +999,9 @@ SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
- When modifying existing tests, please convert the test to use the new assertion
|
||||
macros from `tests.h` if it is not already using those.
|
||||
|
||||
## Integration Tests
|
||||
|
||||
- Never use `grep -q` in a pipeline, use `grep >/dev/null` instead. The former
|
||||
will generate `SIGPIPE` for the previous command in the pipeline when it finds
|
||||
a match which will cause the test to fail unexpectedly.
|
||||
|
||||
Reference in New Issue
Block a user