* testsuite/Makefile.am (noinst_PROGRAMS): Remove.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Apr 2005 20:20:22 +0000 (20:20 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Apr 2005 20:20:22 +0000 (20:20 +0000)
(site.exp): Write out the path to the baseline file.
(check-abi): Use DejaGNU.
(check-abi-verbose): Remove.
* testsuite/Makefile.in: Regenerated.
* testsuite/abi_check.cc (main): Check the return value from
compare_symbols.
* testsuite/testsuite_abi.cc (compare_symbols): Return a value.
* testsuite/testsuite_abi.h (compare_symbols): Adjust prototype.
* testsuite/libstdc++-abi/abi.exp: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97417 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/Makefile.am
libstdc++-v3/testsuite/Makefile.in
libstdc++-v3/testsuite/abi_check.cc
libstdc++-v3/testsuite/libstdc++-abi/abi.exp [new file with mode: 0644]
libstdc++-v3/testsuite/testsuite_abi.cc
libstdc++-v3/testsuite/testsuite_abi.h

index 014eef9..9873fb1 100644 (file)
@@ -1,3 +1,16 @@
+2005-04-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * testsuite/Makefile.am (noinst_PROGRAMS): Remove.
+       (site.exp): Write out the path to the baseline file.
+       (check-abi): Use DejaGNU.
+       (check-abi-verbose): Remove.
+       * testsuite/Makefile.in: Regenerated.
+       * testsuite/abi_check.cc (main): Check the return value from
+       compare_symbols.
+       * testsuite/testsuite_abi.cc (compare_symbols): Return a value.
+       * testsuite/testsuite_abi.h (compare_symbols): Adjust prototype.
+       * testsuite/libstdc++-abi/abi.exp: New file.
+
 2005-03-31  Chris Jefferson  <chris@bubblescope.net>
 
         * include/tr1/tuple: Support iteration via tuple_iterate.h.
index 868e58b..3cfa19b 100644 (file)
@@ -50,15 +50,6 @@ libv3test_a_SOURCES = \
        testsuite_allocator.cc \
        testsuite_hooks.cc 
 
-## Build support utilities.
-if GLIBCXX_TEST_ABI
-noinst_PROGRAMS = abi_check
-else
-noinst_PROGRAMS =
-endif
-abi_check_SOURCES = abi_check.cc
-abi_check_DEPENDENCIES = libv3test.a
-
 all-local: stamp_wchar stamp_thread
 
 # Enable wchar_t tests if capable.
@@ -104,6 +95,7 @@ site.exp: Makefile
        @echo 'set target_triplet $(target_triplet)' >>site.tmp
        @echo 'set target_triplet $(target_triplet)' >>site.tmp
        @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+       @echo 'set baseline_file "$(baseline_file)"' >> site.tmp
        @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
        @test ! -f site.exp || \
          sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@@ -141,19 +133,10 @@ new-abi-baseline:
 if GLIBCXX_TEST_ABI
 # Use 'new-abi-baseline' to create an initial symbol file.  Then run
 # 'check-abi' to test for changes against that file.
-check-abi: abi_check baseline_symbols current_symbols.txt
-       -@./abi_check --check ./current_symbols.txt ${baseline_file} \
-         2>&1 | tee libstdc++-abi.sum
-       -@cp libstdc++-abi.sum libstdc++-abi.log
-
-check-abi-verbose: abi_check baseline_symbols current_symbols.txt
-       -@./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
-         2>&1 | tee libstdc++-abi.sum
-       -@cp libstdc++-abi.sum libstdc++-abi.log
-
+check-abi: baseline_symbols current_symbols.txt site.exp
+       -@runtest --tool libstdc++ abi.exp
 else
 check-abi:
-check-abi-verbose:
 endif
 
 
index 1353a7a..d62b56a 100644 (file)
@@ -14,8 +14,7 @@
 
 @SET_MAKE@
 
-
-SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
+SOURCES = $(libv3test_a_SOURCES)
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -42,7 +41,6 @@ host_triplet = @host@
 target_triplet = @target@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(top_srcdir)/fragment.am
-@GLIBCXX_TEST_ABI_TRUE@noinst_PROGRAMS = abi_check$(EXEEXT)
 subdir = testsuite
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
@@ -61,10 +59,6 @@ libv3test_a_LIBADD =
 am_libv3test_a_OBJECTS = testsuite_abi.$(OBJEXT) \
        testsuite_allocator.$(OBJEXT) testsuite_hooks.$(OBJEXT)
 libv3test_a_OBJECTS = $(am_libv3test_a_OBJECTS)
-PROGRAMS = $(noinst_PROGRAMS)
-am_abi_check_OBJECTS = abi_check.$(OBJEXT)
-abi_check_OBJECTS = $(am_abi_check_OBJECTS)
-abi_check_LDADD = $(LDADD)
 DEFAULT_INCLUDES = 
 depcomp =
 am__depfiles_maybe =
@@ -74,8 +68,8 @@ LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CXXFLAGS) $(CXXFLAGS)
 CXXLD = $(CXX)
-SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
-DIST_SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
+SOURCES = $(libv3test_a_SOURCES)
+DIST_SOURCES = $(libv3test_a_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DEJATOOL = $(PACKAGE)
@@ -289,8 +283,6 @@ libv3test_a_SOURCES = \
        testsuite_allocator.cc \
        testsuite_hooks.cc 
 
-abi_check_SOURCES = abi_check.cc
-abi_check_DEPENDENCIES = libv3test.a
 
 # Generated lists of files to run.  All of these names are valid make
 # targets, if you wish to generate a list manually.
@@ -364,16 +356,6 @@ libv3test.a: $(libv3test_a_OBJECTS) $(libv3test_a_DEPENDENCIES)
        $(libv3test_a_AR) libv3test.a $(libv3test_a_OBJECTS) $(libv3test_a_LIBADD)
        $(RANLIB) libv3test.a
 
-clean-noinstPROGRAMS:
-       @list='$(noinst_PROGRAMS)'; for p in $$list; do \
-         f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         echo " rm -f $$p $$f"; \
-         rm -f $$p $$f ; \
-       done
-abi_check$(EXEEXT): $(abi_check_OBJECTS) $(abi_check_DEPENDENCIES) 
-       @rm -f abi_check$(EXEEXT)
-       $(CXXLINK) $(abi_check_LDFLAGS) $(abi_check_OBJECTS) $(abi_check_LDADD) $(LIBS)
-
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
 
@@ -495,7 +477,7 @@ distdir: $(DISTFILES)
 check-am: all-am
        $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check-local
 check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) all-local
+all-am: Makefile $(LIBRARIES) all-local
 installdirs:
 install: install-am
 install-exec: install-exec-am
@@ -525,7 +507,7 @@ maintainer-clean-generic:
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
-       clean-noinstPROGRAMS mostlyclean-am
+       mostlyclean-am
 
 distclean: distclean-am
        -rm -f Makefile
@@ -573,16 +555,16 @@ uninstall-am: uninstall-info-am
 
 .PHONY: CTAGS GTAGS all all-am all-local check check-DEJAGNU check-am \
        check-local clean clean-generic clean-libtool \
-       clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \
-       distclean-DEJAGNU distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
-       install-info-am install-man install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-info-am
+       clean-noinstLIBRARIES ctags distclean distclean-DEJAGNU \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags uninstall uninstall-am \
+       uninstall-info-am
 
 
 all-local: stamp_wchar stamp_thread
@@ -616,6 +598,7 @@ site.exp: Makefile
        @echo 'set target_triplet $(target_triplet)' >>site.tmp
        @echo 'set target_triplet $(target_triplet)' >>site.tmp
        @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+       @echo 'set baseline_file "$(baseline_file)"' >> site.tmp
        @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
        @test ! -f site.exp || \
          sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@@ -649,18 +632,9 @@ new-abi-baseline:
 
 # Use 'new-abi-baseline' to create an initial symbol file.  Then run
 # 'check-abi' to test for changes against that file.
