Browse Source

Add tests for C++ unit test library

master
Jacob Bachmeyer 3 years ago
parent
commit
dfd31745f6
  1. 6
      ChangeLog
  2. 4
      Makefile.am
  3. 41
      Makefile.in
  4. 57
      testsuite/libdejagnu/unit-cxx.cxx
  5. 4
      testsuite/libdejagnu/unit.exp

6
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().

4
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.

41
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)

57
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

4
testsuite/libdejagnu/unit.exp

@ -125,6 +125,8 @@ proc test_libdejagnu_unit { language tests } {
}
}
test_libdejagnu_unit c {
foreach language {c cxx} {
test_libdejagnu_unit $language {
note pass fail xpass xfail untested unresolved unsupported
}
}

Loading…
Cancel
Save