test_single_quote_pair_as_delimiter_is_invalid is intermittent on
i686: the parent writes "a''b\n" to cut's stdin while cut validates
args and exits immediately with "delimiter must be a single
character". On a fast child exit, the kernel closes the pipe
read-end before the parent's write() runs, so write() returns
EPIPE and the pipe_in thread panics.
The race is inherent: draining stdin in cut before exiting on an
arg error would hang on terminals and read unbounded data from
long pipes, contradicting GNU behavior. Use the test framework's
ignore_stdin_write_error() flag, which exists for exactly this
"parent writes to child that exits fast" pattern.
- Fixed the -s flag incorrectly suppressing output when the delimiter is a newline.
- Improved performance in cut_fields_newline_char_delim.
- Updated tests to match GNU cut behavior for newline delimiters.
* add tests with emoji for various commands
* test/ls: use touch instead of an empty write
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
---------
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* cut.pl: adjust to our messages as they are better
but we still have some differences on this test
* cut: add some missing line return when needed
* cut: add failing tests covered by cut.pl
* Remove dup test
* cut: add spell-checker:ignore line to test
---------
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
Print lines without delimiters only when they end with specified line terminator('\n' by default or `\0` if `-s`)
Signed-off-by: Andrei Stan <andreistan2003@gmail.com>
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>