-@GLIBCXX_TEST_ABI_TRUE@check-abi: abi_check baseline_symbols current_symbols.txt
-@GLIBCXX_TEST_ABI_TRUE@        -@./abi_check --check ./current_symbols.txt ${baseline_file} \
-@GLIBCXX_TEST_ABI_TRUE@          2>&1 | tee libstdc++-abi.sum
-@GLIBCXX_TEST_ABI_TRUE@        -@cp libstdc++-abi.sum libstdc++-abi.log
-
-@GLIBCXX_TEST_ABI_TRUE@check-abi-verbose: abi_check baseline_symbols current_symbols.txt
-@GLIBCXX_TEST_ABI_TRUE@        -@./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
-@GLIBCXX_TEST_ABI_TRUE@          2>&1 | tee libstdc++-abi.sum
-@GLIBCXX_TEST_ABI_TRUE@        -@cp libstdc++-abi.sum libstdc++-abi.log
-
+@GLIBCXX_TEST_ABI_TRUE@check-abi: baseline_symbols current_symbols.txt site.exp
+@GLIBCXX_TEST_ABI_TRUE@        -@runtest --tool libstdc++ abi.exp
 @GLIBCXX_TEST_ABI_FALSE@check-abi:
-@GLIBCXX_TEST_ABI_FALSE@check-abi-verbose:
 check-script: ${survey_script}
        -@(chmod + ${survey_script}; \
          ${survey_script} 0)
index e0991e7..028db89 100644 (file)
@@ -77,7 +77,8 @@ main(int argc, char** argv)
          cerr << "Cannot read baseline file " << baseline_file << endl;
        exit(1);
        }
-      compare_symbols(baseline_file, test_file, verbose);
+      if (!compare_symbols(baseline_file, test_file, verbose))
+       exit (1);
     }
   
   if (argv1 == "--examine")
diff --git a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp
new file mode 100644 (file)
index 0000000..12504f9
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright (C) 2005 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.  
+
+# If there is no current_symbols.txt file, then skip this test.
+if { ![file exists "current_symbols.txt"] } {
+    return
+}
+
+# Build the support objects.
+v3-build_support
+
+# Build the abi_check program.
+if { [v3_target_compile "$srcdir/abi_check.cc" "abi_check" \
+      "executable" [list "additional_flags=-w"]] != "" } {
+    error "could not compile abi_check.cc"
+}
+
+remote_download "target" $baseline_file "baseline_symbols.txt"
+remote_download "target" "current_symbols.txt" "current_symbols.txt"
+set result [${tool}_load "./abi_check" \
+               [list "--check-verbose" "current_symbols.txt" \
+                    "baseline_symbols.txt"]]
+[lindex $result 0] "abi_check"
index 4b9534f..5f6e23e 100644 (file)
@@ -281,7 +281,7 @@ examine_symbol(const char* name, const char* file)
     { __throw_exception_again; }
 }
 
-void 
+int
 compare_symbols(const char* baseline_file, const char* test_file, 
                bool verbose)
 {
@@ -393,6 +393,8 @@ compare_symbols(const char* baseline_file, const char* test_file,
   cout << "# of incompatible symbols:\t " << incompatible.size() << endl;
   cout << endl;
   cout << "using: " << baseline_file << endl;
+
+  return !(missing_names.size() || incompatible.size());
 }
 
 
index 2078eb7..e682274 100644 (file)
@@ -94,7 +94,7 @@ get_symbol(const std::string& mangled, const symbols& list);
 extern "C" void
 examine_symbol(const char* name, const char* file);
 
-extern "C" void
+extern "C" int
 compare_symbols(const char* baseline_file, const char* test_file, bool verb);