aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Bachmeyer <jcb@gnu.org>2022-11-29 22:27:27 -0600
committerJacob Bachmeyer <jcb@gnu.org>2022-11-29 22:27:27 -0600
commitdfd31745f6ebee0696d67f044085b96e43aa8ee1 (patch)
treeb2bc51659baeae12f650e19bc7dfbf8294c28fc3
parentebcfc9471dffd3d020d0a62eb049d56e0fff7905 (diff)
Add tests for C++ unit test library
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.am4
-rw-r--r--Makefile.in41
-rw-r--r--testsuite/libdejagnu/unit-cxx.cxx57
-rw-r--r--testsuite/libdejagnu/unit.exp6
5 files changed, 107 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index e7d20b7..30adeb2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2022-11-29 Jacob Bachmeyer <jcb@gnu.org>
+ * 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 <cstring>
+#include <iostream>
+
+#include "dejagnu.h"
+
+TestState DGT;
+
+int
+main(int argc, char ** argv)
+{
+ if (argc < 2) {
+ std::cerr <<"usage: " <<argv[0] <<" <test name>..."<<std::endl
+ <<"see source for details" <<std::endl;
+ return 2;
+ }
+
+ for (int i = 1; i < argc; i++ ) {
+ if (!std::strcmp("pass", argv[i])) DGT.pass("test");
+ else if (!std::strcmp("xpass", argv[i])) DGT.xpass("test");
+ else if (!std::strcmp("fail", argv[i])) DGT.fail("test");
+ else if (!std::strcmp("xfail", argv[i])) DGT.xfail("test");
+ else if (!std::strcmp("untested", argv[i])) DGT.untested("test");
+ else if (!std::strcmp("unresolved", argv[i])) DGT.unresolved("test");
+ else if (!std::strcmp("unsupported", argv[i])) DGT.unsupported("test");
+ else if (!std::strcmp("note", argv[i])) DGT.note("test");
+ else {
+ std::cerr <<argv[0] <<": " <<"unknown test `" <<argv[i] <<"'" <<std::endl;
+ return 2;
+ }
+ }
+
+ return 0;
+}
+
+// EOF
diff --git a/testsuite/libdejagnu/unit.exp b/testsuite/libdejagnu/unit.exp
index 545c7bb..b52a7dc 100644
--- a/testsuite/libdejagnu/unit.exp
+++ b/testsuite/libdejagnu/unit.exp
@@ -125,6 +125,8 @@ proc test_libdejagnu_unit { language tests } {
}
}
-test_libdejagnu_unit c {
- note pass fail xpass xfail untested unresolved unsupported
+foreach language {c cxx} {
+ test_libdejagnu_unit $language {
+ note pass fail xpass xfail untested unresolved unsupported
+ }
}