mirror of https://gitee.com/Nocallback/dejagnu.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.5 KiB
78 lines
2.5 KiB
# Copyright (C) 1995-2016, 2018, 2020 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of DejaGnu.
|
|
#
|
|
# DejaGnu 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 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
# This file tests handling of fatal errors in testcases.
|
|
# The way we do this is to recursively invoke ourselves on a small testsuite
|
|
# and analyze the results.
|
|
|
|
load_lib util-defs.exp
|
|
|
|
if {![info exists tmpdir]} {
|
|
set tmpdir [testsuite file -object -top tmpdir]
|
|
}
|
|
|
|
set fd [open abort-init.exp w]
|
|
puts $fd "set srcdir [testsuite file -source -test abort]"
|
|
puts $fd "set objdir [testsuite file -object -test abort]"
|
|
puts $fd "set tmpdir $tmpdir"
|
|
close $fd
|
|
|
|
if {![file isdirectory $tmpdir]} {
|
|
catch "file mkdir $tmpdir"
|
|
}
|
|
|
|
if {![file isdirectory [testsuite file -object -test abort]]} {
|
|
catch {file mkdir [testsuite file -object -test abort]}
|
|
}
|
|
|
|
set tests {
|
|
{ "run only simple test"
|
|
"simple.exp"
|
|
"PASS: simple test.*\
|
|
*expected passes\[ \t\]+1\n" }
|
|
{ "abort on undefined command"
|
|
"abort-undef.exp"
|
|
"PASS: running abort-undef.exp.*\
|
|
*UNRESOLVED: .* aborted at call to unknown command.*\
|
|
*expected passes\[ \t\]+1\n.*unresolved testcases\[ \t\]+1\n" }
|
|
{ "stop at abort without --keep_going"
|
|
"abort-undef.exp simple.exp"
|
|
"PASS: running abort-undef.exp.*\
|
|
*UNRESOLVED: .* aborted at call to unknown command.*\
|
|
*expected passes\[ \t\]+1\n.*unresolved testcases\[ \t\]+1\n" }
|
|
{ "continue after abort with --keep_going"
|
|
"--keep_going abort-undef.exp simple.exp"
|
|
"PASS: running abort-undef.exp.*\
|
|
*UNRESOLVED: .* aborted at call to unknown command.*\
|
|
*PASS: simple test.*\
|
|
*expected passes\[ \t\]+2\n.*unresolved testcases\[ \t\]+1\n" }
|
|
}
|
|
|
|
foreach t $tests {
|
|
if [util_test $RUNTEST \
|
|
"--local_init abort-init.exp\
|
|
--outdir $tmpdir -a [lindex $t 1]" \
|
|
"" \
|
|
[lindex $t 2]] {
|
|
fail [lindex $t 0]
|
|
} else {
|
|
pass [lindex $t 0]
|
|
}
|
|
}
|
|
|
|
file delete -force $tmpdir
|
|
|