On Thu, Dec 20, 2012 at 09:53:06PM +0100, Torsten Bögershausen wrote: > (Good to learn about the comm command, thanks ) > What do we think about this: > > > diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh > index 3cd53f8..82eeba7 100755 > --- a/t/t9902-completion.sh > +++ b/t/t9902-completion.sh > @@ -62,12 +62,16 @@ test_completion () > { > if test $# -gt 1 > then > - printf '%s\n' "$2" >expected > + printf '%s\n' "$2" | sort >expected.sorted > else > - sed -e 's/Z$//' >expected > + sed -e 's/Z$//' | sort >expected.sorted > fi && > run_completion "$1" && > - test_cmp expected out > + sort <out >actual.sorted && > + >empty && > + comm -23 expected.sorted actual.sorted >actual && > + test_cmp empty actual && > + rm empty actual I like test_* helpers that tell you what happened on error, but this output will be kind of a weird diff (it is a diff showing things you expected to have but did not get as additions, and no mention of things you expected and got). The output is human readable, so I think it is perfectly OK to print a message about what is going on (we do this in test_expect_code, for example). Something like: test_fully_contains() { sort "$1" >expect.sorted && sort "$2" >actual.sorted && comm -23 expect.sorted actual.sorted >missing test -f missing -a ! -s missing && rm -f expect.sorted actual.sorted missing && return 0 { echo "test_fully_contains: some lines were missing" echo "expected:" sed 's/^/ /' <"$1" echo "actual:" sed 's/^/ /' <"$2" echo "missing:" sed 's/^/ /' <missing } >&2 return 1 } Though come to think of it, just showing the diff between expect.sorted and actual.sorted would probably be enough. It would show the missing elements as deletions, the found elements as common lines, and the "extra" elements as additions (which are not an error, but when you are debugging, might be useful to know about). -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html