diff options
author | Florian Weimer <fweimer@redhat.com> | 2016-12-28 13:37:18 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2016-12-28 13:37:18 +0100 |
commit | 5f0b84379024787bae24ad20e81d26ab2f082389 (patch) | |
tree | 41c4fdcd00da543528b49cfd4c3e5a9489ba7f85 /support/tst-support_record_failure-2.sh | |
parent | 9c30df69c485ba93cdb4428c9bea6da371fb16ef (diff) | |
download | glibc-5f0b84379024787bae24ad20e81d26ab2f082389.tar.gz glibc-5f0b84379024787bae24ad20e81d26ab2f082389.tar.xz glibc-5f0b84379024787bae24ad20e81d26ab2f082389.zip |
support: Add support for delayed test failure reporting
The new functions support_record_failure records a test failure, but does not terminate the process. The macros TEST_VERIFY and TEST_VERIFY_EXIT check that a condition is true.
Diffstat (limited to 'support/tst-support_record_failure-2.sh')
-rw-r--r-- | support/tst-support_record_failure-2.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/support/tst-support_record_failure-2.sh b/support/tst-support_record_failure-2.sh new file mode 100644 index 0000000000..71af382c30 --- /dev/null +++ b/support/tst-support_record_failure-2.sh @@ -0,0 +1,66 @@ +#!/bin/sh +# Test failure recording (with and without --direct). +# Copyright (C) 2016 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# <http://www.gnu.org/licenses/>. */ + +set -e + +common_objpfx=$1; shift +test_program_prefix_before_env=$1; shift +run_program_env=$1; shift +test_program_prefix_after_env=$1; shift + +run_test () { + expected_status="$1" + expected_output="$2" + shift 2 + args="${common_objpfx}support/tst-support_record_failure $*" + echo "running: $args" + set +e + output="$(${test_program_prefix_before_env} \ + ${run_program} ${test_program_prefix_after_env} $args)" + status=$? + set -e + echo " exit status: $status" + if test "$output" != "$expected_output" ; then + echo "error: unexpected ouput: $output" + exit 1 + fi + if test "$status" -ne "$expected_status" ; then + echo "error: exit status $expected_status expected" + exit 1 + fi +} + +different_status () { + direct="$1" + run_test 1 "error: 1 test failures" $direct --status=0 + run_test 1 "error: 1 test failures" $direct --status=1 + run_test 2 "error: 1 test failures" $direct --status=2 + run_test 1 "error: 1 test failures" $direct --status=77 + run_test 2 "FAIL tst-support_record_failure.c:108: not true: false +error: 1 test failures" $direct --test-verify +} + +different_status +different_status --direct + +run_test 1 "FAIL tst-support_record_failure.c:113: not true: false +error: 1 test failures" --test-verify-exit +# --direct does not print the summary error message if exit is called. +run_test 1 "FAIL tst-support_record_failure.c:113: not true: false" \ + --direct --test-verify-exit |