version 1.1.1.1, 2016/10/18 13:28:18
|
version 1.1.1.2, 2023/09/27 11:14:54
|
Line 1
|
Line 1
|
#! /bin/sh |
#! /bin/sh |
# test-driver - basic testsuite driver script. |
# test-driver - basic testsuite driver script. |
|
|
scriptversion=2013-07-13.22; # UTC | scriptversion=2018-03-07.03; # UTC |
|
|
# Copyright (C) 2011-2013 Free Software Foundation, Inc. | # Copyright (C) 2011-2021 Free Software Foundation, Inc. |
# |
# |
# This program is free software; you can redistribute it and/or modify |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# it under the terms of the GNU General Public License as published by |
Line 16 scriptversion=2013-07-13.22; # UTC
|
Line 16 scriptversion=2013-07-13.22; # UTC
|
# GNU General Public License for more details. |
# GNU General Public License for more details. |
# |
# |
# You should have received a copy of the GNU General Public License |
# You should have received a copy of the GNU General Public License |
# along with this program. If not, see <http://www.gnu.org/licenses/>. | # along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
|
# As a special exception to the GNU General Public License, if you |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# distribute this file as part of a program that contains a |
Line 42 print_usage ()
|
Line 42 print_usage ()
|
{ |
{ |
cat <<END |
cat <<END |
Usage: |
Usage: |
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH | test-driver --test-name NAME --log-file PATH --trs-file PATH |
[--expect-failure={yes|no}] [--color-tests={yes|no}] | [--expect-failure {yes|no}] [--color-tests {yes|no}] |
[--enable-hard-errors={yes|no}] [--] | [--enable-hard-errors {yes|no}] [--] |
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] |
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] |
|
|
The '--test-name', '--log-file' and '--trs-file' options are mandatory. |
The '--test-name', '--log-file' and '--trs-file' options are mandatory. |
|
See the GNU Automake documentation for information. |
END |
END |
} |
} |
|
|
Line 103 trap "st=130; $do_exit" 2
|
Line 105 trap "st=130; $do_exit" 2
|
trap "st=141; $do_exit" 13 |
trap "st=141; $do_exit" 13 |
trap "st=143; $do_exit" 15 |
trap "st=143; $do_exit" 15 |
|
|
# Test script is run here. | # Test script is run here. We create the file first, then append to it, |
"$@" >$log_file 2>&1 | # to ameliorate tests themselves also writing to the log file. Our tests |
| # don't, but others can (automake bug#35762). |
| : >"$log_file" |
| "$@" >>"$log_file" 2>&1 |
estatus=$? |
estatus=$? |
|
|
if test $enable_hard_errors = no && test $estatus -eq 99; then |
if test $enable_hard_errors = no && test $estatus -eq 99; then |
estatus=1 | tweaked_estatus=1 |
| else |
| tweaked_estatus=$estatus |
fi |
fi |
|
|
case $estatus:$expect_failure in | case $tweaked_estatus:$expect_failure in |
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; |
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; |
0:*) col=$grn res=PASS recheck=no gcopy=no;; |
0:*) col=$grn res=PASS recheck=no gcopy=no;; |
77:*) col=$blu res=SKIP recheck=no gcopy=yes;; |
77:*) col=$blu res=SKIP recheck=no gcopy=yes;; |
Line 119 case $estatus:$expect_failure in
|
Line 127 case $estatus:$expect_failure in
|
*:*) col=$red res=FAIL recheck=yes gcopy=yes;; |
*:*) col=$red res=FAIL recheck=yes gcopy=yes;; |
esac |
esac |
|
|
|
# Report the test outcome and exit status in the logs, so that one can |
|
# know whether the test passed or failed simply by looking at the '.log' |
|
# file, without the need of also peaking into the corresponding '.trs' |
|
# file (automake bug#11814). |
|
echo "$res $test_name (exit status: $estatus)" >>"$log_file" |
|
|
# Report outcome to console. |
# Report outcome to console. |
echo "${col}${res}${std}: $test_name" |
echo "${col}${res}${std}: $test_name" |
|
|
Line 131 echo ":copy-in-global-log: $gcopy" >> $trs_file
|
Line 145 echo ":copy-in-global-log: $gcopy" >> $trs_file
|
# Local Variables: |
# Local Variables: |
# mode: shell-script |
# mode: shell-script |
# sh-indentation: 2 |
# sh-indentation: 2 |
# eval: (add-hook 'write-file-hooks 'time-stamp) | # eval: (add-hook 'before-save-hook 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-time-zone: "UTC" | # time-stamp-time-zone: "UTC0" |
# time-stamp-end: "; # UTC" |
# time-stamp-end: "; # UTC" |
# End: |
# End: |