diff --git a/testsuite/rev.tests b/testsuite/rev.tests new file mode 100755 index 000000000..dd65dcd3b --- /dev/null +++ b/testsuite/rev.tests @@ -0,0 +1,46 @@ +#!/bin/sh +# Copyright 2021 by Ron Yorston +# Licensed under GPLv2, see file LICENSE in this source tree. + +. ./testing.sh + +# testing "test name" "commands" "expected result" "file input" "stdin" + +testing "rev works" \ + "rev input" \ +"\ +1 enil + +3 enil +" \ + "line 1\n\nline 3\n" \ + "" + +testing "rev file with missing newline" \ + "rev input" \ +"\ +1 enil + +3 enil" \ + "line 1\n\nline 3" \ + "" + +testing "rev file with NUL character" \ + "rev input" \ +"\ +nil +3 enil +" \ + "lin\000e 1\n\nline 3\n" \ + "" + +testing "rev file with long line" \ + "rev input" \ +"\ ++--------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+--------------- +cba +" \ + "---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+--------------+\nabc\n" \ + "" + +exit $FAILCOUNT diff --git a/util-linux/rev.c b/util-linux/rev.c index d439b4da8..63b005c67 100644 --- a/util-linux/rev.c +++ b/util-linux/rev.c @@ -109,6 +109,7 @@ int rev_main(int argc UNUSED_PARAM, char **argv) strrev(buf, strlen(buf)); #endif fputs_stdout(buf); + pos = 0; } fclose(fp); } while (*argv);