1# Copyright (C) 2002-2021 Free Software Foundation, Inc. 2# 3# This file is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with GCC; see the file COPYING3. If not see 15# <http://www.gnu.org/licenses/>. 16 17# Based on gcc/testsuite/gcc.dg/dg.exp. 18 19# Don't run these tests unless an environment variable is defined. 20if { ![info exists env(CHECK_TEST_FRAMEWORK)] } { 21 verbose "skipping test framework tests, CHECK_TEST_FRAMEWORK is not defined" 0 22 return 23} 24 25load_lib gcc-dg.exp 26load_lib scanasm.exp 27 28proc dg-require-true { args } { 29 verbose "dg-require-true" 2 30} 31 32proc dg-require-false { args } { 33 verbose "dg-require-false" 2 34 upvar dg-do-what dg-do-what 35 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] 36} 37 38proc check_effective_target_yes { args } { 39 return 1 40} 41 42proc check_effective_target_no { args } { 43 return 0 44} 45 46proc check_effective_target_def_nocache { } { 47 return [check_no_compiler_messages_nocache def_nocache object { 48 #ifdef DEFINED 49 int dummy; 50 #else 51 #error DEFINED is not defined 52 #endif 53 } [current_compiler_flags]] 54} 55 56global dg-do-what-default 57set save-dg-do-what-default ${dg-do-what-default} 58set dg-do-what-default compile 59 60dg-init 61 62# Run tests from the source directory. 63dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dg-*.S $srcdir/$subdir/dg-*.c]] "" "" 64 65# Skip generated tests unless CHECK_TEST_FRAMEWORK is 1. 66if { $env(CHECK_TEST_FRAMEWORK) != 1 } { 67 verbose "skipping generated test framework tests, CHECK_TEST_FRAMEWORK is not 1" 0 68 return 69} 70 71# Generate additional tests. 72set tstobjdir "$tmpdir/gcc.test-framework" 73set generator "$srcdir/$subdir/gen_directive_tests" 74file delete -force $tstobjdir 75file mkdir $tstobjdir 76set status [remote_exec host "$generator $tstobjdir"] 77set status [lindex $status 0] 78if { $status == 0 } { 79 # Run the generated tests. 80 dg-runtest [lsort [find $tstobjdir *.c]] "" "-DY1 -DY2" 81} else { 82 warning "Could not generate test framework tests" 83} 84 85dg-finish 86set dg-do-what-default ${save-dg-do-what-default} 87