aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@gcc.gnu.org>2001-05-12 17:49:16 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2001-05-12 17:49:16 +0000
commitc66ce1f5b7295de1c4d43b3fdb702cf038084e7c (patch)
tree5dc49aa2c51e937a2ddeda279b2c34f7599736da /libstdc++-v3
parent70769376dbb084d23630ddac9fbeb07f0ee2d204 (diff)
downloadgcc-c66ce1f5b7295de1c4d43b3fdb702cf038084e7c.zip
gcc-c66ce1f5b7295de1c4d43b3fdb702cf038084e7c.tar.gz
gcc-c66ce1f5b7295de1c4d43b3fdb702cf038084e7c.tar.bz2
testsuite_flags.in: New, simplified interface.
2001-05-11 Benjamin Kosnik <bkoz@redhat.com> * testsuite_flags.in: New, simplified interface. * testsuite/lib/libstdc++-v3-dg.exp: New test harness. * testsuite/libstdc++-v3.dg: Add. * testsuite/libstdc++-v3.dg/dg.exp: Add. From-SVN: r41999
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp132
-rw-r--r--libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp47
2 files changed, 179 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
new file mode 100644
index 0000000..8f2f832
--- /dev/null
+++ b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
@@ -0,0 +1,132 @@
+# Copyright (C) 2001 Free Software Foundation, Inc.
+
+# 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 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Define libstdc++-v3 callbacks for dg.exp.
+
+load_lib dg.exp
+load_lib libgloss.exp
+
+proc libstdc++-v3-init { args } {
+ global srcdir
+ global outdir
+ global blddir
+ global cxx
+ global includes
+ global cxxflags
+
+ set blddir [lookfor_file $outdir libstdc++-v3]
+ set cxx [exec sh ${blddir}/testsuite_flags --build-cxx]
+ set cxxflags [exec sh ${blddir}/testsuite_flags --cxxflags]
+ set includes [exec sh ${blddir}/testsuite_flags --build-includes]
+
+ # By default, we assume we want to run program images.
+ global dg-do-what-default
+ set dg-do-what-default run
+
+ # Copy any required data files.
+ foreach tst [glob -nocomplain "$srcdir/*/*.tst"] {
+ file copy -force $tst $outdir
+ }
+ foreach txt [glob -nocomplain "$srcdir/*/*.txt"] {
+ file copy -force $txt $outdir
+ }
+}
+
+proc libstdc++-v3-dg-test { prog do_what extra_tool_flags } {
+ # Set up the compiler flags, based on what we're going to do.
+
+ switch $do_what {
+ "preprocess" {
+ set compile_type "preprocess"
+ set output_file "[file rootname [file tail $prog]].i"
+ }
+ "compile" {
+ set compile_type "assembly"
+ set output_file "[file rootname [file tail $prog]].s"
+ }
+ "assemble" {
+ set compile_type "object"
+ set output_file "[file rootname [file tail $prog]].o"
+ }
+ "link" {
+ set compile_type "executable"
+ set output_file "a.out"
+ }
+ "run" {
+ set compile_type "executable"
+ # FIXME: "./" is to cope with "." not being in $PATH.
+ # Should this be handled elsewhere?
+ # YES.
+ set output_file "./a.out"
+ # This is the only place where we care if an executable was
+ # created or not. If it was, dg.exp will try to run it.
+ remote_file build delete $output_file;
+ }
+ default {
+ perror "$do_what: not a valid dg-do keyword"
+ return ""
+ }
+ }
+ set options ""
+ if { $extra_tool_flags != "" } {
+ lappend options "additional_flags=$extra_tool_flags"
+ }
+
+ set comp_output [libstdc++-v3_target_compile "$prog" "$output_file" "$compile_type" $options];
+
+ return [list $comp_output $output_file]
+}
+
+
+proc libstdc++-v3_target_compile { source dest type options } {
+ global gluefile
+ global wrap_flags
+ global cxx
+ global cxxflags
+ global includes
+
+ if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+ lappend options "libs=${gluefile}"
+ lappend options "ldflags=${wrap_flags}"
+ }
+
+ set cxx_final $cxx
+ set cxxlibglossflags [libgloss_link_flags]
+ set cxx_final [concat $cxx_final $cxxlibglossflags]
+ set cxx_final [concat $cxx_final $cxxflags]
+ set cxx_final [concat $cxx_final $includes]
+ lappend options "compiler=$cxx_final";
+
+ return [target_compile $source $dest $type $options]
+}
+
+
+proc libstdc++-v3_exit { args } {
+ global gluefile;
+
+ if [info exists gluefile] {
+ file_on_build delete $gluefile;
+ unset gluefile;
+ }
+}
+
+proc libstdc++-v3-finish { } {
+ # do hacks to remove any check-DEJAGNU errors
+set exit_status 0
+set status 0
+#return 0
+}
+
diff --git a/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
new file mode 100644
index 0000000..c5c22c3
--- /dev/null
+++ b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
@@ -0,0 +1,47 @@
+# Copyright (C) 2001 Free Software Foundation, Inc.
+
+# 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 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# libstdc++-v3 testsuite that uses the 'dg.exp' driver.
+
+# Load support procs.
+load_lib libstdc++-v3-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CXXFLAGS
+if ![info exists DEFAULT_CXXFLAGS] then {
+ set DEFAULT_CXXFLAGS " -DDEBUG_ASSERT"
+}
+
+# Initialize 'dg' last or dejagnu exits with an error...
+libstdc++-v3-init
+dg-init
+
+
+## Set ulimits.
+## This should normally be handled on a per-test basis through @xxx@-keywords.
+## The following limit is expressed in kilobytes. For history, have a
+## look at http://gcc.gnu.org/ml/libstdc++/2000-10/msg00029.html
+set maximum-memory-usage 16384
+set shell-ulimit-command ulimit
+remote_exec host ${shell-ulimit-command} "-d ${maximum-memory-usage}"
+remote_exec host ${shell-ulimit-command} "-v ${maximum-memory-usage}"
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/*/*.cc]] \
+ "" $DEFAULT_CXXFLAGS
+
+# All done.
+dg-finish