From 0abc6d284f4e8aabbea2ab78e43d4e900a6dcfbc Mon Sep 17 00:00:00 2001 From: Rob Savoye Date: Fri, 4 May 2001 05:25:59 +0000 Subject: [PATCH] * testsuite/libdejagnu: New directory for dejagnu library test cases. * testsuite/libdejagnu/unit.cc: Test case for dejagnu.h. * testsuite/libdejagnu/tunit.exp: Test driver for dejagnu.h. * testsuite/libdejagnu/Makefile.am: New makefile to build the test case. * testsuite/libdejagnu/Makefile.in: Generated. * testsuite/Makefile.am: Add libdejagnu to SUBDIRS. Replace the site.exp rule, cause we don't want the $tool setting, so we run all the test suites. Don't pass the tool name for "make check". * configure.in: Add testsuite/libdejagnu/Makefile to AC_OUTPUT. --- ChangeLog | 26 +++ configure.in | 6 +- testsuite/Makefile.am | 21 +- testsuite/Makefile.in | 192 +++++++++++++---- testsuite/libdejagnu/Makefile.am | 10 + testsuite/libdejagnu/Makefile.in | 342 ++++++++++++++++++++++++++++++ testsuite/libdejagnu/tunit.exp | 46 ++++ testsuite/libdejagnu/unit.cc | 114 ++++++++++ testsuite/runtest.all/options.exp | 2 - 9 files changed, 711 insertions(+), 48 deletions(-) create mode 100644 testsuite/libdejagnu/Makefile.am create mode 100644 testsuite/libdejagnu/Makefile.in create mode 100644 testsuite/libdejagnu/tunit.exp create mode 100644 testsuite/libdejagnu/unit.cc diff --git a/ChangeLog b/ChangeLog index 60b2abd..ba983a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2001-05-03 Rob Savoye + + * testsuite/libdejagnu: New directory for dejagnu library test + cases. + * testsuite/libdejagnu/unit.cc: Test case for dejagnu.h. + * testsuite/libdejagnu/tunit.exp: Test driver for dejagnu.h. + * testsuite/libdejagnu/Makefile.am: New makefile to build the test + case. + * testsuite/libdejagnu/Makefile.in: Generated. + * testsuite/Makefile.am: Add libdejagnu to SUBDIRS. Replace the + site.exp rule, cause we don't want the $tool setting, so we run + all the test suites. Don't pass the tool name for "make check". + * configure.in: Add testsuite/libdejagnu/Makefile to AC_OUTPUT. + +2001-05-02 Rob Savoye + + * Makefile.am: Rename dist2 to tarball target. Fix the version + number to have the minor release too. + * doc/Makefile.am: Convert all paths from relative to absolute, + cause not all verions of the db2* tools can work with a relative + path. + * redhat/dejagnu.spec: Update version number, and install + dejagnu.h. + * debian/changelog: Update version number. + * debian/rules: and install dejagnu.h + 2001-05-01 Matt Hiller * lib/libgloss.exp (get_multilibs): Correction to Catherine diff --git a/configure.in b/configure.in index a7de1e7..a857b63 100644 --- a/configure.in +++ b/configure.in @@ -4,11 +4,12 @@ AC_INIT(runtest.exp) dnl AC_CONFIG_AUX_DIR(..) dnl These are required by automake -AM_INIT_AUTOMAKE(dejagnu, 1.4.0) +AM_INIT_AUTOMAKE(dejagnu, 1.4.1) AM_MAINTAINER_MODE AC_PROG_MAKE_SET AC_PROG_CC +AC_PROG_CXX AC_PROG_INSTALL AC_EXEEXT @@ -26,5 +27,6 @@ AC_SUBST(CONFIG) AC_CONFIG_SUBDIRS(example/calc) -AC_OUTPUT(Makefile doc/Makefile testsuite/Makefile example/Makefile) +AC_OUTPUT(Makefile doc/Makefile testsuite/Makefile example/Makefile +testsuite/libdejagnu/Makefile) diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index c705f37..bbe2dbc 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = dejagnu -all: +all: site.exp @echo "Nothing to be done for all" RUNTEST = ` \ @@ -10,5 +10,22 @@ RUNTEST = ` \ echo ${top_srcdir}/runtest$(EXEEXT) ; \ else echo "ERROR: runtest not found" ; exit 1; fi` -RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $$srcdir +RUNTESTDEFAULTFLAGS = --srcdir $$srcdir CLEANFILES = *.log *.sum site.bak setval.tmp + +SUBDIRS = libdejagnu + +site.exp: Makefile + @echo 'Making a new site.exp file...' + @test ! -f site.bak || rm -f site.bak + @echo '## these variables are automatically generated by make ##' > $@-t + @echo '# Do not edit here. If you wish to override these values' >> $-t + @echo '# edit the last section' >> $@-t + @echo 'set srcdir $(srcdir)' >> $@-t + @echo 'set objdir' `pwd` >> $@-t + @echo 'set tmpdir tmpdir' >> $@-t + @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t + @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t + @test ! -f site.exp || mv site.exp site.bak + @mv $@-t site.exp + diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index 21f9c9a..0bb6749 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -60,6 +60,7 @@ POST_UNINSTALL = : BOARDS = @BOARDS@ CC = @CC@ CONFIG = @CONFIG@ +CXX = @CXX@ DOCBOOK = @DOCBOOK@ EXEEXT = @EXEEXT@ MAINT = @MAINT@ @@ -74,8 +75,10 @@ AUTOMAKE_OPTIONS = dejagnu RUNTEST = ` if [ -f ${top_srcdir}/runtest$(EXEEXT) ] ; then echo ${top_srcdir}/runtest$(EXEEXT) ; else echo "ERROR: runtest not found" ; exit 1; fi` -RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $$srcdir +RUNTESTDEFAULTFLAGS = --srcdir $$srcdir CLEANFILES = *.log *.sum site.bak setval.tmp + +SUBDIRS = libdejagnu mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_COMMON = Makefile.am Makefile.in @@ -83,7 +86,7 @@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best EXPECT = expect all: all-redirect @@ -95,9 +98,95 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + tags: TAGS -TAGS: +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) @@ -112,13 +201,23 @@ distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$/$$file $(distdir)/$$file; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done RUNTESTFLAGS = @@ -132,44 +231,32 @@ check-DEJAGNU: site.exp $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ else echo "WARNING: could not find \`runtest'" 1>&2; :;\ fi -site.exp: Makefile - @echo 'Making a new site.exp file...' - @test ! -f site.bak || rm -f site.bak - @echo '## these variables are automatically generated by make ##' > $@-t - @echo '# Do not edit here. If you wish to override these values' >> $@-t - @echo '# edit the last section' >> $@-t - @echo 'set tool $(DEJATOOL)' >> $@-t - @echo 'set srcdir $(srcdir)' >> $@-t - @echo 'set objdir' `pwd` >> $@-t - @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t - @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t - @test ! -f site.exp || mv site.exp site.bak - @mv $@-t site.exp info-am: -info: info-am +info: info-recursive dvi-am: -dvi: dvi-am +dvi: dvi-recursive check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU -check: check-am +check: check-recursive installcheck-am: -installcheck: installcheck-am +installcheck: installcheck-recursive install-exec-am: -install-exec: install-exec-am +install-exec: install-exec-recursive install-data-am: -install-data: install-data-am +install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am +install: install-recursive uninstall-am: -uninstall: uninstall-am +uninstall: uninstall-recursive all-am: Makefile -all-redirect: all-am +all-redirect: all-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: +installdirs: installdirs-recursive +installdirs-am: mostlyclean-generic: @@ -182,35 +269,56 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-tags mostlyclean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-tags clean-generic mostlyclean-am -clean: clean-am +clean: clean-recursive -distclean-am: distclean-generic clean-am +distclean-am: distclean-tags distclean-generic clean-am -distclean: distclean-am +distclean: distclean-recursive -maintainer-clean-am: maintainer-clean-generic distclean-am +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive -.PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \ -check-am installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean -all: +all: site.exp @echo "Nothing to be done for all" +site.exp: Makefile + @echo 'Making a new site.exp file...' + @test ! -f site.bak || rm -f site.bak + @echo '## these variables are automatically generated by make ##' > $@-t + @echo '# Do not edit here. If you wish to override these values' >> $-t + @echo '# edit the last section' >> $@-t + @echo 'set srcdir $(srcdir)' >> $@-t + @echo 'set objdir' `pwd` >> $@-t + @echo 'set tmpdir tmpdir' >> $@-t + @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t + @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t + @test ! -f site.exp || mv site.exp site.bak + @mv $@-t site.exp + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/testsuite/libdejagnu/Makefile.am b/testsuite/libdejagnu/Makefile.am new file mode 100644 index 0000000..e43c76d --- /dev/null +++ b/testsuite/libdejagnu/Makefile.am @@ -0,0 +1,10 @@ +## Process this file with automake to generate Makefile.in + +# AUTOMAKE_OPTIONS = + +CFLAGS = -I$(top_srcdir) + +bin_PROGRAMS = unit + +unit_SOURCES = unit.cc + diff --git a/testsuite/libdejagnu/Makefile.in b/testsuite/libdejagnu/Makefile.in new file mode 100644 index 0000000..288c019 --- /dev/null +++ b/testsuite/libdejagnu/Makefile.in @@ -0,0 +1,342 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# AUTOMAKE_OPTIONS = + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +BOARDS = @BOARDS@ +CC = @CC@ +CONFIG = @CONFIG@ +CXX = @CXX@ +DOCBOOK = @DOCBOOK@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +TCLSH = @TCLSH@ +VERSION = @VERSION@ +tclsh = @tclsh@ + +CFLAGS = -I$(top_srcdir) + +bin_PROGRAMS = unit + +unit_SOURCES = unit.cc +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +bin_PROGRAMS = unit$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +unit_OBJECTS = unit.o +unit_LDADD = $(LDADD) +unit_DEPENDENCIES = +unit_LDFLAGS = +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/unit.P +SOURCES = $(unit_SOURCES) +OBJECTS = $(unit_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .cc .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu testsuite/libdejagnu/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +unit$(EXEEXT): $(unit_OBJECTS) $(unit_DEPENDENCIES) + @rm -f unit$(EXEEXT) + $(CXXLINK) $(unit_LDFLAGS) $(unit_OBJECTS) $(unit_LDADD) $(LIBS) +.cc.o: + $(CXXCOMPILE) -c $< + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = testsuite/libdejagnu + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu testsuite/libdejagnu/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cc + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cc + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/testsuite/libdejagnu/tunit.exp b/testsuite/libdejagnu/tunit.exp new file mode 100644 index 0000000..39841c5 --- /dev/null +++ b/testsuite/libdejagnu/tunit.exp @@ -0,0 +1,46 @@ +load_lib "dejagnu.exp" + +# If tracing has been enabled at the top level, then turn it on here +# too. +if $tracelevel { + strace $tracelevel +} + +# exp_internal -f dbg.log 1 + +# Execute everything in the test subdir so all the output files go there. +cd $subdir + +# Get the size of the module being tested. +set sizes [exe_size "unit"] +if {[lindex $sizes 0] == "-1"} { + perror "Couldn't get the object file size" 0 +} + +# Extract the text section size +set textsize [lindex $sizes 0] + +# Extract the data section size +set datasize [lindex $sizes 1] + +# FIXME: This ultimately needs to be recorded in the testing database, +# which doesn't exist yet. Till then it's kinda bogus, but I figured +# it would be useful having working code to get this data. So we print +# it out, just for the demo aspects. +verbose "Text section size of proctor is 0x$textsize" +verbose "Data section size of proctor is 0x$datasize" + +# Execute the test case, and analyse the output +if { [host_execute "unit"] != "" } { + perror "unit had an execution error" 0 +} + +# All done, back to the top level test directory +cd .. + + + + + + + diff --git a/testsuite/libdejagnu/unit.cc b/testsuite/libdejagnu/unit.cc new file mode 100644 index 0000000..9f070aa --- /dev/null +++ b/testsuite/libdejagnu/unit.cc @@ -0,0 +1,114 @@ +// unit.cc -- This is a test case for the Dejagnu.h classes. + +#include +#include + +#include +#include +#include +#include +#include + +TestState runtest; +TestState test; + +class TestClass1 { +public: + string tname; + unsigned int tnum; +}; + +TestClass1 testClass1, testClass2, testClass3; +TestClass1 *testClassPtr; + +// We have to so this silly crap with renaming the output string, so the generic +// Tcl code that looks for the output state gets confused, and records random +// duplicate messages. +char *os1[] = { + "FAI: ", + "PAS: ", + "UNT: ", + "UNR: " +}; + +char *os2[] = { + "FAILED: ", + "PASSED: ", + "UNTESTED: ", + "UNRESOLVED: " +}; + +int +main (int argc, char *argv[]) { + regex_t regex_pat; + +// char **os2 = outstate; + outstate = os1; + + // Replace the output buffer for cout, so we can examine it to + // see what was displayed. Otherwise, there is no way we can test + // the logging functions completely. + streambuf *sb = cout.rdbuf(); + char bbuuff[5120]; + sb->setbuf(bbuuff, 5120); + + testClass1.tname = "testType1"; + testClass1.tnum = 1; + testClass2.tname = "testType2"; + testClass2.tnum = 2; + testClass3.tname = "testType3"; + testClass3.tnum = 3; + + // Test the pass message + test.pass ("bogus pass message for testing"); + outstate = os2; + if (strncmp(bbuuff, "\tPAS: bogus pass message", 22) == 0) { + runtest.pass ("Pass message"); + } else { + runtest.fail ("Pass message"); + } + + // Test the fail message + outstate = os1; + test.fail ("bogus fail message for testing"); + cout.flush(); + outstate = os2; + if (strncmp(bbuuff, "\tFAI: bogus fail message", 22) == 0) { + runtest.pass ("Fail message"); + } else { + runtest.fail ("Fail message"); + } + + // Test the untested message + outstate = os1; + test.untested ("bogus untested message for testing"); + cout.flush(); + outstate = os2; + if (strncmp(bbuuff, "\tUNT: bogus untested message", 21) == 0) { + runtest.pass ("Untested message"); + } else { + runtest.fail ("Untested message"); + } + + // Test the unresolved message + outstate = os1; + test.unresolved ("bogus unresolved message for testing"); + cout.flush(); + outstate = os2; + if (strncmp(bbuuff, "\tUNR: bogus unresolved message", 21) == 0) { + runtest.pass ("Unresolved message"); + } else { + runtest.fail ("Unresolved message"); + } + + // Make sure we got everything in the totals + regcomp (®ex_pat, "\r\n\t#passed.*#failed.*#untested.*#unresolved", REG_NOSUB|REG_NEWLINE); + if (regexec (®ex_pat, bbuuff, 0, (regmatch_t *)0, 0)) { + runtest.pass ("Totals message"); + } else { + runtest.fail ("Totals message"); + } + +} + + diff --git a/testsuite/runtest.all/options.exp b/testsuite/runtest.all/options.exp index c6ae172..2af9c88 100644 --- a/testsuite/runtest.all/options.exp +++ b/testsuite/runtest.all/options.exp @@ -42,7 +42,6 @@ close $fd set tests { - { "" "WARNING: No tool specified" "No arguments" } { "-v --tool xXx" "Found.*site\..*Loading.*utils\.exp" "Loading library files" } { "-v --tool xXx" "Expect binary is.*Using.*main test driver" "Loading basic packages" } { "--F --tool x" "Illegal Argument \"--F\"" "Bad argument" } @@ -78,7 +77,6 @@ foreach i $tests { set fd [open site.exp w] puts ${fd} "set host_triplet $host_triplet" -puts ${fd} "set tool runtest" puts ${fd} "set srcdir $srcdir" puts ${fd} "set objdir $objdir" puts ${fd} "set tmpdir $objdir/tmpdir"