| # Copyright (C) 2002-2022 Free Software Foundation, Inc. |
| # |
| # This file 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. |
| # |
| # 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 GCC; see the file COPYING3. If not see |
| # <http://www.gnu.org/licenses/>. |
| |
| # Based on gcc/testsuite/gcc.dg/dg.exp. |
| |
| # Don't run these tests unless an environment variable is defined. |
| if { ![info exists env(CHECK_TEST_FRAMEWORK)] } { |
| verbose "skipping test framework tests, CHECK_TEST_FRAMEWORK is not defined" 0 |
| return |
| } |
| |
| load_lib gcc-dg.exp |
| load_lib scanasm.exp |
| |
| proc dg-require-true { args } { |
| verbose "dg-require-true" 2 |
| } |
| |
| proc dg-require-false { args } { |
| verbose "dg-require-false" 2 |
| upvar dg-do-what dg-do-what |
| set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] |
| } |
| |
| proc check_effective_target_yes { args } { |
| return 1 |
| } |
| |
| proc check_effective_target_no { args } { |
| return 0 |
| } |
| |
| proc check_effective_target_def_nocache { } { |
| return [check_no_compiler_messages_nocache def_nocache object { |
| #ifdef DEFINED |
| int dummy; |
| #else |
| #error DEFINED is not defined |
| #endif |
| } [current_compiler_flags]] |
| } |
| |
| global dg-do-what-default |
| set save-dg-do-what-default ${dg-do-what-default} |
| set dg-do-what-default compile |
| |
| dg-init |
| |
| # Run tests from the source directory. |
| dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dg-*.S $srcdir/$subdir/dg-*.c]] "" "" |
| |
| # Skip generated tests unless CHECK_TEST_FRAMEWORK is 1. |
| if { $env(CHECK_TEST_FRAMEWORK) != 1 } { |
| verbose "skipping generated test framework tests, CHECK_TEST_FRAMEWORK is not 1" 0 |
| return |
| } |
| |
| # Generate additional tests. |
| set tstobjdir "$tmpdir/gcc.test-framework" |
| set generator "$srcdir/$subdir/gen_directive_tests" |
| file delete -force $tstobjdir |
| file mkdir $tstobjdir |
| set status [remote_exec host "$generator $tstobjdir"] |
| set status [lindex $status 0] |
| if { $status == 0 } { |
| # Run the generated tests. |
| dg-runtest [lsort [find $tstobjdir *.c]] "" "-DY1 -DY2" |
| } else { |
| warning "Could not generate test framework tests" |
| } |
| |
| dg-finish |
| set dg-do-what-default ${save-dg-do-what-default} |