1# Copyright (C) 2002-2018 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 26 27proc dg-require-true { args } { 28 verbose "dg-require-true" 2 29} 30 31proc dg-require-false { args } { 32 verbose "dg-require-false" 2 33 upvar dg-do-what dg-do-what 34 set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] 35} 36 37proc check_effective_target_yes { args } { 38 return 1 39} 40 41proc check_effective_target_no { args } { 42 return 0 43} 44 45proc check_effective_target_def_nocache { } { 46 return [check_no_compiler_messages_nocache def_nocache object { 47 #ifdef DEFINED 48 int dummy; 49 #else 50 #error DEFINED is not defined 51 #endif 52 } [current_compiler_flags]] 53} 54 55global dg-do-what-default 56set save-dg-do-what-default ${dg-do-what-default} 57set dg-do-what-default compile 58 59dg-init 60 61# Run tests from the source directory. 62dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dg-*.c]] "" "" 63 64# Skip generated tests unless CHECK_TEST_FRAMEWORK is 1. 65if { $env(CHECK_TEST_FRAMEWORK) != 1 } { 66 verbose "skipping generated test framework tests, CHECK_TEST_FRAMEWORK is not 1" 0 67 return 68} 69 70# Generate additional tests. 71set tstobjdir "$tmpdir/gcc.test-framework" 72set generator "$srcdir/$subdir/gen_directive_tests" 73file delete -force $tstobjdir 74file mkdir $tstobjdir 75set status [remote_exec host "$generator $tstobjdir"] 76set status [lindex $status 0] 77if { $status == 0 } { 78 # Run the generated tests. 79 dg-runtest [lsort [find $tstobjdir *.c]] "" "-DY1 -DY2" 80} else { 81 warning "Could not generate test framework tests" 82} 83 84dg-finish 85set dg-do-what-default ${save-dg-do-what-default} 86