[arch-projects] [dbscripts] [PATCH 07/11] test/lib/common.inc: use `grep &>/dev/null` instead of `grep -q`.
Dave Reisner
d at falconindy.com
Mon May 18 00:38:33 UTC 2015
On Sun, May 17, 2015 at 07:44:15PM -0400, Luke Shumaker wrote:
> `grep -q` may exit as soon as it finds a match; the program piped in to it
> might not be finished writing, and consequently print a message about a
> "write error" to stderr.
>
> I'll add that this is not purely hypothetical--it happened to me while
> testing.
The rationale doesn't make sense to me. If the program writing to the
input side of the pipe is the one throwing the error, why should piping
grep's output to /dev/null change this?
> ---
> test/lib/common.inc | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/test/lib/common.inc b/test/lib/common.inc
> index 5b06616..83c54bd 100644
> --- a/test/lib/common.inc
> +++ b/test/lib/common.inc
> @@ -177,7 +177,7 @@ checkAnyPackageDB() {
>
> for db in "${DBEXT}" "${FILESEXT}"; do
> ( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] \
> - && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep -q "${pkg}") \
> + && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null) \
> || fail "${pkg} not in ${repo}/os/${arch}/${repo}${db%.tar.*}"
> done
> done
> @@ -221,7 +221,7 @@ checkPackageDB() {
>
> for db in "${DBEXT}" "${FILESEXT}"; do
> ( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] \
> - && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep -q "${pkg}") \
> + && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null) \
> || fail "${pkg} not in ${repo}/os/${arch}/${repo}${db%.tar.*}"
> done
> }
> @@ -247,7 +247,7 @@ checkRemovedPackageDB() {
>
> for db in "${DBEXT}" "${FILESEXT}"; do
> ( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] \
> - && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep -q "${pkgbase}") \
> + && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null) \
> && fail "${pkgbase} should not be in ${repo}/os/${arch}/${repo}${db%.tar.*}"
> done
> }
> @@ -273,7 +273,7 @@ checkRemovedAnyPackageDB() {
> for db in "${DBEXT}" "${FILESEXT}"; do
> for arch in "${ARCH_BUILD[@]}"; do
> ( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] \
> - && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep -q "${pkgbase}") \
> + && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null) \
> && fail "${pkgbase} should not be in ${repo}/os/${arch}/${repo}${db%.tar.*}"
> done
> done
> --
> 2.4.1
More information about the arch-projects
mailing list