From 609f108165197b1d7a55a4908a321bad40a86442 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 10 Jun 2015 18:11:24 +0100 Subject: Test suite: Make t-expect-fail flexible wrt which grep to run Change the default to fgrep, and override it in the places where this is needed. Also use shell substitution to quote .s in tag name in debpolicy-newreject. --- tests/lib | 15 ++++++++++++++- tests/tests/debpolicy-newreject | 2 +- tests/tests/trustingpolicy-replay | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/lib b/tests/lib index 776e2a3..332bef2 100644 --- a/tests/lib +++ b/tests/lib @@ -44,12 +44,25 @@ END t-expect-fail () { local mpat="$1"; shift + + local grepper=fgrep + case "$mpat" in + [A-Z]:*) + case "$mpat" in + E:*) grepper=egrep ;; + F:*) grepper=fgrep ;; + *) fail "bad mpat prefix in $mpat";; + esac + mpat=${mpat#[A-Z]:} + ;; + esac + set +o pipefail LC_MESSAGES=C "$@" 2>&1 | tee $tmp/t.output local gotstatus=${PIPESTATUS[0]} set -o pipefail test $gotstatus != 0 - egrep "$mpat" $tmp/t.output ||false + $grepper -e "$mpat" $tmp/t.output ||false } t-reporefs () { diff --git a/tests/tests/debpolicy-newreject b/tests/tests/debpolicy-newreject index bda8694..82762bb 100755 --- a/tests/tests/debpolicy-newreject +++ b/tests/tests/debpolicy-newreject @@ -45,7 +45,7 @@ t-git-dir-check enoent t-commit 'should require --deliberately...questionable' t-dgit build -t-expect-fail "tag debian/$vanished referred to this object.*all previously pushed versions were found to have been removed" \ +t-expect-fail E:"tag debian/${vanished//./\\.} referred to this object.*all previously pushed versions were found to have been removed" \ t-dgit push --new t-git-dir-check enoent diff --git a/tests/tests/trustingpolicy-replay b/tests/tests/trustingpolicy-replay index 4fc3c17..79674fe 100755 --- a/tests/tests/trustingpolicy-replay +++ b/tests/tests/trustingpolicy-replay @@ -47,7 +47,7 @@ prepare-replay () { t-commit "request with $delib that we will replay" t-dgit build - t-expect-fail "policy-hook.*No such file or directory" \ + t-expect-fail E:'policy-hook.*No such file or directory' \ t-dgit push $delib t-policy dgit-repos-policy-trusting -- cgit v1.2.3