From dfd31745f6ebee0696d67f044085b96e43aa8ee1 Mon Sep 17 00:00:00 2001 From: Jacob Bachmeyer Date: Tue, 29 Nov 2022 22:27:27 -0600 Subject: [PATCH] Add tests for C++ unit test library --- ChangeLog | 6 +++++ Makefile.am | 4 ++- Makefile.in | 41 +++++++++++++++++++++++++--- testsuite/libdejagnu/unit-cxx.cxx | 57 +++++++++++++++++++++++++++++++++++++++ testsuite/libdejagnu/unit.exp | 6 +++-- 5 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 testsuite/libdejagnu/unit-cxx.cxx diff --git a/ChangeLog b/ChangeLog index e7d20b7..30adeb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2022-11-29 Jacob Bachmeyer + * Makefile.in: Regenerate. + * Makefile.am (check_PROGRAMS): Add testsuite/libdejagnu/unit-cxx. + (testsuite_libdejagnu_unit_cxx_SOURCES): Add. + * testsuite/libdejagnu/unit.exp: Add tests for C++ unit test API. + * testsuite/libdejagnu/unit-cxx.cxx: New file. + * dejagnu.h (TestState::totals): Emit header line, like the C version. * dejagnu.h (TestState::note): New method, like C note(). diff --git a/Makefile.am b/Makefile.am index 4ca6097..e073234 100644 --- a/Makefile.am +++ b/Makefile.am @@ -231,9 +231,11 @@ RUNTEST = ${top_srcdir}/runtest AM_CPPFLAGS = -I$(top_srcdir) check_PROGRAMS = unit \ - testsuite/libdejagnu/unit-c + testsuite/libdejagnu/unit-c \ + testsuite/libdejagnu/unit-cxx unit_SOURCES = testsuite/libdejagnu/unit.cc testsuite_libdejagnu_unit_c_SOURCES = testsuite/libdejagnu/unit-c.c +testsuite_libdejagnu_unit_cxx_SOURCES = testsuite/libdejagnu/unit-cxx.cxx # Documentation. diff --git a/Makefile.in b/Makefile.in index efd8195..04b536d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -108,7 +108,8 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -check_PROGRAMS = unit$(EXEEXT) testsuite/libdejagnu/unit-c$(EXEEXT) +check_PROGRAMS = unit$(EXEEXT) testsuite/libdejagnu/unit-c$(EXEEXT) \ + testsuite/libdejagnu/unit-cxx$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -128,6 +129,11 @@ am_testsuite_libdejagnu_unit_c_OBJECTS = \ testsuite_libdejagnu_unit_c_OBJECTS = \ $(am_testsuite_libdejagnu_unit_c_OBJECTS) testsuite_libdejagnu_unit_c_LDADD = $(LDADD) +am_testsuite_libdejagnu_unit_cxx_OBJECTS = \ + testsuite/libdejagnu/unit-cxx.$(OBJEXT) +testsuite_libdejagnu_unit_cxx_OBJECTS = \ + $(am_testsuite_libdejagnu_unit_cxx_OBJECTS) +testsuite_libdejagnu_unit_cxx_LDADD = $(LDADD) am_unit_OBJECTS = testsuite/libdejagnu/unit.$(OBJEXT) unit_OBJECTS = $(am_unit_OBJECTS) unit_LDADD = $(LDADD) @@ -205,8 +211,10 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(testsuite_libdejagnu_unit_c_SOURCES) $(unit_SOURCES) -DIST_SOURCES = $(testsuite_libdejagnu_unit_c_SOURCES) $(unit_SOURCES) +SOURCES = $(testsuite_libdejagnu_unit_c_SOURCES) \ + $(testsuite_libdejagnu_unit_cxx_SOURCES) $(unit_SOURCES) +DIST_SOURCES = $(testsuite_libdejagnu_unit_c_SOURCES) \ + $(testsuite_libdejagnu_unit_cxx_SOURCES) $(unit_SOURCES) AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; @@ -588,6 +596,7 @@ RUNTEST = ${top_srcdir}/runtest AM_CPPFLAGS = -I$(top_srcdir) unit_SOURCES = testsuite/libdejagnu/unit.cc testsuite_libdejagnu_unit_c_SOURCES = testsuite/libdejagnu/unit-c.c +testsuite_libdejagnu_unit_cxx_SOURCES = testsuite/libdejagnu/unit-cxx.cxx # Documentation. TEXINFO_TEX = doc/texinfo.tex @@ -601,7 +610,7 @@ doc_dejagnu_TEXINFOS = doc/fdl.texi all: all-am .SUFFIXES: -.SUFFIXES: .c .cc .dvi .o .obj .ps +.SUFFIXES: .c .cc .cxx .dvi .o .obj .ps am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @@ -651,6 +660,13 @@ testsuite/libdejagnu/unit-c.$(OBJEXT): \ testsuite/libdejagnu/unit-c$(EXEEXT): $(testsuite_libdejagnu_unit_c_OBJECTS) $(testsuite_libdejagnu_unit_c_DEPENDENCIES) $(EXTRA_testsuite_libdejagnu_unit_c_DEPENDENCIES) testsuite/libdejagnu/$(am__dirstamp) @rm -f testsuite/libdejagnu/unit-c$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testsuite_libdejagnu_unit_c_OBJECTS) $(testsuite_libdejagnu_unit_c_LDADD) $(LIBS) +testsuite/libdejagnu/unit-cxx.$(OBJEXT): \ + testsuite/libdejagnu/$(am__dirstamp) \ + testsuite/libdejagnu/$(DEPDIR)/$(am__dirstamp) + +testsuite/libdejagnu/unit-cxx$(EXEEXT): $(testsuite_libdejagnu_unit_cxx_OBJECTS) $(testsuite_libdejagnu_unit_cxx_DEPENDENCIES) $(EXTRA_testsuite_libdejagnu_unit_cxx_DEPENDENCIES) testsuite/libdejagnu/$(am__dirstamp) + @rm -f testsuite/libdejagnu/unit-cxx$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(testsuite_libdejagnu_unit_cxx_OBJECTS) $(testsuite_libdejagnu_unit_cxx_LDADD) $(LIBS) testsuite/libdejagnu/unit.$(OBJEXT): \ testsuite/libdejagnu/$(am__dirstamp) \ testsuite/libdejagnu/$(DEPDIR)/$(am__dirstamp) @@ -737,6 +753,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@testsuite/libdejagnu/$(DEPDIR)/unit-c.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libdejagnu/$(DEPDIR)/unit-cxx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@testsuite/libdejagnu/$(DEPDIR)/unit.Po@am__quote@ .c.o: @@ -770,6 +787,22 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cxx.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cxx.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` doc/$(am__dirstamp): @$(MKDIR_P) doc @: > doc/$(am__dirstamp) diff --git a/testsuite/libdejagnu/unit-cxx.cxx b/testsuite/libdejagnu/unit-cxx.cxx new file mode 100644 index 0000000..fecf550 --- /dev/null +++ b/testsuite/libdejagnu/unit-cxx.cxx @@ -0,0 +1,57 @@ +// Exerciser for Dejagnu C++ unit test support library +// +// Copyright (C) 2022 Free Software Foundation, Inc. +// +// This file is part of DejaGnu. +// +// DejaGnu 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. +// +// DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation, +// Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. +// +// This file was written by Jacob Bachmeyer. + +#include +#include + +#include "dejagnu.h" + +TestState DGT; + +int +main(int argc, char ** argv) +{ + if (argc < 2) { + std::cerr <<"usage: " <..."<