[PATCH] t0021: expect more variations in the output of uniq -c
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Nov 3, 2016, 20:12 UTC
- Message-ID
- <fb4d62de-fbb5-a2b4-8eba-b135125dafa9@kdbg.org>
- In-Reply-To
- <3763DDDB-9D53-4877-8399-32DF1780CAB7@gmail.com>
Some versions of uniq -c write the count left-justified, other version write it right-justified. Be prepared for both kinds.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- Here it is as a proper patch.
Am 03.11.2016 um 01:41 schrieb Lars Schneider:
Show 7 quoted lines
>> On 2 Nov 2016, at 18:03, Johannes Sixt <j6t@kdbg.org> wrote: >> + sort "$FILE" | uniq -c | >> + sed -e "s/^ *[0-9][0-9]* *IN: /x IN: /" >"$FILE.tmp" && > > This looks good (thanks for cleaning up the redundant clean/smudge > stuff - that was a refactoring artifact!). One minor nit: doesn't sed > understand '[0-9]+' ?
I don't think so.
>> + mv "$FILE.tmp" "$FILE" || return > > Why '|| return' here?
If there is an error in the pipeline or in the mv command, the for loop would not exit otherwise. The subsequent test_cmp most likely fails, but the || return is more correct.
t/t0021-conversion.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh index a20b9f58e3..db71acacb3 100755 --- a/t/t0021-conversion.sh +++ b/t/t0021-conversion.sh @@ -40,10 +40,9 @@ test_cmp_count () { actual=$2 for FILE in "$expect" "$actual" do - sort "$FILE" | uniq -c | sed "s/^[ ]*//" | - sed "s/^\([0-9]\) IN: clean/x IN: clean/" | - sed "s/^\([0-9]\) IN: smudge/x IN: smudge/" >"$FILE.tmp" && - mv "$FILE.tmp" "$FILE" + sort "$FILE" | uniq -c | + sed -e "s/^ *[0-9][0-9]*[ ]*IN: /x IN: /" >"$FILE.tmp" && + mv "$FILE.tmp" "$FILE" || return done && test_cmp "$expect" "$actual" }
-- 2.11.0.rc0.55.gd967357