summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-01 20:20:22 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-01 20:20:22 +0000
commitc6dc61594a19045c066852525badc27008f4f778 (patch)
treea0f95ae69cfd718b19b083c95a258e99a23146ad
parente391d57d2d9edfef8f1db29a6cd0d263f70daf60 (diff)
downloadgcc-c6dc61594a19045c066852525badc27008f4f778.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97417 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/testsuite/Makefile.am23
-rw-r--r--libstdc++-v3/testsuite/Makefile.in62
-rw-r--r--libstdc++-v3/testsuite/abi_check.cc3
-rw-r--r--libstdc++-v3/testsuite/libstdc++-abi/abi.exp36
-rw-r--r--libstdc++-v3/testsuite/testsuite_abi.cc4
-rw-r--r--libstdc++-v3/testsuite/testsuite_abi.h2
7 files changed, 76 insertions, 67 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 014eef94ccc..9873fb170d9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index 868e58beeb1..3cfa19b67ed 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -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
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 1353a7a2309..d62b56a1d7b 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -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)
diff --git a/libstdc++-v3/testsuite/abi_check.cc b/libstdc++-v3/testsuite/abi_check.cc
index e0991e7a4da..028db89c93e 100644
--- a/libstdc++-v3/testsuite/abi_check.cc
+++ b/libstdc++-v3/testsuite/abi_check.cc
@@ -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
index 00000000000..12504f940f9
--- /dev/null
+++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp
@@ -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"
diff --git a/libstdc++-v3/testsuite/testsuite_abi.cc b/libstdc++-v3/testsuite/testsuite_abi.cc
index 4b9534fb339..5f6e23ed83b 100644
--- a/libstdc++-v3/testsuite/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/testsuite_abi.cc
@@ -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());
}
diff --git a/libstdc++-v3/testsuite/testsuite_abi.h b/libstdc++-v3/testsuite/testsuite_abi.h
index 2078eb76fa3..e682274951f 100644
--- a/libstdc++-v3/testsuite/testsuite_abi.h
+++ b/libstdc++-v3/testsuite/testsuite_abi.h
@@ -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);