Re: t0090-cache-tree fails due to wc whitespace
From: Thomas Rast <hidden>
Date: 2016-06-15 22:52:38
Brian Gernhardt wrote:
It's time for my periodic complaint: People assuming `wc -l` outputs just a number. wc on OS X (and perhaps other BSD-like systems) always aligns the output in columns, even with the -l flag.
Oops.
Generally this results in a quick patch from me to remove some unneeded quotes. However, this time it's used in a more complex manner:
[...]
- "($(git ls-files|wc -l) entries, 0 subtrees)" >expect && + "($(git ls-files|wc -l|sed -e 's/^ *//') entries, 0 subtrees)" >expect &&
I'm tempted to say we should define
test_wc_l () {
test $# = 0 || error "bug in test script: passing arguments to wc -l is not portable"
wc -l | tr -d -c 0-9
}
just to avoid issues if any wc comes across and prints a tab for
padding or says "hi, the number of lines you wanted to know is: 42".
(Oddly, according to 'man 1p wc' here, the POSIXly correct format in
the absence of options is
"%d %d %d %s\n", <newlines>, <words>, <bytes>, <file>
Taking it literally would mean no padding/alignment whatsoever.
Neither GNU wc on my Linux exactly conforms to this.)
--
Thomas Rast
trast@{inf,student}.ethz.ch