#!/bin/sh # test-driver - basic testsuite driver script. scriptversion=2021-09-20.08 # UTC # Copyright (C) 2011-2020 Free Software Foundation, Inc. # # SPDX-License-Identifier: GPL-2.0-or-later WITH LicenseRef-Automake-exception-2.0 # # 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 # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error() { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage() { cat <&1 | tee $log_file else "$@" --junit-xml $PWD/$junit_file >$log_file 2>&1 fi # Run junit to trs converter script. ./convert-junit-to-trs.py $junit_file >$trs_file estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then tweaked_estatus=1 else tweaked_estatus=$estatus fi case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes ;; 0:*) col=$grn res=PASS recheck=no gcopy=no ;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes ;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes ;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes ;; *:*) col=$red res=FAIL recheck=yes gcopy=yes ;; 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. echo "${col}${res}${std}: $test_name" # Register other relevant test metadata. echo ":global-test-result: $res" >>$trs_file echo ":recheck: $recheck" >>$trs_file echo ":copy-in-global-log: $gcopy" >>$trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: