mirror of https://gitee.com/Nocallback/dejagnu.git
Browse Source
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.dejagnu-1.4
9 changed files with 711 additions and 48 deletions
@ -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 |
||||
|
|
||||
@ -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: |
||||
@ -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 .. |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,114 @@ |
|||||
|
// unit.cc -- This is a test case for the Dejagnu.h classes.
|
||||
|
|
||||
|
#include <iostream> |
||||
|
#include <dejagnu.h> |
||||
|
|
||||
|
#include <regex.h> |
||||
|
#include <string> |
||||
|
#include <fstream> |
||||
|
#include <set> |
||||
|
#include <sys/types.h> |
||||
|
|
||||
|
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"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
Loading…
Reference in new issue