From 259cf50b213933262b621c6d62a01a15238d4934 Mon Sep 17 00:00:00 2001
From: qdii
Date: Wed, 14 Nov 2012 16:30:25 -0500
Subject: [PATCH 001/218] Added autobuild system
---
AUTHORS | 5 +
ChangeLog | 0
INSTALL | 370 ++++++++++++++++++++++++++++++++++++++++++++++++
Makefile | 96 -------------
Makefile.am | 2 +
NEWS | 0
configure.ac | 33 +++++
src/Makefile.am | 9 ++
8 files changed, 419 insertions(+), 96 deletions(-)
create mode 100644 AUTHORS
create mode 100644 ChangeLog
create mode 100644 INSTALL
delete mode 100644 Makefile
create mode 100644 Makefile.am
create mode 100644 NEWS
create mode 100644 configure.ac
create mode 100644 src/Makefile.am
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1bebc1c
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,5 @@
+ Noel Llopis (llopis@convexhull.com)
+ Charles Nicholson (charles.nicholson@gmail.com)
+
+But they have been unactive for years.
+The maintainer of this fork is Victor Lavaud (victor.lavaud@gmail.com)
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..e69de29
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..6e90e07
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 4f2ea9d..0000000
--- a/Makefile
+++ /dev/null
@@ -1,96 +0,0 @@
-CXX = g++
-CXXFLAGS ?= -g -Wall -W -ansi # -pedantic
-LDFLAGS ?=
-SED = sed
-MV = mv
-RM = rm
-
-.SUFFIXES: .o .cpp
-
-lib = libUnitTest++.a
-test = TestUnitTest++
-
-src = src/AssertException.cpp \
- src/Test.cpp \
- src/Checks.cpp \
- src/TestRunner.cpp \
- src/TestResults.cpp \
- src/TestReporter.cpp \
- src/TestReporterStdout.cpp \
- src/ReportAssert.cpp \
- src/TestList.cpp \
- src/TimeConstraint.cpp \
- src/TestDetails.cpp \
- src/MemoryOutStream.cpp \
- src/DeferredTestReporter.cpp \
- src/DeferredTestResult.cpp \
- src/XmlTestReporter.cpp \
- src/CurrentTest.cpp
-
-ifeq ($(MSYSTEM), MINGW32)
- src += src/Win32/TimeHelpers.cpp
-else
- src += src/Posix/SignalTranslator.cpp \
- src/Posix/TimeHelpers.cpp
-endif
-
-test_src = src/tests/Main.cpp \
- src/tests/TestAssertHandler.cpp \
- src/tests/TestChecks.cpp \
- src/tests/TestUnitTest++.cpp \
- src/tests/TestTest.cpp \
- src/tests/TestTestResults.cpp \
- src/tests/TestTestRunner.cpp \
- src/tests/TestCheckMacros.cpp \
- src/tests/TestTestList.cpp \
- src/tests/TestTestMacros.cpp \
- src/tests/TestTimeConstraint.cpp \
- src/tests/TestTimeConstraintMacro.cpp \
- src/tests/TestMemoryOutStream.cpp \
- src/tests/TestDeferredTestReporter.cpp \
- src/tests/TestXmlTestReporter.cpp \
- src/tests/TestCurrentTest.cpp
-
-objects = $(patsubst %.cpp, %.o, $(src))
-test_objects = $(patsubst %.cpp, %.o, $(test_src))
-dependencies = $(subst .o,.d,$(objects))
-test_dependencies = $(subst .o,.d,$(test_objects))
-
-define make-depend
- $(CXX) $(CXXFLAGS) -M $1 | \
- $(SED) -e 's,\($(notdir $2)\) *:,$(dir $2)\1: ,' > $3.tmp
- $(SED) -e 's/#.*//' \
- -e 's/^[^:]*: *//' \
- -e 's/ *\\$$//' \
- -e '/^$$/ d' \
- -e 's/$$/ :/' $3.tmp >> $3.tmp
- $(MV) $3.tmp $3
-endef
-
-
-all: $(test)
-
-
-$(lib): $(objects)
- @echo Creating $(lib) library...
- @ar cr $(lib) $(objects)
-
-$(test): $(lib) $(test_objects)
- @echo Linking $(test)...
- @$(CXX) $(LDFLAGS) -o $(test) $(test_objects) $(lib)
- @echo Running unit tests...
- @./$(test)
-
-clean:
- -@$(RM) $(objects) $(test_objects) $(dependencies) $(test_dependencies) $(test) $(lib) 2> /dev/null
-
-%.o : %.cpp
- @echo $<
- @$(call make-depend,$<,$@,$(subst .o,.d,$@))
- @$(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp, %.o, $<)
-
-
-ifneq "$(MAKECMDGOALS)" "clean"
--include $(dependencies)
--include $(test_dependencies)
-endif
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..1563f21
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,2 @@
+EXTRA_DIST = docs
+SUBDIRS = src
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..88ab84c
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,33 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([UnitTest++], [1.4], [victor.lavaud@gmail.com])
+AC_CONFIG_SRCDIR([src/TestDetails.cpp])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE()
+LT_INIT()
+
+AC_SUBST([LIBUNITTEST_SO_VERSION], [1:4:0])
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_CC
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_CHECK_HEADERS([sys/time.h unistd.h setjmp.h signal.h cassert cstddef cstdio cstring exception iosfwd iostream sstream string vector])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_CHECK_HEADER_STDBOOL
+AC_C_INLINE
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+AC_CHECK_FUNCS([gettimeofday strstr])
+
+AC_CONFIG_FILES([Makefile
+ src/Makefile])
+AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..c38712e
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,9 @@
+lib_LTLIBRARIES = libUnitTest++.la
+pkgincludedir = $(includedir)/UnitTest++
+nobase_pkginclude_HEADERS = UnitTest++.h Config.h Test.h TestDetails.h TestList.h TestSuite.h TestResults.h TestMacros.h CheckMacros.h TestRunner.h TimeConstraint.h ExecuteTest.h AssertException.h MemoryOutStream.h CurrentTest.h Posix/SignalTranslator.h Checks.h TimeHelpers.h Posix/TimeHelpers.h
+libUnitTest___la_SOURCES = AssertException.cpp Test.cpp Checks.cpp TestRunner.cpp TestResults.cpp TestReporter.cpp TestReporterStdout.cpp ReportAssert.cpp TestList.cpp TimeConstraint.cpp TestDetails.cpp MemoryOutStream.cpp DeferredTestReporter.cpp DeferredTestResult.cpp XmlTestReporter.cpp CurrentTest.cpp Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp
+libUnitTest___la_LDFLAGS = -version-number @LIBUNITTEST_SO_VERSION@
+check_PROGRAMS = TestUnitTest++
+TestUnitTest___SOURCES = tests/Main.cpp tests/TestAssertHandler.cpp tests/TestChecks.cpp tests/TestUnitTest++.cpp tests/TestTest.cpp tests/TestTestResults.cpp tests/TestTestRunner.cpp tests/TestCheckMacros.cpp tests/TestTestList.cpp tests/TestTestMacros.cpp tests/TestTimeConstraint.cpp tests/TestTimeConstraintMacro.cpp tests/TestMemoryOutStream.cpp tests/TestDeferredTestReporter.cpp tests/TestXmlTestReporter.cpp tests/TestCurrentTest.cpp
+TestUnitTest___LDADD = libUnitTest++.la
+TESTS = TestUnitTest++
From 062241c85d063ea1eaa84fa2f17b0cb9a4bdff71 Mon Sep 17 00:00:00 2001
From: Aaron Simmons
Date: Thu, 15 Nov 2012 10:07:33 -0700
Subject: [PATCH 002/218] adding CMakeLists.txt
---
CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..9210fe6
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 2.8.1)
+project(UnitTest++)
+
+# get the main sources
+file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h)
+source_group("" FILES ${SRCS})
+
+# get platform specific sources
+if (WIN32)
+ set(PLAT_DIR Win32)
+else()
+ set(PLAT_DIR Posix)
+endif(WIN32)
+file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
+source_group(${PLAT_DIR} FILES ${PLAT_SRCS})
+
+# create the lib
+add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS})
+set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+include_directories(src)
+
+# build the test runner
+file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h)
+source_group( "" FILES ${TEST_SRCS})
+add_executable(TestUnitTestPP ${TEST_SRCS})
+set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+target_link_libraries(TestUnitTestPP UnitTestPP)
+
+# turn on testing
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
+
+# add the test runner as a test
+add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
+add_dependencies(check TestUnitTestPP)
From d6ba7948236dd832ca22eafbc41ca34806ad2661 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Thu, 13 Dec 2012 23:53:56 -0600
Subject: [PATCH 003/218]
------------------------------------------------------------------------ r204
| cnicholson | 2008-11-15 11:08:34 -0600 (Sat, 15 Nov 2008) | 1 line
fix for VC6 with native dinkumware stl, cstdio doesn't pull in std:: so we redefine it at the top of the file. yuck.
------------------------------------------------------------------------
---
src/TestReporterStdout.cpp | 87 ++++++++++++++++++++------------------
1 file changed, 46 insertions(+), 41 deletions(-)
diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp
index 26cf5bb..563113c 100644
--- a/src/TestReporterStdout.cpp
+++ b/src/TestReporterStdout.cpp
@@ -1,41 +1,46 @@
-#include "TestReporterStdout.h"
-#include
-
-#include "TestDetails.h"
-
-namespace UnitTest {
-
-void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
-{
-#if defined(__APPLE__) || defined(__GNUG__)
- char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
-#else
- char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
-#endif
-
- using namespace std;
- printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
-}
-
-void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
-{
-}
-
-void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
-{
-}
-
-void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
- int const failureCount, float secondsElapsed)
-{
- using namespace std;
-
- if (failureCount > 0)
- printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
- else
- printf("Success: %d tests passed.\n", totalTestCount);
-
- printf("Test time: %.2f seconds.\n", secondsElapsed);
-}
-
-}
+#include "TestReporterStdout.h"
+#include
+
+#include "TestDetails.h"
+
+// cstdio doesn't pull in namespace std on VC6, so we do it here.
+#if defined(_MSC_VER) && (_MSC_VER == 1200)
+ namespace std {}
+#endif
+
+namespace UnitTest {
+
+void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
+{
+#if defined(__APPLE__) || defined(__GNUG__)
+ char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
+#else
+ char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
+#endif
+
+ using namespace std;
+ printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
+}
+
+void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
+{
+}
+
+void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
+{
+}
+
+void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
+ int const failureCount, float secondsElapsed)
+{
+ using namespace std;
+
+ if (failureCount > 0)
+ printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
+ else
+ printf("Success: %d tests passed.\n", totalTestCount);
+
+ printf("Test time: %.2f seconds.\n", secondsElapsed);
+}
+
+}
From 270380845c5ea0605704d809740743c208b695ce Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Fri, 14 Dec 2012 00:17:17 -0600
Subject: [PATCH 004/218]
------------------------------------------------------------------------ r205
| cnicholson | 2009-02-01 22:50:16 -0600 (Sun, 01 Feb 2009) | 2 lines
- TimeHelpers reports fractions of msec, though time constraint is still on integers.
- compile fixes for more strict gcc warnings.
------------------------------------------------------------------------
---
Makefile | 192 +++++++++++++-------------
src/DeferredTestResult.cpp | 50 +++----
src/DeferredTestResult.h | 59 ++++----
src/MemoryOutStream.h | 135 +++++++++---------
src/Posix/TimeHelpers.cpp | 66 ++++-----
src/Posix/TimeHelpers.h | 56 ++++----
src/ReportAssert.cpp | 21 +--
src/TestRunner.cpp | 152 ++++++++++----------
src/TestSuite.h | 28 ++--
src/TimeConstraint.cpp | 58 ++++----
src/Win32/TimeHelpers.cpp | 97 +++++++------
src/Win32/TimeHelpers.h | 96 ++++++-------
src/tests/TestTimeConstraintMacro.cpp | 100 +++++++++-----
13 files changed, 570 insertions(+), 540 deletions(-)
diff --git a/Makefile b/Makefile
index 4f2ea9d..dfae28a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,96 +1,96 @@
-CXX = g++
-CXXFLAGS ?= -g -Wall -W -ansi # -pedantic
-LDFLAGS ?=
-SED = sed
-MV = mv
-RM = rm
-
-.SUFFIXES: .o .cpp
-
-lib = libUnitTest++.a
-test = TestUnitTest++
-
-src = src/AssertException.cpp \
- src/Test.cpp \
- src/Checks.cpp \
- src/TestRunner.cpp \
- src/TestResults.cpp \
- src/TestReporter.cpp \
- src/TestReporterStdout.cpp \
- src/ReportAssert.cpp \
- src/TestList.cpp \
- src/TimeConstraint.cpp \
- src/TestDetails.cpp \
- src/MemoryOutStream.cpp \
- src/DeferredTestReporter.cpp \
- src/DeferredTestResult.cpp \
- src/XmlTestReporter.cpp \
- src/CurrentTest.cpp
-
-ifeq ($(MSYSTEM), MINGW32)
- src += src/Win32/TimeHelpers.cpp
-else
- src += src/Posix/SignalTranslator.cpp \
- src/Posix/TimeHelpers.cpp
-endif
-
-test_src = src/tests/Main.cpp \
- src/tests/TestAssertHandler.cpp \
- src/tests/TestChecks.cpp \
- src/tests/TestUnitTest++.cpp \
- src/tests/TestTest.cpp \
- src/tests/TestTestResults.cpp \
- src/tests/TestTestRunner.cpp \
- src/tests/TestCheckMacros.cpp \
- src/tests/TestTestList.cpp \
- src/tests/TestTestMacros.cpp \
- src/tests/TestTimeConstraint.cpp \
- src/tests/TestTimeConstraintMacro.cpp \
- src/tests/TestMemoryOutStream.cpp \
- src/tests/TestDeferredTestReporter.cpp \
- src/tests/TestXmlTestReporter.cpp \
- src/tests/TestCurrentTest.cpp
-
-objects = $(patsubst %.cpp, %.o, $(src))
-test_objects = $(patsubst %.cpp, %.o, $(test_src))
-dependencies = $(subst .o,.d,$(objects))
-test_dependencies = $(subst .o,.d,$(test_objects))
-
-define make-depend
- $(CXX) $(CXXFLAGS) -M $1 | \
- $(SED) -e 's,\($(notdir $2)\) *:,$(dir $2)\1: ,' > $3.tmp
- $(SED) -e 's/#.*//' \
- -e 's/^[^:]*: *//' \
- -e 's/ *\\$$//' \
- -e '/^$$/ d' \
- -e 's/$$/ :/' $3.tmp >> $3.tmp
- $(MV) $3.tmp $3
-endef
-
-
-all: $(test)
-
-
-$(lib): $(objects)
- @echo Creating $(lib) library...
- @ar cr $(lib) $(objects)
-
-$(test): $(lib) $(test_objects)
- @echo Linking $(test)...
- @$(CXX) $(LDFLAGS) -o $(test) $(test_objects) $(lib)
- @echo Running unit tests...
- @./$(test)
-
-clean:
- -@$(RM) $(objects) $(test_objects) $(dependencies) $(test_dependencies) $(test) $(lib) 2> /dev/null
-
-%.o : %.cpp
- @echo $<
- @$(call make-depend,$<,$@,$(subst .o,.d,$@))
- @$(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp, %.o, $<)
-
-
-ifneq "$(MAKECMDGOALS)" "clean"
--include $(dependencies)
--include $(test_dependencies)
-endif
+CXX = g++
+CXXFLAGS ?= -g -Wall -W -Winline -ansi
+LDFLAGS ?=
+SED = sed
+MV = mv
+RM = rm
+
+.SUFFIXES: .o .cpp
+
+lib = libUnitTest++.a
+test = TestUnitTest++
+
+src = src/AssertException.cpp \
+ src/Test.cpp \
+ src/Checks.cpp \
+ src/TestRunner.cpp \
+ src/TestResults.cpp \
+ src/TestReporter.cpp \
+ src/TestReporterStdout.cpp \
+ src/ReportAssert.cpp \
+ src/TestList.cpp \
+ src/TimeConstraint.cpp \
+ src/TestDetails.cpp \
+ src/MemoryOutStream.cpp \
+ src/DeferredTestReporter.cpp \
+ src/DeferredTestResult.cpp \
+ src/XmlTestReporter.cpp \
+ src/CurrentTest.cpp
+
+ifeq ($(MSYSTEM), MINGW32)
+ src += src/Win32/TimeHelpers.cpp
+else
+ src += src/Posix/SignalTranslator.cpp \
+ src/Posix/TimeHelpers.cpp
+endif
+
+test_src = src/tests/Main.cpp \
+ src/tests/TestAssertHandler.cpp \
+ src/tests/TestChecks.cpp \
+ src/tests/TestUnitTest++.cpp \
+ src/tests/TestTest.cpp \
+ src/tests/TestTestResults.cpp \
+ src/tests/TestTestRunner.cpp \
+ src/tests/TestCheckMacros.cpp \
+ src/tests/TestTestList.cpp \
+ src/tests/TestTestMacros.cpp \
+ src/tests/TestTimeConstraint.cpp \
+ src/tests/TestTimeConstraintMacro.cpp \
+ src/tests/TestMemoryOutStream.cpp \
+ src/tests/TestDeferredTestReporter.cpp \
+ src/tests/TestXmlTestReporter.cpp \
+ src/tests/TestCurrentTest.cpp
+
+objects = $(patsubst %.cpp, %.o, $(src))
+test_objects = $(patsubst %.cpp, %.o, $(test_src))
+dependencies = $(subst .o,.d,$(objects))
+test_dependencies = $(subst .o,.d,$(test_objects))
+
+define make-depend
+ $(CXX) $(CXXFLAGS) -M $1 | \
+ $(SED) -e 's,\($(notdir $2)\) *:,$(dir $2)\1: ,' > $3.tmp
+ $(SED) -e 's/#.*//' \
+ -e 's/^[^:]*: *//' \
+ -e 's/ *\\$$//' \
+ -e '/^$$/ d' \
+ -e 's/$$/ :/' $3.tmp >> $3.tmp
+ $(MV) $3.tmp $3
+endef
+
+
+all: $(test)
+
+
+$(lib): $(objects)
+ @echo Creating $(lib) library...
+ @ar cr $(lib) $(objects)
+
+$(test): $(lib) $(test_objects)
+ @echo Linking $(test)...
+ @$(CXX) $(LDFLAGS) -o $(test) $(test_objects) $(lib)
+ @echo Running unit tests...
+ @./$(test)
+
+clean:
+ -@$(RM) $(objects) $(test_objects) $(dependencies) $(test_dependencies) $(test) $(lib) 2> /dev/null
+
+%.o : %.cpp
+ @echo $<
+ @$(call make-depend,$<,$@,$(subst .o,.d,$@))
+ @$(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp, %.o, $<)
+
+
+ifneq "$(MAKECMDGOALS)" "clean"
+-include $(dependencies)
+-include $(test_dependencies)
+endif
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index 3cfb8ba..c2daa25 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,25 +1,25 @@
-#include "DeferredTestResult.h"
-#include "Config.h"
-
-namespace UnitTest
-{
-
-DeferredTestResult::DeferredTestResult()
- : suiteName("")
- , testName("")
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
- : suiteName(suite)
- , testName(test)
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-}
+#include "DeferredTestResult.h"
+#include "Config.h"
+
+namespace UnitTest
+{
+
+DeferredTestResult::DeferredTestResult()
+ : suiteName("")
+ , testName("")
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
+ : suiteName(suite)
+ , testName(test)
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+}
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index 9b06346..0484e9f 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,29 +1,30 @@
-#ifndef UNITTEST_DEFERREDTESTRESULT_H
-#define UNITTEST_DEFERREDTESTRESULT_H
-
-#include
-#include
-
-namespace UnitTest
-{
-
-struct DeferredTestResult
-{
- DeferredTestResult();
- DeferredTestResult(char const* suite, char const* test);
-
- std::string suiteName;
- std::string testName;
- std::string failureFile;
-
- typedef std::pair< int, std::string > Failure;
- typedef std::vector< Failure > FailureVec;
- FailureVec failures;
-
- float timeElapsed;
- bool failed;
-};
-
-}
-
-#endif //UNITTEST_DEFERREDTESTRESULT_H
+#ifndef UNITTEST_DEFERREDTESTRESULT_H
+#define UNITTEST_DEFERREDTESTRESULT_H
+
+#include
+#include
+
+namespace UnitTest
+{
+
+struct DeferredTestResult
+{
+ DeferredTestResult();
+ DeferredTestResult(char const* suite, char const* test);
+ ~DeferredTestResult();
+
+ std::string suiteName;
+ std::string testName;
+ std::string failureFile;
+
+ typedef std::pair< int, std::string > Failure;
+ typedef std::vector< Failure > FailureVec;
+ FailureVec failures;
+
+ float timeElapsed;
+ bool failed;
+};
+
+}
+
+#endif //UNITTEST_DEFERREDTESTRESULT_H
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index eb71680..37a4afd 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -1,67 +1,68 @@
-#ifndef UNITTEST_MEMORYOUTSTREAM_H
-#define UNITTEST_MEMORYOUTSTREAM_H
-
-#include "Config.h"
-
-#ifndef UNITTEST_USE_CUSTOM_STREAMS
-
-#include
-
-namespace UnitTest
-{
-
-class MemoryOutStream : public std::ostringstream
-{
-public:
- MemoryOutStream() {}
- char const* GetText() const;
-
-private:
- MemoryOutStream(MemoryOutStream const&);
- void operator =(MemoryOutStream const&);
-
- mutable std::string m_text;
-};
-
-}
-
-#else
-
-#include
-
-namespace UnitTest
-{
-
-class MemoryOutStream
-{
-public:
- explicit MemoryOutStream(int const size = 256);
- ~MemoryOutStream();
-
- char const* GetText() const;
-
- MemoryOutStream& operator << (char const* txt);
- MemoryOutStream& operator << (int n);
- MemoryOutStream& operator << (long n);
- MemoryOutStream& operator << (unsigned long n);
- MemoryOutStream& operator << (float f);
- MemoryOutStream& operator << (double d);
- MemoryOutStream& operator << (void const* p);
- MemoryOutStream& operator << (unsigned int s);
-
- enum { GROW_CHUNK_SIZE = 32 };
- int GetCapacity() const;
-
-private:
- void operator= (MemoryOutStream const&);
- void GrowBuffer(int capacity);
-
- int m_capacity;
- char* m_buffer;
-};
-
-}
-
-#endif
-
-#endif
+#ifndef UNITTEST_MEMORYOUTSTREAM_H
+#define UNITTEST_MEMORYOUTSTREAM_H
+
+#include "Config.h"
+
+#ifndef UNITTEST_USE_CUSTOM_STREAMS
+
+#include
+
+namespace UnitTest
+{
+
+class MemoryOutStream : public std::ostringstream
+{
+public:
+ MemoryOutStream() {}
+ ~MemoryOutStream() {}
+ char const* GetText() const;
+
+private:
+ MemoryOutStream(MemoryOutStream const&);
+ void operator =(MemoryOutStream const&);
+
+ mutable std::string m_text;
+};
+
+}
+
+#else
+
+#include
+
+namespace UnitTest
+{
+
+class MemoryOutStream
+{
+public:
+ explicit MemoryOutStream(int const size = 256);
+ ~MemoryOutStream();
+
+ char const* GetText() const;
+
+ MemoryOutStream& operator << (char const* txt);
+ MemoryOutStream& operator << (int n);
+ MemoryOutStream& operator << (long n);
+ MemoryOutStream& operator << (unsigned long n);
+ MemoryOutStream& operator << (float f);
+ MemoryOutStream& operator << (double d);
+ MemoryOutStream& operator << (void const* p);
+ MemoryOutStream& operator << (unsigned int s);
+
+ enum { GROW_CHUNK_SIZE = 32 };
+ int GetCapacity() const;
+
+private:
+ void operator= (MemoryOutStream const&);
+ void GrowBuffer(int capacity);
+
+ int m_capacity;
+ char* m_buffer;
+};
+
+}
+
+#endif
+
+#endif
diff --git a/src/Posix/TimeHelpers.cpp b/src/Posix/TimeHelpers.cpp
index 039e141..65c6393 100644
--- a/src/Posix/TimeHelpers.cpp
+++ b/src/Posix/TimeHelpers.cpp
@@ -1,33 +1,33 @@
-#include "TimeHelpers.h"
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
-{
- m_startTime.tv_sec = 0;
- m_startTime.tv_usec = 0;
-}
-
-void Timer::Start()
-{
- gettimeofday(&m_startTime, 0);
-}
-
-
-int Timer::GetTimeInMs() const
-{
- struct timeval currentTime;
- gettimeofday(¤tTime, 0);
- int const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
- int const dus = currentTime.tv_usec - m_startTime.tv_usec;
- return dsecs*1000 + dus/1000;
-}
-
-
-void TimeHelpers::SleepMs (int ms)
-{
- usleep(ms * 1000);
-}
-
-}
+#include "TimeHelpers.h"
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+{
+ m_startTime.tv_sec = 0;
+ m_startTime.tv_usec = 0;
+}
+
+void Timer::Start()
+{
+ gettimeofday(&m_startTime, 0);
+}
+
+double Timer::GetTimeInMs() const
+{
+ struct timeval currentTime;
+ gettimeofday(¤tTime, 0);
+
+ double const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
+ double const dus = currentTime.tv_usec - m_startTime.tv_usec;
+
+ return (dsecs * 1000.0) + (dus / 1000.0);
+}
+
+void TimeHelpers::SleepMs(int ms)
+{
+ usleep(ms * 1000);
+}
+
+}
diff --git a/src/Posix/TimeHelpers.h b/src/Posix/TimeHelpers.h
index 290748c..528e62e 100644
--- a/src/Posix/TimeHelpers.h
+++ b/src/Posix/TimeHelpers.h
@@ -1,28 +1,28 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include
-
-namespace UnitTest {
-
-class Timer
-{
-public:
- Timer();
- void Start();
- int GetTimeInMs() const;
-
-private:
- struct timeval m_startTime;
-};
-
-
-namespace TimeHelpers
-{
-void SleepMs (int ms);
-}
-
-
-}
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include
+
+namespace UnitTest {
+
+class Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ struct timeval m_startTime;
+};
+
+
+namespace TimeHelpers
+{
+void SleepMs (int ms);
+}
+
+
+}
+
+#endif
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index f72ea83..c91f4f6 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -1,10 +1,11 @@
-#include "AssertException.h"
-
-namespace UnitTest {
-
-void ReportAssert(char const* description, char const* filename, int lineNumber)
-{
- throw AssertException(description, filename, lineNumber);
-}
-
-}
+#include "ReportAssert.h"
+#include "AssertException.h"
+
+namespace UnitTest {
+
+void ReportAssert(char const* description, char const* filename, int lineNumber)
+{
+ throw AssertException(description, filename, lineNumber);
+}
+
+}
diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp
index 0fc3c21..466265d 100644
--- a/src/TestRunner.cpp
+++ b/src/TestRunner.cpp
@@ -1,76 +1,76 @@
-#include "TestRunner.h"
-#include "TestResults.h"
-#include "TestReporter.h"
-#include "TestReporterStdout.h"
-#include "TimeHelpers.h"
-#include "MemoryOutStream.h"
-
-#include
-
-
-namespace UnitTest {
-
-int RunAllTests()
-{
- TestReporterStdout reporter;
- TestRunner runner(reporter);
- return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
-}
-
-
-TestRunner::TestRunner(TestReporter& reporter)
- : m_reporter(&reporter)
- , m_result(new TestResults(&reporter))
- , m_timer(new Timer)
-{
- m_timer->Start();
-}
-
-TestRunner::~TestRunner()
-{
- delete m_result;
- delete m_timer;
-}
-
-int TestRunner::Finish() const
-{
- float const secondsElapsed = m_timer->GetTimeInMs() / 1000.0f;
- m_reporter->ReportSummary(m_result->GetTotalTestCount(),
- m_result->GetFailedTestCount(),
- m_result->GetFailureCount(),
- secondsElapsed);
-
- return m_result->GetFailureCount();
-}
-
-bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
-{
- using namespace std;
- return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
-}
-
-void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
-{
- CurrentTest::Results() = result;
-
- Timer testTimer;
- testTimer.Start();
-
- result->OnTestStart(curTest->m_details);
-
- curTest->Run();
-
- int const testTimeInMs = testTimer.GetTimeInMs();
- if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
- {
- MemoryOutStream stream;
- stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
- "ms but took " << testTimeInMs << "ms.";
-
- result->OnTestFailure(curTest->m_details, stream.GetText());
- }
-
- result->OnTestFinish(curTest->m_details, testTimeInMs/1000.0f);
-}
-
-}
+#include "TestRunner.h"
+#include "TestResults.h"
+#include "TestReporter.h"
+#include "TestReporterStdout.h"
+#include "TimeHelpers.h"
+#include "MemoryOutStream.h"
+
+#include
+
+
+namespace UnitTest {
+
+int RunAllTests()
+{
+ TestReporterStdout reporter;
+ TestRunner runner(reporter);
+ return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
+}
+
+
+TestRunner::TestRunner(TestReporter& reporter)
+ : m_reporter(&reporter)
+ , m_result(new TestResults(&reporter))
+ , m_timer(new Timer)
+{
+ m_timer->Start();
+}
+
+TestRunner::~TestRunner()
+{
+ delete m_result;
+ delete m_timer;
+}
+
+int TestRunner::Finish() const
+{
+ float const secondsElapsed = m_timer->GetTimeInMs() / 1000.0f;
+ m_reporter->ReportSummary(m_result->GetTotalTestCount(),
+ m_result->GetFailedTestCount(),
+ m_result->GetFailureCount(),
+ secondsElapsed);
+
+ return m_result->GetFailureCount();
+}
+
+bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
+{
+ using namespace std;
+ return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
+}
+
+void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
+{
+ CurrentTest::Results() = result;
+
+ Timer testTimer;
+ testTimer.Start();
+
+ result->OnTestStart(curTest->m_details);
+
+ curTest->Run();
+
+ int const testTimeInMs = testTimer.GetTimeInMs();
+ if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
+ {
+ MemoryOutStream stream;
+ stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
+ "ms but took " << testTimeInMs << "ms.";
+
+ result->OnTestFailure(curTest->m_details, stream.GetText());
+ }
+
+ result->OnTestFinish(curTest->m_details, testTimeInMs/1000.0f);
+}
+
+}
diff --git a/src/TestSuite.h b/src/TestSuite.h
index 70c3309..dd3717e 100644
--- a/src/TestSuite.h
+++ b/src/TestSuite.h
@@ -1,14 +1,14 @@
-#ifndef UNITTEST_TESTSUITE_H
-#define UNITTEST_TESTSUITE_H
-
-namespace UnitTestSuite {
-
- inline char const* GetSuiteName ()
- {
- return "DefaultSuite";
- }
-
-}
-
-#endif
-
+#ifndef UNITTEST_TESTSUITE_H
+#define UNITTEST_TESTSUITE_H
+
+namespace UnitTestSuite {
+
+ inline char const* GetSuiteName ()
+ {
+ return "DefaultSuite";
+ }
+
+}
+
+#endif
+
diff --git a/src/TimeConstraint.cpp b/src/TimeConstraint.cpp
index 20ed5a5..b313be7 100644
--- a/src/TimeConstraint.cpp
+++ b/src/TimeConstraint.cpp
@@ -1,29 +1,29 @@
-#include "TimeConstraint.h"
-#include "TestResults.h"
-#include "MemoryOutStream.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-
-TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
- : m_details(details)
- , m_maxMs(ms)
-{
- m_timer.Start();
-}
-
-TimeConstraint::~TimeConstraint()
-{
- int const totalTimeInMs = m_timer.GetTimeInMs();
- if (totalTimeInMs > m_maxMs)
- {
- MemoryOutStream stream;
- stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
- "ms but took " << totalTimeInMs << "ms.";
-
- UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
- }
-}
-
-}
+#include "TimeConstraint.h"
+#include "TestResults.h"
+#include "MemoryOutStream.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+
+TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
+ : m_details(details)
+ , m_maxMs(ms)
+{
+ m_timer.Start();
+}
+
+TimeConstraint::~TimeConstraint()
+{
+ int const totalTimeInMs = m_timer.GetTimeInMs();
+ if (totalTimeInMs > m_maxMs)
+ {
+ MemoryOutStream stream;
+ stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
+ "ms but took " << totalTimeInMs << "ms.";
+
+ UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
+ }
+}
+
+}
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index 658f002..69d0d88 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -1,50 +1,47 @@
-#include "TimeHelpers.h"
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
- : m_startTime(0)
- , m_threadHandle(::GetCurrentThread())
-{
-#if defined(_MSC_VER) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR?
- typedef unsigned long DWORD_PTR;
-#endif
-
- DWORD_PTR systemMask;
- ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
-
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
-}
-
-void Timer::Start()
-{
- m_startTime = GetTime();
-}
-
-int Timer::GetTimeInMs() const
-{
- __int64 const elapsedTime = GetTime() - m_startTime;
- double const seconds = double(elapsedTime) / double(m_frequency);
- return int(seconds * 1000.0f);
-}
-
-__int64 Timer::GetTime() const
-{
- LARGE_INTEGER curTime;
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceCounter(&curTime);
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
- return curTime.QuadPart;
-}
-
-
-
-void TimeHelpers::SleepMs(int const ms)
-{
- ::Sleep(ms);
-}
-
-}
+#include "TimeHelpers.h"
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+ : m_threadHandle(::GetCurrentThread())
+ , m_startTime(0)
+{
+#if defined(_MSC_VER) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR?
+ typedef unsigned long DWORD_PTR;
+#endif
+
+ DWORD_PTR systemMask;
+ ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+}
+
+void Timer::Start()
+{
+ m_startTime = GetTime();
+}
+
+double Timer::GetTimeInMs() const
+{
+ __int64 const elapsedTime = GetTime() - m_startTime;
+ double const seconds = double(elapsedTime) / double(m_frequency);
+ return seconds * 1000.0;
+}
+
+__int64 Timer::GetTime() const
+{
+ LARGE_INTEGER curTime;
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceCounter(&curTime);
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+ return curTime.QuadPart;
+}
+
+void TimeHelpers::SleepMs(int const ms)
+{
+ ::Sleep(ms);
+}
+
+}
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index f7503f2..088de24 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -1,48 +1,48 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include "../Config.h"
-
-
-#ifdef UNITTEST_MINGW
- #ifndef __int64
- #define __int64 long long
- #endif
-#endif
-
-namespace UnitTest {
-
-class Timer
-{
-public:
- Timer();
- void Start();
- int GetTimeInMs() const;
-
-private:
- __int64 GetTime() const;
-
- void* m_threadHandle;
-
-#if defined(_WIN64)
- unsigned __int64 m_processAffinityMask;
-#else
- unsigned long m_processAffinityMask;
-#endif
-
- __int64 m_startTime;
- __int64 m_frequency;
-};
-
-
-namespace TimeHelpers
-{
-void SleepMs (int ms);
-}
-
-
-}
-
-
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include "../Config.h"
+
+
+#ifdef UNITTEST_MINGW
+ #ifndef __int64
+ #define __int64 long long
+ #endif
+#endif
+
+namespace UnitTest {
+
+class Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ __int64 GetTime() const;
+
+ void* m_threadHandle;
+
+#if defined(_WIN64)
+ unsigned __int64 m_processAffinityMask;
+#else
+ unsigned long m_processAffinityMask;
+#endif
+
+ __int64 m_startTime;
+ __int64 m_frequency;
+};
+
+
+namespace TimeHelpers
+{
+void SleepMs (int ms);
+}
+
+
+}
+
+
+
+#endif
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index c8f0aba..785c6ce 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,35 +1,65 @@
-#include "../UnitTest++.h"
-#include "../TimeHelpers.h"
-
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-namespace {
-
-TEST (TimeConstraintMacroQualifiesNamespace)
-{
- // If this compiles without a "using namespace UnitTest;", all is well.
- UNITTEST_TIME_CONSTRAINT(1);
-}
-
-TEST (TimeConstraintMacroUsesCorrectInfo)
-{
- int testLine = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
- UnitTest::TimeHelpers::SleepMs(20);
- }
-
- using namespace std;
-
- CHECK_EQUAL(1, reporter.testFailedCount);
- CHECK(strstr(reporter.lastFailedFile, __FILE__));
- CHECK_EQUAL(testLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
-}
-
-}
+#include "../UnitTest++.h"
+#include "../TimeHelpers.h"
+
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+namespace {
+
+TEST(TimeConstraintMacroQualifiesNamespace)
+{
+ // If this compiles without a "using namespace UnitTest;", all is well.
+ UNITTEST_TIME_CONSTRAINT(1);
+}
+
+TEST(TimeConstraintMacroUsesCorrectInfo)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
+ UnitTest::TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
+}
+
+TEST(TimeConstraintMacroComparesAgainstPreciseActual)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__;
+
+ // start a new timer and run until we're as little over the 1 msec
+ // threshold as we can achieve; this should guarantee that the "test"
+ // runs in some very small amount of time > 1 msec
+ UnitTest::Timer myTimer;
+ myTimer.Start();
+
+ while (myTimer.GetTimeInMs() < 1.001)
+ UnitTest::TimeHelpers::SleepMs(0);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
+}
+
+}
From d1c51eb71ba1bb07f1ed831b2cd1978e4391e4e9 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Fri, 14 Dec 2012 00:24:48 -0600
Subject: [PATCH 005/218]
------------------------------------------------------------------------ r206
| cnicholson | 2009-02-01 23:09:01 -0600 (Sun, 01 Feb 2009) | 1 line
- apply patch from tracker issue 2528976, VC6 support from Koji Yoshioka
------------------------------------------------------------------------
---
TestUnitTestPP_vs6.dsp | 169 +++++++++++++++++++++++
UnitTestPP_vs6.dsp | 260 +++++++++++++++++++++++++++++++++++
UnitTestPP_vs6.dsw | 44 ++++++
src/DeferredTestReporter.cpp | 57 ++++----
src/DeferredTestReporter.h | 57 ++++----
src/DeferredTestResult.h | 2 +
src/TestRunner.h | 120 ++++++++--------
7 files changed, 591 insertions(+), 118 deletions(-)
create mode 100644 TestUnitTestPP_vs6.dsp
create mode 100644 UnitTestPP_vs6.dsp
create mode 100644 UnitTestPP_vs6.dsw
diff --git a/TestUnitTestPP_vs6.dsp b/TestUnitTestPP_vs6.dsp
new file mode 100644
index 0000000..1ac1a36
--- /dev/null
+++ b/TestUnitTestPP_vs6.dsp
@@ -0,0 +1,169 @@
+# Microsoft Developer Studio Project File - Name="TestUnitTestPP_vs6" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** 編集しないでください **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=TestUnitTestPP_vs6 - Win32 Debug
+!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
+!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
+!MESSAGE
+!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak".
+!MESSAGE
+!MESSAGE NMAKE の実行時に構成を指定できます
+!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
+!MESSAGE
+!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak" CFG="TestUnitTestPP_vs6 - Win32 Debug"
+!MESSAGE
+!MESSAGE 選択可能なビルド モード:
+!MESSAGE
+!MESSAGE "TestUnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Console Application" 用)
+!MESSAGE "TestUnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Console Application" 用)
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "TestUnitTestPP_vs6 - Win32 Release"
+# Name "TestUnitTestPP_vs6 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\src\tests\Main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestAssertHandler.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestCheckMacros.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestChecks.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestCurrentTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestDeferredTestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestMemoryOutStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestMacros.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestResults.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestRunner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestSuite.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTimeConstraint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTimeConstraintMacro.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=".\src\tests\TestUnitTest++.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestXmlTestReporter.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\src\tests\RecordingReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\ScopedCurrentTest.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/UnitTestPP_vs6.dsp b/UnitTestPP_vs6.dsp
new file mode 100644
index 0000000..ee8ce7d
--- /dev/null
+++ b/UnitTestPP_vs6.dsp
@@ -0,0 +1,260 @@
+# Microsoft Developer Studio Project File - Name="UnitTestPP_vs6" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** 編集しないでください **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=UnitTestPP_vs6 - Win32 Debug
+!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
+!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
+!MESSAGE
+!MESSAGE NMAKE /f "UnitTestPP_vs6.mak".
+!MESSAGE
+!MESSAGE NMAKE の実行時に構成を指定できます
+!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
+!MESSAGE
+!MESSAGE NMAKE /f "UnitTestPP_vs6.mak" CFG="UnitTestPP_vs6 - Win32 Debug"
+!MESSAGE
+!MESSAGE 選択可能なビルド モード:
+!MESSAGE
+!MESSAGE "UnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Static Library" 用)
+!MESSAGE "UnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Static Library" 用)
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "UnitTestPP_vs6 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "UnitTestPP_vs6 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "UnitTestPP_vs6 - Win32 Release"
+# Name "UnitTestPP_vs6 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\src\AssertException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Checks.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CurrentTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestResult.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\MemoryOutStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ReportAssert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Test.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestDetails.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporterStdout.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestResults.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestRunner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeConstraint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\XmlTestReporter.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\src\AssertException.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CheckMacros.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Checks.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Config.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CurrentTest.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestResult.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ExecuteTest.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\MemoryOutStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ReportAssert.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Test.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestDetails.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestList.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestMacros.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporterStdout.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestResults.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestRunner.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestSuite.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeConstraint.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeHelpers.h
+# End Source File
+# Begin Source File
+
+SOURCE=".\src\UnitTest++.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\XmlTestReporter.h
+# End Source File
+# End Group
+# Begin Group "Win32"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\Win32\TimeHelpers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Win32\TimeHelpers.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/UnitTestPP_vs6.dsw b/UnitTestPP_vs6.dsw
new file mode 100644
index 0000000..58e105a
--- /dev/null
+++ b/UnitTestPP_vs6.dsw
@@ -0,0 +1,44 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# 警告: このワークスペース ファイル を編集または削除しないでください!
+
+###############################################################################
+
+Project: "TestUnitTestPP_vs6"=".\TestUnitTestPP_vs6.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name UnitTestPP_vs6
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "UnitTestPP_vs6"=".\UnitTestPP_vs6.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index 93dd7d6..ae77b03 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,29 +1,28 @@
-#include "DeferredTestReporter.h"
-#include "TestDetails.h"
-#include "Config.h"
-
-using namespace UnitTest;
-
-void DeferredTestReporter::ReportTestStart(TestDetails const& details)
-{
- m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
-}
-
-void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
-{
- DeferredTestResult& r = m_results.back();
- r.failed = true;
- r.failures.push_back(DeferredTestResult::Failure(details.lineNumber, failure));
- r.failureFile = details.filename;
-}
-
-void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
-{
- DeferredTestResult& r = m_results.back();
- r.timeElapsed = secondsElapsed;
-}
-
-DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
-{
- return m_results;
-}
+#include "DeferredTestReporter.h"
+#include "TestDetails.h"
+
+using namespace UnitTest;
+
+void DeferredTestReporter::ReportTestStart(TestDetails const& details)
+{
+ m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
+}
+
+void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
+{
+ DeferredTestResult& r = m_results.back();
+ r.failed = true;
+ r.failures.push_back(DeferredTestResult::Failure(details.lineNumber, failure));
+ r.failureFile = details.filename;
+}
+
+void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
+{
+ DeferredTestResult& r = m_results.back();
+ r.timeElapsed = secondsElapsed;
+}
+
+DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
+{
+ return m_results;
+}
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index d294169..615a24e 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -1,28 +1,29 @@
-#ifndef UNITTEST_DEFERREDTESTREPORTER_H
-#define UNITTEST_DEFERREDTESTREPORTER_H
-
-#include "TestReporter.h"
-#include "DeferredTestResult.h"
-
-#include
-
-namespace UnitTest
-{
-
-class DeferredTestReporter : public TestReporter
-{
-public:
- virtual void ReportTestStart(TestDetails const& details);
- virtual void ReportFailure(TestDetails const& details, char const* failure);
- virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
-
- typedef std::vector< DeferredTestResult > DeferredTestResultList;
- DeferredTestResultList& GetResults();
-
-private:
- DeferredTestResultList m_results;
-};
-
-}
-
-#endif
+#ifndef UNITTEST_DEFERREDTESTREPORTER_H
+#define UNITTEST_DEFERREDTESTREPORTER_H
+
+#include "TestReporter.h"
+#include "DeferredTestResult.h"
+#include "Config.h"
+
+#include
+
+namespace UnitTest
+{
+
+class DeferredTestReporter : public TestReporter
+{
+public:
+ virtual void ReportTestStart(TestDetails const& details);
+ virtual void ReportFailure(TestDetails const& details, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
+
+ typedef std::vector< DeferredTestResult > DeferredTestResultList;
+ DeferredTestResultList& GetResults();
+
+private:
+ DeferredTestResultList m_results;
+};
+
+}
+
+#endif
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index 0484e9f..d0a1dab 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,6 +1,8 @@
#ifndef UNITTEST_DEFERREDTESTRESULT_H
#define UNITTEST_DEFERREDTESTRESULT_H
+#include "Config.h"
+
#include
#include
diff --git a/src/TestRunner.h b/src/TestRunner.h
index 82cc827..672355d 100644
--- a/src/TestRunner.h
+++ b/src/TestRunner.h
@@ -1,61 +1,59 @@
-#ifndef UNITTEST_TESTRUNNER_H
-#define UNITTEST_TESTRUNNER_H
-
-#include "Test.h"
-#include "TestList.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-class TestReporter;
-class TestResults;
-class Timer;
-
-int RunAllTests();
-
-struct True
-{
- bool operator()(const Test* const) const
- {
- return true;
- }
-};
-
-class TestRunner
-{
-public:
- explicit TestRunner(TestReporter& reporter);
- ~TestRunner();
-
- template
- int RunTestsIf(TestList const& list, char const* suiteName,
- const Predicate& predicate, int maxTestTimeInMs) const
- {
- Test* curTest = list.GetHead();
-
- while (curTest != 0)
- {
- if (IsTestInSuite(curTest,suiteName) && predicate(curTest))
- {
- RunTest(m_result, curTest, maxTestTimeInMs);
- }
-
- curTest = curTest->next;
- }
-
- return Finish();
- }
-
-private:
- TestReporter* m_reporter;
- TestResults* m_result;
- Timer* m_timer;
-
- int Finish() const;
- bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
- void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTRUNNER_H
+#define UNITTEST_TESTRUNNER_H
+
+#include "Test.h"
+#include "TestList.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+class TestReporter;
+class TestResults;
+class Timer;
+
+int RunAllTests();
+
+struct True
+{
+ bool operator()(const Test* const) const
+ {
+ return true;
+ }
+};
+
+class TestRunner
+{
+public:
+ explicit TestRunner(TestReporter& reporter);
+ ~TestRunner();
+
+ template
+ int RunTestsIf(TestList const& list, char const* suiteName,
+ const Predicate& predicate, int maxTestTimeInMs) const
+ {
+ Test* curTest = list.GetHead();
+
+ while (curTest != 0)
+ {
+ if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
+ RunTest(m_result, curTest, maxTestTimeInMs);
+
+ curTest = curTest->next;
+ }
+
+ return Finish();
+ }
+
+private:
+ TestReporter* m_reporter;
+ TestResults* m_result;
+ Timer* m_timer;
+
+ int Finish() const;
+ bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
+ void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
+};
+
+}
+
+#endif
From a3f957c09f99209b54b9b2743bfc97c4fb23703a Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Fri, 14 Dec 2012 00:25:19 -0600
Subject: [PATCH 006/218]
------------------------------------------------------------------------ r207
| llopis | 2009-04-26 19:51:43 -0500 (Sun, 26 Apr 2009) | 2 lines
Updated announcement URL'
------------------------------------------------------------------------
---
docs/UnitTest++.html | 518 +++++++++++++++++++++----------------------
1 file changed, 259 insertions(+), 259 deletions(-)
diff --git a/docs/UnitTest++.html b/docs/UnitTest++.html
index 9eb872d..4af04ec 100644
--- a/docs/UnitTest++.html
+++ b/docs/UnitTest++.html
@@ -1,260 +1,260 @@
-
-
- UnitTest++ in brief
-
-
-UnitTest++ in brief
-Introduction
-This little document serves as bare-bones documentation for UnitTest++.
-
-For background, goals and license details, see:
-
-
-
-The documentation, while sparse, aims to be practical, so it should give you enough info to get started using UnitTest++ as fast as possible.
-
-Building UnitTest++
-Building UnitTest++ will be specific to each platform and build environment, but it should be straightforward.
-
-Building with Visual Studio
-If you are using Visual Studio, go for either of the provided .sln files, depending on version. There are no prefabricated solutions for versions earlier than VS.NET 2003, but we have had reports of people building UnitTest++ with at least VS.NET 2002.
-
-Building with Make
-The bundled makefile is written to build with g++. It also needs sed installed in the path, and to be able to use the mv and rm shell commands. The makefile should be usable on most Posix-like platforms.
-
-Do "make all" to generate a library and test executable. A final build step runs all unit tests to make sure that the result works as expected.
-
-Packaging
-You'll probably want to keep the generated library in a shared space in source control, so you can reuse it for multiple test projects. A redistributable package of UnitTest++ would consist of the generated library file, and all of the header files in UnitTest++/src/ and its per-platform subfolders. The tests directory only contains the unit tests for the library, and need not be included.
-
-Using UnitTest++
-The source code for UnitTest++ comes with a full test suite written using UnitTest++. This is a great place to learn techniques for testing. There is one sample .cpp file: UnitTest++/src/tests/TestUnitTest++.cpp. It covers most of UnitTest++'s features in an easy-to-grasp context, so start there if you want a quick overview of typical usage.
-
-Getting started
-Listed below is a minimal C++ program to run a failing test through UnitTest++.
-
-
- // test.cpp
- #include <UnitTest++.h>
-
- TEST(FailSpectacularly)
- {
- CHECK(false);
- }
-
- int main()
- {
- return UnitTest::RunAllTests();
- }
-
-
-UnitTest++.h is a facade header for UnitTest++, so including that should get you all features of the library. All classes and free functions are placed in namespace UnitTest, so you need to either qualify their full names (as with RunAllTests() in the example) or add a using namespace UnitTest; statement in your .cpp files. Note that any mention of UnitTest++ functions and classes in this document assume that the UnitTest namespace has been opened.
-
-Compiling and linking this program with UnitTest++'s static library into an executable, and running it, will produce the following output (details may vary):
-
-
- .\test.cpp(5): error: Failure in FailSpectacularly: false
- FAILED: 1 out of 1 tests failed (1 failures).
- Test time: 0.00 seconds.
-
-
-UnitTest++ attempts to report every failure in an IDE-friendly format, depending on platform (e.g. you can double-click it in Visual Studio's error list.) The exit code will be the number of failed tests, so that a failed test run always returns a non-zero exit code.
-
-Test macros
-To add a test, simply put the following code in a .cpp file of your choice:
-
-
- TEST(YourTestName)
- {
- }
-
-
-The TEST macro contains enough machinery to turn this slightly odd-looking syntax into legal C++, and automatically register the test in a global list. This test list forms the basis of what is executed by RunAllTests().
-
-If you want to re-use a set of test data for more than one test, or provide setup/teardown for tests, you can use the TEST_FIXTURE macro instead. The macro requires that you pass it a class name that it will instantiate, so any setup and teardown code should be in its constructor and destructor.
-
-
- struct SomeFixture
- {
- SomeFixture() { /* some setup */ }
- ~SomeFixture() { /* some teardown */ }
-
- int testData;
- };
-
- TEST_FIXTURE(SomeFixture, YourTestName)
- {
- int temp = testData;
- }
-
-
-Note how members of the fixture are used as if they are a part of the test, since the macro-generated test class derives from the provided fixture class.
-
-Suite macros
-Tests can be grouped into suites, using the SUITE macro. A suite serves as a namespace for test names, so that the same test name can be used in two difference contexts.
-
-
- SUITE(YourSuiteName)
- {
- TEST(YourTestName)
- {
- }
-
- TEST(YourOtherTestName)
- {
- }
- }
-
-
-This will place the tests into a C++ namespace called YourSuiteName, and make the suite name available to UnitTest++. RunAllTests() can be called for a specific suite name, so you can use this to build named groups of tests to be run together.
-
-Simple check macros
-In test cases, we want to check the results of our system under test. UnitTest++ provides a number of check macros that handle comparison and proper failure reporting.
-
-The most basic variety is the boolean CHECK macro:
-
-
- CHECK(false); // fails
-
-
-It will fail if the boolean expression evaluates to false.
-
-For equality checks, it's generally better to use CHECK_EQUAL:
-
-
- CHECK_EQUAL(10, 20); // fails
- CHECK_EQUAL("foo", "bar"); // fails
-
-
-Note how CHECK_EQUAL is overloaded for C strings, so you don't have to resort to strcmp or similar. There is no facility for case-insensitive comparison or string searches, so you may have to drop down to a plain boolean CHECK with help from the CRT:
-
-
- CHECK(std::strstr("zaza", "az") != 0); // succeeds
-
-
-For floating-point comparison, equality isn't necessarily well-defined , so you should prefer the CHECK_CLOSE macro:
-
-
- CHECK_CLOSE(3.14, 3.1415, 0.01); // succeeds
-
-
-All of the macros are tailored to avoid unintended side-effects, for example:
-
-
- TEST(CheckMacrosHaveNoSideEffects)
- {
- int i = 4;
- CHECK_EQUAL(5, ++i); // succeeds
- CHECK_EQUAL(5, i); // succeeds
- }
-
-
-The check macros guarantee that the ++i expression isn't repeated internally, as demonstrated above.
-
-Array check macros
-There is a set of check macros for array comparison as well:
-
-
- const float oned[2] = { 10, 20 };
- CHECK_ARRAY_EQUAL(oned, oned, 2); // succeeds
- CHECK_ARRAY_CLOSE(oned, oned, 2, 0.00); // succeeds
-
- const float twod[2][3] = { {0, 1, 2}, {2, 3, 4} };
- CHECK_ARRAY2D_CLOSE(twod, twod, 2, 3, 0.00); // succeeds
-
-
-The array equal macro compares elements using operator==, so CHECK_ARRAY_EQUAL won't work for an array of C strings, for example.
-
-The array close macros are similar to the regular CHECK_CLOSE macro, and are really only useful for scalar types, that can be compared in terms of a difference between two array elements.
-
-Note that the one-dimensional array macros work for std::vector as well, as it can be indexed just as a C array.
-
-Exception check macros
-Finally, there's a CHECK_THROW macro, which asserts that its enclosed expression throws the specified type:
-
-
- struct TestException {};
- CHECK_THROW(throw TestException(), TestException); // succeeds
-
-
-UnitTest++ natively catches exceptions if your test code doesn't. So if your code under test throws any exception UnitTest++ will fail the test and report either using the what() method for std::exception derivatives or just a plain message for unknown exception types.
-
-Should your test or code raise an irrecoverable error (an Access Violation on Win32, for example, or a signal on Linux), UnitTest++ will attempt to map them to an exception and fail the test, just as for other unhandled exceptions.
-
-Time constraints
-UnitTest++ can fail a test if it takes too long to complete, using so-called time constraints.
-
-They come in two flavors; local and global time constraints.
-
-Local time constraints are limited to the current scope, like so:
-
-
- TEST(YourTimedTest)
- {
- // Lengthy setup...
-
- {
- UNITTEST_TIME_CONSTRAINT(50);
-
- // Do time-critical stuff
- }
-
- // Lengthy teardown...
- }
-
-
-The test will fail if the "Do time-critical stuff" block takes longer than 50 ms to complete. The time-consuming setup and teardown are not measured, since the time constraint is scope-bound. It's perfectly valid to have multiple local time constraints in the same test, as long as there is only one per block.
-
-A global time constraint, on the other hand, requires that all of the tests in a test run are faster than a specified amount of time. This allows you, when you run a suite of tests, to ask UnitTest++ to fail it entirely if any test exceeds the global constraint. The max time is passed as a parameter to an overload of RunAllTests().
-
-If you want to use a global time constraint, but have one test that is notoriously slow, you can exempt it from inspection by using the UNITTEST_TIME_CONSTRAINT_EXEMPT macro anywhere inside the test body.
-
-
- TEST(NotoriouslySlowTest)
- {
- UNITTEST_TIME_CONSTRAINT_EXEMPT();
-
- // Oh boy, this is going to take a while
- ...
- }
-
-
-Test runners
-The RunAllTests() function has an overload that lets you customize the behavior of the runner, such as global time constraints, custom reporters, which suite to run, etc.
-
-
- int RunAllTests(TestReporter& reporter, TestList const& list, char const* suiteName, int const maxTestTimeInMs);
-
-
-If you attempt to pass custom parameters to RunAllTests(), note that the list parameter should have the value Test::GetTestList().
-
-The parameterless RunAllTests() is a simple wrapper for this one, with sensible defaults.
-
-Example setup
-How to create a new test project varies depending on your environment, but here are some directions on common file structure and usage.
-
-The general idea is that you keep one Main.cpp file with the entry-point which calls RunAllTests().
-
-Then you can simply compile and link new .cpp files at will, typically one per test suite.
-
-
- + ShaverTests/
- |
- +- Main.cpp
- |
- +- TestBrush.cpp
- +- TestEngine.cpp
- +- TestRazor.cpp
-
-
-Each of the Test*.cpp files will contain one or more TEST macro incantations with the associated test code. There are no source-level dependencies between Main.cpp and Test*.cpp, as the TEST macro handles the registration and setup necessary for RunAllTests() to find all tests compiled into the same final executable.
-
-UnitTest++ does not require this structure, even if this is how the library itself does it. As long as your test project contains one or more TESTs and calls RunAllTests() at one point or another, it will be handled by UnitTest++.
-
-It's common to make the generated executable start as a post-build step, so that merely building your test project will run the tests as well. Since the exit code is the count of failures, a failed test will generally break the build, as most build engines will fail a build if any step returns a non-zero exit code.
-
-
+
+
+ UnitTest++ in brief
+
+
+UnitTest++ in brief
+Introduction
+This little document serves as bare-bones documentation for UnitTest++.
+
+For background, goals and license details, see:
+
+
+
+The documentation, while sparse, aims to be practical, so it should give you enough info to get started using UnitTest++ as fast as possible.
+
+Building UnitTest++
+Building UnitTest++ will be specific to each platform and build environment, but it should be straightforward.
+
+Building with Visual Studio
+If you are using Visual Studio, go for either of the provided .sln files, depending on version. There are no prefabricated solutions for versions earlier than VS.NET 2003, but we have had reports of people building UnitTest++ with at least VS.NET 2002.
+
+Building with Make
+The bundled makefile is written to build with g++. It also needs sed installed in the path, and to be able to use the mv and rm shell commands. The makefile should be usable on most Posix-like platforms.
+
+Do "make all" to generate a library and test executable. A final build step runs all unit tests to make sure that the result works as expected.
+
+Packaging
+You'll probably want to keep the generated library in a shared space in source control, so you can reuse it for multiple test projects. A redistributable package of UnitTest++ would consist of the generated library file, and all of the header files in UnitTest++/src/ and its per-platform subfolders. The tests directory only contains the unit tests for the library, and need not be included.
+
+Using UnitTest++
+The source code for UnitTest++ comes with a full test suite written using UnitTest++. This is a great place to learn techniques for testing. There is one sample .cpp file: UnitTest++/src/tests/TestUnitTest++.cpp. It covers most of UnitTest++'s features in an easy-to-grasp context, so start there if you want a quick overview of typical usage.
+
+Getting started
+Listed below is a minimal C++ program to run a failing test through UnitTest++.
+
+
+ // test.cpp
+ #include <UnitTest++.h>
+
+ TEST(FailSpectacularly)
+ {
+ CHECK(false);
+ }
+
+ int main()
+ {
+ return UnitTest::RunAllTests();
+ }
+
+
+UnitTest++.h is a facade header for UnitTest++, so including that should get you all features of the library. All classes and free functions are placed in namespace UnitTest, so you need to either qualify their full names (as with RunAllTests() in the example) or add a using namespace UnitTest; statement in your .cpp files. Note that any mention of UnitTest++ functions and classes in this document assume that the UnitTest namespace has been opened.
+
+Compiling and linking this program with UnitTest++'s static library into an executable, and running it, will produce the following output (details may vary):
+
+
+ .\test.cpp(5): error: Failure in FailSpectacularly: false
+ FAILED: 1 out of 1 tests failed (1 failures).
+ Test time: 0.00 seconds.
+
+
+UnitTest++ attempts to report every failure in an IDE-friendly format, depending on platform (e.g. you can double-click it in Visual Studio's error list.) The exit code will be the number of failed tests, so that a failed test run always returns a non-zero exit code.
+
+Test macros
+To add a test, simply put the following code in a .cpp file of your choice:
+
+
+ TEST(YourTestName)
+ {
+ }
+
+
+The TEST macro contains enough machinery to turn this slightly odd-looking syntax into legal C++, and automatically register the test in a global list. This test list forms the basis of what is executed by RunAllTests().
+
+If you want to re-use a set of test data for more than one test, or provide setup/teardown for tests, you can use the TEST_FIXTURE macro instead. The macro requires that you pass it a class name that it will instantiate, so any setup and teardown code should be in its constructor and destructor.
+
+
+ struct SomeFixture
+ {
+ SomeFixture() { /* some setup */ }
+ ~SomeFixture() { /* some teardown */ }
+
+ int testData;
+ };
+
+ TEST_FIXTURE(SomeFixture, YourTestName)
+ {
+ int temp = testData;
+ }
+
+
+Note how members of the fixture are used as if they are a part of the test, since the macro-generated test class derives from the provided fixture class.
+
+Suite macros
+Tests can be grouped into suites, using the SUITE macro. A suite serves as a namespace for test names, so that the same test name can be used in two difference contexts.
+
+
+ SUITE(YourSuiteName)
+ {
+ TEST(YourTestName)
+ {
+ }
+
+ TEST(YourOtherTestName)
+ {
+ }
+ }
+
+
+This will place the tests into a C++ namespace called YourSuiteName, and make the suite name available to UnitTest++. RunAllTests() can be called for a specific suite name, so you can use this to build named groups of tests to be run together.
+
+Simple check macros
+In test cases, we want to check the results of our system under test. UnitTest++ provides a number of check macros that handle comparison and proper failure reporting.
+
+The most basic variety is the boolean CHECK macro:
+
+
+ CHECK(false); // fails
+
+
+It will fail if the boolean expression evaluates to false.
+
+For equality checks, it's generally better to use CHECK_EQUAL:
+
+
+ CHECK_EQUAL(10, 20); // fails
+ CHECK_EQUAL("foo", "bar"); // fails
+
+
+Note how CHECK_EQUAL is overloaded for C strings, so you don't have to resort to strcmp or similar. There is no facility for case-insensitive comparison or string searches, so you may have to drop down to a plain boolean CHECK with help from the CRT:
+
+
+ CHECK(std::strstr("zaza", "az") != 0); // succeeds
+
+
+For floating-point comparison, equality isn't necessarily well-defined , so you should prefer the CHECK_CLOSE macro:
+
+
+ CHECK_CLOSE(3.14, 3.1415, 0.01); // succeeds
+
+
+All of the macros are tailored to avoid unintended side-effects, for example:
+
+
+ TEST(CheckMacrosHaveNoSideEffects)
+ {
+ int i = 4;
+ CHECK_EQUAL(5, ++i); // succeeds
+ CHECK_EQUAL(5, i); // succeeds
+ }
+
+
+The check macros guarantee that the ++i expression isn't repeated internally, as demonstrated above.
+
+Array check macros
+There is a set of check macros for array comparison as well:
+
+
+ const float oned[2] = { 10, 20 };
+ CHECK_ARRAY_EQUAL(oned, oned, 2); // succeeds
+ CHECK_ARRAY_CLOSE(oned, oned, 2, 0.00); // succeeds
+
+ const float twod[2][3] = { {0, 1, 2}, {2, 3, 4} };
+ CHECK_ARRAY2D_CLOSE(twod, twod, 2, 3, 0.00); // succeeds
+
+
+The array equal macro compares elements using operator==, so CHECK_ARRAY_EQUAL won't work for an array of C strings, for example.
+
+The array close macros are similar to the regular CHECK_CLOSE macro, and are really only useful for scalar types, that can be compared in terms of a difference between two array elements.
+
+Note that the one-dimensional array macros work for std::vector as well, as it can be indexed just as a C array.
+
+Exception check macros
+Finally, there's a CHECK_THROW macro, which asserts that its enclosed expression throws the specified type:
+
+
+ struct TestException {};
+ CHECK_THROW(throw TestException(), TestException); // succeeds
+
+
+UnitTest++ natively catches exceptions if your test code doesn't. So if your code under test throws any exception UnitTest++ will fail the test and report either using the what() method for std::exception derivatives or just a plain message for unknown exception types.
+
+Should your test or code raise an irrecoverable error (an Access Violation on Win32, for example, or a signal on Linux), UnitTest++ will attempt to map them to an exception and fail the test, just as for other unhandled exceptions.
+
+Time constraints
+UnitTest++ can fail a test if it takes too long to complete, using so-called time constraints.
+
+They come in two flavors; local and global time constraints.
+
+Local time constraints are limited to the current scope, like so:
+
+
+ TEST(YourTimedTest)
+ {
+ // Lengthy setup...
+
+ {
+ UNITTEST_TIME_CONSTRAINT(50);
+
+ // Do time-critical stuff
+ }
+
+ // Lengthy teardown...
+ }
+
+
+The test will fail if the "Do time-critical stuff" block takes longer than 50 ms to complete. The time-consuming setup and teardown are not measured, since the time constraint is scope-bound. It's perfectly valid to have multiple local time constraints in the same test, as long as there is only one per block.
+
+A global time constraint, on the other hand, requires that all of the tests in a test run are faster than a specified amount of time. This allows you, when you run a suite of tests, to ask UnitTest++ to fail it entirely if any test exceeds the global constraint. The max time is passed as a parameter to an overload of RunAllTests().
+
+If you want to use a global time constraint, but have one test that is notoriously slow, you can exempt it from inspection by using the UNITTEST_TIME_CONSTRAINT_EXEMPT macro anywhere inside the test body.
+
+
+ TEST(NotoriouslySlowTest)
+ {
+ UNITTEST_TIME_CONSTRAINT_EXEMPT();
+
+ // Oh boy, this is going to take a while
+ ...
+ }
+
+
+Test runners
+The RunAllTests() function has an overload that lets you customize the behavior of the runner, such as global time constraints, custom reporters, which suite to run, etc.
+
+
+ int RunAllTests(TestReporter& reporter, TestList const& list, char const* suiteName, int const maxTestTimeInMs);
+
+
+If you attempt to pass custom parameters to RunAllTests(), note that the list parameter should have the value Test::GetTestList().
+
+The parameterless RunAllTests() is a simple wrapper for this one, with sensible defaults.
+
+Example setup
+How to create a new test project varies depending on your environment, but here are some directions on common file structure and usage.
+
+The general idea is that you keep one Main.cpp file with the entry-point which calls RunAllTests().
+
+Then you can simply compile and link new .cpp files at will, typically one per test suite.
+
+
+ + ShaverTests/
+ |
+ +- Main.cpp
+ |
+ +- TestBrush.cpp
+ +- TestEngine.cpp
+ +- TestRazor.cpp
+
+
+Each of the Test*.cpp files will contain one or more TEST macro incantations with the associated test code. There are no source-level dependencies between Main.cpp and Test*.cpp, as the TEST macro handles the registration and setup necessary for RunAllTests() to find all tests compiled into the same final executable.
+
+UnitTest++ does not require this structure, even if this is how the library itself does it. As long as your test project contains one or more TESTs and calls RunAllTests() at one point or another, it will be handled by UnitTest++.
+
+It's common to make the generated executable start as a post-build step, so that merely building your test project will run the tests as well. Since the exit code is the count of failures, a failed test will generally break the build, as most build engines will fail a build if any step returns a non-zero exit code.
+
+
\ No newline at end of file
From 72c2581719a59d3c8e701cdf08e96c564d82cc56 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:33:51 -0600
Subject: [PATCH 007/218] Renamed files with + in them to be alphanumeric and
baselined to roughly r2 or http://unittestpp.googlecode.com/svn/trunk/
---
Makefile | 2 +-
README | 2 +-
TestUnitTest++.vsnet2003.vcproj | 2 +-
TestUnitTest++.vsnet2005.vcproj | 2 +-
TestUnitTestPP_vs6.dsp | 2 +-
UnitTest++.vsnet2003.vcproj | 2 +-
UnitTest++.vsnet2005.vcproj | 2 +-
UnitTestPP_vs6.dsp | 2 +-
docs/UnitTest++.html | 6 +-
src/DeferredTestReporter.cpp | 56 +++----
src/DeferredTestResult.cpp | 54 ++++---
src/TestRunner.cpp | 152 +++++++++---------
src/TestRunner.h | 118 +++++++-------
src/TestSuite.h | 26 ++-
src/TimeConstraint.cpp | 58 +++----
src/Win32/TimeHelpers.cpp | 94 +++++------
src/tests/Main.cpp | 2 +-
src/tests/TestAssertHandler.cpp | 2 +-
src/tests/TestCheckMacros.cpp | 2 +-
src/tests/TestChecks.cpp | 2 +-
src/tests/TestCurrentTest.cpp | 2 +-
src/tests/TestDeferredTestReporter.cpp | 2 +-
src/tests/TestMemoryOutStream.cpp | 2 +-
src/tests/TestTest.cpp | 2 +-
src/tests/TestTestList.cpp | 2 +-
src/tests/TestTestMacros.cpp | 2 +-
src/tests/TestTestResults.cpp | 2 +-
src/tests/TestTestRunner.cpp | 2 +-
src/tests/TestTestSuite.cpp | 2 +-
src/tests/TestTimeConstraint.cpp | 2 +-
src/tests/TestTimeConstraintMacro.cpp | 2 +-
...{TestUnitTest++.cpp => TestUnitTestPP.cpp} | 2 +-
src/tests/TestXmlTestReporter.cpp | 2 +-
src/{UnitTest++.h => unittestpp.h} | 0
34 files changed, 308 insertions(+), 306 deletions(-)
rename src/tests/{TestUnitTest++.cpp => TestUnitTestPP.cpp} (93%)
rename src/{UnitTest++.h => unittestpp.h} (100%)
diff --git a/Makefile b/Makefile
index dfae28a..0ce613b 100644
--- a/Makefile
+++ b/Makefile
@@ -37,7 +37,7 @@ endif
test_src = src/tests/Main.cpp \
src/tests/TestAssertHandler.cpp \
src/tests/TestChecks.cpp \
- src/tests/TestUnitTest++.cpp \
+ src/tests/TestUnitTestPP.cpp \
src/tests/TestTest.cpp \
src/tests/TestTestResults.cpp \
src/tests/TestTestRunner.cpp \
diff --git a/README b/README
index d1cd35c..187e69b 100644
--- a/README
+++ b/README
@@ -7,7 +7,7 @@ the terms of the License contained in the file COPYING distributed
with this package. This license is the same as the MIT/X Consortium
license.
-See src/tests/TestUnitTest++.cpp for usage.
+See src/tests/TestUnitTestPP.cpp for usage.
Authors:
Noel Llopis (llopis@convexhull.com)
diff --git a/TestUnitTest++.vsnet2003.vcproj b/TestUnitTest++.vsnet2003.vcproj
index 6dcd025..fbc4154 100644
--- a/TestUnitTest++.vsnet2003.vcproj
+++ b/TestUnitTest++.vsnet2003.vcproj
@@ -163,7 +163,7 @@
RelativePath=".\src\tests\TestTimeConstraintMacro.cpp">
+ RelativePath=".\src\tests\TestUnitTestPP.cpp">
diff --git a/TestUnitTest++.vsnet2005.vcproj b/TestUnitTest++.vsnet2005.vcproj
index 25d5ba6..aa8f95b 100644
--- a/TestUnitTest++.vsnet2005.vcproj
+++ b/TestUnitTest++.vsnet2005.vcproj
@@ -243,7 +243,7 @@
>
+ RelativePath=".\src\unittestpp.h">
diff --git a/UnitTest++.vsnet2005.vcproj b/UnitTest++.vsnet2005.vcproj
index 4efb687..9c56365 100644
--- a/UnitTest++.vsnet2005.vcproj
+++ b/UnitTest++.vsnet2005.vcproj
@@ -301,7 +301,7 @@
>
You'll probably want to keep the generated library in a shared space in source control, so you can reuse it for multiple test projects. A redistributable package of UnitTest++ would consist of the generated library file, and all of the header files in UnitTest++/src/ and its per-platform subfolders. The tests directory only contains the unit tests for the library, and need not be included.
Using UnitTest++
-The source code for UnitTest++ comes with a full test suite written using UnitTest++. This is a great place to learn techniques for testing. There is one sample .cpp file: UnitTest++/src/tests/TestUnitTest++.cpp. It covers most of UnitTest++'s features in an easy-to-grasp context, so start there if you want a quick overview of typical usage.
+The source code for UnitTest++ comes with a full test suite written using UnitTest++. This is a great place to learn techniques for testing. There is one sample .cpp file: UnitTest++/src/tests/TestUnitTestPP.cpp. It covers most of UnitTest++'s features in an easy-to-grasp context, so start there if you want a quick overview of typical usage.
Getting started
Listed below is a minimal C++ program to run a failing test through UnitTest++.
// test.cpp
- #include <UnitTest++.h>
+ #include <unittestpp.h>
TEST(FailSpectacularly)
{
@@ -51,7 +51,7 @@
}
-UnitTest++.h is a facade header for UnitTest++, so including that should get you all features of the library. All classes and free functions are placed in namespace UnitTest, so you need to either qualify their full names (as with RunAllTests() in the example) or add a using namespace UnitTest; statement in your .cpp files. Note that any mention of UnitTest++ functions and classes in this document assume that the UnitTest namespace has been opened.
+unittestpp.h is a facade header for UnitTest++, so including that should get you all features of the library. All classes and free functions are placed in namespace UnitTest, so you need to either qualify their full names (as with RunAllTests() in the example) or add a using namespace UnitTest; statement in your .cpp files. Note that any mention of UnitTest++ functions and classes in this document assume that the UnitTest namespace has been opened.
Compiling and linking this program with UnitTest++'s static library into an executable, and running it, will produce the following output (details may vary):
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index ae77b03..fbd08db 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,28 +1,28 @@
-#include "DeferredTestReporter.h"
-#include "TestDetails.h"
-
-using namespace UnitTest;
-
-void DeferredTestReporter::ReportTestStart(TestDetails const& details)
-{
- m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
-}
-
-void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
-{
- DeferredTestResult& r = m_results.back();
- r.failed = true;
- r.failures.push_back(DeferredTestResult::Failure(details.lineNumber, failure));
- r.failureFile = details.filename;
-}
-
-void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
-{
- DeferredTestResult& r = m_results.back();
- r.timeElapsed = secondsElapsed;
-}
-
-DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
-{
- return m_results;
-}
+#include "DeferredTestReporter.h"
+#include "TestDetails.h"
+
+using namespace UnitTest;
+
+void DeferredTestReporter::ReportTestStart(TestDetails const& details)
+{
+ m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
+}
+
+void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
+{
+ DeferredTestResult& r = m_results.back();
+ r.failed = true;
+ r.failures.push_back(DeferredTestResult::Failure(details.lineNumber, failure));
+ r.failureFile = details.filename;
+}
+
+void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
+{
+ DeferredTestResult& r = m_results.back();
+ r.timeElapsed = secondsElapsed;
+}
+
+DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
+{
+ return m_results;
+}
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index c2daa25..944f894 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,25 +1,29 @@
-#include "DeferredTestResult.h"
-#include "Config.h"
-
-namespace UnitTest
-{
-
-DeferredTestResult::DeferredTestResult()
- : suiteName("")
- , testName("")
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
- : suiteName(suite)
- , testName(test)
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-}
+#include "DeferredTestResult.h"
+#include "Config.h"
+
+namespace UnitTest
+{
+
+DeferredTestResult::DeferredTestResult()
+ : suiteName("")
+ , testName("")
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
+ : suiteName(suite)
+ , testName(test)
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+DeferredTestResult::~DeferredTestResult()
+{
+}
+
+}
diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp
index 466265d..b7fcb62 100644
--- a/src/TestRunner.cpp
+++ b/src/TestRunner.cpp
@@ -1,76 +1,76 @@
-#include "TestRunner.h"
-#include "TestResults.h"
-#include "TestReporter.h"
-#include "TestReporterStdout.h"
-#include "TimeHelpers.h"
-#include "MemoryOutStream.h"
-
-#include
-
-
-namespace UnitTest {
-
-int RunAllTests()
-{
- TestReporterStdout reporter;
- TestRunner runner(reporter);
- return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
-}
-
-
-TestRunner::TestRunner(TestReporter& reporter)
- : m_reporter(&reporter)
- , m_result(new TestResults(&reporter))
- , m_timer(new Timer)
-{
- m_timer->Start();
-}
-
-TestRunner::~TestRunner()
-{
- delete m_result;
- delete m_timer;
-}
-
-int TestRunner::Finish() const
-{
- float const secondsElapsed = m_timer->GetTimeInMs() / 1000.0f;
- m_reporter->ReportSummary(m_result->GetTotalTestCount(),
- m_result->GetFailedTestCount(),
- m_result->GetFailureCount(),
- secondsElapsed);
-
- return m_result->GetFailureCount();
-}
-
-bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
-{
- using namespace std;
- return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
-}
-
-void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
-{
- CurrentTest::Results() = result;
-
- Timer testTimer;
- testTimer.Start();
-
- result->OnTestStart(curTest->m_details);
-
- curTest->Run();
-
- int const testTimeInMs = testTimer.GetTimeInMs();
- if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
- {
- MemoryOutStream stream;
- stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
- "ms but took " << testTimeInMs << "ms.";
-
- result->OnTestFailure(curTest->m_details, stream.GetText());
- }
-
- result->OnTestFinish(curTest->m_details, testTimeInMs/1000.0f);
-}
-
-}
+#include "TestRunner.h"
+#include "TestResults.h"
+#include "TestReporter.h"
+#include "TestReporterStdout.h"
+#include "TimeHelpers.h"
+#include "MemoryOutStream.h"
+
+#include
+
+
+namespace UnitTest {
+
+int RunAllTests()
+{
+ TestReporterStdout reporter;
+ TestRunner runner(reporter);
+ return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
+}
+
+
+TestRunner::TestRunner(TestReporter& reporter)
+ : m_reporter(&reporter)
+ , m_result(new TestResults(&reporter))
+ , m_timer(new Timer)
+{
+ m_timer->Start();
+}
+
+TestRunner::~TestRunner()
+{
+ delete m_result;
+ delete m_timer;
+}
+
+int TestRunner::Finish() const
+{
+ float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0);
+ m_reporter->ReportSummary(m_result->GetTotalTestCount(),
+ m_result->GetFailedTestCount(),
+ m_result->GetFailureCount(),
+ secondsElapsed);
+
+ return m_result->GetFailureCount();
+}
+
+bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
+{
+ using namespace std;
+ return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
+}
+
+void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
+{
+ CurrentTest::Results() = result;
+
+ Timer testTimer;
+ testTimer.Start();
+
+ result->OnTestStart(curTest->m_details);
+
+ curTest->Run();
+
+ double const testTimeInMs = testTimer.GetTimeInMs();
+ if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
+ {
+ MemoryOutStream stream;
+ stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
+ "ms but took " << testTimeInMs << "ms.";
+
+ result->OnTestFailure(curTest->m_details, stream.GetText());
+ }
+
+ result->OnTestFinish(curTest->m_details, static_cast(testTimeInMs/1000.0));
+}
+
+}
diff --git a/src/TestRunner.h b/src/TestRunner.h
index 672355d..2ad6e5c 100644
--- a/src/TestRunner.h
+++ b/src/TestRunner.h
@@ -1,59 +1,59 @@
-#ifndef UNITTEST_TESTRUNNER_H
-#define UNITTEST_TESTRUNNER_H
-
-#include "Test.h"
-#include "TestList.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-class TestReporter;
-class TestResults;
-class Timer;
-
-int RunAllTests();
-
-struct True
-{
- bool operator()(const Test* const) const
- {
- return true;
- }
-};
-
-class TestRunner
-{
-public:
- explicit TestRunner(TestReporter& reporter);
- ~TestRunner();
-
- template
- int RunTestsIf(TestList const& list, char const* suiteName,
- const Predicate& predicate, int maxTestTimeInMs) const
- {
- Test* curTest = list.GetHead();
-
- while (curTest != 0)
- {
- if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
- RunTest(m_result, curTest, maxTestTimeInMs);
-
- curTest = curTest->next;
- }
-
- return Finish();
- }
-
-private:
- TestReporter* m_reporter;
- TestResults* m_result;
- Timer* m_timer;
-
- int Finish() const;
- bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
- void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTRUNNER_H
+#define UNITTEST_TESTRUNNER_H
+
+#include "Test.h"
+#include "TestList.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+class TestReporter;
+class TestResults;
+class Timer;
+
+int RunAllTests();
+
+struct True
+{
+ bool operator()(const Test* const) const
+ {
+ return true;
+ }
+};
+
+class TestRunner
+{
+public:
+ explicit TestRunner(TestReporter& reporter);
+ ~TestRunner();
+
+ template
+ int RunTestsIf(TestList const& list, char const* suiteName,
+ const Predicate& predicate, int maxTestTimeInMs) const
+ {
+ Test* curTest = list.GetHead();
+
+ while (curTest != 0)
+ {
+ if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
+ RunTest(m_result, curTest, maxTestTimeInMs);
+
+ curTest = curTest->next;
+ }
+
+ return Finish();
+ }
+
+private:
+ TestReporter* m_reporter;
+ TestResults* m_result;
+ Timer* m_timer;
+
+ int Finish() const;
+ bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
+ void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
+};
+
+}
+
+#endif
diff --git a/src/TestSuite.h b/src/TestSuite.h
index dd3717e..02067fd 100644
--- a/src/TestSuite.h
+++ b/src/TestSuite.h
@@ -1,14 +1,12 @@
-#ifndef UNITTEST_TESTSUITE_H
-#define UNITTEST_TESTSUITE_H
-
-namespace UnitTestSuite {
-
- inline char const* GetSuiteName ()
- {
- return "DefaultSuite";
- }
-
-}
-
-#endif
-
+#ifndef UNITTEST_TESTSUITE_H
+#define UNITTEST_TESTSUITE_H
+
+namespace UnitTestSuite
+{
+ inline char const* GetSuiteName ()
+ {
+ return "DefaultSuite";
+ }
+}
+
+#endif
diff --git a/src/TimeConstraint.cpp b/src/TimeConstraint.cpp
index b313be7..4adb260 100644
--- a/src/TimeConstraint.cpp
+++ b/src/TimeConstraint.cpp
@@ -1,29 +1,29 @@
-#include "TimeConstraint.h"
-#include "TestResults.h"
-#include "MemoryOutStream.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-
-TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
- : m_details(details)
- , m_maxMs(ms)
-{
- m_timer.Start();
-}
-
-TimeConstraint::~TimeConstraint()
-{
- int const totalTimeInMs = m_timer.GetTimeInMs();
- if (totalTimeInMs > m_maxMs)
- {
- MemoryOutStream stream;
- stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
- "ms but took " << totalTimeInMs << "ms.";
-
- UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
- }
-}
-
-}
+#include "TimeConstraint.h"
+#include "TestResults.h"
+#include "MemoryOutStream.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+
+TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
+ : m_details(details)
+ , m_maxMs(ms)
+{
+ m_timer.Start();
+}
+
+TimeConstraint::~TimeConstraint()
+{
+ double const totalTimeInMs = m_timer.GetTimeInMs();
+ if (totalTimeInMs > m_maxMs)
+ {
+ MemoryOutStream stream;
+ stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
+ "ms but took " << totalTimeInMs << "ms.";
+
+ UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
+ }
+}
+
+}
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index 69d0d88..4bb5bcf 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -1,47 +1,47 @@
-#include "TimeHelpers.h"
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
- : m_threadHandle(::GetCurrentThread())
- , m_startTime(0)
-{
-#if defined(_MSC_VER) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR?
- typedef unsigned long DWORD_PTR;
-#endif
-
- DWORD_PTR systemMask;
- ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
-}
-
-void Timer::Start()
-{
- m_startTime = GetTime();
-}
-
-double Timer::GetTimeInMs() const
-{
- __int64 const elapsedTime = GetTime() - m_startTime;
- double const seconds = double(elapsedTime) / double(m_frequency);
- return seconds * 1000.0;
-}
-
-__int64 Timer::GetTime() const
-{
- LARGE_INTEGER curTime;
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceCounter(&curTime);
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
- return curTime.QuadPart;
-}
-
-void TimeHelpers::SleepMs(int const ms)
-{
- ::Sleep(ms);
-}
-
-}
+#include "TimeHelpers.h"
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+ : m_threadHandle(::GetCurrentThread())
+ , m_startTime(0)
+{
+#if defined(_MSC_VER) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR
+ typedef unsigned long DWORD_PTR;
+#endif
+
+ DWORD_PTR systemMask;
+ ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+}
+
+void Timer::Start()
+{
+ m_startTime = GetTime();
+}
+
+double Timer::GetTimeInMs() const
+{
+ __int64 const elapsedTime = GetTime() - m_startTime;
+ double const seconds = double(elapsedTime) / double(m_frequency);
+ return seconds * 1000.0;
+}
+
+__int64 Timer::GetTime() const
+{
+ LARGE_INTEGER curTime;
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceCounter(&curTime);
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+ return curTime.QuadPart;
+}
+
+void TimeHelpers::SleepMs(int const ms)
+{
+ ::Sleep(ms);
+}
+
+}
diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp
index b4fae78..3eb37da 100644
--- a/src/tests/Main.cpp
+++ b/src/tests/Main.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestReporterStdout.h"
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 0c594cd..bd7cbea 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../AssertException.h"
#include "../ReportAssert.h"
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index 6ea1105..8a38099 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index cee9a3f..ae34792 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "RecordingReporter.h"
using namespace UnitTest;
diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp
index 882b3e4..dd129c3 100644
--- a/src/tests/TestCurrentTest.cpp
+++ b/src/tests/TestCurrentTest.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../CurrentTest.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 5560692..0b08919 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../DeferredTestReporter.h"
#include "../Config.h"
#include
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index c5a4227..41a7843 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../MemoryOutStream.h"
#include
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index d3c3d4c..92e4f0a 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestReporter.h"
#include "../TimeHelpers.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp
index 6c1fba1..b37bff2 100644
--- a/src/tests/TestTestList.cpp
+++ b/src/tests/TestTestList.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestList.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index 8bed9dc..1149b0c 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestMacros.h"
#include "../TestList.h"
#include "../TestResults.h"
diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp
index 5bdea72..a8a0325 100644
--- a/src/tests/TestTestResults.cpp
+++ b/src/tests/TestTestResults.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestResults.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index fc89b00..9acdaa5 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "RecordingReporter.h"
#include "../ReportAssert.h"
#include "../TestList.h"
diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp
index 8353e83..1abbf49 100644
--- a/src/tests/TestTestSuite.cpp
+++ b/src/tests/TestTestSuite.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
// We're really testing if it's possible to use the same suite in two files
// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp
index 10adb36..6f2021d 100644
--- a/src/tests/TestTimeConstraint.cpp
+++ b/src/tests/TestTimeConstraint.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TestResults.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index 785c6ce..056d89d 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestUnitTest++.cpp b/src/tests/TestUnitTestPP.cpp
similarity index 93%
rename from src/tests/TestUnitTest++.cpp
rename to src/tests/TestUnitTestPP.cpp
index 62c0033..b62d1c9 100644
--- a/src/tests/TestUnitTest++.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../ReportAssert.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index 959a83a..2419668 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../UnitTest++.h"
+#include "../unittestpp.h"
#include "../XmlTestReporter.h"
#include
diff --git a/src/UnitTest++.h b/src/unittestpp.h
similarity index 100%
rename from src/UnitTest++.h
rename to src/unittestpp.h
From 67d4ecb5c5d3ba379d76b867a8b2c80e77c3b0bc Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:42:14 -0600
Subject: [PATCH 008/218] r3 | charles.nicholson | 2010-03-08 22:58:59 -0600
(Mon, 08 Mar 2010) | 1 line first pass at adding exception macros
---
src/CheckMacros.h | 77 +++++----
src/Config.h | 2 +
src/ExceptionMacros.h | 18 ++
src/tests/TestCheckMacros.cpp | 262 -----------------------------
src/tests/TestExceptions.cpp | 302 ++++++++++++++++++++++++++++++++++
src/tests/TestUnitTestPP.cpp | 4 +
6 files changed, 373 insertions(+), 292 deletions(-)
create mode 100644 src/ExceptionMacros.h
create mode 100644 src/tests/TestExceptions.cpp
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 1eaa792..89384c3 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -1,6 +1,7 @@
#ifndef UNITTEST_CHECKMACROS_H
#define UNITTEST_CHECKMACROS_H
+#include "ExceptionMacros.h"
#include "Checks.h"
#include "AssertException.h"
#include "MemoryOutStream.h"
@@ -34,87 +35,103 @@
#define CHECK(value) \
do \
{ \
- try { \
- if (!UnitTest::Check(value)) \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
- } \
- catch (...) { \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK(" #value ")"); \
- } \
+ UT_TRY \
+ ({ \
+ if (!UnitTest::Check(value)) \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK(" #value ")"); \
+ }) \
} while (0)
#define CHECK_EQUAL(expected, actual) \
do \
{ \
- try { \
+ UT_TRY \
+ ({ \
UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \
- } \
+ }) \
} while (0)
#define CHECK_CLOSE(expected, actual, tolerance) \
do \
{ \
- try { \
+ UT_TRY \
+ ({ \
UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \
- } \
+ }) \
} while (0)
#define CHECK_ARRAY_EQUAL(expected, actual, count) \
do \
{ \
- try { \
+ UT_TRY \
+ ({ \
UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \
- } \
+ }) \
} while (0)
#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \
do \
{ \
- try { \
+ UT_TRY \
+ ({ \
UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
- } \
+ }) \
} while (0)
#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \
do \
{ \
- try { \
+ UT_TRY \
+ ({ \
UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
- } \
+ }) \
} while (0)
+// CHECK_THROW only exists when UNITTEST_USE_EXCEPTIONS is defined (see Config.h)
+#ifdef UNITTEST_USE_EXCEPTIONS
#define CHECK_THROW(expression, ExpectedExceptionType) \
do \
{ \
bool caught_ = false; \
try { expression; } \
catch (ExpectedExceptionType const&) { caught_ = true; } \
- catch (...) {} \
+ catch (...) {} \
if (!caught_) \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
} while(0)
+#endif
+
#define CHECK_ASSERT(expression) \
CHECK_THROW(expression, UnitTest::AssertException);
diff --git a/src/Config.h b/src/Config.h
index cb43d91..7cdaa5c 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -28,4 +28,6 @@
//#define UNITTEST_USE_CUSTOM_STREAMS
+#define UNITTEST_USE_EXCEPTIONS
+
#endif
diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h
new file mode 100644
index 0000000..f10e780
--- /dev/null
+++ b/src/ExceptionMacros.h
@@ -0,0 +1,18 @@
+#ifndef UNITTEST_EXCEPTIONMACROS_H
+#define UNITTEST_EXCEPTIONMACROS_H
+
+#include "Config.h"
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+ #define UT_TRY(x) try x
+ #define UT_THROW(x) throw x
+ #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody
+ #define UT_CATCH_ALL(CatchBody) catch(...) CatchBody
+#else
+ #define UT_TRY(x) x
+ #define UT_THROW(x)
+ #define UT_CATCH(ExceptionType, ExceptionName, CatchBody)
+ #define UT_CATCH_ALL(CatchBody)
+#endif
+
+#endif
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index 8a38099..a30d86a 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -62,37 +62,6 @@ TEST(CheckFailureIncludesCheckContents)
CHECK(strstr(reporter.lastFailedMessage, "yaddayadda"));
}
-int ThrowingFunction()
-{
- throw "Doh";
-}
-
-TEST(CheckFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
-}
-
TEST(CheckEqualSucceedsOnEqual)
{
bool failure = true;
@@ -121,20 +90,6 @@ TEST(CheckEqualFailsOnNotEqual)
CHECK(failure);
}
-TEST(CheckEqualFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 1);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
TEST(CheckEqualFailureContainsCorrectDetails)
{
int line = 0;
@@ -153,37 +108,6 @@ TEST(CheckEqualFailureContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
- }
-
- CHECK_EQUAL("testName", reporter.lastFailedTest);
- CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 123);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "123"));
-}
-
int g_sideEffect = 0;
int FunctionWithSideEffects()
{
@@ -242,20 +166,6 @@ TEST(CheckCloseFailsOnNotEqual)
CHECK(failure);
}
-TEST(CheckCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
TEST(CheckCloseFailureContainsCorrectDetails)
{
int line = 0;
@@ -274,36 +184,6 @@ TEST(CheckCloseFailureContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
- }
-
- CHECK_EQUAL("closeTest", reporter.lastFailedTest);
- CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
-}
-
TEST(CheckCloseDoesNotHaveSideEffectsWhenPassing)
{
g_sideEffect = 0;
@@ -406,25 +286,6 @@ TEST(CheckArrayCloseFailureContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE (data, ThrowingObject(), 4, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
TEST(CheckArrayCloseFailureIncludesTolerance)
{
RecordingReporter reporter;
@@ -440,42 +301,6 @@ TEST(CheckArrayCloseFailureIncludesTolerance)
CHECK(strstr(reporter.lastFailedMessage, "0.01"));
}
-
-TEST(CheckArrayCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
-
TEST(CheckArrayEqualSuceedsOnEqual)
{
bool failure = true;
@@ -545,40 +370,6 @@ TEST(CheckArrayEqualFailureContainsCorrectInfo)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArrayEqualFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
float const* FunctionWithSideEffects2()
{
++g_sideEffect;
@@ -695,25 +486,6 @@ TEST(CheckArray2DCloseFailureContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE (data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
TEST(CheckArray2DCloseFailureIncludesTolerance)
{
RecordingReporter reporter;
@@ -729,40 +501,6 @@ TEST(CheckArray2DCloseFailureIncludesTolerance)
CHECK(strstr(reporter.lastFailedMessage, "0.01"));
}
-TEST(CheckArray2DCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
float const* const* FunctionWithSideEffects3()
{
++g_sideEffect;
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
new file mode 100644
index 0000000..1c4349a
--- /dev/null
+++ b/src/tests/TestExceptions.cpp
@@ -0,0 +1,302 @@
+#include "../Config.h"
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+
+#include "../unittestpp.h"
+#include "../CurrentTest.h"
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+using namespace std;
+
+namespace {
+
+int ThrowingFunction()
+{
+ throw "Doh";
+}
+
+TEST(CheckFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
+}
+
+TEST(CheckEqualFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(ThrowingFunction(), 1);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ }
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(ThrowingFunction(), 123);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
+}
+
+TEST(CheckCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("closeTest", reporter.lastFailedTest);
+ CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
+}
+
+class ThrowingObject
+{
+public:
+ float operator[](int) const
+ {
+ throw "Test throw";
+ }
+};
+
+TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE (data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArrayCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+TEST(CheckArrayEqualFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_EQUAL (data, obj, 3);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_EQUAL (data, obj, 3);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+int g_sideEffect = 0;
+float const* FunctionWithSideEffects2()
+{
+ ++g_sideEffect;
+ static float const data[] = {1,2,3,4};
+ return data;
+}
+
+class ThrowingObject2D
+{
+public:
+ float* operator[](int) const
+ {
+ throw "Test throw";
+ }
+};
+
+TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE (data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArray2DCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ ThrowingObject2D obj;
+ CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ ThrowingObject2D obj;
+ CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+}
+
+#endif
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index b62d1c9..b8e325b 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -56,6 +56,8 @@ TEST (CheckArrayCloseWorksWithVectors)
CHECK_ARRAY_CLOSE(a, a, (int)a.size(), 0.0001f);
}
+#ifdef UNITTEST_USE_EXCEPTIONS
+
TEST(CheckThrowMacroSucceedsOnCorrectException)
{
struct TestException {};
@@ -117,6 +119,8 @@ TEST(CheckThrowMacroFailsOnWrongException)
CHECK_EQUAL(1, results.GetFailureCount());
}
+#endif
+
struct SimpleFixture
{
SimpleFixture()
From 4f556d65391f440cbc606c439d677f62d7975525 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:42:29 -0600
Subject: [PATCH 009/218] r4 | charles.nicholson | 2010-03-08 23:23:36 -0600
(Mon, 08 Mar 2010) | 1 line all try/catch calls are either #ifdefd out or
replaced with UT_TRY/UT_CATCH macro madness
---
src/Config.h | 3 +--
src/ExecuteTest.h | 33 ++++++++++++++++++++-------------
src/Posix/SignalTranslator.h | 2 +-
src/TestMacros.h | 27 +++++++++++++++------------
src/tests/TestAssertHandler.cpp | 7 ++++++-
src/tests/TestTest.cpp | 4 ++--
src/tests/TestTestMacros.cpp | 8 ++++++++
src/tests/TestUnitTestPP.cpp | 11 -----------
8 files changed, 53 insertions(+), 42 deletions(-)
diff --git a/src/Config.h b/src/Config.h
index 7cdaa5c..f223558 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -26,8 +26,7 @@
// by default, MemoryOutStream is implemented in terms of std::ostringstream, which can be expensive.
// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
-//#define UNITTEST_USE_CUSTOM_STREAMS
-
+#define UNITTEST_USE_CUSTOM_STREAMS
#define UNITTEST_USE_EXCEPTIONS
#endif
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index 3ccd426..c09eca2 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -1,6 +1,7 @@
#ifndef UNITTEST_EXECUTE_TEST_H
#define UNITTEST_EXECUTE_TEST_H
+#include "ExceptionMacros.h"
#include "TestDetails.h"
#include "MemoryOutStream.h"
#include "AssertException.h"
@@ -17,28 +18,34 @@ void ExecuteTest(T& testObject, TestDetails const& details)
{
CurrentTest::Details() = &details;
- try
- {
-#ifdef UNITTEST_POSIX
- UNITTEST_THROW_SIGNALS
-#endif
+#ifndef UNITTEST_POSIX
+ UT_TRY
+ ({
testObject.RunImpl();
- }
- catch (AssertException const& e)
+ })
+#else
+ UT_TRY
+ ({
+ UNITTEST_THROW_SIGNALS_POSIX_ONLY
+ testObject.RunImpl();
+ })
+#endif
+
+ UT_CATCH(AssertException, e,
{
CurrentTest::Results()->OnTestFailure(
TestDetails(details.testName, details.suiteName, e.Filename(), e.LineNumber()), e.what());
- }
- catch (std::exception const& e)
+ })
+ UT_CATCH(std::exception, e,
{
MemoryOutStream stream;
stream << "Unhandled exception: " << e.what();
CurrentTest::Results()->OnTestFailure(details, stream.GetText());
- }
- catch (...)
- {
+ })
+ UT_CATCH_ALL
+ ({
CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: Crash!");
- }
+ })
}
}
diff --git a/src/Posix/SignalTranslator.h b/src/Posix/SignalTranslator.h
index f3c3563..2152b9c 100644
--- a/src/Posix/SignalTranslator.h
+++ b/src/Posix/SignalTranslator.h
@@ -32,7 +32,7 @@ private:
#define UNITTEST_EXTENSION __extension__
#endif
-#define UNITTEST_THROW_SIGNALS \
+#define UNITTEST_THROW_SIGNALS_POSIX_ONLY \
UnitTest::SignalTranslator sig; \
if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \
throw ("Unhandled system exception");
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 8d29f04..16520e8 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -2,13 +2,14 @@
#define UNITTEST_TESTMACROS_H
#include "Config.h"
+#include "ExceptionMacros.h"
#include "ExecuteTest.h"
#include "AssertException.h"
#include "TestDetails.h"
#include "MemoryOutStream.h"
#ifndef UNITTEST_POSIX
- #define UNITTEST_THROW_SIGNALS
+ #define UNITTEST_THROW_SIGNALS_POSIX_ONLY
#else
#include "Posix/SignalTranslator.h"
#endif
@@ -77,22 +78,24 @@
void Test##Fixture##Name::RunImpl() const \
{ \
bool ctorOk = false; \
- try { \
+ UT_TRY \
+ ({ \
Fixture##Name##Helper fixtureHelper(m_details); \
ctorOk = true; \
- UnitTest::ExecuteTest(fixtureHelper, m_details); \
- } \
- catch (UnitTest::AssertException const& e) \
- { \
+ UnitTest::ExecuteTest(fixtureHelper, m_details); \
+ }) \
+ UT_CATCH (UnitTest::AssertException, e, \
+ { \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details.testName, m_details.suiteName, e.Filename(), e.LineNumber()), e.what()); \
- } \
- catch (std::exception const& e) \
- { \
+ }) \
+ UT_CATCH (std::exception, e, \
+ { \
UnitTest::MemoryOutStream stream; \
stream << "Unhandled exception: " << e.what(); \
UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); \
- } \
- catch (...) { \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
if (ctorOk) \
{ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
@@ -103,7 +106,7 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
"Unhandled exception while constructing fixture " #Fixture); \
} \
- } \
+ }) \
} \
void Fixture##Name##Helper::RunImpl()
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index bd7cbea..664a670 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,3 +1,7 @@
+#include "../Config.h"
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+
#include "../unittestpp.h"
#include "../AssertException.h"
#include "../ReportAssert.h"
@@ -40,5 +44,6 @@ TEST(ReportAssertSetsCorrectInfoInException)
}
}
-
}
+
+#endif
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index 92e4f0a..cc48884 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -50,7 +50,7 @@ TEST(FailingTestHasFailures)
CHECK_EQUAL(1, results.GetFailureCount());
}
-
+#ifdef UNITTEST_USE_EXCEPTIONS
TEST(ThrowingTestsAreReportedAsFailures)
{
class CrashingTest : public Test
@@ -72,7 +72,6 @@ TEST(ThrowingTestsAreReportedAsFailures)
CHECK_EQUAL(1, results.GetFailureCount());
}
-
#ifndef UNITTEST_MINGW
TEST(CrashingTestsAreReportedAsFailures)
{
@@ -95,6 +94,7 @@ TEST(CrashingTestsAreReportedAsFailures)
CHECK_EQUAL(1, results.GetFailureCount());
}
#endif
+#endif
TEST(TestWithUnspecifiedSuiteGetsDefaultSuite)
{
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index 1149b0c..a1506e5 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -22,6 +22,8 @@ TEST (TestsAreAddedToTheListThroughMacro)
CHECK(list1.GetHead()->next == 0);
}
+#ifdef UNITTEST_USE_EXCEPTIONS
+
struct ThrowingThingie
{
ThrowingThingie() : dummy(false)
@@ -52,6 +54,8 @@ TEST (ExceptionsInFixtureAreReportedAsHappeningInTheFixture)
CHECK(strstr(reporter.lastFailedMessage, "ThrowingThingie"));
}
+#endif
+
struct DummyFixture
{
int x;
@@ -104,6 +108,8 @@ TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite)
CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName);
}
+#ifdef UNITTEST_USE_EXCEPTIONS
+
struct FixtureCtorThrows
{
FixtureCtorThrows() { throw "exception"; }
@@ -185,6 +191,8 @@ TEST(CorrectlyReportsFixturesWithCtorsThatAssert)
CHECK(strstr(reporter.lastFailedMessage, "assert failure"));
}
+#endif
+
}
// We're really testing if it's possible to use the same suite in two files
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index b8e325b..9237aa9 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -2,8 +2,6 @@
#include "../ReportAssert.h"
#include "ScopedCurrentTest.h"
-#include
-
// These are sample tests that show the different features of the framework
namespace {
@@ -47,15 +45,6 @@ TEST(ArrayCloseSucceeds)
CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f);
}
-TEST (CheckArrayCloseWorksWithVectors)
-{
- std::vector< float > a(4);
- for (int i = 0; i < 4; ++i)
- a[i] = (float)i;
-
- CHECK_ARRAY_CLOSE(a, a, (int)a.size(), 0.0001f);
-}
-
#ifdef UNITTEST_USE_EXCEPTIONS
TEST(CheckThrowMacroSucceedsOnCorrectException)
From 23c7368d9288d911b58f595f7e747a881b74b786 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:42:35 -0600
Subject: [PATCH 010/218] r5 | charles.nicholson | 2010-03-15 17:46:01 -0500
(Mon, 15 Mar 2010) | 1 line remove leftover exception test structures, fix
ReportAssert for no-exceptions build
---
src/AssertException.cpp | 9 +++++++--
src/AssertException.h | 11 ++++++++---
src/Config.h | 2 +-
src/ReportAssert.cpp | 28 +++++++++++++++++-----------
src/tests/TestCheckMacros.cpp | 21 ---------------------
5 files changed, 33 insertions(+), 38 deletions(-)
diff --git a/src/AssertException.cpp b/src/AssertException.cpp
index cd3c51c..0ac4484 100644
--- a/src/AssertException.cpp
+++ b/src/AssertException.cpp
@@ -1,4 +1,7 @@
#include "AssertException.h"
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+
#include
namespace UnitTest {
@@ -12,11 +15,11 @@ AssertException::AssertException(char const* description, char const* filename,
strcpy(m_filename, filename);
}
-AssertException::~AssertException() throw()
+AssertException::~AssertException()
{
}
-char const* AssertException::what() const throw()
+char const* AssertException::what() const
{
return m_description;
}
@@ -32,3 +35,5 @@ int AssertException::LineNumber() const
}
}
+
+#endif
diff --git a/src/AssertException.h b/src/AssertException.h
index 9c268fc..72200c8 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -1,8 +1,11 @@
#ifndef UNITTEST_ASSERTEXCEPTION_H
#define UNITTEST_ASSERTEXCEPTION_H
-#include
+#include "Config.h"
+#ifdef UNITTEST_USE_EXCEPTIONS
+
+#include
namespace UnitTest {
@@ -10,9 +13,9 @@ class AssertException : public std::exception
{
public:
AssertException(char const* description, char const* filename, int lineNumber);
- virtual ~AssertException() throw();
+ virtual ~AssertException();
- virtual char const* what() const throw();
+ virtual char const* what() const;
char const* Filename() const;
int LineNumber() const;
@@ -26,3 +29,5 @@ private:
}
#endif
+
+#endif
diff --git a/src/Config.h b/src/Config.h
index f223558..a1f12ba 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -27,6 +27,6 @@
// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
#define UNITTEST_USE_CUSTOM_STREAMS
-#define UNITTEST_USE_EXCEPTIONS
+//#define UNITTEST_USE_EXCEPTIONS
#endif
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index c91f4f6..0386b62 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -1,11 +1,17 @@
-#include "ReportAssert.h"
-#include "AssertException.h"
-
-namespace UnitTest {
-
-void ReportAssert(char const* description, char const* filename, int lineNumber)
-{
- throw AssertException(description, filename, lineNumber);
-}
-
-}
+#include "ReportAssert.h"
+#include "AssertException.h"
+
+namespace UnitTest {
+
+void ReportAssert(char const* description, char const* filename, int lineNumber)
+{
+ (void)description;
+ (void)filename;
+ (void)lineNumber;
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+ throw AssertException(description, filename, lineNumber);
+#endif
+}
+
+}
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index a30d86a..33fdc44 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -206,17 +206,6 @@ TEST(CheckCloseDoesNotHaveSideEffectsWhenFailing)
CHECK_EQUAL(1, g_sideEffect);
}
-
-class ThrowingObject
-{
-public:
- float operator[](int) const
- {
- throw "Test throw";
- }
-};
-
-
TEST(CheckArrayCloseSucceedsOnEqual)
{
bool failure = true;
@@ -404,16 +393,6 @@ TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenFailing)
CHECK_EQUAL(1, g_sideEffect);
}
-class ThrowingObject2D
-{
-public:
- float* operator[](int) const
- {
- throw "Test throw";
- }
-};
-
-
TEST(CheckArray2DCloseSucceedsOnEqual)
{
bool failure = true;
From 6712ae184ad1c15f7e0a0ddfb52479131d20e200 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:42:44 -0600
Subject: [PATCH 011/218] r6 | charles.nicholson | 2010-03-15 19:03:04 -0500
(Mon, 15 Mar 2010) | 1 line pull in less win32 stuff in timehelpers, strip
down top-level unittestpp.h
---
src/TestMacros.h | 1 +
src/Win32/TimeHelpers.cpp | 2 ++
src/unittestpp.h | 12 ++----------
3 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 16520e8..8aad30e 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -2,6 +2,7 @@
#define UNITTEST_TESTMACROS_H
#include "Config.h"
+#include "TestSuite.h"
#include "ExceptionMacros.h"
#include "ExecuteTest.h"
#include "AssertException.h"
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index 4bb5bcf..2f6f5f7 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -1,4 +1,6 @@
#include "TimeHelpers.h"
+
+#define WIN32_LEAN_AND_MEAN
#include
namespace UnitTest {
diff --git a/src/unittestpp.h b/src/unittestpp.h
index bacc4cf..7e0d893 100644
--- a/src/unittestpp.h
+++ b/src/unittestpp.h
@@ -1,16 +1,8 @@
-#ifndef UNITTESTCPP_H
-#define UNITTESTCPP_H
-
-//lint -esym(1509,*Fixture)
+#ifndef UNITTESTPP_H
+#define UNITTESTPP_H
#include "Config.h"
-#include "Test.h"
-#include "TestList.h"
-#include "TestSuite.h"
-#include "TestResults.h"
-
#include "TestMacros.h"
-
#include "CheckMacros.h"
#include "TestRunner.h"
#include "TimeConstraint.h"
From ab8b81859141a47c396171a51b8b91a3cdf07b34 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:42:51 -0600
Subject: [PATCH 012/218] r7 | charles.nicholson | 2010-03-16 16:18:18 -0500
(Tue, 16 Mar 2010) | 1 line add DeferredTestReporter and DeferredTestResult
back in, conditional on UNITTEST_USE_DEFERRED_REPORTER
---
src/Config.h | 3 +-
src/DeferredTestReporter.cpp | 5 ++
src/DeferredTestReporter.h | 62 +++++++++++++-----------
src/DeferredTestResult.cpp | 6 ++-
src/DeferredTestResult.h | 67 ++++++++++++++------------
src/tests/TestDeferredTestReporter.cpp | 7 ++-
6 files changed, 86 insertions(+), 64 deletions(-)
diff --git a/src/Config.h b/src/Config.h
index a1f12ba..147f05f 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -27,6 +27,7 @@
// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
#define UNITTEST_USE_CUSTOM_STREAMS
-//#define UNITTEST_USE_EXCEPTIONS
+#define UNITTEST_USE_DEFERRED_REPORTER
+#define UNITTEST_USE_EXCEPTIONS
#endif
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index fbd08db..8b7a29c 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,3 +1,6 @@
+#include "Config.h"
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
#include "DeferredTestReporter.h"
#include "TestDetails.h"
@@ -26,3 +29,5 @@ DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
{
return m_results;
}
+
+#endif
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index 615a24e..c037af3 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -1,29 +1,33 @@
-#ifndef UNITTEST_DEFERREDTESTREPORTER_H
-#define UNITTEST_DEFERREDTESTREPORTER_H
-
-#include "TestReporter.h"
-#include "DeferredTestResult.h"
-#include "Config.h"
-
-#include
-
-namespace UnitTest
-{
-
-class DeferredTestReporter : public TestReporter
-{
-public:
- virtual void ReportTestStart(TestDetails const& details);
- virtual void ReportFailure(TestDetails const& details, char const* failure);
- virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
-
- typedef std::vector< DeferredTestResult > DeferredTestResultList;
- DeferredTestResultList& GetResults();
-
-private:
- DeferredTestResultList m_results;
-};
-
-}
-
-#endif
+#ifndef UNITTEST_DEFERREDTESTREPORTER_H
+#define UNITTEST_DEFERREDTESTREPORTER_H
+
+#include "Config.h"
+
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
+#include "TestReporter.h"
+#include "DeferredTestResult.h"
+
+#include
+
+namespace UnitTest
+{
+
+class DeferredTestReporter : public TestReporter
+{
+public:
+ virtual void ReportTestStart(TestDetails const& details);
+ virtual void ReportFailure(TestDetails const& details, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
+
+ typedef std::vector< DeferredTestResult > DeferredTestResultList;
+ DeferredTestResultList& GetResults();
+
+private:
+ DeferredTestResultList m_results;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index 944f894..33fc145 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,5 +1,7 @@
-#include "DeferredTestResult.h"
#include "Config.h"
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
+#include "DeferredTestResult.h"
namespace UnitTest
{
@@ -27,3 +29,5 @@ DeferredTestResult::~DeferredTestResult()
}
}
+
+#endif
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index d0a1dab..db3ffaa 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,32 +1,35 @@
-#ifndef UNITTEST_DEFERREDTESTRESULT_H
-#define UNITTEST_DEFERREDTESTRESULT_H
-
-#include "Config.h"
-
-#include
-#include
-
-namespace UnitTest
-{
-
-struct DeferredTestResult
-{
- DeferredTestResult();
- DeferredTestResult(char const* suite, char const* test);
- ~DeferredTestResult();
-
- std::string suiteName;
- std::string testName;
- std::string failureFile;
-
- typedef std::pair< int, std::string > Failure;
- typedef std::vector< Failure > FailureVec;
- FailureVec failures;
-
- float timeElapsed;
- bool failed;
-};
-
-}
-
-#endif //UNITTEST_DEFERREDTESTRESULT_H
+#ifndef UNITTEST_DEFERREDTESTRESULT_H
+#define UNITTEST_DEFERREDTESTRESULT_H
+
+#include "Config.h"
+
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
+#include
+#include
+
+namespace UnitTest
+{
+
+struct DeferredTestResult
+{
+ DeferredTestResult();
+ DeferredTestResult(char const* suite, char const* test);
+ ~DeferredTestResult();
+
+ std::string suiteName;
+ std::string testName;
+ std::string failureFile;
+
+ typedef std::pair< int, std::string > Failure;
+ typedef std::vector< Failure > FailureVec;
+ FailureVec failures;
+
+ float timeElapsed;
+ bool failed;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 0b08919..fcdbd0f 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,6 +1,9 @@
+#include "../Config.h"
+
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
#include "../unittestpp.h"
#include "../DeferredTestReporter.h"
-#include "../Config.h"
#include
namespace UnitTest
@@ -115,3 +118,5 @@ TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailure
}
}}
+
+#endif
From 3a40aa80a1c8f97c9b456f47ad4542b5fb000cc3 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:43:07 -0600
Subject: [PATCH 013/218] r8 | charles.nicholson | 2010-03-16 21:27:33 -0500
(Tue, 16 Mar 2010) | 1 line fixed bug where tests weren't correctly executing
while testing the TestRunner (accessing the Details and Results singletons
was redirecting failures to bogus RecordingReporters, instead of the real
UT++ test engine). Hoisted assert failure reporting into ReportAssert, in
preparation for setjmp/longjmp assert handling in the absence of exceptions.
Slight renamings and cosmetic fixups
---
src/AssertException.cpp | 24 +---------
src/AssertException.h | 12 +----
src/CheckMacros.h | 9 +++-
src/ExecuteTest.h | 10 ++--
src/ReportAssert.cpp | 43 +++++++++++++++--
src/ReportAssert.h | 14 +++++-
src/Test.cpp | 5 +-
src/Test.h | 3 +-
src/TestList.cpp | 2 +-
src/TestMacros.h | 4 +-
src/TestRunner.cpp | 10 +++-
src/TestRunner.h | 6 ++-
src/tests/TestAssertHandler.cpp | 84 ++++++++++++++++++++++++++++-----
src/tests/TestTestList.cpp | 24 +++++-----
src/tests/TestTestMacros.cpp | 2 +-
src/tests/TestTestRunner.cpp | 42 ++++++++++-------
16 files changed, 196 insertions(+), 98 deletions(-)
diff --git a/src/AssertException.cpp b/src/AssertException.cpp
index 0ac4484..cc2c7e1 100644
--- a/src/AssertException.cpp
+++ b/src/AssertException.cpp
@@ -2,38 +2,16 @@
#ifdef UNITTEST_USE_EXCEPTIONS
-#include
-
namespace UnitTest {
-AssertException::AssertException(char const* description, char const* filename, int lineNumber)
- : m_lineNumber(lineNumber)
+AssertException::AssertException()
{
- using namespace std;
-
- strcpy(m_description, description);
- strcpy(m_filename, filename);
}
AssertException::~AssertException()
{
}
-char const* AssertException::what() const
-{
- return m_description;
-}
-
-char const* AssertException::Filename() const
-{
- return m_filename;
-}
-
-int AssertException::LineNumber() const
-{
- return m_lineNumber;
-}
-
}
#endif
diff --git a/src/AssertException.h b/src/AssertException.h
index 72200c8..4603827 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -12,18 +12,8 @@ namespace UnitTest {
class AssertException : public std::exception
{
public:
- AssertException(char const* description, char const* filename, int lineNumber);
+ AssertException();
virtual ~AssertException();
-
- virtual char const* what() const;
-
- char const* Filename() const;
- int LineNumber() const;
-
-private:
- char m_description[512];
- char m_filename[256];
- int m_lineNumber;
};
}
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 89384c3..5523b3c 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -130,10 +130,15 @@
if (!caught_) \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
} while(0)
-#endif
#define CHECK_ASSERT(expression) \
- CHECK_THROW(expression, UnitTest::AssertException);
+ do \
+ { \
+ UnitTest::ExpectAssert(true); \
+ CHECK_THROW(expression, UnitTest::AssertException); \
+ UnitTest::ExpectAssert(false); \
+ } while(0)
#endif
+#endif
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index c09eca2..0c37eb3 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -14,9 +14,10 @@
namespace UnitTest {
template< typename T >
-void ExecuteTest(T& testObject, TestDetails const& details)
+void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
{
- CurrentTest::Details() = &details;
+ if (isMockTest == false)
+ CurrentTest::Details() = &details;
#ifndef UNITTEST_POSIX
UT_TRY
@@ -33,8 +34,7 @@ void ExecuteTest(T& testObject, TestDetails const& details)
UT_CATCH(AssertException, e,
{
- CurrentTest::Results()->OnTestFailure(
- TestDetails(details.testName, details.suiteName, e.Filename(), e.LineNumber()), e.what());
+ (void)e;
})
UT_CATCH(std::exception, e,
{
@@ -44,7 +44,7 @@ void ExecuteTest(T& testObject, TestDetails const& details)
})
UT_CATCH_ALL
({
- CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: Crash!");
+ CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
})
}
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index 0386b62..fb4d043 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -1,17 +1,52 @@
#include "ReportAssert.h"
#include "AssertException.h"
+#include "CurrentTest.h"
+#include "TestResults.h"
+#include "TestDetails.h"
namespace UnitTest {
+namespace
+{
+ bool& AssertExpectedFlag()
+ {
+ static bool s_assertExpected = false;
+ return s_assertExpected;
+ }
+}
+
void ReportAssert(char const* description, char const* filename, int lineNumber)
{
- (void)description;
- (void)filename;
- (void)lineNumber;
+ ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(), description, filename, lineNumber);
+}
+
+void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber)
+{
+ if (AssertExpectedFlag() == false)
+ {
+ TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber);
+ testResults->OnTestFailure(assertDetails, description);
+ }
+
+ ExpectAssert(false);
#ifdef UNITTEST_USE_EXCEPTIONS
- throw AssertException(description, filename, lineNumber);
+ throw AssertException();
#endif
}
+void ExpectAssert(bool expected)
+{
+ AssertExpectedFlag() = expected;
+}
+
+bool AssertExpected()
+{
+ return AssertExpectedFlag();
+}
+
}
diff --git a/src/ReportAssert.h b/src/ReportAssert.h
index a000e15..253229a 100644
--- a/src/ReportAssert.h
+++ b/src/ReportAssert.h
@@ -3,8 +3,20 @@
namespace UnitTest {
+class TestResults;
+class TestDetails;
+
void ReportAssert(char const* description, char const* filename, int lineNumber);
-
+
+void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber);
+
+void ExpectAssert(bool expected);
+bool AssertExpected();
+
}
#endif
diff --git a/src/Test.cpp b/src/Test.cpp
index 6b63041..d00749c 100644
--- a/src/Test.cpp
+++ b/src/Test.cpp
@@ -20,8 +20,9 @@ TestList& Test::GetTestList()
Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber)
: m_details(testName, suiteName, filename, lineNumber)
- , next(0)
+ , m_nextTest(0)
, m_timeConstraintExempt(false)
+ , m_isMockTest(false)
{
}
@@ -31,7 +32,7 @@ Test::~Test()
void Test::Run()
{
- ExecuteTest(*this, m_details);
+ ExecuteTest(*this, m_details, m_isMockTest);
}
void Test::RunImpl() const
diff --git a/src/Test.h b/src/Test.h
index 436dbc1..7c2f175 100644
--- a/src/Test.h
+++ b/src/Test.h
@@ -16,8 +16,9 @@ public:
void Run();
TestDetails const m_details;
- Test* next;
+ Test* m_nextTest;
mutable bool m_timeConstraintExempt;
+ mutable bool m_isMockTest;
static TestList& GetTestList();
diff --git a/src/TestList.cpp b/src/TestList.cpp
index 4f58034..38fbfec 100644
--- a/src/TestList.cpp
+++ b/src/TestList.cpp
@@ -21,7 +21,7 @@ void TestList::Add(Test* test)
}
else
{
- m_tail->next = test;
+ m_tail->m_nextTest = test;
m_tail = test;
}
}
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 8aad30e..912f8ca 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -83,11 +83,11 @@
({ \
Fixture##Name##Helper fixtureHelper(m_details); \
ctorOk = true; \
- UnitTest::ExecuteTest(fixtureHelper, m_details); \
+ UnitTest::ExecuteTest(fixtureHelper, m_details, false); \
}) \
UT_CATCH (UnitTest::AssertException, e, \
{ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details.testName, m_details.suiteName, e.Filename(), e.LineNumber()), e.what()); \
+ (void)e; \
}) \
UT_CATCH (std::exception, e, \
{ \
diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp
index b7fcb62..108348e 100644
--- a/src/TestRunner.cpp
+++ b/src/TestRunner.cpp
@@ -32,6 +32,11 @@ TestRunner::~TestRunner()
delete m_timer;
}
+TestResults* TestRunner::GetTestResults()
+{
+ return m_result;
+}
+
int TestRunner::Finish() const
{
float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0);
@@ -51,7 +56,8 @@ bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName)
void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
{
- CurrentTest::Results() = result;
+ if (curTest->m_isMockTest == false)
+ CurrentTest::Results() = result;
Timer testTimer;
testTimer.Start();
@@ -70,7 +76,7 @@ void TestRunner::RunTest(TestResults* const result, Test* const curTest, int con
result->OnTestFailure(curTest->m_details, stream.GetText());
}
- result->OnTestFinish(curTest->m_details, static_cast(testTimeInMs/1000.0));
+ result->OnTestFinish(curTest->m_details, static_cast< float >(testTimeInMs / 1000.0));
}
}
diff --git a/src/TestRunner.h b/src/TestRunner.h
index 2ad6e5c..27ec9c6 100644
--- a/src/TestRunner.h
+++ b/src/TestRunner.h
@@ -27,7 +27,7 @@ public:
explicit TestRunner(TestReporter& reporter);
~TestRunner();
- template
+ template< class Predicate >
int RunTestsIf(TestList const& list, char const* suiteName,
const Predicate& predicate, int maxTestTimeInMs) const
{
@@ -38,12 +38,14 @@ public:
if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
RunTest(m_result, curTest, maxTestTimeInMs);
- curTest = curTest->next;
+ curTest = curTest->m_nextTest;
}
return Finish();
}
+ TestResults* GetTestResults();
+
private:
TestReporter* m_reporter;
TestResults* m_result;
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 664a670..6116b19 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,49 +1,111 @@
#include "../Config.h"
-#ifdef UNITTEST_USE_EXCEPTIONS
-
#include "../unittestpp.h"
-#include "../AssertException.h"
#include "../ReportAssert.h"
+#include "../AssertException.h"
+
+#include "RecordingReporter.h"
using namespace UnitTest;
namespace {
+TEST(CanSetAssertExpected)
+{
+ ExpectAssert(true);
+ CHECK(AssertExpected());
+
+ ExpectAssert(false);
+ CHECK(!AssertExpected());
+}
+
+#ifdef UNITTEST_USE_EXCEPTIONS
+
TEST(ReportAssertThrowsAssertException)
{
bool caught = false;
try
{
- ReportAssert("", "", 0);
+ TestResults testResults;
+ TestDetails testDetails("", "", "", 0);
+ ReportAssertEx(&testResults, &testDetails, "", "", 0);
}
catch(AssertException const&)
{
caught = true;
}
- CHECK (true == caught);
+ CHECK(true == caught);
}
-TEST(ReportAssertSetsCorrectInfoInException)
+TEST(ReportAssertClearsExpectAssertFlag)
+{
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
+ try
+ {
+ ExpectAssert(true);
+ ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ }
+ catch(AssertException const&)
+ {
+ }
+
+ CHECK(AssertExpected() == false);
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected)
{
const int lineNumber = 12345;
const char* description = "description";
const char* filename = "filename";
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
try
{
- ReportAssert(description, filename, lineNumber);
+ ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber);
}
- catch(AssertException const& e)
+ catch(AssertException const&)
{
- CHECK_EQUAL(description, e.what());
- CHECK_EQUAL(filename, e.Filename());
- CHECK_EQUAL(lineNumber, e.LineNumber());
}
+
+ CHECK_EQUAL(description, reporter.lastFailedMessage);
+ CHECK_EQUAL(filename, reporter.lastFailedFile);
+ CHECK_EQUAL(lineNumber, reporter.lastFailedLine);
}
+TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
+{
+ ExpectAssert(true);
+
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
+ try
+ {
+ ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ }
+ catch(AssertException const&)
+ {
+ }
+
+ CHECK_EQUAL(0, reporter.testFailedCount);
}
#endif
+
+TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning)
+{
+ CHECK_ASSERT(ReportAssert("", "", 0));
+ CHECK(!AssertExpected());
+}
+
+}
diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp
index b37bff2..6b88ed4 100644
--- a/src/tests/TestTestList.cpp
+++ b/src/tests/TestTestList.cpp
@@ -6,23 +6,23 @@ using namespace UnitTest;
namespace {
-TEST (TestListIsEmptyByDefault)
+TEST(TestListIsEmptyByDefault)
{
TestList list;
- CHECK (list.GetHead() == 0);
+ CHECK(list.GetHead() == 0);
}
-TEST (AddingTestSetsHeadToTest)
+TEST(AddingTestSetsHeadToTest)
{
Test test("test");
TestList list;
list.Add(&test);
- CHECK (list.GetHead() == &test);
- CHECK (test.next == 0);
+ CHECK(list.GetHead() == &test);
+ CHECK(test.m_nextTest == 0);
}
-TEST (AddingSecondTestAddsItToEndOfList)
+TEST(AddingSecondTestAddsItToEndOfList)
{
Test test1("test1");
Test test2("test2");
@@ -31,20 +31,20 @@ TEST (AddingSecondTestAddsItToEndOfList)
list.Add(&test1);
list.Add(&test2);
- CHECK (list.GetHead() == &test1);
- CHECK (test1.next == &test2);
- CHECK (test2.next == 0);
+ CHECK(list.GetHead() == &test1);
+ CHECK(test1.m_nextTest == &test2);
+ CHECK(test2.m_nextTest == 0);
}
-TEST (ListAdderAddsTestToList)
+TEST(ListAdderAddsTestToList)
{
TestList list;
Test test("");
ListAdder adder(list, &test);
- CHECK (list.GetHead() == &test);
- CHECK (test.next == 0);
+ CHECK(list.GetHead() == &test);
+ CHECK(test.m_nextTest == 0);
}
}
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index a1506e5..d613580 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -19,7 +19,7 @@ TEST_EX(DummyTest, list1)
TEST (TestsAreAddedToTheListThroughMacro)
{
CHECK(list1.GetHead() != 0);
- CHECK(list1.GetHead()->next == 0);
+ CHECK(list1.GetHead()->m_nextTest == 0);
}
#ifdef UNITTEST_USE_EXCEPTIONS
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index 9acdaa5..bda88ae 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -10,6 +10,23 @@ using namespace UnitTest;
namespace
{
+struct TestRunnerFixture
+{
+ TestRunnerFixture()
+ : runner(reporter)
+ {
+ s_testRunnerFixtureTestResults = runner.GetTestResults();
+ }
+
+ static TestResults* s_testRunnerFixtureTestResults;
+
+ RecordingReporter reporter;
+ TestList list;
+ TestRunner runner;
+};
+
+TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL;
+
struct MockTest : public Test
{
MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1)
@@ -18,16 +35,19 @@ struct MockTest : public Test
, asserted(assert_)
, count(count_)
{
+ m_isMockTest = true;
}
- virtual void RunImpl(TestResults& testResults_) const
+ virtual void RunImpl() const
{
+ TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults;
+
for (int i=0; i < count; ++i)
{
if (asserted)
- ReportAssert("desc", "file", 0);
+ ReportAssertEx(testResults, &m_details, "desc", "file", 0);
else if (!success)
- testResults_.OnTestFailure(m_details, "message");
+ testResults->OnTestFailure(m_details, "message");
}
}
@@ -36,19 +56,6 @@ struct MockTest : public Test
int const count;
};
-
-struct TestRunnerFixture
-{
- TestRunnerFixture()
- : runner(reporter)
- {
- }
-
- RecordingReporter reporter;
- TestList list;
- TestRunner runner;
-};
-
TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly)
{
MockTest test("goodtest", true, false);
@@ -104,7 +111,7 @@ TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest)
MockTest test3("test", false, false);
list.Add(&test3);
- CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0));
+ CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0));
CHECK_EQUAL(2, reporter.testFailedCount);
}
@@ -117,7 +124,6 @@ TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
CHECK_EQUAL(1, reporter.testFailedCount);
}
-
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
{
MockTest test1("test", true, false);
From c8f551a5021ffc249e6d1caa0277b6dc97ef8a88 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:43:13 -0600
Subject: [PATCH 014/218] r9 | charles.nicholson | 2010-03-17 17:13:51 -0500
(Wed, 17 Mar 2010) | 1 line setjmp/longjmp in place for assert handling when
UNITTEST_USE_EXCEPTIONS is not defined
---
src/CheckMacros.h | 10 +++----
src/ExecuteTest.h | 53 ++++++++++++++++++---------------
src/ReportAssert.cpp | 22 ++++++++++++--
src/ReportAssert.h | 12 --------
src/ReportAssertImpl.h | 45 ++++++++++++++++++++++++++++
src/TimeConstraint.cpp | 2 +-
src/tests/TestAssertHandler.cpp | 53 ++++++++++++++++++++++++---------
src/tests/TestTestRunner.cpp | 11 ++++++-
src/tests/TestUnitTestPP.cpp | 1 -
src/unittestpp.h | 1 +
10 files changed, 150 insertions(+), 60 deletions(-)
create mode 100644 src/ReportAssertImpl.h
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 5523b3c..c29d78e 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -7,6 +7,7 @@
#include "MemoryOutStream.h"
#include "TestDetails.h"
#include "CurrentTest.h"
+#include "ReportAssertImpl.h"
#ifdef CHECK
#error UnitTest++ redefines CHECK
@@ -118,7 +119,7 @@
} while (0)
-// CHECK_THROW only exists when UNITTEST_USE_EXCEPTIONS is defined (see Config.h)
+// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_USE_EXCEPTIONS is defined (see Config.h)
#ifdef UNITTEST_USE_EXCEPTIONS
#define CHECK_THROW(expression, ExpectedExceptionType) \
do \
@@ -135,10 +136,9 @@
#define CHECK_ASSERT(expression) \
do \
{ \
- UnitTest::ExpectAssert(true); \
+ UnitTest::Detail::ExpectAssert(true); \
CHECK_THROW(expression, UnitTest::AssertException); \
- UnitTest::ExpectAssert(false); \
+ UnitTest::Detail::ExpectAssert(false); \
} while(0)
-
-#endif
#endif
+#endif
\ No newline at end of file
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index 0c37eb3..fdf9462 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -1,12 +1,17 @@
#ifndef UNITTEST_EXECUTE_TEST_H
#define UNITTEST_EXECUTE_TEST_H
+#include "Config.h"
#include "ExceptionMacros.h"
#include "TestDetails.h"
#include "MemoryOutStream.h"
#include "AssertException.h"
#include "CurrentTest.h"
+#ifndef UNITTEST_USE_EXCEPTIONS
+ #include "ReportAssertImpl.h"
+#endif
+
#ifdef UNITTEST_POSIX
#include "Posix/SignalTranslator.h"
#endif
@@ -19,33 +24,33 @@ void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
if (isMockTest == false)
CurrentTest::Details() = &details;
+#ifndef UNITTEST_USE_EXCEPTIONS
+ if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0)
+ {
+#endif
#ifndef UNITTEST_POSIX
- UT_TRY
- ({
- testObject.RunImpl();
- })
+ UT_TRY({ testObject.RunImpl(); })
#else
- UT_TRY
- ({
- UNITTEST_THROW_SIGNALS_POSIX_ONLY
- testObject.RunImpl();
- })
+ UT_TRY
+ ({
+ UNITTEST_THROW_SIGNALS_POSIX_ONLY
+ testObject.RunImpl();
+ })
+#endif
+ UT_CATCH(AssertException, e, { (void)e; })
+ UT_CATCH(std::exception, e,
+ {
+ MemoryOutStream stream;
+ stream << "Unhandled exception: " << e.what();
+ CurrentTest::Results()->OnTestFailure(details, stream.GetText());
+ })
+ UT_CATCH_ALL
+ ({
+ CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
+ })
+#ifndef UNITTEST_USE_EXCEPTIONS
+ }
#endif
-
- UT_CATCH(AssertException, e,
- {
- (void)e;
- })
- UT_CATCH(std::exception, e,
- {
- MemoryOutStream stream;
- stream << "Unhandled exception: " << e.what();
- CurrentTest::Results()->OnTestFailure(details, stream.GetText());
- })
- UT_CATCH_ALL
- ({
- CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
- })
}
}
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index fb4d043..6e712fd 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -1,9 +1,14 @@
#include "ReportAssert.h"
+#include "ReportAssertImpl.h"
#include "AssertException.h"
#include "CurrentTest.h"
#include "TestResults.h"
#include "TestDetails.h"
+#ifndef UNITTEST_USE_EXCEPTIONS
+ #include "ReportAssertImpl.h"
+#endif
+
namespace UnitTest {
namespace
@@ -17,9 +22,20 @@ namespace
void ReportAssert(char const* description, char const* filename, int lineNumber)
{
- ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(), description, filename, lineNumber);
+ Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(),
+ description, filename, lineNumber);
}
+namespace Detail {
+
+#ifndef UNITTEST_USE_EXCEPTIONS
+jmp_buf* GetAssertJmpBuf()
+{
+ static jmp_buf s_jmpBuf;
+ return &s_jmpBuf;
+}
+#endif
+
void ReportAssertEx(TestResults* testResults,
const TestDetails* testDetails,
char const* description,
@@ -36,6 +52,8 @@ void ReportAssertEx(TestResults* testResults,
#ifdef UNITTEST_USE_EXCEPTIONS
throw AssertException();
+#else
+ UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
#endif
}
@@ -49,4 +67,4 @@ bool AssertExpected()
return AssertExpectedFlag();
}
-}
+}}
diff --git a/src/ReportAssert.h b/src/ReportAssert.h
index 253229a..893cd3c 100644
--- a/src/ReportAssert.h
+++ b/src/ReportAssert.h
@@ -3,20 +3,8 @@
namespace UnitTest {
-class TestResults;
-class TestDetails;
-
void ReportAssert(char const* description, char const* filename, int lineNumber);
-void ReportAssertEx(TestResults* testResults,
- const TestDetails* testDetails,
- char const* description,
- char const* filename,
- int lineNumber);
-
-void ExpectAssert(bool expected);
-bool AssertExpected();
-
}
#endif
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
new file mode 100644
index 0000000..f53bade
--- /dev/null
+++ b/src/ReportAssertImpl.h
@@ -0,0 +1,45 @@
+#ifndef UNITTEST_REPORTASSERTIMPL_H
+#define UNITTEST_REPORTASSERTIMPL_H
+
+#include "Config.h"
+
+#ifndef UNITTEST_USE_EXCEPTIONS
+ #include
+#endif
+
+namespace UnitTest {
+
+class TestResults;
+class TestDetails;
+
+namespace Detail {
+
+void ExpectAssert(bool expected);
+
+void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber);
+
+bool AssertExpected();
+
+#ifndef UNITTEST_USE_EXCEPTIONS
+ jmp_buf* GetAssertJmpBuf();
+
+ #ifdef _MSC_VER
+ #define UNITTEST_SET_ASSERT_JUMP_TARGET() \
+ __pragma(warning(push)) __pragma(warning(disable:4611)) \
+ setjmp(*UnitTest::Detail::GetAssertJmpBuf()) \
+ __pragma(warning(pop))
+ #else
+ #define UNITTEST_SET_ASSERT_JUMP_TARGET() setjmp(*UnitTest::Detail::GetAssertJmpBuf())
+ #endif
+
+ #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() longjmp(*UnitTest::Detail::GetAssertJmpBuf(), 1)
+#endif
+
+}
+}
+
+#endif
diff --git a/src/TimeConstraint.cpp b/src/TimeConstraint.cpp
index 4adb260..89f1b87 100644
--- a/src/TimeConstraint.cpp
+++ b/src/TimeConstraint.cpp
@@ -22,7 +22,7 @@ TimeConstraint::~TimeConstraint()
stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
"ms but took " << totalTimeInMs << "ms.";
- UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
+ CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
}
}
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 6116b19..7cbce10 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -2,9 +2,11 @@
#include "../unittestpp.h"
#include "../ReportAssert.h"
+#include "../ReportAssertImpl.h"
#include "../AssertException.h"
#include "RecordingReporter.h"
+#include
using namespace UnitTest;
@@ -12,11 +14,11 @@ namespace {
TEST(CanSetAssertExpected)
{
- ExpectAssert(true);
- CHECK(AssertExpected());
+ Detail::ExpectAssert(true);
+ CHECK(Detail::AssertExpected());
- ExpectAssert(false);
- CHECK(!AssertExpected());
+ Detail::ExpectAssert(false);
+ CHECK(!Detail::AssertExpected());
}
#ifdef UNITTEST_USE_EXCEPTIONS
@@ -29,7 +31,7 @@ TEST(ReportAssertThrowsAssertException)
{
TestResults testResults;
TestDetails testDetails("", "", "", 0);
- ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
}
catch(AssertException const&)
{
@@ -47,14 +49,14 @@ TEST(ReportAssertClearsExpectAssertFlag)
try
{
- ExpectAssert(true);
- ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ Detail::ExpectAssert(true);
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
}
catch(AssertException const&)
{
}
- CHECK(AssertExpected() == false);
+ CHECK(Detail::AssertExpected() == false);
CHECK_EQUAL(0, reporter.testFailedCount);
}
@@ -70,7 +72,7 @@ TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected)
try
{
- ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber);
+ Detail::ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber);
}
catch(AssertException const&)
{
@@ -83,7 +85,7 @@ TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected)
TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
{
- ExpectAssert(true);
+ Detail::ExpectAssert(true);
RecordingReporter reporter;
TestResults testResults(&reporter);
@@ -91,7 +93,7 @@ TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
try
{
- ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
}
catch(AssertException const&)
{
@@ -100,12 +102,35 @@ TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
CHECK_EQUAL(0, reporter.testFailedCount);
}
-#endif
-
TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning)
{
+ Detail::ExpectAssert(true);
CHECK_ASSERT(ReportAssert("", "", 0));
- CHECK(!AssertExpected());
+ CHECK(!Detail::AssertExpected());
+ Detail::ExpectAssert(false);
}
+#else
+
+TEST(SetAssertJumpTargetReturnsFalseWhenSettingJumpTarget)
+{
+ CHECK(UNITTEST_SET_ASSERT_JUMP_TARGET() == false);
+}
+
+TEST(JumpToAssertJumpTarget_JumpsToSetPoint_ReturnsTrue)
+{
+ const volatile bool taken = !!UNITTEST_SET_ASSERT_JUMP_TARGET();
+
+ volatile bool set = false;
+ if (taken == false)
+ {
+ UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
+ set = true;
+ }
+
+ CHECK(set == false);
+}
+
+#endif
+
}
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index bda88ae..d0de516 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -4,6 +4,7 @@
#include "../TestList.h"
#include "../TimeHelpers.h"
#include "../TimeConstraint.h"
+#include "../ReportAssertImpl.h"
using namespace UnitTest;
@@ -45,7 +46,7 @@ struct MockTest : public Test
for (int i=0; i < count; ++i)
{
if (asserted)
- ReportAssertEx(testResults, &m_details, "desc", "file", 0);
+ Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0);
else if (!success)
testResults->OnTestFailure(m_details, "message");
}
@@ -124,6 +125,14 @@ TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
CHECK_EQUAL(1, reporter.testFailedCount);
}
+TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit)
+{
+ MockTest test("test", false, true, 3);
+ list.Add(&test);
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(1, reporter.summaryFailureCount);
+}
+
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
{
MockTest test1("test", true, false);
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index 9237aa9..3fdf7a8 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -1,5 +1,4 @@
#include "../unittestpp.h"
-#include "../ReportAssert.h"
#include "ScopedCurrentTest.h"
// These are sample tests that show the different features of the framework
diff --git a/src/unittestpp.h b/src/unittestpp.h
index 7e0d893..db0dfb9 100644
--- a/src/unittestpp.h
+++ b/src/unittestpp.h
@@ -6,5 +6,6 @@
#include "CheckMacros.h"
#include "TestRunner.h"
#include "TimeConstraint.h"
+#include "ReportAssert.h"
#endif
From bcde677ff0f74bb52eaf3790c95bfcabd027276d Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:43:23 -0600
Subject: [PATCH 015/218] r10 | charles.nicholson | 2010-03-17 18:04:53 -0500
(Wed, 17 Mar 2010) | 1 line rename unittestpp folder to src, fix bin/lib/obj
folders in vcproj files
---
src/MemoryOutStream.h | 136 +++++------
src/Posix/TimeHelpers.cpp | 66 +++---
src/Posix/TimeHelpers.h | 56 ++---
src/TestReporterStdout.cpp | 92 ++++----
src/Win32/TimeHelpers.h | 96 ++++----
src/tests/TestTimeConstraintMacro.cpp | 130 +++++------
src/tests/test-unittestpp.vcproj | 256 +++++++++++++++++++++
src/unittestpp.vcproj | 318 ++++++++++++++++++++++++++
8 files changed, 862 insertions(+), 288 deletions(-)
create mode 100644 src/tests/test-unittestpp.vcproj
create mode 100644 src/unittestpp.vcproj
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 37a4afd..754c1e5 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -1,68 +1,68 @@
-#ifndef UNITTEST_MEMORYOUTSTREAM_H
-#define UNITTEST_MEMORYOUTSTREAM_H
-
-#include "Config.h"
-
-#ifndef UNITTEST_USE_CUSTOM_STREAMS
-
-#include
-
-namespace UnitTest
-{
-
-class MemoryOutStream : public std::ostringstream
-{
-public:
- MemoryOutStream() {}
- ~MemoryOutStream() {}
- char const* GetText() const;
-
-private:
- MemoryOutStream(MemoryOutStream const&);
- void operator =(MemoryOutStream const&);
-
- mutable std::string m_text;
-};
-
-}
-
-#else
-
-#include
-
-namespace UnitTest
-{
-
-class MemoryOutStream
-{
-public:
- explicit MemoryOutStream(int const size = 256);
- ~MemoryOutStream();
-
- char const* GetText() const;
-
- MemoryOutStream& operator << (char const* txt);
- MemoryOutStream& operator << (int n);
- MemoryOutStream& operator << (long n);
- MemoryOutStream& operator << (unsigned long n);
- MemoryOutStream& operator << (float f);
- MemoryOutStream& operator << (double d);
- MemoryOutStream& operator << (void const* p);
- MemoryOutStream& operator << (unsigned int s);
-
- enum { GROW_CHUNK_SIZE = 32 };
- int GetCapacity() const;
-
-private:
- void operator= (MemoryOutStream const&);
- void GrowBuffer(int capacity);
-
- int m_capacity;
- char* m_buffer;
-};
-
-}
-
-#endif
-
-#endif
+#ifndef UNITTEST_MEMORYOUTSTREAM_H
+#define UNITTEST_MEMORYOUTSTREAM_H
+
+#include "Config.h"
+
+#ifndef UNITTEST_USE_CUSTOM_STREAMS
+
+#include
+
+namespace UnitTest
+{
+
+class MemoryOutStream : public std::ostringstream
+{
+public:
+ MemoryOutStream() {}
+ ~MemoryOutStream() {}
+ char const* GetText() const;
+
+private:
+ MemoryOutStream(MemoryOutStream const&);
+ void operator =(MemoryOutStream const&);
+
+ mutable std::string m_text;
+};
+
+}
+
+#else
+
+#include
+
+namespace UnitTest
+{
+
+class MemoryOutStream
+{
+public:
+ explicit MemoryOutStream(int const size = 256);
+ ~MemoryOutStream();
+
+ char const* GetText() const;
+
+ MemoryOutStream& operator << (char const* txt);
+ MemoryOutStream& operator << (int n);
+ MemoryOutStream& operator << (long n);
+ MemoryOutStream& operator << (unsigned long n);
+ MemoryOutStream& operator << (float f);
+ MemoryOutStream& operator << (double d);
+ MemoryOutStream& operator << (void const* p);
+ MemoryOutStream& operator << (unsigned int s);
+
+ enum { GROW_CHUNK_SIZE = 32 };
+ int GetCapacity() const;
+
+private:
+ void operator= (MemoryOutStream const&);
+ void GrowBuffer(int capacity);
+
+ int m_capacity;
+ char* m_buffer;
+};
+
+}
+
+#endif
+
+#endif
diff --git a/src/Posix/TimeHelpers.cpp b/src/Posix/TimeHelpers.cpp
index 65c6393..35e8136 100644
--- a/src/Posix/TimeHelpers.cpp
+++ b/src/Posix/TimeHelpers.cpp
@@ -1,33 +1,33 @@
-#include "TimeHelpers.h"
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
-{
- m_startTime.tv_sec = 0;
- m_startTime.tv_usec = 0;
-}
-
-void Timer::Start()
-{
- gettimeofday(&m_startTime, 0);
-}
-
-double Timer::GetTimeInMs() const
-{
- struct timeval currentTime;
- gettimeofday(¤tTime, 0);
-
- double const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
- double const dus = currentTime.tv_usec - m_startTime.tv_usec;
-
- return (dsecs * 1000.0) + (dus / 1000.0);
-}
-
-void TimeHelpers::SleepMs(int ms)
-{
- usleep(ms * 1000);
-}
-
-}
+#include "TimeHelpers.h"
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+{
+ m_startTime.tv_sec = 0;
+ m_startTime.tv_usec = 0;
+}
+
+void Timer::Start()
+{
+ gettimeofday(&m_startTime, 0);
+}
+
+double Timer::GetTimeInMs() const
+{
+ struct timeval currentTime;
+ gettimeofday(¤tTime, 0);
+
+ double const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
+ double const dus = currentTime.tv_usec - m_startTime.tv_usec;
+
+ return (dsecs * 1000.0) + (dus / 1000.0);
+}
+
+void TimeHelpers::SleepMs(int ms)
+{
+ usleep(ms * 1000);
+}
+
+}
diff --git a/src/Posix/TimeHelpers.h b/src/Posix/TimeHelpers.h
index 528e62e..f6c500b 100644
--- a/src/Posix/TimeHelpers.h
+++ b/src/Posix/TimeHelpers.h
@@ -1,28 +1,28 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include
-
-namespace UnitTest {
-
-class Timer
-{
-public:
- Timer();
- void Start();
- double GetTimeInMs() const;
-
-private:
- struct timeval m_startTime;
-};
-
-
-namespace TimeHelpers
-{
-void SleepMs (int ms);
-}
-
-
-}
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include
+
+namespace UnitTest {
+
+class Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ struct timeval m_startTime;
+};
+
+
+namespace TimeHelpers
+{
+void SleepMs (int ms);
+}
+
+
+}
+
+#endif
diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp
index 563113c..3a29db4 100644
--- a/src/TestReporterStdout.cpp
+++ b/src/TestReporterStdout.cpp
@@ -1,46 +1,46 @@
-#include "TestReporterStdout.h"
-#include
-
-#include "TestDetails.h"
-
-// cstdio doesn't pull in namespace std on VC6, so we do it here.
-#if defined(_MSC_VER) && (_MSC_VER == 1200)
- namespace std {}
-#endif
-
-namespace UnitTest {
-
-void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
-{
-#if defined(__APPLE__) || defined(__GNUG__)
- char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
-#else
- char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
-#endif
-
- using namespace std;
- printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
-}
-
-void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
-{
-}
-
-void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
-{
-}
-
-void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
- int const failureCount, float secondsElapsed)
-{
- using namespace std;
-
- if (failureCount > 0)
- printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
- else
- printf("Success: %d tests passed.\n", totalTestCount);
-
- printf("Test time: %.2f seconds.\n", secondsElapsed);
-}
-
-}
+#include "TestReporterStdout.h"
+#include
+
+#include "TestDetails.h"
+
+// cstdio doesn't pull in namespace std on VC6, so we do it here.
+#if defined(_MSC_VER) && (_MSC_VER == 1200)
+ namespace std {}
+#endif
+
+namespace UnitTest {
+
+void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
+{
+#if defined(__APPLE__) || defined(__GNUG__)
+ char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
+#else
+ char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
+#endif
+
+ using namespace std;
+ printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
+}
+
+void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
+{
+}
+
+void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
+{
+}
+
+void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
+ int const failureCount, float secondsElapsed)
+{
+ using namespace std;
+
+ if (failureCount > 0)
+ printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
+ else
+ printf("Success: %d tests passed.\n", totalTestCount);
+
+ printf("Test time: %.2f seconds.\n", secondsElapsed);
+}
+
+}
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index 088de24..9bbf12b 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -1,48 +1,48 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include "../Config.h"
-
-
-#ifdef UNITTEST_MINGW
- #ifndef __int64
- #define __int64 long long
- #endif
-#endif
-
-namespace UnitTest {
-
-class Timer
-{
-public:
- Timer();
- void Start();
- double GetTimeInMs() const;
-
-private:
- __int64 GetTime() const;
-
- void* m_threadHandle;
-
-#if defined(_WIN64)
- unsigned __int64 m_processAffinityMask;
-#else
- unsigned long m_processAffinityMask;
-#endif
-
- __int64 m_startTime;
- __int64 m_frequency;
-};
-
-
-namespace TimeHelpers
-{
-void SleepMs (int ms);
-}
-
-
-}
-
-
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include "../Config.h"
+
+
+#ifdef UNITTEST_MINGW
+ #ifndef __int64
+ #define __int64 long long
+ #endif
+#endif
+
+namespace UnitTest {
+
+class Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ __int64 GetTime() const;
+
+ void* m_threadHandle;
+
+#if defined(_WIN64)
+ unsigned __int64 m_processAffinityMask;
+#else
+ unsigned long m_processAffinityMask;
+#endif
+
+ __int64 m_startTime;
+ __int64 m_frequency;
+};
+
+
+namespace TimeHelpers
+{
+void SleepMs (int ms);
+}
+
+
+}
+
+
+
+#endif
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index 056d89d..6939cff 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,65 +1,65 @@
-#include "../unittestpp.h"
-#include "../TimeHelpers.h"
-
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-namespace {
-
-TEST(TimeConstraintMacroQualifiesNamespace)
-{
- // If this compiles without a "using namespace UnitTest;", all is well.
- UNITTEST_TIME_CONSTRAINT(1);
-}
-
-TEST(TimeConstraintMacroUsesCorrectInfo)
-{
- int testLine = 0;
- RecordingReporter reporter;
-
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
- UnitTest::TimeHelpers::SleepMs(20);
- }
-
- using namespace std;
-
- CHECK_EQUAL(1, reporter.testFailedCount);
- CHECK(strstr(reporter.lastFailedFile, __FILE__));
- CHECK_EQUAL(testLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
-}
-
-TEST(TimeConstraintMacroComparesAgainstPreciseActual)
-{
- int testLine = 0;
- RecordingReporter reporter;
-
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__;
-
- // start a new timer and run until we're as little over the 1 msec
- // threshold as we can achieve; this should guarantee that the "test"
- // runs in some very small amount of time > 1 msec
- UnitTest::Timer myTimer;
- myTimer.Start();
-
- while (myTimer.GetTimeInMs() < 1.001)
- UnitTest::TimeHelpers::SleepMs(0);
- }
-
- using namespace std;
-
- CHECK_EQUAL(1, reporter.testFailedCount);
- CHECK(strstr(reporter.lastFailedFile, __FILE__));
- CHECK_EQUAL(testLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
-}
-
-}
+#include "../unittestpp.h"
+#include "../TimeHelpers.h"
+
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+namespace {
+
+TEST(TimeConstraintMacroQualifiesNamespace)
+{
+ // If this compiles without a "using namespace UnitTest;", all is well.
+ UNITTEST_TIME_CONSTRAINT(1);
+}
+
+TEST(TimeConstraintMacroUsesCorrectInfo)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
+ UnitTest::TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
+}
+
+TEST(TimeConstraintMacroComparesAgainstPreciseActual)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__;
+
+ // start a new timer and run until we're as little over the 1 msec
+ // threshold as we can achieve; this should guarantee that the "test"
+ // runs in some very small amount of time > 1 msec
+ UnitTest::Timer myTimer;
+ myTimer.Start();
+
+ while (myTimer.GetTimeInMs() < 1.001)
+ UnitTest::TimeHelpers::SleepMs(0);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
+}
+
+}
diff --git a/src/tests/test-unittestpp.vcproj b/src/tests/test-unittestpp.vcproj
new file mode 100644
index 0000000..0352507
--- /dev/null
+++ b/src/tests/test-unittestpp.vcproj
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/unittestpp.vcproj b/src/unittestpp.vcproj
new file mode 100644
index 0000000..e66dff8
--- /dev/null
+++ b/src/unittestpp.vcproj
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From eebfcb4103c2d1f86c7cb31c069c75ca7ace5971 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:43:32 -0600
Subject: [PATCH 016/218] r11 | charles.nicholson | 2010-03-17 18:49:54 -0500
(Wed, 17 Mar 2010) | 1 line fix makefile, gcc 4.3 compiles cleanly, fix
obj/bin/lib dirs
---
src/AssertException.cpp | 2 +-
src/AssertException.h | 2 +-
src/ExecuteTest.h | 1 +
src/XmlTestReporter.cpp | 6 +++++-
src/XmlTestReporter.h | 4 ++++
src/tests/TestXmlTestReporter.cpp | 5 +++++
src/tests/test-unittestpp.vcproj | 8 ++++++--
src/unittestpp.vcproj | 16 ++++++++++++----
unittestpp_vs2005.sln | 29 +++++++++++++++++++++++++++++
9 files changed, 64 insertions(+), 9 deletions(-)
create mode 100644 unittestpp_vs2005.sln
diff --git a/src/AssertException.cpp b/src/AssertException.cpp
index cc2c7e1..3615b82 100644
--- a/src/AssertException.cpp
+++ b/src/AssertException.cpp
@@ -8,7 +8,7 @@ AssertException::AssertException()
{
}
-AssertException::~AssertException()
+AssertException::~AssertException() throw()
{
}
diff --git a/src/AssertException.h b/src/AssertException.h
index 4603827..07f3400 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -13,7 +13,7 @@ class AssertException : public std::exception
{
public:
AssertException();
- virtual ~AssertException();
+ virtual ~AssertException() throw();
};
}
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index fdf9462..423a6b7 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -4,6 +4,7 @@
#include "Config.h"
#include "ExceptionMacros.h"
#include "TestDetails.h"
+#include "TestResults.h"
#include "MemoryOutStream.h"
#include "AssertException.h"
#include "CurrentTest.h"
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index 436ceeb..24aa85d 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -1,5 +1,7 @@
-#include "XmlTestReporter.h"
#include "Config.h"
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
+#include "XmlTestReporter.h"
#include
#include
@@ -125,3 +127,5 @@ void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& res
}
}
+
+#endif
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index c775b5a..a50aefc 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -1,6 +1,9 @@
#ifndef UNITTEST_XMLTESTREPORTER_H
#define UNITTEST_XMLTESTREPORTER_H
+#include "Config.h"
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
#include "DeferredTestReporter.h"
#include
@@ -32,3 +35,4 @@ private:
}
#endif
+#endif
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index 2419668..cf2e1f2 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,3 +1,6 @@
+#include "../Config.h"
+#ifdef UNITTEST_USE_DEFERRED_REPORTER
+
#include "../unittestpp.h"
#include "../XmlTestReporter.h"
@@ -181,3 +184,5 @@ TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures)
}
}
+
+#endif
diff --git a/src/tests/test-unittestpp.vcproj b/src/tests/test-unittestpp.vcproj
index 0352507..f35bed4 100644
--- a/src/tests/test-unittestpp.vcproj
+++ b/src/tests/test-unittestpp.vcproj
@@ -17,7 +17,7 @@
+
+
diff --git a/src/unittestpp.vcproj b/src/unittestpp.vcproj
index e66dff8..7e48179 100644
--- a/src/unittestpp.vcproj
+++ b/src/unittestpp.vcproj
@@ -17,8 +17,8 @@
@@ -80,8 +80,8 @@
+
+
+
+
diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln
new file mode 100644
index 0000000..88ef7df
--- /dev/null
+++ b/unittestpp_vs2005.sln
@@ -0,0 +1,29 @@
+�サソ
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp", "src\unittestpp.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp", "src\tests\test-unittestpp.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+ ProjectSection(ProjectDependencies) = postProject
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
From b2e2959c7650d06b91ea48e601b15406d7860c18 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:43:37 -0600
Subject: [PATCH 017/218] r12 | charles.nicholson | 2010-03-17 18:59:25 -0500
(Wed, 17 Mar 2010) | 1 line move unittestpp.h and config.h to top-level
folder, to allow 'include unittestpp/unittestpp.h' directives in client code
---
src/Config.h => config.h | 0
src/AssertException.h | 3 +--
src/Checks.h | 2 +-
src/DeferredTestReporter.cpp | 2 +-
src/DeferredTestReporter.h | 2 +-
src/DeferredTestResult.cpp | 2 +-
src/DeferredTestResult.h | 3 +--
src/ExceptionMacros.h | 2 +-
src/ExecuteTest.h | 2 +-
src/MemoryOutStream.h | 3 +--
src/ReportAssertImpl.h | 2 +-
src/Test.cpp | 2 +-
src/TestMacros.h | 2 +-
src/TimeHelpers.h | 2 +-
src/Win32/TimeHelpers.h | 3 +--
src/XmlTestReporter.cpp | 2 +-
src/XmlTestReporter.h | 2 +-
src/tests/Main.cpp | 4 +---
src/tests/TestAssertHandler.cpp | 4 ++--
src/tests/TestCheckMacros.cpp | 2 +-
src/tests/TestChecks.cpp | 2 +-
src/tests/TestCurrentTest.cpp | 2 +-
src/tests/TestDeferredTestReporter.cpp | 4 ++--
src/tests/TestExceptions.cpp | 5 ++---
src/tests/TestMemoryOutStream.cpp | 2 +-
src/tests/TestTest.cpp | 2 +-
src/tests/TestTestList.cpp | 2 +-
src/tests/TestTestMacros.cpp | 2 +-
src/tests/TestTestResults.cpp | 2 +-
src/tests/TestTestRunner.cpp | 2 +-
src/tests/TestTestSuite.cpp | 2 +-
src/tests/TestTimeConstraint.cpp | 2 +-
src/tests/TestTimeConstraintMacro.cpp | 2 +-
src/tests/TestUnitTestPP.cpp | 2 +-
src/tests/TestXmlTestReporter.cpp | 4 ++--
src/unittestpp.h | 11 -----------
src/unittestpp.vcproj | 4 ++--
unittestpp.h | 11 +++++++++++
38 files changed, 51 insertions(+), 58 deletions(-)
rename src/Config.h => config.h (100%)
delete mode 100644 src/unittestpp.h
create mode 100644 unittestpp.h
diff --git a/src/Config.h b/config.h
similarity index 100%
rename from src/Config.h
rename to config.h
diff --git a/src/AssertException.h b/src/AssertException.h
index 07f3400..5d27556 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -1,8 +1,7 @@
#ifndef UNITTEST_ASSERTEXCEPTION_H
#define UNITTEST_ASSERTEXCEPTION_H
-#include "Config.h"
-
+#include "../config.h"
#ifdef UNITTEST_USE_EXCEPTIONS
#include
diff --git a/src/Checks.h b/src/Checks.h
index e3ec7b2..b6bbdb8 100644
--- a/src/Checks.h
+++ b/src/Checks.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_CHECKS_H
#define UNITTEST_CHECKS_H
-#include "Config.h"
+#include "../config.h"
#include "TestResults.h"
#include "MemoryOutStream.h"
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index 8b7a29c..2d8c550 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index c037af3..3fcc9f5 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_DEFERREDTESTREPORTER_H
#define UNITTEST_DEFERREDTESTREPORTER_H
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index 33fc145..bd8b36e 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,4 +1,4 @@
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include "DeferredTestResult.h"
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index db3ffaa..ad139c0 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,8 +1,7 @@
#ifndef UNITTEST_DEFERREDTESTRESULT_H
#define UNITTEST_DEFERREDTESTRESULT_H
-#include "Config.h"
-
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include
diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h
index f10e780..311d7e5 100644
--- a/src/ExceptionMacros.h
+++ b/src/ExceptionMacros.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_EXCEPTIONMACROS_H
#define UNITTEST_EXCEPTIONMACROS_H
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_EXCEPTIONS
#define UT_TRY(x) try x
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index 423a6b7..f90aa7f 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_EXECUTE_TEST_H
#define UNITTEST_EXECUTE_TEST_H
-#include "Config.h"
+#include "../config.h"
#include "ExceptionMacros.h"
#include "TestDetails.h"
#include "TestResults.h"
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 754c1e5..2727b17 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -1,8 +1,7 @@
#ifndef UNITTEST_MEMORYOUTSTREAM_H
#define UNITTEST_MEMORYOUTSTREAM_H
-#include "Config.h"
-
+#include "../config.h"
#ifndef UNITTEST_USE_CUSTOM_STREAMS
#include
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index f53bade..43cc569 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_REPORTASSERTIMPL_H
#define UNITTEST_REPORTASSERTIMPL_H
-#include "Config.h"
+#include "../config.h"
#ifndef UNITTEST_USE_EXCEPTIONS
#include
diff --git a/src/Test.cpp b/src/Test.cpp
index d00749c..eaab9aa 100644
--- a/src/Test.cpp
+++ b/src/Test.cpp
@@ -1,4 +1,4 @@
-#include "Config.h"
+#include "../config.h"
#include "Test.h"
#include "TestList.h"
#include "TestResults.h"
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 912f8ca..c111604 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTMACROS_H
#define UNITTEST_TESTMACROS_H
-#include "Config.h"
+#include "../config.h"
#include "TestSuite.h"
#include "ExceptionMacros.h"
#include "ExecuteTest.h"
diff --git a/src/TimeHelpers.h b/src/TimeHelpers.h
index cbc3ff4..24f0efd 100644
--- a/src/TimeHelpers.h
+++ b/src/TimeHelpers.h
@@ -1,4 +1,4 @@
-#include "Config.h"
+#include "../config.h"
#if defined UNITTEST_POSIX
#include "Posix/TimeHelpers.h"
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index 9bbf12b..0d9ed7f 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -1,8 +1,7 @@
#ifndef UNITTEST_TIMEHELPERS_H
#define UNITTEST_TIMEHELPERS_H
-#include "../Config.h"
-
+#include "../../config.h"
#ifdef UNITTEST_MINGW
#ifndef __int64
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index 24aa85d..9d938c1 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include "XmlTestReporter.h"
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index a50aefc..abd9fce 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_XMLTESTREPORTER_H
#define UNITTEST_XMLTESTREPORTER_H
-#include "Config.h"
+#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp
index 3eb37da..963ad7b 100644
--- a/src/tests/Main.cpp
+++ b/src/tests/Main.cpp
@@ -1,6 +1,4 @@
-#include "../unittestpp.h"
-#include "../TestReporterStdout.h"
-
+#include "../../unittestpp.h"
int main(int, char const *[])
{
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 7cbce10..99e707a 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,6 +1,6 @@
-#include "../Config.h"
+#include "../../config.h"
+#include "../../unittestpp.h"
-#include "../unittestpp.h"
#include "../ReportAssert.h"
#include "../ReportAssertImpl.h"
#include "../AssertException.h"
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index 33fdc44..6b9fb66 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index ae34792..f32d2e7 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "RecordingReporter.h"
using namespace UnitTest;
diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp
index dd129c3..766539f 100644
--- a/src/tests/TestCurrentTest.cpp
+++ b/src/tests/TestCurrentTest.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../CurrentTest.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index fcdbd0f..3dcb2af 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,8 +1,8 @@
-#include "../Config.h"
+#include "../../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../DeferredTestReporter.h"
#include
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 1c4349a..88f9c70 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -1,8 +1,7 @@
-#include "../Config.h"
-
+#include "../../config.h"
#ifdef UNITTEST_USE_EXCEPTIONS
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 41a7843..7a3bc64 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../MemoryOutStream.h"
#include
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index cc48884..59eb759 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TestReporter.h"
#include "../TimeHelpers.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp
index 6b88ed4..fdeba34 100644
--- a/src/tests/TestTestList.cpp
+++ b/src/tests/TestTestList.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TestList.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index d613580..f8028d8 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TestMacros.h"
#include "../TestList.h"
#include "../TestResults.h"
diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp
index a8a0325..15fff1e 100644
--- a/src/tests/TestTestResults.cpp
+++ b/src/tests/TestTestResults.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TestResults.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index d0de516..3dc3edc 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "RecordingReporter.h"
#include "../ReportAssert.h"
#include "../TestList.h"
diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp
index 1abbf49..07e51cd 100644
--- a/src/tests/TestTestSuite.cpp
+++ b/src/tests/TestTestSuite.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
// We're really testing if it's possible to use the same suite in two files
// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp
index 6f2021d..96f880c 100644
--- a/src/tests/TestTimeConstraint.cpp
+++ b/src/tests/TestTimeConstraint.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TestResults.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index 6939cff..76f15c3 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index 3fdf7a8..a9da7a4 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -1,4 +1,4 @@
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "ScopedCurrentTest.h"
// These are sample tests that show the different features of the framework
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index cf2e1f2..4c17b6c 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,7 +1,7 @@
-#include "../Config.h"
+#include "../../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
-#include "../unittestpp.h"
+#include "../../unittestpp.h"
#include "../XmlTestReporter.h"
#include
diff --git a/src/unittestpp.h b/src/unittestpp.h
deleted file mode 100644
index db0dfb9..0000000
--- a/src/unittestpp.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef UNITTESTPP_H
-#define UNITTESTPP_H
-
-#include "Config.h"
-#include "TestMacros.h"
-#include "CheckMacros.h"
-#include "TestRunner.h"
-#include "TimeConstraint.h"
-#include "ReportAssert.h"
-
-#endif
diff --git a/src/unittestpp.vcproj b/src/unittestpp.vcproj
index 7e48179..0ff7274 100644
--- a/src/unittestpp.vcproj
+++ b/src/unittestpp.vcproj
@@ -177,7 +177,7 @@
>
Date: Wed, 9 Jan 2013 23:43:48 -0600
Subject: [PATCH 018/218] r13 | charles.nicholson | 2010-03-17 19:05:19 -0500
(Wed, 17 Mar 2010) | 1 line rename sln/vcproj to '_vs2005', fix up targets to
still be named unittestpp and test-unittestpp
---
.../{test-unittestpp.vcproj => test-unittestpp_vs2005.vcproj} | 4 +++-
src/{unittestpp.vcproj => unittestpp_vs2005.vcproj} | 4 +++-
unittestpp_vs2005.sln | 4 ++--
3 files changed, 8 insertions(+), 4 deletions(-)
rename src/tests/{test-unittestpp.vcproj => test-unittestpp_vs2005.vcproj} (92%)
rename src/{unittestpp.vcproj => unittestpp_vs2005.vcproj} (92%)
diff --git a/src/tests/test-unittestpp.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
similarity index 92%
rename from src/tests/test-unittestpp.vcproj
rename to src/tests/test-unittestpp_vs2005.vcproj
index f35bed4..6aaeec2 100644
--- a/src/tests/test-unittestpp.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -2,7 +2,7 @@
Date: Wed, 9 Jan 2013 23:43:54 -0600
Subject: [PATCH 019/218] r14 | charles.nicholson | 2010-03-17 19:39:17 -0500
(Wed, 17 Mar 2010) | 1 line better configuration names
---
src/tests/test-unittestpp_vs2005.vcproj | 4 ++--
src/unittestpp_vs2005.vcproj | 4 ++--
unittestpp_vs2005.sln | 20 ++++++++++----------
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index 6aaeec2..41526af 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -16,7 +16,7 @@
Date: Wed, 9 Jan 2013 23:43:59 -0600
Subject: [PATCH 020/218] r15 | charles.nicholson | 2010-03-17 20:08:52 -0500
(Wed, 17 Mar 2010) | 1 line simple changes from sony
---
src/Posix/TimeHelpers.h | 2 +-
src/TestMacros.h | 2 +-
src/Win32/TimeHelpers.cpp | 2 +-
src/Win32/TimeHelpers.h | 5 +----
4 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/Posix/TimeHelpers.h b/src/Posix/TimeHelpers.h
index f6c500b..5a5bd79 100644
--- a/src/Posix/TimeHelpers.h
+++ b/src/Posix/TimeHelpers.h
@@ -19,7 +19,7 @@ private:
namespace TimeHelpers
{
-void SleepMs (int ms);
+ void SleepMs(int ms);
}
diff --git a/src/TestMacros.h b/src/TestMacros.h
index c111604..931d8e7 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -78,7 +78,7 @@
\
void Test##Fixture##Name::RunImpl() const \
{ \
- bool ctorOk = false; \
+ volatile bool ctorOk = false; \
UT_TRY \
({ \
Fixture##Name##Helper fixtureHelper(m_details); \
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index 2f6f5f7..f7568be 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -41,7 +41,7 @@ __int64 Timer::GetTime() const
return curTime.QuadPart;
}
-void TimeHelpers::SleepMs(int const ms)
+void TimeHelpers::SleepMs(int ms)
{
::Sleep(ms);
}
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index 0d9ed7f..f31409b 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -36,12 +36,9 @@ private:
namespace TimeHelpers
{
-void SleepMs (int ms);
+ void SleepMs(int ms);
}
-
}
-
-
#endif
From 637f00a8a6994264f311f7832e3783d2880c32d0 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:07 -0600
Subject: [PATCH 021/218] r16 | charles.nicholson | 2010-03-18 15:01:25 -0500
(Thu, 18 Mar 2010) | 1 line DLL builds for win32, more bin/lib/obj location
and configuration name changing in vs2005
---
Makefile | 194 ++++++++++++------------
config.h | 4 +
src/AssertException.h | 3 +-
src/Checks.h | 8 +-
src/CurrentTest.cpp | 4 +-
src/CurrentTest.h | 6 +-
src/DeferredTestReporter.cpp | 2 +-
src/DeferredTestReporter.h | 4 +-
src/DeferredTestResult.cpp | 13 ++
src/DeferredTestResult.h | 24 ++-
src/MemoryOutStream.h | 6 +-
src/ReportAssert.cpp | 18 +--
src/ReportAssert.h | 4 +-
src/ReportAssertImpl.h | 16 +-
src/Test.h | 2 +-
src/TestDetails.h | 4 +-
src/TestList.h | 5 +-
src/TestReporter.h | 4 +-
src/TestReporterStdout.h | 2 +-
src/TestResults.h | 4 +-
src/TestRunner.h | 4 +-
src/TimeConstraint.h | 3 +-
src/Win32/TimeHelpers.h | 5 +-
src/XmlTestReporter.cpp | 4 +-
src/XmlTestReporter.h | 2 +-
src/tests/TestDeferredTestReporter.cpp | 8 +-
src/tests/test-unittestpp_vs2005.vcproj | 169 ++++++++++++++++++++-
src/unittestpp_vs2005.vcproj | 165 +++++++++++++++++++-
unittestpp_vs2005.sln | 30 ++--
29 files changed, 545 insertions(+), 172 deletions(-)
diff --git a/Makefile b/Makefile
index 0ce613b..b590a3f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,96 +1,98 @@
-CXX = g++
-CXXFLAGS ?= -g -Wall -W -Winline -ansi
-LDFLAGS ?=
-SED = sed
-MV = mv
-RM = rm
-
-.SUFFIXES: .o .cpp
-
-lib = libUnitTest++.a
-test = TestUnitTest++
-
-src = src/AssertException.cpp \
- src/Test.cpp \
- src/Checks.cpp \
- src/TestRunner.cpp \
- src/TestResults.cpp \
- src/TestReporter.cpp \
- src/TestReporterStdout.cpp \
- src/ReportAssert.cpp \
- src/TestList.cpp \
- src/TimeConstraint.cpp \
- src/TestDetails.cpp \
- src/MemoryOutStream.cpp \
- src/DeferredTestReporter.cpp \
- src/DeferredTestResult.cpp \
- src/XmlTestReporter.cpp \
- src/CurrentTest.cpp
-
-ifeq ($(MSYSTEM), MINGW32)
- src += src/Win32/TimeHelpers.cpp
-else
- src += src/Posix/SignalTranslator.cpp \
- src/Posix/TimeHelpers.cpp
-endif
-
-test_src = src/tests/Main.cpp \
- src/tests/TestAssertHandler.cpp \
- src/tests/TestChecks.cpp \
- src/tests/TestUnitTestPP.cpp \
- src/tests/TestTest.cpp \
- src/tests/TestTestResults.cpp \
- src/tests/TestTestRunner.cpp \
- src/tests/TestCheckMacros.cpp \
- src/tests/TestTestList.cpp \
- src/tests/TestTestMacros.cpp \
- src/tests/TestTimeConstraint.cpp \
- src/tests/TestTimeConstraintMacro.cpp \
- src/tests/TestMemoryOutStream.cpp \
- src/tests/TestDeferredTestReporter.cpp \
- src/tests/TestXmlTestReporter.cpp \
- src/tests/TestCurrentTest.cpp
-
-objects = $(patsubst %.cpp, %.o, $(src))
-test_objects = $(patsubst %.cpp, %.o, $(test_src))
-dependencies = $(subst .o,.d,$(objects))
-test_dependencies = $(subst .o,.d,$(test_objects))
-
-define make-depend
- $(CXX) $(CXXFLAGS) -M $1 | \
- $(SED) -e 's,\($(notdir $2)\) *:,$(dir $2)\1: ,' > $3.tmp
- $(SED) -e 's/#.*//' \
- -e 's/^[^:]*: *//' \
- -e 's/ *\\$$//' \
- -e '/^$$/ d' \
- -e 's/$$/ :/' $3.tmp >> $3.tmp
- $(MV) $3.tmp $3
-endef
-
-
-all: $(test)
-
-
-$(lib): $(objects)
- @echo Creating $(lib) library...
- @ar cr $(lib) $(objects)
-
-$(test): $(lib) $(test_objects)
- @echo Linking $(test)...
- @$(CXX) $(LDFLAGS) -o $(test) $(test_objects) $(lib)
- @echo Running unit tests...
- @./$(test)
-
-clean:
- -@$(RM) $(objects) $(test_objects) $(dependencies) $(test_dependencies) $(test) $(lib) 2> /dev/null
-
-%.o : %.cpp
- @echo $<
- @$(call make-depend,$<,$@,$(subst .o,.d,$@))
- @$(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp, %.o, $<)
-
-
-ifneq "$(MAKECMDGOALS)" "clean"
--include $(dependencies)
--include $(test_dependencies)
-endif
+CXX = g++
+CXXFLAGS ?= -g -Wall -W -Winline -ansi
+LDFLAGS ?=
+SED = sed
+MV = mv
+RM = rm
+
+.SUFFIXES: .o .cpp
+
+lib = libunittestpp.a
+test = test-unittestpp
+
+src = src/AssertException.cpp \
+ src/Test.cpp \
+ src/Checks.cpp \
+ src/TestRunner.cpp \
+ src/TestResults.cpp \
+ src/TestReporter.cpp \
+ src/TestReporterStdout.cpp \
+ src/ReportAssert.cpp \
+ src/TestList.cpp \
+ src/TimeConstraint.cpp \
+ src/TestDetails.cpp \
+ src/MemoryOutStream.cpp \
+ src/DeferredTestReporter.cpp \
+ src/DeferredTestResult.cpp \
+ src/XmlTestReporter.cpp \
+ src/CurrentTest.cpp
+
+ifeq ($(MSYSTEM), MINGW32)
+ src += src/Win32/TimeHelpers.cpp
+else
+ src += src/Posix/SignalTranslator.cpp \
+ src/Posix/TimeHelpers.cpp
+endif
+
+test_src = src/tests/Main.cpp \
+ src/tests/TestAssertHandler.cpp \
+ src/tests/TestChecks.cpp \
+ src/tests/TestUnitTestPP.cpp \
+ src/tests/TestTest.cpp \
+ src/tests/TestTestResults.cpp \
+ src/tests/TestTestRunner.cpp \
+ src/tests/TestCheckMacros.cpp \
+ src/tests/TestTestList.cpp \
+ src/tests/TestTestMacros.cpp \
+ src/tests/TestTimeConstraint.cpp \
+ src/tests/TestTimeConstraintMacro.cpp \
+ src/tests/TestMemoryOutStream.cpp \
+ src/tests/TestDeferredTestReporter.cpp \
+ src/tests/TestXmlTestReporter.cpp \
+ src/tests/TestCurrentTest.cpp
+
+objects = $(patsubst %.cpp, %.o, $(src))
+test_objects = $(patsubst %.cpp, %.o, $(test_src))
+dependencies = $(subst .o,.d,$(objects))
+test_dependencies = $(subst .o,.d,$(test_objects))
+
+define make-depend
+ $(CXX) $(CXXFLAGS) -M $1 | \
+ $(SED) -e 's,\($(notdir $2)\) *:,$(dir $2)\1: ,' > $3.tmp
+ $(SED) -e 's/#.*//' \
+ -e 's/^[^:]*: *//' \
+ -e 's/ *\\$$//' \
+ -e '/^$$/ d' \
+ -e 's/$$/ :/' $3.tmp >> $3.tmp
+ $(MV) $3.tmp $3
+endef
+
+
+all: $(test)
+
+
+$(lib): $(objects)
+ @mkdir -p lib/win32_gcc_debug
+ @echo Creating $(lib) library...
+ @ar cr lib/win32_gcc_debug/$(lib) $(objects)
+
+$(test): $(lib) $(test_objects)
+ @mkdir -p bin/win32_gcc_static_debug
+ @echo Linking $(test)...
+ @$(CXX) $(LDFLAGS) -o bin/win32_gcc_static_debug/$(test) $(test_objects) lib/win32_gcc_debug/$(lib)
+ @echo Running unit tests...
+ @bin/win32_gcc_static_debug/$(test)
+
+clean:
+ -@$(RM) $(objects) $(test_objects) $(dependencies) $(test_dependencies) $(test) $(lib) 2> /dev/null
+
+%.o : %.cpp
+ @echo $<
+ @$(call make-depend,$<,$@,$(subst .o,.d,$@))
+ @$(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp, %.o, $<)
+
+
+ifneq "$(MAKECMDGOALS)" "clean"
+-include $(dependencies)
+-include $(test_dependencies)
+endif
diff --git a/config.h b/config.h
index 147f05f..52e7e28 100644
--- a/config.h
+++ b/config.h
@@ -12,6 +12,10 @@
#pragma warning(disable:4786)
#pragma warning(disable:4290)
#endif
+
+ #ifdef _USRDLL
+ #define UNITTEST_WIN32_DLL
+ #endif
#endif
#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \
diff --git a/src/AssertException.h b/src/AssertException.h
index 5d27556..cd40bfd 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -4,11 +4,12 @@
#include "../config.h"
#ifdef UNITTEST_USE_EXCEPTIONS
+#include "DllMacros.h"
#include
namespace UnitTest {
-class AssertException : public std::exception
+class UNITTEST_LINKAGE AssertException : public std::exception
{
public:
AssertException();
diff --git a/src/Checks.h b/src/Checks.h
index b6bbdb8..c323244 100644
--- a/src/Checks.h
+++ b/src/Checks.h
@@ -27,13 +27,13 @@ void CheckEqual(TestResults& results, Expected const& expected, Actual const& ac
}
}
-void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details);
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details);
-void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details);
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details);
-void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details);
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details);
-void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details);
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details);
template< typename Expected, typename Actual, typename Tolerance >
bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance)
diff --git a/src/CurrentTest.cpp b/src/CurrentTest.cpp
index 941fb9b..19eb9bf 100644
--- a/src/CurrentTest.cpp
+++ b/src/CurrentTest.cpp
@@ -3,13 +3,13 @@
namespace UnitTest {
-TestResults*& CurrentTest::Results()
+UNITTEST_LINKAGE TestResults*& CurrentTest::Results()
{
static TestResults* testResults = NULL;
return testResults;
}
-const TestDetails*& CurrentTest::Details()
+UNITTEST_LINKAGE const TestDetails*& CurrentTest::Details()
{
static const TestDetails* testDetails = NULL;
return testDetails;
diff --git a/src/CurrentTest.h b/src/CurrentTest.h
index 3b77ca5..190c99b 100644
--- a/src/CurrentTest.h
+++ b/src/CurrentTest.h
@@ -1,6 +1,8 @@
#ifndef UNITTEST_CURRENTTESTRESULTS_H
#define UNITTEST_CURRENTTESTRESULTS_H
+#include "DllMacros.h"
+
namespace UnitTest {
class TestResults;
@@ -8,8 +10,8 @@ class TestDetails;
namespace CurrentTest
{
- TestResults*& Results();
- const TestDetails*& Details();
+ UNITTEST_LINKAGE TestResults*& Results();
+ UNITTEST_LINKAGE const TestDetails*& Details();
}
}
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index 2d8c550..ce59827 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -15,7 +15,7 @@ void DeferredTestReporter::ReportFailure(TestDetails const& details, char const*
{
DeferredTestResult& r = m_results.back();
r.failed = true;
- r.failures.push_back(DeferredTestResult::Failure(details.lineNumber, failure));
+ r.failures.push_back(DeferredTestFailure(details.lineNumber, failure));
r.failureFile = details.filename;
}
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index 3fcc9f5..7c2a4c8 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -10,10 +10,12 @@
#include
+UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestResult);
+
namespace UnitTest
{
-class DeferredTestReporter : public TestReporter
+class UNITTEST_LINKAGE DeferredTestReporter : public TestReporter
{
public:
virtual void ReportTestStart(TestDetails const& details);
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index bd8b36e..f176243 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -2,10 +2,23 @@
#ifdef UNITTEST_USE_DEFERRED_REPORTER
#include "DeferredTestResult.h"
+#include
namespace UnitTest
{
+DeferredTestFailure::DeferredTestFailure()
+ : lineNumber(-1)
+{
+ failureStr[0] = '\0';
+}
+
+DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_)
+ : lineNumber(lineNumber_)
+{
+ std::strcpy(failureStr, failureStr_);
+}
+
DeferredTestResult::DeferredTestResult()
: suiteName("")
, testName("")
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index ad139c0..5729434 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -4,14 +4,33 @@
#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#include "DllMacros.h"
#include
#include
namespace UnitTest
{
-struct DeferredTestResult
+class UNITTEST_LINKAGE DeferredTestFailure
{
+public:
+ DeferredTestFailure();
+ DeferredTestFailure(int lineNumber_, const char* failureStr_);
+
+ int lineNumber;
+ char failureStr[1024];
+};
+
+}
+
+UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestFailure);
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE DeferredTestResult
+{
+public:
DeferredTestResult();
DeferredTestResult(char const* suite, char const* test);
~DeferredTestResult();
@@ -20,8 +39,7 @@ struct DeferredTestResult
std::string testName;
std::string failureFile;
- typedef std::pair< int, std::string > Failure;
- typedef std::vector< Failure > FailureVec;
+ typedef std::vector< DeferredTestFailure > FailureVec;
FailureVec failures;
float timeElapsed;
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 2727b17..06c1adb 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -2,6 +2,8 @@
#define UNITTEST_MEMORYOUTSTREAM_H
#include "../config.h"
+#include "DllMacros.h"
+
#ifndef UNITTEST_USE_CUSTOM_STREAMS
#include
@@ -9,7 +11,7 @@
namespace UnitTest
{
-class MemoryOutStream : public std::ostringstream
+class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream
{
public:
MemoryOutStream() {}
@@ -32,7 +34,7 @@ private:
namespace UnitTest
{
-class MemoryOutStream
+class UNITTEST_LINKAGE MemoryOutStream
{
public:
explicit MemoryOutStream(int const size = 256);
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index 6e712fd..e256641 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -20,7 +20,7 @@ namespace
}
}
-void ReportAssert(char const* description, char const* filename, int lineNumber)
+UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber)
{
Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(),
description, filename, lineNumber);
@@ -35,12 +35,12 @@ jmp_buf* GetAssertJmpBuf()
return &s_jmpBuf;
}
#endif
-
-void ReportAssertEx(TestResults* testResults,
- const TestDetails* testDetails,
- char const* description,
- char const* filename,
- int lineNumber)
+
+UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber)
{
if (AssertExpectedFlag() == false)
{
@@ -57,12 +57,12 @@ void ReportAssertEx(TestResults* testResults,
#endif
}
-void ExpectAssert(bool expected)
+UNITTEST_LINKAGE void ExpectAssert(bool expected)
{
AssertExpectedFlag() = expected;
}
-bool AssertExpected()
+UNITTEST_LINKAGE bool AssertExpected()
{
return AssertExpectedFlag();
}
diff --git a/src/ReportAssert.h b/src/ReportAssert.h
index 893cd3c..0ca0b6e 100644
--- a/src/ReportAssert.h
+++ b/src/ReportAssert.h
@@ -1,9 +1,11 @@
#ifndef UNITTEST_ASSERT_H
#define UNITTEST_ASSERT_H
+#include "DllMacros.h"
+
namespace UnitTest {
-void ReportAssert(char const* description, char const* filename, int lineNumber);
+UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber);
}
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index 43cc569..659ad9e 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -14,18 +14,18 @@ class TestDetails;
namespace Detail {
-void ExpectAssert(bool expected);
+UNITTEST_LINKAGE void ExpectAssert(bool expected);
-void ReportAssertEx(TestResults* testResults,
- const TestDetails* testDetails,
- char const* description,
- char const* filename,
- int lineNumber);
+UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber);
-bool AssertExpected();
+UNITTEST_LINKAGE bool AssertExpected();
#ifndef UNITTEST_USE_EXCEPTIONS
- jmp_buf* GetAssertJmpBuf();
+ UNITTEST_LINKAGE jmp_buf* GetAssertJmpBuf();
#ifdef _MSC_VER
#define UNITTEST_SET_ASSERT_JUMP_TARGET() \
diff --git a/src/Test.h b/src/Test.h
index 7c2f175..1e1dbb2 100644
--- a/src/Test.h
+++ b/src/Test.h
@@ -8,7 +8,7 @@ namespace UnitTest {
class TestResults;
class TestList;
-class Test
+class UNITTEST_LINKAGE Test
{
public:
explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0);
diff --git a/src/TestDetails.h b/src/TestDetails.h
index c3f5e46..909179b 100644
--- a/src/TestDetails.h
+++ b/src/TestDetails.h
@@ -1,9 +1,11 @@
#ifndef UNITTEST_TESTDETAILS_H
#define UNITTEST_TESTDETAILS_H
+#include "DllMacros.h"
+
namespace UnitTest {
-class TestDetails
+class UNITTEST_LINKAGE TestDetails
{
public:
TestDetails(char const* testName, char const* suiteName, char const* filename, int lineNumber);
diff --git a/src/TestList.h b/src/TestList.h
index ff560bc..32a7280 100644
--- a/src/TestList.h
+++ b/src/TestList.h
@@ -1,12 +1,13 @@
#ifndef UNITTEST_TESTLIST_H
#define UNITTEST_TESTLIST_H
+#include "DllMacros.h"
namespace UnitTest {
class Test;
-class TestList
+class UNITTEST_LINKAGE TestList
{
public:
TestList();
@@ -20,7 +21,7 @@ private:
};
-class ListAdder
+class UNITTEST_LINKAGE ListAdder
{
public:
ListAdder(TestList& list, Test* test);
diff --git a/src/TestReporter.h b/src/TestReporter.h
index e0aa76f..2ee9130 100644
--- a/src/TestReporter.h
+++ b/src/TestReporter.h
@@ -1,11 +1,13 @@
#ifndef UNITTEST_TESTREPORTER_H
#define UNITTEST_TESTREPORTER_H
+#include "DllMacros.h"
+
namespace UnitTest {
class TestDetails;
-class TestReporter
+class UNITTEST_LINKAGE TestReporter
{
public:
virtual ~TestReporter();
diff --git a/src/TestReporterStdout.h b/src/TestReporterStdout.h
index c722947..4f52f8a 100644
--- a/src/TestReporterStdout.h
+++ b/src/TestReporterStdout.h
@@ -5,7 +5,7 @@
namespace UnitTest {
-class TestReporterStdout : public TestReporter
+class UNITTEST_LINKAGE TestReporterStdout : public TestReporter
{
private:
virtual void ReportTestStart(TestDetails const& test);
diff --git a/src/TestResults.h b/src/TestResults.h
index c9dc146..a856c0d 100644
--- a/src/TestResults.h
+++ b/src/TestResults.h
@@ -1,12 +1,14 @@
#ifndef UNITTEST_TESTRESULTS_H
#define UNITTEST_TESTRESULTS_H
+#include "DllMacros.h"
+
namespace UnitTest {
class TestReporter;
class TestDetails;
-class TestResults
+class UNITTEST_LINKAGE TestResults
{
public:
explicit TestResults(TestReporter* reporter = 0);
diff --git a/src/TestRunner.h b/src/TestRunner.h
index 27ec9c6..0253ae2 100644
--- a/src/TestRunner.h
+++ b/src/TestRunner.h
@@ -11,7 +11,7 @@ class TestReporter;
class TestResults;
class Timer;
-int RunAllTests();
+UNITTEST_LINKAGE int RunAllTests();
struct True
{
@@ -21,7 +21,7 @@ struct True
}
};
-class TestRunner
+class UNITTEST_LINKAGE TestRunner
{
public:
explicit TestRunner(TestReporter& reporter);
diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h
index 2034837..6989726 100644
--- a/src/TimeConstraint.h
+++ b/src/TimeConstraint.h
@@ -2,13 +2,14 @@
#define UNITTEST_TIMECONSTRAINT_H
#include "TimeHelpers.h"
+#include "DllMacros.h"
namespace UnitTest {
class TestResults;
class TestDetails;
-class TimeConstraint
+class UNITTEST_LINKAGE TimeConstraint
{
public:
TimeConstraint(int ms, TestDetails const& details);
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index f31409b..fd19ef4 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -2,6 +2,7 @@
#define UNITTEST_TIMEHELPERS_H
#include "../../config.h"
+#include "../DllMacros.h"
#ifdef UNITTEST_MINGW
#ifndef __int64
@@ -11,7 +12,7 @@
namespace UnitTest {
-class Timer
+class UNITTEST_LINKAGE Timer
{
public:
Timer();
@@ -36,7 +37,7 @@ private:
namespace TimeHelpers
{
- void SleepMs(int ms);
+ UNITTEST_LINKAGE void SleepMs(int ms);
}
}
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index 9d938c1..deb27ca 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -119,8 +119,8 @@ void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& res
it != result.failures.end();
++it)
{
- string const escapedMessage = XmlEscape(it->second);
- string const message = BuildFailureMessage(result.failureFile, it->first, escapedMessage);
+ string const escapedMessage = XmlEscape(std::string(it->failureStr));
+ string const message = BuildFailureMessage(result.failureFile, it->lineNumber, escapedMessage);
os << " ";
}
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index abd9fce..14d69a6 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -11,7 +11,7 @@
namespace UnitTest
{
-class XmlTestReporter : public DeferredTestReporter
+class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter
{
public:
explicit XmlTestReporter(std::ostream& ostream);
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 3dcb2af..ad049d1 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -94,8 +94,8 @@ TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMul
DeferredTestResult const& result = reporter.GetResults().at(0);
CHECK_EQUAL(2, (int)result.failures.size());
- CHECK_EQUAL(failure1, result.failures[0].second);
- CHECK_EQUAL(failure2, result.failures[1].second);
+ CHECK_EQUAL(failure1, result.failures[0].failureStr);
+ CHECK_EQUAL(failure2, result.failures[1].failureStr);
}
TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailureMessage)
@@ -113,8 +113,8 @@ TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailure
strcpy(failureMessage, badStr);
DeferredTestResult const& result = reporter.GetResults().at(0);
- DeferredTestResult::Failure const& failure = result.failures.at(0);
- CHECK_EQUAL(goodStr, failure.second);
+ DeferredTestFailure const& failure = result.failures.at(0);
+ CHECK_EQUAL(goodStr, failure.failureStr);
}
}}
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index 41526af..8747e87 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -17,8 +17,8 @@
@@ -59,6 +59,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -48,7 +48,7 @@
UsePrecompiledHeader="0"
WarningLevel="4"
Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
+ DebugInformationFormat="3"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -206,6 +353,10 @@
RelativePath=".\DeferredTestResult.h"
>
+
+
diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln
index ffdc58d..2f9a3cd 100644
--- a/unittestpp_vs2005.sln
+++ b/unittestpp_vs2005.sln
@@ -10,18 +10,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "s
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- win32_debug|Win32 = win32_debug|Win32
- win32_release|Win32 = win32_release|Win32
+ win32_dll_debug|Win32 = win32_dll_debug|Win32
+ win32_dll_release|Win32 = win32_dll_release|Win32
+ win32_lib_debug|Win32 = win32_lib_debug|Win32
+ win32_lib_release|Win32 = win32_lib_release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_debug|Win32.ActiveCfg = win32_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_debug|Win32.Build.0 = win32_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_release|Win32.ActiveCfg = win32_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_release|Win32.Build.0 = win32_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_debug|Win32.ActiveCfg = win32_static_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_debug|Win32.Build.0 = win32_static_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_release|Win32.ActiveCfg = win32_static_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_release|Win32.Build.0 = win32_static_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_debug|Win32.ActiveCfg = win32_lib_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_debug|Win32.Build.0 = win32_lib_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_release|Win32.ActiveCfg = win32_lib_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_release|Win32.Build.0 = win32_lib_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_debug|Win32.ActiveCfg = win32_static_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_debug|Win32.Build.0 = win32_static_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_release|Win32.ActiveCfg = win32_static_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_release|Win32.Build.0 = win32_static_release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
From 32288a53b9818f218fae482aa3612f271e1600d9 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:16 -0600
Subject: [PATCH 022/218] r17 | charles.nicholson | 2010-03-18 15:01:48 -0500
(Thu, 18 Mar 2010) | 1 line forgot to add file
---
src/DllMacros.h | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 src/DllMacros.h
diff --git a/src/DllMacros.h b/src/DllMacros.h
new file mode 100644
index 0000000..c88818d
--- /dev/null
+++ b/src/DllMacros.h
@@ -0,0 +1,32 @@
+#ifndef UNITTEST_DLLMACROS_H
+#define UNITTEST_DLLMACROS_H
+
+#include "../config.h"
+
+#ifdef UNITTEST_WIN32_DLL
+ #define UNITTEST_IMPORT __declspec(dllimport)
+ #define UNITTEST_EXPORT __declspec(dllexport)
+
+ #ifdef UNITTEST_DLL_EXPORT
+ #define UNITTEST_LINKAGE UNITTEST_EXPORT
+ #define UNITTEST_IMPEXP_TEMPLATE
+ #else
+ #define UNITTEST_LINKAGE UNITTEST_IMPORT
+ #define UNITTEST_IMPEXP_TEMPLATE extern
+ #endif
+
+ #define UNITTEST_STDVECTOR_LINKAGE(T) \
+ __pragma(warning(push)) \
+ __pragma(warning(disable:4231)) \
+ UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator < T >; \
+ UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \
+ __pragma(warning(pop))
+#else
+ #define UNITTEST_IMPORT
+ #define UNITTEST_EXPORT
+ #define UNITTEST_LINKAGE
+ #define UNITTEST_IMPEXP_TEMPLATE
+ #define UNITTEST_STDVECTOR_LINKAGE(T)
+#endif
+
+#endif
From 88b09d46e81303d65d7098da226ccc67a6dedb3c Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:22 -0600
Subject: [PATCH 023/218] r18 | charles.nicholson | 2010-03-18 15:42:23 -0500
(Thu, 18 Mar 2010) | 1 line add scea 'TestReporterMulti' as
'CompositeTestReporter', add tests
---
Makefile | 6 +-
src/CompositeTestReporter.cpp | 67 +++++++++
src/CompositeTestReporter.h | 34 +++++
src/TestReporter.cpp | 1 -
src/tests/TestCompositeTestReporter.cpp | 176 ++++++++++++++++++++++++
src/tests/test-unittestpp_vs2005.vcproj | 4 +
src/unittestpp_vs2005.vcproj | 8 ++
7 files changed, 293 insertions(+), 3 deletions(-)
create mode 100644 src/CompositeTestReporter.cpp
create mode 100644 src/CompositeTestReporter.h
create mode 100644 src/tests/TestCompositeTestReporter.cpp
diff --git a/Makefile b/Makefile
index b590a3f..205dedc 100644
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,8 @@ src = src/AssertException.cpp \
src/DeferredTestReporter.cpp \
src/DeferredTestResult.cpp \
src/XmlTestReporter.cpp \
- src/CurrentTest.cpp
+ src/CurrentTest.cpp \
+ src/CompositeTestReporter.cpp
ifeq ($(MSYSTEM), MINGW32)
src += src/Win32/TimeHelpers.cpp
@@ -49,7 +50,8 @@ test_src = src/tests/Main.cpp \
src/tests/TestMemoryOutStream.cpp \
src/tests/TestDeferredTestReporter.cpp \
src/tests/TestXmlTestReporter.cpp \
- src/tests/TestCurrentTest.cpp
+ src/tests/TestCurrentTest.cpp \
+ src/tests/TestCompositeTestReporter.cpp
objects = $(patsubst %.cpp, %.o, $(src))
test_objects = $(patsubst %.cpp, %.o, $(test_src))
diff --git a/src/CompositeTestReporter.cpp b/src/CompositeTestReporter.cpp
new file mode 100644
index 0000000..2a3d22e
--- /dev/null
+++ b/src/CompositeTestReporter.cpp
@@ -0,0 +1,67 @@
+#include "CompositeTestReporter.h"
+#include
+
+namespace UnitTest {
+
+CompositeTestReporter::CompositeTestReporter()
+ : m_reporterCount(0)
+{
+}
+
+int CompositeTestReporter::GetReporterCount() const
+{
+ return m_reporterCount;
+}
+
+bool CompositeTestReporter::AddReporter(TestReporter* reporter)
+{
+ if (m_reporterCount == kMaxReporters)
+ return false;
+
+ m_reporters[m_reporterCount++] = reporter;
+ return true;
+}
+
+bool CompositeTestReporter::RemoveReporter(TestReporter* reporter)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ {
+ if (m_reporters[index] == reporter)
+ {
+ m_reporters[index] = m_reporters[m_reporterCount - 1];
+ --m_reporterCount;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportFailure(details, failure);
+}
+
+void CompositeTestReporter::ReportTestStart(TestDetails const& test)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportTestStart(test);
+}
+
+void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportTestFinish(test, secondsElapsed);
+}
+
+void CompositeTestReporter::ReportSummary(int totalTestCount,
+ int failedTestCount,
+ int failureCount,
+ float secondsElapsed)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed);
+}
+
+}
diff --git a/src/CompositeTestReporter.h b/src/CompositeTestReporter.h
new file mode 100644
index 0000000..a4806f4
--- /dev/null
+++ b/src/CompositeTestReporter.h
@@ -0,0 +1,34 @@
+#ifndef UNITTEST_COMPOSITETESTREPORTER_H
+#define UNITTEST_COMPOSITETESTREPORTER_H
+
+#include "TestReporter.h"
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter
+{
+public:
+ CompositeTestReporter();
+
+ int GetReporterCount() const;
+ bool AddReporter(TestReporter* reporter);
+ bool RemoveReporter(TestReporter* reporter);
+
+ virtual void ReportTestStart(TestDetails const& test);
+ virtual void ReportFailure(TestDetails const& test, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+
+private:
+ enum { kMaxReporters = 16 };
+ TestReporter* m_reporters[kMaxReporters];
+ int m_reporterCount;
+
+ // revoked
+ CompositeTestReporter(const CompositeTestReporter&);
+ CompositeTestReporter& operator =(const CompositeTestReporter&);
+};
+
+}
+
+#endif
diff --git a/src/TestReporter.cpp b/src/TestReporter.cpp
index c783af1..78c765f 100644
--- a/src/TestReporter.cpp
+++ b/src/TestReporter.cpp
@@ -2,7 +2,6 @@
namespace UnitTest {
-
TestReporter::~TestReporter()
{
}
diff --git a/src/tests/TestCompositeTestReporter.cpp b/src/tests/TestCompositeTestReporter.cpp
new file mode 100644
index 0000000..d302577
--- /dev/null
+++ b/src/tests/TestCompositeTestReporter.cpp
@@ -0,0 +1,176 @@
+#include "../../unittestpp.h"
+#include "../CompositeTestReporter.h"
+
+using namespace UnitTest;
+
+namespace {
+
+TEST(ZeroReportersByDefault)
+{
+ CHECK_EQUAL(0, CompositeTestReporter().GetReporterCount());
+}
+
+struct MockReporter : TestReporter
+{
+ MockReporter()
+ : testStartCalled(false)
+ , testStartDetails(NULL)
+ , failureCalled(false)
+ , failureDetails(NULL)
+ , failureStr(NULL)
+ , testFinishCalled(false)
+ , testFinishDetails(NULL)
+ , testFinishSecondsElapsed(-1.0f)
+ , summaryCalled(false)
+ , summaryTotalTestCount(-1)
+ , summaryFailureCount(-1)
+ , summarySecondsElapsed(-1.0f)
+ {
+ }
+
+ virtual void ReportTestStart(TestDetails const& test)
+ {
+ testStartCalled = true;
+ testStartDetails = &test;
+ }
+
+ virtual void ReportFailure(TestDetails const& test, char const* failure)
+ {
+ failureCalled = true;
+ failureDetails = &test;
+ failureStr = failure;
+ }
+
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed)
+ {
+ testFinishCalled = true;
+ testFinishDetails = &test;
+ testFinishSecondsElapsed = secondsElapsed;
+ }
+
+ virtual void ReportSummary(int totalTestCount,
+ int failedTestCount,
+ int failureCount,
+ float secondsElapsed)
+ {
+ summaryCalled = true;
+ summaryTotalTestCount = totalTestCount;
+ summaryFailedTestCount = failedTestCount;
+ summaryFailureCount = failureCount;
+ summarySecondsElapsed = secondsElapsed;
+ }
+
+ bool testStartCalled;
+ TestDetails const* testStartDetails;
+
+ bool failureCalled;
+ TestDetails const* failureDetails;
+ const char* failureStr;
+
+ bool testFinishCalled;
+ TestDetails const* testFinishDetails;
+ float testFinishSecondsElapsed;
+
+ bool summaryCalled;
+ int summaryTotalTestCount;
+ int summaryFailedTestCount;
+ int summaryFailureCount;
+ float summarySecondsElapsed;
+};
+
+TEST(AddReporter)
+{
+ MockReporter r;
+ CompositeTestReporter c;
+
+ CHECK(c.AddReporter(&r));
+ CHECK_EQUAL(1, c.GetReporterCount());
+}
+
+TEST(RemoveReporter)
+{
+ MockReporter r;
+ CompositeTestReporter c;
+
+ c.AddReporter(&r);
+ CHECK(c.RemoveReporter(&r));
+ CHECK_EQUAL(0, c.GetReporterCount());
+}
+
+struct Fixture
+{
+ Fixture()
+ {
+ c.AddReporter(&r0);
+ c.AddReporter(&r1);
+ }
+
+ MockReporter r0, r1;
+ CompositeTestReporter c;
+};
+
+TEST_FIXTURE(Fixture, ReportTestStartCallsReportTestStartOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ c.ReportTestStart(t);
+
+ CHECK(r0.testStartCalled);
+ CHECK_EQUAL(&t, r0.testStartDetails);
+ CHECK(r1.testStartCalled);
+ CHECK_EQUAL(&t, r1.testStartDetails);
+}
+
+TEST_FIXTURE(Fixture, ReportFailureCallsReportFailureOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const char* failStr = "fail";
+ c.ReportFailure(t, failStr);
+
+ CHECK(r0.failureCalled);
+ CHECK_EQUAL(&t, r0.failureDetails);
+ CHECK_EQUAL(failStr, r0.failureStr);
+
+ CHECK(r1.failureCalled);
+ CHECK_EQUAL(&t, r1.failureDetails);
+ CHECK_EQUAL(failStr, r1.failureStr);
+}
+
+TEST_FIXTURE(Fixture, ReportTestFinishCallsReportTestFinishOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const float s = 1.2345f;
+ c.ReportTestFinish(t, s);
+
+ CHECK(r0.testFinishCalled);
+ CHECK_EQUAL(&t, r0.testFinishDetails);
+ CHECK_CLOSE(s, r0.testFinishSecondsElapsed, 0.00001f);
+
+ CHECK(r1.testFinishCalled);
+ CHECK_EQUAL(&t, r1.testFinishDetails);
+ CHECK_CLOSE(s, r1.testFinishSecondsElapsed, 0.00001f);
+}
+
+TEST_FIXTURE(Fixture, ReportSummaryCallsReportSummaryOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const int testCount = 3;
+ const int failedTestCount = 4;
+ const int failureCount = 5;
+ const float secondsElapsed = 3.14159f;
+
+ c.ReportSummary(testCount, failedTestCount, failureCount, secondsElapsed);
+
+ CHECK(r0.summaryCalled);
+ CHECK_EQUAL(testCount, r0.summaryTotalTestCount);
+ CHECK_EQUAL(failedTestCount, r0.summaryFailedTestCount);
+ CHECK_EQUAL(failureCount, r0.summaryFailureCount);
+ CHECK_CLOSE(secondsElapsed, r0.summarySecondsElapsed, 0.00001f);
+
+ CHECK(r1.summaryCalled);
+ CHECK_EQUAL(testCount, r1.summaryTotalTestCount);
+ CHECK_EQUAL(failedTestCount, r1.summaryFailedTestCount);
+ CHECK_EQUAL(failureCount, r1.summaryFailureCount);
+ CHECK_CLOSE(secondsElapsed, r1.summarySecondsElapsed, 0.00001f);
+}
+
+}
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index 8747e87..b11a266 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -357,6 +357,10 @@
RelativePath=".\TestChecks.cpp"
>
+
+
diff --git a/src/unittestpp_vs2005.vcproj b/src/unittestpp_vs2005.vcproj
index 8b1b042..b9d0e16 100644
--- a/src/unittestpp_vs2005.vcproj
+++ b/src/unittestpp_vs2005.vcproj
@@ -325,6 +325,14 @@
RelativePath=".\Checks.h"
>
+
+
+
+
From a0501f6b713132270f4c018c91050f0e7df142d8 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:30 -0600
Subject: [PATCH 024/218] r19 | charles.nicholson | 2010-03-18 16:22:06 -0500
(Thu, 18 Mar 2010) | 1 line add mt and md build configurations for vs2005,
for CRT selection convenience
---
src/tests/test-unittestpp_vs2005.vcproj | 169 +++++++++++++++++++++++-
src/unittestpp_vs2005.vcproj | 139 ++++++++++++++++++-
unittestpp_vs2005.sln | 30 +++--
3 files changed, 316 insertions(+), 22 deletions(-)
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index b11a266..e13fba8 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -16,9 +16,9 @@
@@ -94,9 +94,9 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/unittestpp_vs2005.vcproj b/src/unittestpp_vs2005.vcproj
index b9d0e16..67c8c28 100644
--- a/src/unittestpp_vs2005.vcproj
+++ b/src/unittestpp_vs2005.vcproj
@@ -16,9 +16,9 @@
@@ -80,9 +80,9 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln
index 2f9a3cd..69074e8 100644
--- a/unittestpp_vs2005.sln
+++ b/unittestpp_vs2005.sln
@@ -12,26 +12,36 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
win32_dll_debug|Win32 = win32_dll_debug|Win32
win32_dll_release|Win32 = win32_dll_release|Win32
- win32_lib_debug|Win32 = win32_lib_debug|Win32
- win32_lib_release|Win32 = win32_lib_release|Win32
+ win32_lib_md_debug|Win32 = win32_lib_md_debug|Win32
+ win32_lib_md_release|Win32 = win32_lib_md_release|Win32
+ win32_lib_mt_debug|Win32 = win32_lib_mt_debug|Win32
+ win32_lib_mt_release|Win32 = win32_lib_mt_release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_debug|Win32.ActiveCfg = win32_lib_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_debug|Win32.Build.0 = win32_lib_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_release|Win32.ActiveCfg = win32_lib_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_release|Win32.Build.0 = win32_lib_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_debug|Win32.ActiveCfg = win32_lib_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_debug|Win32.Build.0 = win32_lib_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_release|Win32.ActiveCfg = win32_lib_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_release|Win32.Build.0 = win32_lib_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_debug|Win32.ActiveCfg = win32_lib_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_debug|Win32.Build.0 = win32_lib_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_release|Win32.ActiveCfg = win32_lib_mt_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_release|Win32.Build.0 = win32_lib_mt_release|Win32
{9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
{9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
{9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
{9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_debug|Win32.ActiveCfg = win32_static_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_debug|Win32.Build.0 = win32_static_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_release|Win32.ActiveCfg = win32_static_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_release|Win32.Build.0 = win32_static_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_debug|Win32.ActiveCfg = win32_static_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_debug|Win32.Build.0 = win32_static_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_release|Win32.ActiveCfg = win32_static_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_release|Win32.Build.0 = win32_static_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_debug|Win32.ActiveCfg = win32_static_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_debug|Win32.Build.0 = win32_static_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_release|Win32.ActiveCfg = win32_static_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_release|Win32.Build.0 = win32_static_mt_release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
From 534aca32360329a25853e000c62b187062ddab3e Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:37 -0600
Subject: [PATCH 025/218] r20 | charles.nicholson | 2010-03-18 16:49:54 -0500
(Thu, 18 Mar 2010) | 1 line add UNITTEST_WIN32 macro, turn dllmacros.h into
helpermacros.h, wrap do/while(0) in __pragma to avoid VS 'conditional
expression is constant' warning
---
config.h | 6 ++--
src/AssertException.h | 2 +-
src/CheckMacros.h | 43 ++++++++++++-----------------
src/CurrentTest.h | 2 +-
src/DeferredTestResult.h | 2 +-
src/{DllMacros.h => HelperMacros.h} | 14 ++++++++--
src/MemoryOutStream.h | 2 +-
src/ReportAssert.h | 2 +-
src/ReportAssertImpl.h | 2 +-
src/TestDetails.h | 2 +-
src/TestList.h | 2 +-
src/TestReporter.h | 2 +-
src/TestReporterStdout.cpp | 2 +-
src/TestResults.h | 2 +-
src/TimeConstraint.h | 7 +++--
src/Win32/TimeHelpers.cpp | 2 +-
src/Win32/TimeHelpers.h | 2 +-
src/tests/TestExceptions.cpp | 18 ++++++------
src/unittestpp_vs2005.vcproj | 8 +++---
19 files changed, 64 insertions(+), 58 deletions(-)
rename src/{DllMacros.h => HelperMacros.h} (68%)
diff --git a/config.h b/config.h
index 52e7e28..03b0bd9 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,6 @@
// Standard defines documented here: http://predef.sourceforge.net
#if defined(_MSC_VER)
- #pragma warning(disable:4127) // conditional expression is constant
#pragma warning(disable:4702) // unreachable code
#pragma warning(disable:4722) // destructor never returns, potential memory leak
@@ -16,6 +15,7 @@
#ifdef _USRDLL
#define UNITTEST_WIN32_DLL
#endif
+ #define UNITTEST_WIN32
#endif
#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \
@@ -30,8 +30,8 @@
// by default, MemoryOutStream is implemented in terms of std::ostringstream, which can be expensive.
// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
-#define UNITTEST_USE_CUSTOM_STREAMS
+//#define UNITTEST_USE_CUSTOM_STREAMS
#define UNITTEST_USE_DEFERRED_REPORTER
-#define UNITTEST_USE_EXCEPTIONS
+//#define UNITTEST_USE_EXCEPTIONS
#endif
diff --git a/src/AssertException.h b/src/AssertException.h
index cd40bfd..4a98ed0 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -4,7 +4,7 @@
#include "../config.h"
#ifdef UNITTEST_USE_EXCEPTIONS
-#include "DllMacros.h"
+#include "HelperMacros.h"
#include
namespace UnitTest {
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index c29d78e..671688e 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -1,6 +1,7 @@
#ifndef UNITTEST_CHECKMACROS_H
#define UNITTEST_CHECKMACROS_H
+#include "HelperMacros.h"
#include "ExceptionMacros.h"
#include "Checks.h"
#include "AssertException.h"
@@ -34,9 +35,8 @@
#endif
#define CHECK(value) \
- do \
- { \
- UT_TRY \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
({ \
if (!UnitTest::Check(value)) \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
@@ -46,11 +46,10 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK(" #value ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_EQUAL(expected, actual) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UT_TRY \
({ \
UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
@@ -60,11 +59,10 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_CLOSE(expected, actual, tolerance) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UT_TRY \
({ \
UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
@@ -74,11 +72,10 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_ARRAY_EQUAL(expected, actual, count) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UT_TRY \
({ \
UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
@@ -88,11 +85,10 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UT_TRY \
({ \
UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
@@ -102,11 +98,10 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UT_TRY \
({ \
UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
@@ -116,29 +111,27 @@
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
"Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
}) \
- } while (0)
+ UNITTEST_MULTILINE_MACRO_END
// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_USE_EXCEPTIONS is defined (see Config.h)
#ifdef UNITTEST_USE_EXCEPTIONS
#define CHECK_THROW(expression, ExpectedExceptionType) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
bool caught_ = false; \
try { expression; } \
catch (ExpectedExceptionType const&) { caught_ = true; } \
catch (...) {} \
if (!caught_) \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
- } while(0)
+ UNITTEST_MULTILINE_MACRO_END
#define CHECK_ASSERT(expression) \
- do \
- { \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
UnitTest::Detail::ExpectAssert(true); \
CHECK_THROW(expression, UnitTest::AssertException); \
UnitTest::Detail::ExpectAssert(false); \
- } while(0)
+ UNITTEST_MULTILINE_MACRO_END
#endif
#endif
\ No newline at end of file
diff --git a/src/CurrentTest.h b/src/CurrentTest.h
index 190c99b..0d62fdc 100644
--- a/src/CurrentTest.h
+++ b/src/CurrentTest.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_CURRENTTESTRESULTS_H
#define UNITTEST_CURRENTTESTRESULTS_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index 5729434..fde3b21 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -4,7 +4,7 @@
#include "../config.h"
#ifdef UNITTEST_USE_DEFERRED_REPORTER
-#include "DllMacros.h"
+#include "HelperMacros.h"
#include
#include
diff --git a/src/DllMacros.h b/src/HelperMacros.h
similarity index 68%
rename from src/DllMacros.h
rename to src/HelperMacros.h
index c88818d..9560d13 100644
--- a/src/DllMacros.h
+++ b/src/HelperMacros.h
@@ -1,8 +1,18 @@
-#ifndef UNITTEST_DLLMACROS_H
-#define UNITTEST_DLLMACROS_H
+#ifndef UNITTEST_HELPERMACROS_H
+#define UNITTEST_HELPERMACROS_H
#include "../config.h"
+#define UNITTEST_MULTILINE_MACRO_BEGIN do {
+
+#ifdef UNITTEST_WIN32
+ #define UNITTEST_MULTILINE_MACRO_END \
+ } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop))
+#else
+ #define UNITTEST_MULTILINE_MACRO_END } while(0)
+#endif
+
+
#ifdef UNITTEST_WIN32_DLL
#define UNITTEST_IMPORT __declspec(dllimport)
#define UNITTEST_EXPORT __declspec(dllexport)
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 06c1adb..1ba51e0 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -2,7 +2,7 @@
#define UNITTEST_MEMORYOUTSTREAM_H
#include "../config.h"
-#include "DllMacros.h"
+#include "HelperMacros.h"
#ifndef UNITTEST_USE_CUSTOM_STREAMS
diff --git a/src/ReportAssert.h b/src/ReportAssert.h
index 0ca0b6e..7bdf7bb 100644
--- a/src/ReportAssert.h
+++ b/src/ReportAssert.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_ASSERT_H
#define UNITTEST_ASSERT_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index 659ad9e..1560725 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -27,7 +27,7 @@ UNITTEST_LINKAGE bool AssertExpected();
#ifndef UNITTEST_USE_EXCEPTIONS
UNITTEST_LINKAGE jmp_buf* GetAssertJmpBuf();
- #ifdef _MSC_VER
+ #ifdef UNITTEST_WIN32
#define UNITTEST_SET_ASSERT_JUMP_TARGET() \
__pragma(warning(push)) __pragma(warning(disable:4611)) \
setjmp(*UnitTest::Detail::GetAssertJmpBuf()) \
diff --git a/src/TestDetails.h b/src/TestDetails.h
index 909179b..898f7f3 100644
--- a/src/TestDetails.h
+++ b/src/TestDetails.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTDETAILS_H
#define UNITTEST_TESTDETAILS_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/TestList.h b/src/TestList.h
index 32a7280..ed190c2 100644
--- a/src/TestList.h
+++ b/src/TestList.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTLIST_H
#define UNITTEST_TESTLIST_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/TestReporter.h b/src/TestReporter.h
index 2ee9130..99bfaa6 100644
--- a/src/TestReporter.h
+++ b/src/TestReporter.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTREPORTER_H
#define UNITTEST_TESTREPORTER_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp
index 3a29db4..cd2c131 100644
--- a/src/TestReporterStdout.cpp
+++ b/src/TestReporterStdout.cpp
@@ -4,7 +4,7 @@
#include "TestDetails.h"
// cstdio doesn't pull in namespace std on VC6, so we do it here.
-#if defined(_MSC_VER) && (_MSC_VER == 1200)
+#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200)
namespace std {}
#endif
diff --git a/src/TestResults.h b/src/TestResults.h
index a856c0d..d4006a0 100644
--- a/src/TestResults.h
+++ b/src/TestResults.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTRESULTS_H
#define UNITTEST_TESTRESULTS_H
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h
index 6989726..fe14461 100644
--- a/src/TimeConstraint.h
+++ b/src/TimeConstraint.h
@@ -2,7 +2,7 @@
#define UNITTEST_TIMECONSTRAINT_H
#include "TimeHelpers.h"
-#include "DllMacros.h"
+#include "HelperMacros.h"
namespace UnitTest {
@@ -27,7 +27,10 @@ private:
#define UNITTEST_TIME_CONSTRAINT(ms) \
UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__))
-#define UNITTEST_TIME_CONSTRAINT_EXEMPT() do { m_timeConstraintExempt = true; } while (0)
+#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ m_timeConstraintExempt = true; \
+ UNITTEST_MULTILINE_MACRO_END
}
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index f7568be..1b39cab 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -9,7 +9,7 @@ Timer::Timer()
: m_threadHandle(::GetCurrentThread())
, m_startTime(0)
{
-#if defined(_MSC_VER) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR
+#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR
typedef unsigned long DWORD_PTR;
#endif
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index fd19ef4..80c9118 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -2,7 +2,7 @@
#define UNITTEST_TIMEHELPERS_H
#include "../../config.h"
-#include "../DllMacros.h"
+#include "../HelperMacros.h"
#ifdef UNITTEST_MINGW
#ifndef __int64
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 88f9c70..5894e2c 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -93,7 +93,7 @@ TEST(CheckCloseFailsOnException)
RecordingReporter reporter;
UnitTest::TestResults testResults(&reporter);
ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
failure = (testResults.GetFailureCount() > 0);
}
@@ -108,7 +108,7 @@ TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
UnitTest::TestResults testResults(&reporter);
UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
}
CHECK_EQUAL("closeTest", reporter.lastFailedTest);
@@ -123,7 +123,7 @@ TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
{
UnitTest::TestResults testResults(&reporter);
ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE ((float)ThrowingFunction(), 1.0001f, 0.1f);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
}
CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
@@ -149,7 +149,7 @@ TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
ScopedCurrentTest scopedResults(testResults, &testDetails);
int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE (data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
}
CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
@@ -168,7 +168,7 @@ TEST(CheckArrayCloseFailsOnException)
const float data[4] = { 0, 1, 2, 3 };
ThrowingObject obj;
- CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
+ CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
failure = (testResults.GetFailureCount() > 0);
}
@@ -185,7 +185,7 @@ TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
const float data[4] = { 0, 1, 2, 3 };
ThrowingObject obj;
- CHECK_ARRAY_CLOSE (data, obj, 3, 0.01f);
+ CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
}
CHECK(strstr(reporter.lastFailedMessage, "data"));
@@ -253,7 +253,7 @@ TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
ScopedCurrentTest scopedResults(testResults, &testDetails);
const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE (data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
}
CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
@@ -272,7 +272,7 @@ TEST(CheckArray2DCloseFailsOnException)
const float data[2][2] = { {0, 1}, {2, 3} };
ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
+ CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
failure = (testResults.GetFailureCount() > 0);
}
@@ -289,7 +289,7 @@ TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
const float data[2][2] = { {0, 1}, {2, 3} };
ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE (data, obj, 2, 2, 0.01f);
+ CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
}
CHECK(strstr(reporter.lastFailedMessage, "data"));
diff --git a/src/unittestpp_vs2005.vcproj b/src/unittestpp_vs2005.vcproj
index 67c8c28..67aeb6a 100644
--- a/src/unittestpp_vs2005.vcproj
+++ b/src/unittestpp_vs2005.vcproj
@@ -488,10 +488,6 @@
RelativePath=".\DeferredTestResult.h"
>
-
-
@@ -500,6 +496,10 @@
RelativePath=".\ExecuteTest.h"
>
+
+
From 909f4b2e915a7be83014cc19a77d4d0da976f217 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:42 -0600
Subject: [PATCH 026/218] r21 | charles.nicholson | 2010-03-18 16:52:29 -0500
(Thu, 18 Mar 2010) | 1 line reset config.h macros
---
config.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/config.h b/config.h
index 03b0bd9..18ae8c3 100644
--- a/config.h
+++ b/config.h
@@ -30,8 +30,8 @@
// by default, MemoryOutStream is implemented in terms of std::ostringstream, which can be expensive.
// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
-//#define UNITTEST_USE_CUSTOM_STREAMS
+#define UNITTEST_USE_CUSTOM_STREAMS
#define UNITTEST_USE_DEFERRED_REPORTER
-//#define UNITTEST_USE_EXCEPTIONS
+#define UNITTEST_USE_EXCEPTIONS
#endif
From 7b9e3a17f8b5891032437f455ca27780da7730ad Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:50 -0600
Subject: [PATCH 027/218] r22 | charles.nicholson | 2010-03-18 18:39:32 -0500
(Thu, 18 Mar 2010) | 1 line negate config flags and comment them out by
default; this allows command-line preprocessor symbol injection to control
flags. Useful for having a master copy of utpp that build with different
flags for different compilers/platforms
---
config.h | 28 +++++++++++++++++++++-----
src/AssertException.cpp | 2 +-
src/AssertException.h | 2 +-
src/CheckMacros.h | 6 +++---
src/DeferredTestReporter.cpp | 2 +-
src/DeferredTestReporter.h | 2 +-
src/DeferredTestResult.cpp | 2 +-
src/DeferredTestResult.h | 2 +-
src/ExceptionMacros.h | 2 +-
src/ExecuteTest.h | 6 +++---
src/MemoryOutStream.cpp | 10 +++------
src/MemoryOutStream.h | 2 +-
src/ReportAssert.cpp | 6 +++---
src/ReportAssertImpl.h | 4 ++--
src/XmlTestReporter.cpp | 2 +-
src/XmlTestReporter.h | 2 +-
src/tests/TestAssertHandler.cpp | 2 +-
src/tests/TestDeferredTestReporter.cpp | 4 ++--
src/tests/TestExceptions.cpp | 2 +-
src/tests/TestMemoryOutStream.cpp | 2 +-
src/tests/TestTest.cpp | 2 +-
src/tests/TestTestMacros.cpp | 4 ++--
src/tests/TestUnitTestPP.cpp | 2 +-
src/tests/TestXmlTestReporter.cpp | 18 ++++++++---------
24 files changed, 65 insertions(+), 51 deletions(-)
diff --git a/config.h b/config.h
index 18ae8c3..6036173 100644
--- a/config.h
+++ b/config.h
@@ -27,11 +27,29 @@
#define UNITTEST_MINGW
#endif
-// by default, MemoryOutStream is implemented in terms of std::ostringstream, which can be expensive.
-// uncomment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
-#define UNITTEST_USE_CUSTOM_STREAMS
-#define UNITTEST_USE_DEFERRED_REPORTER
-#define UNITTEST_USE_EXCEPTIONS
+// MemoryOutStream is a custom reimplementation of parts of std::ostringstream.
+// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream.
+// This is useful if you are using the CHECK macros on objects that have something like this defined:
+// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value)
+
+//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+
+// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like
+// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL
+// headers or code will be compiled into UnitTest++
+
+//#define UNITTEST_NO_DEFERRED_REPORTER
+
+
+// By default, asserts that you report via UnitTest::ReportAssert() abort the current test and
+// continue to the next one by throwing an exception, which unwinds the stack naturally, destroying
+// all auto variables on its way back down. If you don't want to (or can't) use exceptions for your
+// platform/compiler, uncomment this line. All exception code will be removed from UnitTest++,
+// assert recovery will be done via setjmp/longjmp, and NO correct stack unwinding will happen!
+
+//#define UNITTEST_NO_EXCEPTIONS
+
#endif
diff --git a/src/AssertException.cpp b/src/AssertException.cpp
index 3615b82..634eb07 100644
--- a/src/AssertException.cpp
+++ b/src/AssertException.cpp
@@ -1,6 +1,6 @@
#include "AssertException.h"
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
namespace UnitTest {
diff --git a/src/AssertException.h b/src/AssertException.h
index 4a98ed0..74291db 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -2,7 +2,7 @@
#define UNITTEST_ASSERTEXCEPTION_H
#include "../config.h"
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
#include "HelperMacros.h"
#include
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 671688e..1e73699 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -114,8 +114,8 @@
UNITTEST_MULTILINE_MACRO_END
-// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_USE_EXCEPTIONS is defined (see Config.h)
-#ifdef UNITTEST_USE_EXCEPTIONS
+// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_NO_EXCEPTIONS isn't defined (see config.h)
+#ifndef UNITTEST_NO_EXCEPTIONS
#define CHECK_THROW(expression, ExpectedExceptionType) \
UNITTEST_MULTILINE_MACRO_BEGIN \
bool caught_ = false; \
@@ -134,4 +134,4 @@
UnitTest::Detail::ExpectAssert(false); \
UNITTEST_MULTILINE_MACRO_END
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index ce59827..83dee1a 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,5 +1,5 @@
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
#include "TestDetails.h"
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index 7c2a4c8..d4947f4 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -3,7 +3,7 @@
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "TestReporter.h"
#include "DeferredTestResult.h"
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index f176243..cbf0a8a 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,5 +1,5 @@
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestResult.h"
#include
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index fde3b21..e580d0c 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -2,7 +2,7 @@
#define UNITTEST_DEFERREDTESTRESULT_H
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "HelperMacros.h"
#include
diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h
index 311d7e5..4ddf5ec 100644
--- a/src/ExceptionMacros.h
+++ b/src/ExceptionMacros.h
@@ -3,7 +3,7 @@
#include "../config.h"
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
#define UT_TRY(x) try x
#define UT_THROW(x) throw x
#define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index f90aa7f..2f47013 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -9,7 +9,7 @@
#include "AssertException.h"
#include "CurrentTest.h"
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
#include "ReportAssertImpl.h"
#endif
@@ -25,7 +25,7 @@ void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
if (isMockTest == false)
CurrentTest::Details() = &details;
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0)
{
#endif
@@ -49,7 +49,7 @@ void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
({
CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
})
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
}
#endif
}
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index c82740d..160849a 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -1,23 +1,19 @@
#include "MemoryOutStream.h"
-#ifndef UNITTEST_USE_CUSTOM_STREAMS
-
+#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
namespace UnitTest {
char const* MemoryOutStream::GetText() const
{
- m_text = this->str();
- return m_text.c_str();
+ m_text = this->str();
+ return m_text.c_str();
}
-
}
-
#else
-
#include
#include
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 1ba51e0..c92f17c 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -4,7 +4,7 @@
#include "../config.h"
#include "HelperMacros.h"
-#ifndef UNITTEST_USE_CUSTOM_STREAMS
+#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
#include
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index e256641..5ba1d30 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -5,7 +5,7 @@
#include "TestResults.h"
#include "TestDetails.h"
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
#include "ReportAssertImpl.h"
#endif
@@ -28,7 +28,7 @@ UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename
namespace Detail {
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
jmp_buf* GetAssertJmpBuf()
{
static jmp_buf s_jmpBuf;
@@ -50,7 +50,7 @@ UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
ExpectAssert(false);
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
throw AssertException();
#else
UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index 1560725..f6ecfde 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -3,7 +3,7 @@
#include "../config.h"
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
#include
#endif
@@ -24,7 +24,7 @@ UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
UNITTEST_LINKAGE bool AssertExpected();
-#ifndef UNITTEST_USE_EXCEPTIONS
+#ifdef UNITTEST_NO_EXCEPTIONS
UNITTEST_LINKAGE jmp_buf* GetAssertJmpBuf();
#ifdef UNITTEST_WIN32
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index deb27ca..09f0f24 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -1,5 +1,5 @@
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "XmlTestReporter.h"
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index 14d69a6..2adf298 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -2,7 +2,7 @@
#define UNITTEST_XMLTESTREPORTER_H
#include "../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 99e707a..3b28c5f 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -21,7 +21,7 @@ TEST(CanSetAssertExpected)
CHECK(!Detail::AssertExpected());
}
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
TEST(ReportAssertThrowsAssertException)
{
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index ad049d1..7550ab4 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,6 +1,6 @@
#include "../../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "../../unittestpp.h"
#include "../DeferredTestReporter.h"
@@ -12,7 +12,7 @@ namespace UnitTest
namespace
{
-#ifdef UNITTEST_USE_CUSTOM_STREAMS
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
MemoryOutStream& operator <<(MemoryOutStream& lhs, const std::string& rhs)
{
lhs << rhs.c_str();
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 5894e2c..f8089b4 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -1,5 +1,5 @@
#include "../../config.h"
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
#include "../../unittestpp.h"
#include "../CurrentTest.h"
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 7a3bc64..5feaf98 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -87,7 +87,7 @@ TEST(StreamingSizeTWritesCorrectCharacters)
CHECK_EQUAL("53124", stream.GetText());
}
-#ifdef UNITTEST_USE_CUSTOM_STREAMS
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
TEST(StreamInitialCapacityIsCorrect)
{
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index 59eb759..2ae2192 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -50,7 +50,7 @@ TEST(FailingTestHasFailures)
CHECK_EQUAL(1, results.GetFailureCount());
}
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
TEST(ThrowingTestsAreReportedAsFailures)
{
class CrashingTest : public Test
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index f8028d8..87cfef7 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -22,7 +22,7 @@ TEST (TestsAreAddedToTheListThroughMacro)
CHECK(list1.GetHead()->m_nextTest == 0);
}
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
struct ThrowingThingie
{
@@ -108,7 +108,7 @@ TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite)
CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName);
}
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
struct FixtureCtorThrows
{
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index a9da7a4..e6a00bf 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -44,7 +44,7 @@ TEST(ArrayCloseSucceeds)
CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f);
}
-#ifdef UNITTEST_USE_EXCEPTIONS
+#ifndef UNITTEST_NO_EXCEPTIONS
TEST(CheckThrowMacroSucceedsOnCorrectException)
{
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index 4c17b6c..dde5759 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,5 +1,5 @@
#include "../../config.h"
-#ifdef UNITTEST_USE_DEFERRED_REPORTER
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "../../unittestpp.h"
#include "../XmlTestReporter.h"
@@ -12,7 +12,7 @@ using std::ostringstream;
namespace
{
-#ifdef UNITTEST_USE_CUSTOM_STREAMS
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
// Overload to let MemoryOutStream accept std::string
MemoryOutStream& operator<<(MemoryOutStream& s, const std::string& value)
@@ -73,9 +73,9 @@ TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat)
reporter.ReportSummary(0, 0, 0, 0.1f);
const char *expected =
-""
-""
-" ";
+ ""
+ ""
+ " ";
CHECK_EQUAL(expected, output.str());
}
@@ -88,10 +88,10 @@ TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat)
reporter.ReportSummary(1, 0, 0, 0.1f);
const char *expected =
-""
-""
-""
-" ";
+ ""
+ ""
+ ""
+ " ";
CHECK_EQUAL(expected, output.str());
}
From 7510e7f42be4493099d175deb12df6a73c94d856 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:44:56 -0600
Subject: [PATCH 028/218] r23 | charles.nicholson | 2010-03-18 19:14:06 -0500
(Thu, 18 Mar 2010) | 1 line long long streaming for MemoryOutStream, from
sony
---
src/MemoryOutStream.cpp | 36 +++++++++++++++++++++++++------
src/MemoryOutStream.h | 18 +++++++++-------
src/tests/TestMemoryOutStream.cpp | 16 ++++++++++++++
3 files changed, 55 insertions(+), 15 deletions(-)
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index 160849a..757ed63 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -57,7 +57,7 @@ char const* MemoryOutStream::GetText() const
return m_buffer;
}
-MemoryOutStream& MemoryOutStream::operator << (char const* txt)
+MemoryOutStream& MemoryOutStream::operator <<(char const* txt)
{
using namespace std;
@@ -74,37 +74,59 @@ MemoryOutStream& MemoryOutStream::operator << (char const* txt)
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (int const n)
+MemoryOutStream& MemoryOutStream::operator <<(int const n)
{
FormatToStream(*this, "%i", n);
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (long const n)
+MemoryOutStream& MemoryOutStream::operator <<(long const n)
{
FormatToStream(*this, "%li", n);
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (unsigned long const n)
+MemoryOutStream& MemoryOutStream::operator <<(unsigned long const n)
{
FormatToStream(*this, "%lu", n);
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (float const f)
+MemoryOutStream& MemoryOutStream::operator <<(long long const n)
+{
+#ifdef UNITTEST_WIN32
+ FormatToStream(*this, "%I64d", n);
+#else
+ FormatToStream(*this, "%lld", n);
+#endif
+
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n)
+{
+#ifdef UNITTEST_WIN32
+ FormatToStream(*this, "%I64u", n);
+#else
+ FormatToStream(*this, "%llu", n);
+#endif
+
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(float const f)
{
FormatToStream(*this, "%ff", f);
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (void const* p)
+MemoryOutStream& MemoryOutStream::operator <<(void const* p)
{
FormatToStream(*this, "%p", p);
return *this;
}
-MemoryOutStream& MemoryOutStream::operator << (unsigned int const s)
+MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s)
{
FormatToStream(*this, "%u", s);
return *this;
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index c92f17c..aaedba0 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -42,14 +42,16 @@ public:
char const* GetText() const;
- MemoryOutStream& operator << (char const* txt);
- MemoryOutStream& operator << (int n);
- MemoryOutStream& operator << (long n);
- MemoryOutStream& operator << (unsigned long n);
- MemoryOutStream& operator << (float f);
- MemoryOutStream& operator << (double d);
- MemoryOutStream& operator << (void const* p);
- MemoryOutStream& operator << (unsigned int s);
+ MemoryOutStream& operator <<(char const* txt);
+ MemoryOutStream& operator <<(int n);
+ MemoryOutStream& operator <<(long n);
+ MemoryOutStream& operator <<(long long n);
+ MemoryOutStream& operator <<(unsigned long n);
+ MemoryOutStream& operator <<(unsigned long long n);
+ MemoryOutStream& operator <<(float f);
+ MemoryOutStream& operator <<(double d);
+ MemoryOutStream& operator <<(void const* p);
+ MemoryOutStream& operator <<(unsigned int s);
enum { GROW_CHUNK_SIZE = 32 };
int GetCapacity() const;
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 5feaf98..4845ec9 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -2,6 +2,8 @@
#include "../MemoryOutStream.h"
#include
+#include
+#include
using namespace UnitTest;
using namespace std;
@@ -57,6 +59,20 @@ TEST(StreamingUnsignedLongWritesCorrectCharacters)
CHECK_EQUAL("123", stream.GetText());
}
+TEST(StreamingLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long long)(ULONG_MAX) * 2;
+ CHECK_EQUAL("8589934590", stream.GetText());
+}
+
+TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long long)(ULONG_MAX) * 2;
+ CHECK_EQUAL("8589934590", stream.GetText());
+}
+
TEST(StreamingFloatWritesCorrectCharacters)
{
MemoryOutStream stream;
From e4272010e682c40d3d553836668f6e7d636ff398 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:02 -0600
Subject: [PATCH 029/218] r24 | charles.nicholson | 2010-03-19 18:34:42 -0500
(Fri, 19 Mar 2010) | 1 line inject 'using namespace std' into
TestTestMacros.cpp
---
src/tests/TestTestMacros.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index 87cfef7..b057e4f 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -8,6 +8,7 @@
#include "ScopedCurrentTest.h"
using namespace UnitTest;
+using namespace std;
namespace {
From e92de84bc2a769353196adac7084b323e9bbd1b6 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:10 -0600
Subject: [PATCH 030/218] r25 | charles.nicholson | 2010-03-22 14:01:16 -0500
(Mon, 22 Mar 2010) | 1 line add vs2008 solution + vcproj files
---
src/HelperMacros.h | 2 +-
src/tests/test-unittestpp_vs2008.vcproj | 569 ++++++++++++++++++++++
src/unittestpp_vs2008.vcproj | 607 ++++++++++++++++++++++++
unittestpp_vs2008.sln | 49 ++
4 files changed, 1226 insertions(+), 1 deletion(-)
create mode 100644 src/tests/test-unittestpp_vs2008.vcproj
create mode 100644 src/unittestpp_vs2008.vcproj
create mode 100644 unittestpp_vs2008.sln
diff --git a/src/HelperMacros.h b/src/HelperMacros.h
index 9560d13..97d6b2c 100644
--- a/src/HelperMacros.h
+++ b/src/HelperMacros.h
@@ -28,7 +28,7 @@
#define UNITTEST_STDVECTOR_LINKAGE(T) \
__pragma(warning(push)) \
__pragma(warning(disable:4231)) \
- UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator < T >; \
+ UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \
UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \
__pragma(warning(pop))
#else
diff --git a/src/tests/test-unittestpp_vs2008.vcproj b/src/tests/test-unittestpp_vs2008.vcproj
new file mode 100644
index 0000000..19762d1
--- /dev/null
+++ b/src/tests/test-unittestpp_vs2008.vcproj
@@ -0,0 +1,569 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/unittestpp_vs2008.vcproj b/src/unittestpp_vs2008.vcproj
new file mode 100644
index 0000000..fee20c0
--- /dev/null
+++ b/src/unittestpp_vs2008.vcproj
@@ -0,0 +1,607 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/unittestpp_vs2008.sln b/unittestpp_vs2008.sln
new file mode 100644
index 0000000..087941c
--- /dev/null
+++ b/unittestpp_vs2008.sln
@@ -0,0 +1,49 @@
+�サソ
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+ ProjectSection(ProjectDependencies) = postProject
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ win32_dll_debug|Win32 = win32_dll_debug|Win32
+ win32_dll_release|Win32 = win32_dll_release|Win32
+ win32_lib_md_debug|Win32 = win32_lib_md_debug|Win32
+ win32_lib_md_release|Win32 = win32_lib_md_release|Win32
+ win32_lib_mt_debug|Win32 = win32_lib_mt_debug|Win32
+ win32_lib_mt_release|Win32 = win32_lib_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_debug|Win32.ActiveCfg = win32_lib_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_debug|Win32.Build.0 = win32_lib_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_release|Win32.ActiveCfg = win32_lib_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_md_release|Win32.Build.0 = win32_lib_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_debug|Win32.ActiveCfg = win32_lib_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_debug|Win32.Build.0 = win32_lib_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_release|Win32.ActiveCfg = win32_lib_mt_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_lib_mt_release|Win32.Build.0 = win32_lib_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.ActiveCfg = win32_dll_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_debug|Win32.Build.0 = win32_dll_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.ActiveCfg = win32_dll_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_release|Win32.Build.0 = win32_dll_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_debug|Win32.ActiveCfg = win32_static_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_debug|Win32.Build.0 = win32_static_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_release|Win32.ActiveCfg = win32_static_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_md_release|Win32.Build.0 = win32_static_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_debug|Win32.ActiveCfg = win32_static_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_debug|Win32.Build.0 = win32_static_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_release|Win32.ActiveCfg = win32_static_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_lib_mt_release|Win32.Build.0 = win32_static_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
From 3fe7f2f5bdf8f11fc31c3aecabe637851ca28f87 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:16 -0600
Subject: [PATCH 031/218] r26 | charles.nicholson | 2010-03-22 14:16:24 -0500
(Mon, 22 Mar 2010) | 1 line platform macros for jmp_buf, setjmp, longjmp.
Remove unused code, fix shadowed virtual functions (yikes!)
---
config.h | 1 -
src/HelperMacros.h | 10 ++++++++++
src/ReportAssert.cpp | 4 ++--
src/ReportAssertImpl.h | 9 +++++----
src/tests/TestExceptions.cpp | 8 --------
src/tests/TestTestRunner.cpp | 4 ++--
6 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/config.h b/config.h
index 6036173..bb95a45 100644
--- a/config.h
+++ b/config.h
@@ -51,5 +51,4 @@
//#define UNITTEST_NO_EXCEPTIONS
-
#endif
diff --git a/src/HelperMacros.h b/src/HelperMacros.h
index 97d6b2c..68792da 100644
--- a/src/HelperMacros.h
+++ b/src/HelperMacros.h
@@ -39,4 +39,14 @@
#define UNITTEST_STDVECTOR_LINKAGE(T)
#endif
+#ifdef UNITTEST_WIN32
+ #define UNITTEST_JMPBUF jmp_buf
+ #define UNITTEST_SETJMP setjmp
+ #define UNITTEST_LONGJMP longjmp
+#elif defined UNITTEST_POSIX
+ #define UNITTEST_JMPBUF std::jmp_buf
+ #define UNITTEST_SETJMP setjmp
+ #define UNITTEST_LONGJMP std::longjmp
+#endif
+
#endif
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index 5ba1d30..c38a518 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -29,9 +29,9 @@ UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename
namespace Detail {
#ifdef UNITTEST_NO_EXCEPTIONS
-jmp_buf* GetAssertJmpBuf()
+UNITTEST_JMPBUF* GetAssertJmpBuf()
{
- static jmp_buf s_jmpBuf;
+ static UNITTEST_JMPBUF s_jmpBuf;
return &s_jmpBuf;
}
#endif
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index f6ecfde..aefc78d 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -2,6 +2,7 @@
#define UNITTEST_REPORTASSERTIMPL_H
#include "../config.h"
+#include "HelperMacros.h"
#ifdef UNITTEST_NO_EXCEPTIONS
#include
@@ -25,18 +26,18 @@ UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
UNITTEST_LINKAGE bool AssertExpected();
#ifdef UNITTEST_NO_EXCEPTIONS
- UNITTEST_LINKAGE jmp_buf* GetAssertJmpBuf();
+ UNITTEST_LINKAGE UNITTEST_JMPBUF* GetAssertJmpBuf();
#ifdef UNITTEST_WIN32
#define UNITTEST_SET_ASSERT_JUMP_TARGET() \
__pragma(warning(push)) __pragma(warning(disable:4611)) \
- setjmp(*UnitTest::Detail::GetAssertJmpBuf()) \
+ UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) \
__pragma(warning(pop))
#else
- #define UNITTEST_SET_ASSERT_JUMP_TARGET() setjmp(*UnitTest::Detail::GetAssertJmpBuf())
+ #define UNITTEST_SET_ASSERT_JUMP_TARGET() UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf())
#endif
- #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() longjmp(*UnitTest::Detail::GetAssertJmpBuf(), 1)
+ #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), 1)
#endif
}
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index f8089b4..6f55c9a 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -226,14 +226,6 @@ TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
CHECK(strstr(reporter.lastFailedMessage, "obj"));
}
-int g_sideEffect = 0;
-float const* FunctionWithSideEffects2()
-{
- ++g_sideEffect;
- static float const data[] = {1,2,3,4};
- return data;
-}
-
class ThrowingObject2D
{
public:
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index 3dc3edc..0aeec11 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -81,7 +81,7 @@ class SlowTest : public Test
{
public:
SlowTest() : Test("slow", "somesuite", "filename", 123) {}
- virtual void RunImpl(TestResults&) const
+ virtual void RunImpl() const
{
TimeHelpers::SleepMs(20);
}
@@ -213,7 +213,7 @@ TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses)
{
public:
SlowExemptedTest() : Test("slowexempted", "", 0) {}
- virtual void RunImpl(TestResults&) const
+ virtual void RunImpl() const
{
UNITTEST_TIME_CONSTRAINT_EXEMPT();
TimeHelpers::SleepMs(20);
From f5ba40579569242ab668c723393e7106b48857b9 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:20 -0600
Subject: [PATCH 032/218] r27 | charles.nicholson | 2010-03-25 15:45:52 -0500
(Thu, 25 Mar 2010) | 1 line add Clear() to MemoryOutStream()
---
src/MemoryOutStream.cpp | 11 +++++++++++
src/MemoryOutStream.h | 4 +++-
src/tests/TestMemoryOutStream.cpp | 8 ++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index 757ed63..1e1e97d 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -10,6 +10,12 @@ char const* MemoryOutStream::GetText() const
return m_text.c_str();
}
+void MemoryOutStream::Clear()
+{
+ this->str(std::string());
+ m_text = this->str();
+}
+
}
#else
@@ -52,6 +58,11 @@ MemoryOutStream::~MemoryOutStream()
delete [] m_buffer;
}
+void MemoryOutStream::Clear()
+{
+ m_buffer[0] = '\0';
+}
+
char const* MemoryOutStream::GetText() const
{
return m_buffer;
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index aaedba0..380826a 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -16,7 +16,8 @@ class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream
public:
MemoryOutStream() {}
~MemoryOutStream() {}
- char const* GetText() const;
+ void Clear();
+ char const* GetText() const;
private:
MemoryOutStream(MemoryOutStream const&);
@@ -40,6 +41,7 @@ public:
explicit MemoryOutStream(int const size = 256);
~MemoryOutStream();
+ void Clear();
char const* GetText() const;
MemoryOutStream& operator <<(char const* txt);
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 4845ec9..3ecf947 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -103,6 +103,14 @@ TEST(StreamingSizeTWritesCorrectCharacters)
CHECK_EQUAL("53124", stream.GetText());
}
+TEST(ClearEmptiesMemoryOutStreamContents)
+{
+ MemoryOutStream stream;
+ stream << "Hello world";
+ stream.Clear();
+ CHECK_EQUAL("", stream.GetText());
+}
+
#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
TEST(StreamInitialCapacityIsCorrect)
From 57bf80682e174479fd32e65f9ebd4c765a86a658 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:25 -0600
Subject: [PATCH 033/218] r28 | charles.nicholson | 2010-07-29 17:43:45 -0500
(Thu, 29 Jul 2010) | 1 line fix strict aliasing violation, was causing gcc
failures. use std::memcpy instead of union-cast
---
src/tests/TestChecks.cpp | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index f32d2e7..10b3071 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -1,6 +1,8 @@
#include "../../unittestpp.h"
#include "RecordingReporter.h"
+#include
+
using namespace UnitTest;
@@ -119,25 +121,21 @@ TEST(CheckCloseWithZeroEpsilonWorksForSameNumber)
TEST(CheckCloseWithNaNFails)
{
- union
- {
- unsigned int bitpattern;
- float nan;
- };
- bitpattern = 0xFFFFFFFF;
- TestResults results;
+ const unsigned int bitpattern = 0xFFFFFFFF;
+ float nan;
+ std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
+
+ TestResults results;
CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0));
CHECK_EQUAL(1, results.GetFailureCount());
}
TEST(CheckCloseWithNaNAgainstItselfFails)
{
- union
- {
- unsigned int bitpattern;
- float nan;
- };
- bitpattern = 0xFFFFFFFF;
+ const unsigned int bitpattern = 0xFFFFFFFF;
+ float nan;
+ std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
+
TestResults results;
CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0));
CHECK_EQUAL(1, results.GetFailureCount());
From d286f58ead97a02b75a6fee30e8ff6a6984589ab Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 9 Jan 2013 23:45:30 -0600
Subject: [PATCH 034/218] r29 | charles.nicholson | 2010-07-30 12:44:06 -0500
(Fri, 30 Jul 2010) | 1 line normalize configurations, output paths
---
src/tests/test-unittestpp_vs2005.vcproj | 12 ++---
src/tests/test-unittestpp_vs2008.vcproj | 36 +++++++--------
src/unittestpp_vs2005.vcproj | 36 +++++++--------
src/unittestpp_vs2008.vcproj | 36 +++++++--------
unittestpp_vs2005.sln | 60 ++++++++++++-------------
unittestpp_vs2008.sln | 60 ++++++++++++-------------
6 files changed, 120 insertions(+), 120 deletions(-)
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index e13fba8..50d9fa3 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -16,7 +16,7 @@
@@ -93,9 +93,9 @@
/>
@@ -246,9 +246,9 @@
/>
@@ -399,9 +399,9 @@
/>
@@ -80,9 +80,9 @@
/>
@@ -217,9 +217,9 @@
/>
@@ -354,9 +354,9 @@
/>
@@ -80,9 +80,9 @@
/>
@@ -214,9 +214,9 @@
/>
@@ -348,9 +348,9 @@
/>
Date: Wed, 9 Jan 2013 23:45:36 -0600
Subject: [PATCH 035/218] r30 | charles.nicholson@gmail.com | 2010-07-30
16:09:20 -0500 (Fri, 30 Jul 2010) | 1 line dummy change to test committing
---
README | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README b/README
index 187e69b..1389cc6 100644
--- a/README
+++ b/README
@@ -7,7 +7,7 @@ the terms of the License contained in the file COPYING distributed
with this package. This license is the same as the MIT/X Consortium
license.
-See src/tests/TestUnitTestPP.cpp for usage.
+See src/tests/TestUnitTest++.cpp for usage.
Authors:
Noel Llopis (llopis@convexhull.com)
@@ -52,7 +52,7 @@ Version 1.2 (2006-10-29)
- Added named test suites
- Added CHECK_ARRAY2D_CLOSE
- Posix library name is libUnitTest++.a now
-- Floating point numbers are postfixed with f in the failure reports
+- Floating point numbers are postfixed with 'f' in the failure reports
Version 1.1 (2006-04-18)
- CHECK macros do not have side effects even if one of the parameters changes state
From 443b35690a4cc1cc07d05370c0071b17e8b87ddf Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Thu, 10 Jan 2013 00:05:00 -0600
Subject: [PATCH 036/218] Fixed test failures in
Streaming[Unsigned]LongLongWritesCorrectCharacters
---
src/tests/TestMemoryOutStream.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 3ecf947..f83b10c 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -62,14 +62,14 @@ TEST(StreamingUnsignedLongWritesCorrectCharacters)
TEST(StreamingLongLongWritesCorrectCharacters)
{
MemoryOutStream stream;
- stream << (long long)(ULONG_MAX) * 2;
+ stream << (long long)8589934590ll;
CHECK_EQUAL("8589934590", stream.GetText());
}
TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
{
MemoryOutStream stream;
- stream << (unsigned long long)(ULONG_MAX) * 2;
+ stream << (unsigned long long)8589934590ull;
CHECK_EQUAL("8589934590", stream.GetText());
}
From cbbcffa26bf54f3edef0ad632b2ea7b81664f777 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 26 Jan 2013 01:27:06 -0600
Subject: [PATCH 037/218] Setting up an initial .gitattributes to start dealing
with line endings
---
.gitattributes | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .gitattributes
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..bcf1e7a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,13 @@
+* text=auto
+
+*.h text
+*.cpp text
+
+# VS 20xx files
+*.sln text eol=crlf
+*.vcproj text eol=crlf
+*.vcxproj text eol=crlt
+
+# VC6 files
+*.dsw text eol=crlf
+*.dsp text eol=crlf
From 8379eb566168a11031b4744b2b240fe20d1db3ee Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 26 Jan 2013 09:04:33 -0600
Subject: [PATCH 038/218] Fix inadvertent 'crlt' for .vcxproj
---
.gitattributes | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gitattributes b/.gitattributes
index bcf1e7a..615713b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6,7 +6,7 @@
# VS 20xx files
*.sln text eol=crlf
*.vcproj text eol=crlf
-*.vcxproj text eol=crlt
+*.vcxproj text eol=crlf
# VC6 files
*.dsw text eol=crlf
From 7e99532785c7d363591b6edaaf5ed514028ee1fe Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Thu, 31 Jan 2013 20:49:13 -0600
Subject: [PATCH 039/218] Normalized line endings
---
COPYING | 40 +-
README | 136 +--
TestUnitTest++.vsnet2003.vcproj | 348 +++----
TestUnitTest++.vsnet2005.vcproj | 512 +++++-----
TestUnitTestPP_vs6.dsp | 338 +++----
UnitTest++.vsnet2003.sln | 60 +-
UnitTest++.vsnet2003.vcproj | 452 ++++-----
UnitTest++.vsnet2005.sln | 58 +-
UnitTest++.vsnet2005.vcproj | 636 ++++++------
UnitTestPP_vs6.dsp | 520 +++++-----
UnitTestPP_vs6.dsw | 88 +-
config.h | 108 +-
src/AssertException.cpp | 34 +-
src/AssertException.h | 46 +-
src/CheckMacros.h | 274 ++---
src/Checks.cpp | 100 +-
src/Checks.h | 316 +++---
src/CompositeTestReporter.cpp | 134 +--
src/CompositeTestReporter.h | 68 +-
src/CurrentTest.cpp | 36 +-
src/CurrentTest.h | 38 +-
src/DeferredTestReporter.cpp | 66 +-
src/DeferredTestReporter.h | 70 +-
src/DeferredTestResult.cpp | 92 +-
src/DeferredTestResult.h | 104 +-
src/ExceptionMacros.h | 36 +-
src/ExecuteTest.h | 118 +--
src/HelperMacros.h | 104 +-
src/MemoryOutStream.cpp | 356 +++----
src/MemoryOutStream.h | 146 +--
src/Posix/SignalTranslator.cpp | 92 +-
src/Posix/SignalTranslator.h | 84 +-
src/Posix/TimeHelpers.cpp | 66 +-
src/Posix/TimeHelpers.h | 56 +-
src/ReportAssert.cpp | 140 +--
src/ReportAssert.h | 24 +-
src/ReportAssertImpl.h | 92 +-
src/Test.cpp | 84 +-
src/Test.h | 70 +-
src/TestDetails.cpp | 44 +-
src/TestDetails.h | 52 +-
src/TestList.cpp | 78 +-
src/TestList.h | 66 +-
src/TestMacros.h | 234 ++---
src/TestReporter.cpp | 18 +-
src/TestReporter.h | 44 +-
src/TestReporterStdout.cpp | 92 +-
src/TestReporterStdout.h | 38 +-
src/TestResults.cpp | 120 +--
src/TestResults.h | 76 +-
src/TestRunner.cpp | 164 +--
src/TestRunner.h | 122 +--
src/TestSuite.h | 24 +-
src/TimeConstraint.cpp | 58 +-
src/TimeConstraint.h | 74 +-
src/TimeHelpers.h | 14 +-
src/Win32/TimeHelpers.cpp | 98 +-
src/Win32/TimeHelpers.h | 90 +-
src/XmlTestReporter.cpp | 262 ++---
src/XmlTestReporter.h | 76 +-
src/tests/Main.cpp | 12 +-
src/tests/RecordingReporter.h | 196 ++--
src/tests/ScopedCurrentTest.h | 74 +-
src/tests/TestAssertHandler.cpp | 272 ++---
src/tests/TestCheckMacros.cpp | 1036 +++++++++----------
src/tests/TestChecks.cpp | 582 +++++------
src/tests/TestCompositeTestReporter.cpp | 352 +++----
src/tests/TestCurrentTest.cpp | 76 +-
src/tests/TestDeferredTestReporter.cpp | 244 ++---
src/tests/TestExceptions.cpp | 586 +++++------
src/tests/TestMemoryOutStream.cpp | 350 +++----
src/tests/TestTest.cpp | 258 ++---
src/tests/TestTestList.cpp | 100 +-
src/tests/TestTestMacros.cpp | 442 ++++----
src/tests/TestTestResults.cpp | 222 ++--
src/tests/TestTestRunner.cpp | 644 ++++++------
src/tests/TestTestSuite.cpp | 24 +-
src/tests/TestTimeConstraint.cpp | 138 +--
src/tests/TestTimeConstraintMacro.cpp | 130 +--
src/tests/TestUnitTestPP.cpp | 296 +++---
src/tests/TestXmlTestReporter.cpp | 376 +++----
src/tests/test-unittestpp_vs2005.vcproj | 1160 ++++++++++-----------
src/tests/test-unittestpp_vs2008.vcproj | 1138 ++++++++++-----------
src/unittestpp_vs2005.vcproj | 1228 +++++++++++------------
src/unittestpp_vs2008.vcproj | 1214 +++++++++++-----------
unittestpp.h | 22 +-
unittestpp_vs2005.sln | 98 +-
unittestpp_vs2008.sln | 98 +-
88 files changed, 9677 insertions(+), 9677 deletions(-)
diff --git a/COPYING b/COPYING
index dc16f73..9f96308 100644
--- a/COPYING
+++ b/COPYING
@@ -1,20 +1,20 @@
-Copyright (c) 2006 Noel Llopis and Charles Nicholson
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+Copyright (c) 2006 Noel Llopis and Charles Nicholson
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README b/README
index 1389cc6..63c9351 100644
--- a/README
+++ b/README
@@ -1,68 +1,68 @@
-UnitTest++ README
-Version: v1.4
-Last update: 2008-10-30
-
-UnitTest++ is free software. You may copy, distribute, and modify it under
-the terms of the License contained in the file COPYING distributed
-with this package. This license is the same as the MIT/X Consortium
-license.
-
-See src/tests/TestUnitTest++.cpp for usage.
-
-Authors:
-Noel Llopis (llopis@convexhull.com)
-Charles Nicholson (charles.nicholson@gmail.com)
-
-Contributors:
-Jim Tilander
-Kim Grasman
-Jonathan Jansson
-Dirck Blaskey
-Rory Driscoll
-Dan Lind
-Matt Kimmel -- Submitted with permission from Blue Fang Games
-Anthony Moralez
-Jeff Dixon
-Randy Coulman
-Lieven van der Heide
-
-Release notes:
---------------
-Version 1.4 (2008-10-30)
-- CHECK macros work at arbitrary stack depth from inside TESTs.
-- Remove obsolete TEST_UTILITY macros
-- Predicated test execution (via TestRunner::RunTestsIf)
-- Better exception handling for fixture ctors/dtors.
-- VC6/7/8/9 support
-
-Version 1.3 (2007-4-22)
-- Removed dynamic memory allocations (other than streams)
-- MinGW support
-- Consistent (native) line endings
-- Minor bug fixing
-
-Version 1.2 (2006-10-29)
-- First pass at documentation.
-- More detailed error crash catching in fixtures.
-- Standard streams used for printing objects under check. This should allow the
- use of standard class types such as std::string or other custom classes with
- stream operators to ostream.
-- Standard streams can be optionally compiled off by defining UNITTEST_USE_CUSTOM_STREAMS
- in Config.h
-- Added named test suites
-- Added CHECK_ARRAY2D_CLOSE
-- Posix library name is libUnitTest++.a now
-- Floating point numbers are postfixed with 'f' in the failure reports
-
-Version 1.1 (2006-04-18)
-- CHECK macros do not have side effects even if one of the parameters changes state
-- Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE)
-- Added local and global time constraints
-- Removed dependencies on strstream
-- Improved Posix signal to exception translator
-- Failing tests are added to Visual Studio's error list
-- Fixed Visual Studio projects to work with spaces in directories
-
-Version 1.0 (2006-03-15)
-- Initial release
-
+UnitTest++ README
+Version: v1.4
+Last update: 2008-10-30
+
+UnitTest++ is free software. You may copy, distribute, and modify it under
+the terms of the License contained in the file COPYING distributed
+with this package. This license is the same as the MIT/X Consortium
+license.
+
+See src/tests/TestUnitTest++.cpp for usage.
+
+Authors:
+Noel Llopis (llopis@convexhull.com)
+Charles Nicholson (charles.nicholson@gmail.com)
+
+Contributors:
+Jim Tilander
+Kim Grasman
+Jonathan Jansson
+Dirck Blaskey
+Rory Driscoll
+Dan Lind
+Matt Kimmel -- Submitted with permission from Blue Fang Games
+Anthony Moralez
+Jeff Dixon
+Randy Coulman
+Lieven van der Heide
+
+Release notes:
+--------------
+Version 1.4 (2008-10-30)
+- CHECK macros work at arbitrary stack depth from inside TESTs.
+- Remove obsolete TEST_UTILITY macros
+- Predicated test execution (via TestRunner::RunTestsIf)
+- Better exception handling for fixture ctors/dtors.
+- VC6/7/8/9 support
+
+Version 1.3 (2007-4-22)
+- Removed dynamic memory allocations (other than streams)
+- MinGW support
+- Consistent (native) line endings
+- Minor bug fixing
+
+Version 1.2 (2006-10-29)
+- First pass at documentation.
+- More detailed error crash catching in fixtures.
+- Standard streams used for printing objects under check. This should allow the
+ use of standard class types such as std::string or other custom classes with
+ stream operators to ostream.
+- Standard streams can be optionally compiled off by defining UNITTEST_USE_CUSTOM_STREAMS
+ in Config.h
+- Added named test suites
+- Added CHECK_ARRAY2D_CLOSE
+- Posix library name is libUnitTest++.a now
+- Floating point numbers are postfixed with 'f' in the failure reports
+
+Version 1.1 (2006-04-18)
+- CHECK macros do not have side effects even if one of the parameters changes state
+- Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE)
+- Added local and global time constraints
+- Removed dependencies on strstream
+- Improved Posix signal to exception translator
+- Failing tests are added to Visual Studio's error list
+- Fixed Visual Studio projects to work with spaces in directories
+
+Version 1.0 (2006-03-15)
+- Initial release
+
diff --git a/TestUnitTest++.vsnet2003.vcproj b/TestUnitTest++.vsnet2003.vcproj
index fbc4154..e596d80 100644
--- a/TestUnitTest++.vsnet2003.vcproj
+++ b/TestUnitTest++.vsnet2003.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TestUnitTest++.vsnet2005.vcproj b/TestUnitTest++.vsnet2005.vcproj
index aa8f95b..79b7874 100644
--- a/TestUnitTest++.vsnet2005.vcproj
+++ b/TestUnitTest++.vsnet2005.vcproj
@@ -1,256 +1,256 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TestUnitTestPP_vs6.dsp b/TestUnitTestPP_vs6.dsp
index bdfb234..6e0f85f 100644
--- a/TestUnitTestPP_vs6.dsp
+++ b/TestUnitTestPP_vs6.dsp
@@ -1,169 +1,169 @@
-# Microsoft Developer Studio Project File - Name="TestUnitTestPP_vs6" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** 編集しないでください **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=TestUnitTestPP_vs6 - Win32 Debug
-!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
-!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
-!MESSAGE
-!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak".
-!MESSAGE
-!MESSAGE NMAKE の実行時に構成を指定できます
-!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
-!MESSAGE
-!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak" CFG="TestUnitTestPP_vs6 - Win32 Debug"
-!MESSAGE
-!MESSAGE 選択可能なビルド モード:
-!MESSAGE
-!MESSAGE "TestUnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Console Application" 用)
-!MESSAGE "TestUnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Console Application" 用)
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x411 /d "NDEBUG"
-# ADD RSC /l 0x411 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x411 /d "_DEBUG"
-# ADD RSC /l 0x411 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "TestUnitTestPP_vs6 - Win32 Release"
-# Name "TestUnitTestPP_vs6 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\src\tests\Main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestAssertHandler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestCheckMacros.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestChecks.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestCurrentTest.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestDeferredTestReporter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestMemoryOutStream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTest.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTestList.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTestMacros.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTestResults.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTestRunner.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTestSuite.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTimeConstraint.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestTimeConstraintMacro.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=".\src\tests\TestUnitTestPP.cpp"
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\TestXmlTestReporter.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\src\tests\RecordingReporter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\tests\ScopedCurrentTest.h
-# End Source File
-# End Group
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="TestUnitTestPP_vs6" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** 編集しないでください **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=TestUnitTestPP_vs6 - Win32 Debug
+!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
+!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
+!MESSAGE
+!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak".
+!MESSAGE
+!MESSAGE NMAKE の実行時に構成を指定できます
+!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
+!MESSAGE
+!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak" CFG="TestUnitTestPP_vs6 - Win32 Debug"
+!MESSAGE
+!MESSAGE 選択可能なビルド モード:
+!MESSAGE
+!MESSAGE "TestUnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Console Application" 用)
+!MESSAGE "TestUnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Console Application" 用)
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "TestUnitTestPP_vs6 - Win32 Release"
+# Name "TestUnitTestPP_vs6 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\src\tests\Main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestAssertHandler.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestCheckMacros.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestChecks.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestCurrentTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestDeferredTestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestMemoryOutStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestMacros.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestResults.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestRunner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTestSuite.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTimeConstraint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestTimeConstraintMacro.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=".\src\tests\TestUnitTestPP.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\TestXmlTestReporter.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\src\tests\RecordingReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\tests\ScopedCurrentTest.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/UnitTest++.vsnet2003.sln b/UnitTest++.vsnet2003.sln
index 748dedb..265d7ba 100644
--- a/UnitTest++.vsnet2003.sln
+++ b/UnitTest++.vsnet2003.sln
@@ -1,30 +1,30 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}"
- ProjectSection(ProjectDependencies) = postProject
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}"
+ ProjectSection(ProjectDependencies) = postProject
+ {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32
+ {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32
+ {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32
+ {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32
+ {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32
+ {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32
+ {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32
+ {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/UnitTest++.vsnet2003.vcproj b/UnitTest++.vsnet2003.vcproj
index 7fc9721..75c8f2e 100644
--- a/UnitTest++.vsnet2003.vcproj
+++ b/UnitTest++.vsnet2003.vcproj
@@ -1,226 +1,226 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UnitTest++.vsnet2005.sln b/UnitTest++.vsnet2005.sln
index f27ed4a..382f334 100644
--- a/UnitTest++.vsnet2005.sln
+++ b/UnitTest++.vsnet2005.sln
@@ -1,29 +1,29 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+�サソ
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+ ProjectSection(ProjectDependencies) = postProject
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/UnitTest++.vsnet2005.vcproj b/UnitTest++.vsnet2005.vcproj
index 9c56365..7e45646 100644
--- a/UnitTest++.vsnet2005.vcproj
+++ b/UnitTest++.vsnet2005.vcproj
@@ -1,318 +1,318 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/UnitTestPP_vs6.dsp b/UnitTestPP_vs6.dsp
index 564471b..b9014cd 100644
--- a/UnitTestPP_vs6.dsp
+++ b/UnitTestPP_vs6.dsp
@@ -1,260 +1,260 @@
-# Microsoft Developer Studio Project File - Name="UnitTestPP_vs6" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** 編集しないでください **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=UnitTestPP_vs6 - Win32 Debug
-!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
-!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
-!MESSAGE
-!MESSAGE NMAKE /f "UnitTestPP_vs6.mak".
-!MESSAGE
-!MESSAGE NMAKE の実行時に構成を指定できます
-!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
-!MESSAGE
-!MESSAGE NMAKE /f "UnitTestPP_vs6.mak" CFG="UnitTestPP_vs6 - Win32 Debug"
-!MESSAGE
-!MESSAGE 選択可能なビルド モード:
-!MESSAGE
-!MESSAGE "UnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Static Library" 用)
-!MESSAGE "UnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Static Library" 用)
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "UnitTestPP_vs6 - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x411 /d "NDEBUG"
-# ADD RSC /l 0x411 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "UnitTestPP_vs6 - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x411 /d "_DEBUG"
-# ADD RSC /l 0x411 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "UnitTestPP_vs6 - Win32 Release"
-# Name "UnitTestPP_vs6 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\src\AssertException.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Checks.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\CurrentTest.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\DeferredTestReporter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\DeferredTestResult.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\MemoryOutStream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\ReportAssert.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Test.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestDetails.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestList.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestReporter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestReporterStdout.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestResults.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestRunner.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TimeConstraint.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\XmlTestReporter.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\src\AssertException.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\CheckMacros.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Checks.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\CurrentTest.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\DeferredTestReporter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\DeferredTestResult.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\ExecuteTest.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\MemoryOutStream.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\ReportAssert.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Test.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestDetails.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestList.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestMacros.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestReporter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestReporterStdout.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestResults.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestRunner.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TestSuite.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TimeConstraint.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\TimeHelpers.h
-# End Source File
-# Begin Source File
-
-SOURCE=".\src\unittestpp.h"
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\XmlTestReporter.h
-# End Source File
-# End Group
-# Begin Group "Win32"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\src\Win32\TimeHelpers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\src\Win32\TimeHelpers.h
-# End Source File
-# End Group
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="UnitTestPP_vs6" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** 編集しないでください **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=UnitTestPP_vs6 - Win32 Debug
+!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
+!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
+!MESSAGE
+!MESSAGE NMAKE /f "UnitTestPP_vs6.mak".
+!MESSAGE
+!MESSAGE NMAKE の実行時に構成を指定できます
+!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
+!MESSAGE
+!MESSAGE NMAKE /f "UnitTestPP_vs6.mak" CFG="UnitTestPP_vs6 - Win32 Debug"
+!MESSAGE
+!MESSAGE 選択可能なビルド モード:
+!MESSAGE
+!MESSAGE "UnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Static Library" 用)
+!MESSAGE "UnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Static Library" 用)
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "UnitTestPP_vs6 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "UnitTestPP_vs6 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "UnitTestPP_vs6 - Win32 Release"
+# Name "UnitTestPP_vs6 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\src\AssertException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Checks.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CurrentTest.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestResult.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\MemoryOutStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ReportAssert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Test.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestDetails.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporterStdout.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestResults.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestRunner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeConstraint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\XmlTestReporter.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\src\AssertException.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CheckMacros.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Checks.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Config.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\CurrentTest.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\DeferredTestResult.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ExecuteTest.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\MemoryOutStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\ReportAssert.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Test.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestDetails.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestList.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestMacros.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestReporterStdout.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestResults.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestRunner.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TestSuite.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeConstraint.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\TimeHelpers.h
+# End Source File
+# Begin Source File
+
+SOURCE=".\src\unittestpp.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\XmlTestReporter.h
+# End Source File
+# End Group
+# Begin Group "Win32"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\src\Win32\TimeHelpers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\Win32\TimeHelpers.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/UnitTestPP_vs6.dsw b/UnitTestPP_vs6.dsw
index 58e105a..7afab45 100644
--- a/UnitTestPP_vs6.dsw
+++ b/UnitTestPP_vs6.dsw
@@ -1,44 +1,44 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# 警告: このワークスペース ファイル を編集または削除しないでください!
-
-###############################################################################
-
-Project: "TestUnitTestPP_vs6"=".\TestUnitTestPP_vs6.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name UnitTestPP_vs6
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "UnitTestPP_vs6"=".\UnitTestPP_vs6.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# 警告: このワークスペース ファイル を編集または削除しないでください!
+
+###############################################################################
+
+Project: "TestUnitTestPP_vs6"=".\TestUnitTestPP_vs6.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name UnitTestPP_vs6
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "UnitTestPP_vs6"=".\UnitTestPP_vs6.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/config.h b/config.h
index bb95a45..92706c7 100644
--- a/config.h
+++ b/config.h
@@ -1,54 +1,54 @@
-#ifndef UNITTEST_CONFIG_H
-#define UNITTEST_CONFIG_H
-
-// Standard defines documented here: http://predef.sourceforge.net
-
-#if defined(_MSC_VER)
- #pragma warning(disable:4702) // unreachable code
- #pragma warning(disable:4722) // destructor never returns, potential memory leak
-
- #if (_MSC_VER == 1200) // VC6
- #pragma warning(disable:4786)
- #pragma warning(disable:4290)
- #endif
-
- #ifdef _USRDLL
- #define UNITTEST_WIN32_DLL
- #endif
- #define UNITTEST_WIN32
-#endif
-
-#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \
- defined(__APPLE__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
- #define UNITTEST_POSIX
-#endif
-
-#if defined(__MINGW32__)
- #define UNITTEST_MINGW
-#endif
-
-
-// MemoryOutStream is a custom reimplementation of parts of std::ostringstream.
-// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream.
-// This is useful if you are using the CHECK macros on objects that have something like this defined:
-// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value)
-
-//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
-
-
-// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like
-// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL
-// headers or code will be compiled into UnitTest++
-
-//#define UNITTEST_NO_DEFERRED_REPORTER
-
-
-// By default, asserts that you report via UnitTest::ReportAssert() abort the current test and
-// continue to the next one by throwing an exception, which unwinds the stack naturally, destroying
-// all auto variables on its way back down. If you don't want to (or can't) use exceptions for your
-// platform/compiler, uncomment this line. All exception code will be removed from UnitTest++,
-// assert recovery will be done via setjmp/longjmp, and NO correct stack unwinding will happen!
-
-//#define UNITTEST_NO_EXCEPTIONS
-
-#endif
+#ifndef UNITTEST_CONFIG_H
+#define UNITTEST_CONFIG_H
+
+// Standard defines documented here: http://predef.sourceforge.net
+
+#if defined(_MSC_VER)
+ #pragma warning(disable:4702) // unreachable code
+ #pragma warning(disable:4722) // destructor never returns, potential memory leak
+
+ #if (_MSC_VER == 1200) // VC6
+ #pragma warning(disable:4786)
+ #pragma warning(disable:4290)
+ #endif
+
+ #ifdef _USRDLL
+ #define UNITTEST_WIN32_DLL
+ #endif
+ #define UNITTEST_WIN32
+#endif
+
+#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \
+ defined(__APPLE__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #define UNITTEST_POSIX
+#endif
+
+#if defined(__MINGW32__)
+ #define UNITTEST_MINGW
+#endif
+
+
+// MemoryOutStream is a custom reimplementation of parts of std::ostringstream.
+// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream.
+// This is useful if you are using the CHECK macros on objects that have something like this defined:
+// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value)
+
+//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+
+// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like
+// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL
+// headers or code will be compiled into UnitTest++
+
+//#define UNITTEST_NO_DEFERRED_REPORTER
+
+
+// By default, asserts that you report via UnitTest::ReportAssert() abort the current test and
+// continue to the next one by throwing an exception, which unwinds the stack naturally, destroying
+// all auto variables on its way back down. If you don't want to (or can't) use exceptions for your
+// platform/compiler, uncomment this line. All exception code will be removed from UnitTest++,
+// assert recovery will be done via setjmp/longjmp, and NO correct stack unwinding will happen!
+
+//#define UNITTEST_NO_EXCEPTIONS
+
+#endif
diff --git a/src/AssertException.cpp b/src/AssertException.cpp
index 634eb07..9a7d78f 100644
--- a/src/AssertException.cpp
+++ b/src/AssertException.cpp
@@ -1,17 +1,17 @@
-#include "AssertException.h"
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-namespace UnitTest {
-
-AssertException::AssertException()
-{
-}
-
-AssertException::~AssertException() throw()
-{
-}
-
-}
-
-#endif
+#include "AssertException.h"
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+namespace UnitTest {
+
+AssertException::AssertException()
+{
+}
+
+AssertException::~AssertException() throw()
+{
+}
+
+}
+
+#endif
diff --git a/src/AssertException.h b/src/AssertException.h
index 74291db..620e397 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -1,23 +1,23 @@
-#ifndef UNITTEST_ASSERTEXCEPTION_H
-#define UNITTEST_ASSERTEXCEPTION_H
-
-#include "../config.h"
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-#include "HelperMacros.h"
-#include
-
-namespace UnitTest {
-
-class UNITTEST_LINKAGE AssertException : public std::exception
-{
-public:
- AssertException();
- virtual ~AssertException() throw();
-};
-
-}
-
-#endif
-
-#endif
+#ifndef UNITTEST_ASSERTEXCEPTION_H
+#define UNITTEST_ASSERTEXCEPTION_H
+
+#include "../config.h"
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+#include "HelperMacros.h"
+#include
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE AssertException : public std::exception
+{
+public:
+ AssertException();
+ virtual ~AssertException() throw();
+};
+
+}
+
+#endif
+
+#endif
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 1e73699..db93aab 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -1,137 +1,137 @@
-#ifndef UNITTEST_CHECKMACROS_H
-#define UNITTEST_CHECKMACROS_H
-
-#include "HelperMacros.h"
-#include "ExceptionMacros.h"
-#include "Checks.h"
-#include "AssertException.h"
-#include "MemoryOutStream.h"
-#include "TestDetails.h"
-#include "CurrentTest.h"
-#include "ReportAssertImpl.h"
-
-#ifdef CHECK
- #error UnitTest++ redefines CHECK
-#endif
-
-#ifdef CHECK_EQUAL
- #error UnitTest++ redefines CHECK_EQUAL
-#endif
-
-#ifdef CHECK_CLOSE
- #error UnitTest++ redefines CHECK_CLOSE
-#endif
-
-#ifdef CHECK_ARRAY_EQUAL
- #error UnitTest++ redefines CHECK_ARRAY_EQUAL
-#endif
-
-#ifdef CHECK_ARRAY_CLOSE
- #error UnitTest++ redefines CHECK_ARRAY_CLOSE
-#endif
-
-#ifdef CHECK_ARRAY2D_CLOSE
- #error UnitTest++ redefines CHECK_ARRAY2D_CLOSE
-#endif
-
-#define CHECK(value) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- if (!UnitTest::Check(value)) \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK(" #value ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-#define CHECK_EQUAL(expected, actual) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-#define CHECK_CLOSE(expected, actual, tolerance) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-#define CHECK_ARRAY_EQUAL(expected, actual, count) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UT_TRY \
- ({ \
- UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
- }) \
- UT_CATCH_ALL \
- ({ \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
- }) \
- UNITTEST_MULTILINE_MACRO_END
-
-
-// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_NO_EXCEPTIONS isn't defined (see config.h)
-#ifndef UNITTEST_NO_EXCEPTIONS
-#define CHECK_THROW(expression, ExpectedExceptionType) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- bool caught_ = false; \
- try { expression; } \
- catch (ExpectedExceptionType const&) { caught_ = true; } \
- catch (...) {} \
- if (!caught_) \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
- UNITTEST_MULTILINE_MACRO_END
-
-
-#define CHECK_ASSERT(expression) \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- UnitTest::Detail::ExpectAssert(true); \
- CHECK_THROW(expression, UnitTest::AssertException); \
- UnitTest::Detail::ExpectAssert(false); \
- UNITTEST_MULTILINE_MACRO_END
-#endif
-#endif
+#ifndef UNITTEST_CHECKMACROS_H
+#define UNITTEST_CHECKMACROS_H
+
+#include "HelperMacros.h"
+#include "ExceptionMacros.h"
+#include "Checks.h"
+#include "AssertException.h"
+#include "MemoryOutStream.h"
+#include "TestDetails.h"
+#include "CurrentTest.h"
+#include "ReportAssertImpl.h"
+
+#ifdef CHECK
+ #error UnitTest++ redefines CHECK
+#endif
+
+#ifdef CHECK_EQUAL
+ #error UnitTest++ redefines CHECK_EQUAL
+#endif
+
+#ifdef CHECK_CLOSE
+ #error UnitTest++ redefines CHECK_CLOSE
+#endif
+
+#ifdef CHECK_ARRAY_EQUAL
+ #error UnitTest++ redefines CHECK_ARRAY_EQUAL
+#endif
+
+#ifdef CHECK_ARRAY_CLOSE
+ #error UnitTest++ redefines CHECK_ARRAY_CLOSE
+#endif
+
+#ifdef CHECK_ARRAY2D_CLOSE
+ #error UnitTest++ redefines CHECK_ARRAY2D_CLOSE
+#endif
+
+#define CHECK(value) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ if (!UnitTest::Check(value)) \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK(" #value ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+#define CHECK_EQUAL(expected, actual) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+#define CHECK_CLOSE(expected, actual, tolerance) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+#define CHECK_ARRAY_EQUAL(expected, actual, count) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UT_TRY \
+ ({ \
+ UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
+ }) \
+ UNITTEST_MULTILINE_MACRO_END
+
+
+// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_NO_EXCEPTIONS isn't defined (see config.h)
+#ifndef UNITTEST_NO_EXCEPTIONS
+#define CHECK_THROW(expression, ExpectedExceptionType) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ bool caught_ = false; \
+ try { expression; } \
+ catch (ExpectedExceptionType const&) { caught_ = true; } \
+ catch (...) {} \
+ if (!caught_) \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \
+ UNITTEST_MULTILINE_MACRO_END
+
+
+#define CHECK_ASSERT(expression) \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ UnitTest::Detail::ExpectAssert(true); \
+ CHECK_THROW(expression, UnitTest::AssertException); \
+ UnitTest::Detail::ExpectAssert(false); \
+ UNITTEST_MULTILINE_MACRO_END
+#endif
+#endif
diff --git a/src/Checks.cpp b/src/Checks.cpp
index 0ccd698..2d09519 100644
--- a/src/Checks.cpp
+++ b/src/Checks.cpp
@@ -1,50 +1,50 @@
-#include "Checks.h"
-#include
-
-namespace UnitTest {
-
-namespace {
-
-void CheckStringsEqual(TestResults& results, char const* expected, char const* actual,
- TestDetails const& details)
-{
- using namespace std;
-
- if (strcmp(expected, actual))
- {
- UnitTest::MemoryOutStream stream;
- stream << "Expected " << expected << " but was " << actual;
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-}
-
-
-void CheckEqual(TestResults& results, char const* expected, char const* actual,
- TestDetails const& details)
-{
- CheckStringsEqual(results, expected, actual, details);
-}
-
-void CheckEqual(TestResults& results, char* expected, char* actual,
- TestDetails const& details)
-{
- CheckStringsEqual(results, expected, actual, details);
-}
-
-void CheckEqual(TestResults& results, char* expected, char const* actual,
- TestDetails const& details)
-{
- CheckStringsEqual(results, expected, actual, details);
-}
-
-void CheckEqual(TestResults& results, char const* expected, char* actual,
- TestDetails const& details)
-{
- CheckStringsEqual(results, expected, actual, details);
-}
-
-
-}
+#include "Checks.h"
+#include
+
+namespace UnitTest {
+
+namespace {
+
+void CheckStringsEqual(TestResults& results, char const* expected, char const* actual,
+ TestDetails const& details)
+{
+ using namespace std;
+
+ if (strcmp(expected, actual))
+ {
+ UnitTest::MemoryOutStream stream;
+ stream << "Expected " << expected << " but was " << actual;
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+}
+
+
+void CheckEqual(TestResults& results, char const* expected, char const* actual,
+ TestDetails const& details)
+{
+ CheckStringsEqual(results, expected, actual, details);
+}
+
+void CheckEqual(TestResults& results, char* expected, char* actual,
+ TestDetails const& details)
+{
+ CheckStringsEqual(results, expected, actual, details);
+}
+
+void CheckEqual(TestResults& results, char* expected, char const* actual,
+ TestDetails const& details)
+{
+ CheckStringsEqual(results, expected, actual, details);
+}
+
+void CheckEqual(TestResults& results, char const* expected, char* actual,
+ TestDetails const& details)
+{
+ CheckStringsEqual(results, expected, actual, details);
+}
+
+
+}
diff --git a/src/Checks.h b/src/Checks.h
index c323244..4eb1842 100644
--- a/src/Checks.h
+++ b/src/Checks.h
@@ -1,158 +1,158 @@
-#ifndef UNITTEST_CHECKS_H
-#define UNITTEST_CHECKS_H
-
-#include "../config.h"
-#include "TestResults.h"
-#include "MemoryOutStream.h"
-
-namespace UnitTest {
-
-
-template< typename Value >
-bool Check(Value const value)
-{
- return !!value; // doing double negative to avoid silly VS warnings
-}
-
-
-template< typename Expected, typename Actual >
-void CheckEqual(TestResults& results, Expected const& expected, Actual const& actual, TestDetails const& details)
-{
- if (!(expected == actual))
- {
- UnitTest::MemoryOutStream stream;
- stream << "Expected " << expected << " but was " << actual;
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details);
-
-UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details);
-
-UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details);
-
-UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details);
-
-template< typename Expected, typename Actual, typename Tolerance >
-bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance)
-{
- return (actual >= (expected - tolerance)) && (actual <= (expected + tolerance));
-}
-
-template< typename Expected, typename Actual, typename Tolerance >
-void CheckClose(TestResults& results, Expected const& expected, Actual const& actual, Tolerance const& tolerance,
- TestDetails const& details)
-{
- if (!AreClose(expected, actual, tolerance))
- {
- UnitTest::MemoryOutStream stream;
- stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual;
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-
-template< typename Expected, typename Actual >
-void CheckArrayEqual(TestResults& results, Expected const& expected, Actual const& actual,
- int const count, TestDetails const& details)
-{
- bool equal = true;
- for (int i = 0; i < count; ++i)
- equal &= (expected[i] == actual[i]);
-
- if (!equal)
- {
- UnitTest::MemoryOutStream stream;
-
- stream << "Expected [ ";
-
- for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
- stream << expected[expectedIndex] << " ";
-
- stream << "] but was [ ";
-
- for (int actualIndex = 0; actualIndex < count; ++actualIndex)
- stream << actual[actualIndex] << " ";
-
- stream << "]";
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-template< typename Expected, typename Actual, typename Tolerance >
-bool ArrayAreClose(Expected const& expected, Actual const& actual, int const count, Tolerance const& tolerance)
-{
- bool equal = true;
- for (int i = 0; i < count; ++i)
- equal &= AreClose(expected[i], actual[i], tolerance);
- return equal;
-}
-
-template< typename Expected, typename Actual, typename Tolerance >
-void CheckArrayClose(TestResults& results, Expected const& expected, Actual const& actual,
- int const count, Tolerance const& tolerance, TestDetails const& details)
-{
- bool equal = ArrayAreClose(expected, actual, count, tolerance);
-
- if (!equal)
- {
- UnitTest::MemoryOutStream stream;
-
- stream << "Expected [ ";
- for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
- stream << expected[expectedIndex] << " ";
- stream << "] +/- " << tolerance << " but was [ ";
-
- for (int actualIndex = 0; actualIndex < count; ++actualIndex)
- stream << actual[actualIndex] << " ";
- stream << "]";
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-template< typename Expected, typename Actual, typename Tolerance >
-void CheckArray2DClose(TestResults& results, Expected const& expected, Actual const& actual,
- int const rows, int const columns, Tolerance const& tolerance, TestDetails const& details)
-{
- bool equal = true;
- for (int i = 0; i < rows; ++i)
- equal &= ArrayAreClose(expected[i], actual[i], columns, tolerance);
-
- if (!equal)
- {
- UnitTest::MemoryOutStream stream;
-
- stream << "Expected [ ";
-
- for (int expectedRow = 0; expectedRow < rows; ++expectedRow)
- {
- stream << "[ ";
- for (int expectedColumn = 0; expectedColumn < columns; ++expectedColumn)
- stream << expected[expectedRow][expectedColumn] << " ";
- stream << "] ";
- }
-
- stream << "] +/- " << tolerance << " but was [ ";
-
- for (int actualRow = 0; actualRow < rows; ++actualRow)
- {
- stream << "[ ";
- for (int actualColumn = 0; actualColumn < columns; ++actualColumn)
- stream << actual[actualRow][actualColumn] << " ";
- stream << "] ";
- }
-
- stream << "]";
-
- results.OnTestFailure(details, stream.GetText());
- }
-}
-
-}
-
-#endif
+#ifndef UNITTEST_CHECKS_H
+#define UNITTEST_CHECKS_H
+
+#include "../config.h"
+#include "TestResults.h"
+#include "MemoryOutStream.h"
+
+namespace UnitTest {
+
+
+template< typename Value >
+bool Check(Value const value)
+{
+ return !!value; // doing double negative to avoid silly VS warnings
+}
+
+
+template< typename Expected, typename Actual >
+void CheckEqual(TestResults& results, Expected const& expected, Actual const& actual, TestDetails const& details)
+{
+ if (!(expected == actual))
+ {
+ UnitTest::MemoryOutStream stream;
+ stream << "Expected " << expected << " but was " << actual;
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details);
+
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details);
+
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details);
+
+UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details);
+
+template< typename Expected, typename Actual, typename Tolerance >
+bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance)
+{
+ return (actual >= (expected - tolerance)) && (actual <= (expected + tolerance));
+}
+
+template< typename Expected, typename Actual, typename Tolerance >
+void CheckClose(TestResults& results, Expected const& expected, Actual const& actual, Tolerance const& tolerance,
+ TestDetails const& details)
+{
+ if (!AreClose(expected, actual, tolerance))
+ {
+ UnitTest::MemoryOutStream stream;
+ stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual;
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+
+template< typename Expected, typename Actual >
+void CheckArrayEqual(TestResults& results, Expected const& expected, Actual const& actual,
+ int const count, TestDetails const& details)
+{
+ bool equal = true;
+ for (int i = 0; i < count; ++i)
+ equal &= (expected[i] == actual[i]);
+
+ if (!equal)
+ {
+ UnitTest::MemoryOutStream stream;
+
+ stream << "Expected [ ";
+
+ for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
+ stream << expected[expectedIndex] << " ";
+
+ stream << "] but was [ ";
+
+ for (int actualIndex = 0; actualIndex < count; ++actualIndex)
+ stream << actual[actualIndex] << " ";
+
+ stream << "]";
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+template< typename Expected, typename Actual, typename Tolerance >
+bool ArrayAreClose(Expected const& expected, Actual const& actual, int const count, Tolerance const& tolerance)
+{
+ bool equal = true;
+ for (int i = 0; i < count; ++i)
+ equal &= AreClose(expected[i], actual[i], tolerance);
+ return equal;
+}
+
+template< typename Expected, typename Actual, typename Tolerance >
+void CheckArrayClose(TestResults& results, Expected const& expected, Actual const& actual,
+ int const count, Tolerance const& tolerance, TestDetails const& details)
+{
+ bool equal = ArrayAreClose(expected, actual, count, tolerance);
+
+ if (!equal)
+ {
+ UnitTest::MemoryOutStream stream;
+
+ stream << "Expected [ ";
+ for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
+ stream << expected[expectedIndex] << " ";
+ stream << "] +/- " << tolerance << " but was [ ";
+
+ for (int actualIndex = 0; actualIndex < count; ++actualIndex)
+ stream << actual[actualIndex] << " ";
+ stream << "]";
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+template< typename Expected, typename Actual, typename Tolerance >
+void CheckArray2DClose(TestResults& results, Expected const& expected, Actual const& actual,
+ int const rows, int const columns, Tolerance const& tolerance, TestDetails const& details)
+{
+ bool equal = true;
+ for (int i = 0; i < rows; ++i)
+ equal &= ArrayAreClose(expected[i], actual[i], columns, tolerance);
+
+ if (!equal)
+ {
+ UnitTest::MemoryOutStream stream;
+
+ stream << "Expected [ ";
+
+ for (int expectedRow = 0; expectedRow < rows; ++expectedRow)
+ {
+ stream << "[ ";
+ for (int expectedColumn = 0; expectedColumn < columns; ++expectedColumn)
+ stream << expected[expectedRow][expectedColumn] << " ";
+ stream << "] ";
+ }
+
+ stream << "] +/- " << tolerance << " but was [ ";
+
+ for (int actualRow = 0; actualRow < rows; ++actualRow)
+ {
+ stream << "[ ";
+ for (int actualColumn = 0; actualColumn < columns; ++actualColumn)
+ stream << actual[actualRow][actualColumn] << " ";
+ stream << "] ";
+ }
+
+ stream << "]";
+
+ results.OnTestFailure(details, stream.GetText());
+ }
+}
+
+}
+
+#endif
diff --git a/src/CompositeTestReporter.cpp b/src/CompositeTestReporter.cpp
index 2a3d22e..2dd2ffc 100644
--- a/src/CompositeTestReporter.cpp
+++ b/src/CompositeTestReporter.cpp
@@ -1,67 +1,67 @@
-#include "CompositeTestReporter.h"
-#include
-
-namespace UnitTest {
-
-CompositeTestReporter::CompositeTestReporter()
- : m_reporterCount(0)
-{
-}
-
-int CompositeTestReporter::GetReporterCount() const
-{
- return m_reporterCount;
-}
-
-bool CompositeTestReporter::AddReporter(TestReporter* reporter)
-{
- if (m_reporterCount == kMaxReporters)
- return false;
-
- m_reporters[m_reporterCount++] = reporter;
- return true;
-}
-
-bool CompositeTestReporter::RemoveReporter(TestReporter* reporter)
-{
- for (int index = 0; index < m_reporterCount; ++index)
- {
- if (m_reporters[index] == reporter)
- {
- m_reporters[index] = m_reporters[m_reporterCount - 1];
- --m_reporterCount;
- return true;
- }
- }
-
- return false;
-}
-
-void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure)
-{
- for (int index = 0; index < m_reporterCount; ++index)
- m_reporters[index]->ReportFailure(details, failure);
-}
-
-void CompositeTestReporter::ReportTestStart(TestDetails const& test)
-{
- for (int index = 0; index < m_reporterCount; ++index)
- m_reporters[index]->ReportTestStart(test);
-}
-
-void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed)
-{
- for (int index = 0; index < m_reporterCount; ++index)
- m_reporters[index]->ReportTestFinish(test, secondsElapsed);
-}
-
-void CompositeTestReporter::ReportSummary(int totalTestCount,
- int failedTestCount,
- int failureCount,
- float secondsElapsed)
-{
- for (int index = 0; index < m_reporterCount; ++index)
- m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed);
-}
-
-}
+#include "CompositeTestReporter.h"
+#include
+
+namespace UnitTest {
+
+CompositeTestReporter::CompositeTestReporter()
+ : m_reporterCount(0)
+{
+}
+
+int CompositeTestReporter::GetReporterCount() const
+{
+ return m_reporterCount;
+}
+
+bool CompositeTestReporter::AddReporter(TestReporter* reporter)
+{
+ if (m_reporterCount == kMaxReporters)
+ return false;
+
+ m_reporters[m_reporterCount++] = reporter;
+ return true;
+}
+
+bool CompositeTestReporter::RemoveReporter(TestReporter* reporter)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ {
+ if (m_reporters[index] == reporter)
+ {
+ m_reporters[index] = m_reporters[m_reporterCount - 1];
+ --m_reporterCount;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportFailure(details, failure);
+}
+
+void CompositeTestReporter::ReportTestStart(TestDetails const& test)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportTestStart(test);
+}
+
+void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportTestFinish(test, secondsElapsed);
+}
+
+void CompositeTestReporter::ReportSummary(int totalTestCount,
+ int failedTestCount,
+ int failureCount,
+ float secondsElapsed)
+{
+ for (int index = 0; index < m_reporterCount; ++index)
+ m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed);
+}
+
+}
diff --git a/src/CompositeTestReporter.h b/src/CompositeTestReporter.h
index a4806f4..a9a0d29 100644
--- a/src/CompositeTestReporter.h
+++ b/src/CompositeTestReporter.h
@@ -1,34 +1,34 @@
-#ifndef UNITTEST_COMPOSITETESTREPORTER_H
-#define UNITTEST_COMPOSITETESTREPORTER_H
-
-#include "TestReporter.h"
-
-namespace UnitTest {
-
-class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter
-{
-public:
- CompositeTestReporter();
-
- int GetReporterCount() const;
- bool AddReporter(TestReporter* reporter);
- bool RemoveReporter(TestReporter* reporter);
-
- virtual void ReportTestStart(TestDetails const& test);
- virtual void ReportFailure(TestDetails const& test, char const* failure);
- virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
-
-private:
- enum { kMaxReporters = 16 };
- TestReporter* m_reporters[kMaxReporters];
- int m_reporterCount;
-
- // revoked
- CompositeTestReporter(const CompositeTestReporter&);
- CompositeTestReporter& operator =(const CompositeTestReporter&);
-};
-
-}
-
-#endif
+#ifndef UNITTEST_COMPOSITETESTREPORTER_H
+#define UNITTEST_COMPOSITETESTREPORTER_H
+
+#include "TestReporter.h"
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter
+{
+public:
+ CompositeTestReporter();
+
+ int GetReporterCount() const;
+ bool AddReporter(TestReporter* reporter);
+ bool RemoveReporter(TestReporter* reporter);
+
+ virtual void ReportTestStart(TestDetails const& test);
+ virtual void ReportFailure(TestDetails const& test, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+
+private:
+ enum { kMaxReporters = 16 };
+ TestReporter* m_reporters[kMaxReporters];
+ int m_reporterCount;
+
+ // revoked
+ CompositeTestReporter(const CompositeTestReporter&);
+ CompositeTestReporter& operator =(const CompositeTestReporter&);
+};
+
+}
+
+#endif
diff --git a/src/CurrentTest.cpp b/src/CurrentTest.cpp
index 19eb9bf..dd9d245 100644
--- a/src/CurrentTest.cpp
+++ b/src/CurrentTest.cpp
@@ -1,18 +1,18 @@
-#include "CurrentTest.h"
-#include
-
-namespace UnitTest {
-
-UNITTEST_LINKAGE TestResults*& CurrentTest::Results()
-{
- static TestResults* testResults = NULL;
- return testResults;
-}
-
-UNITTEST_LINKAGE const TestDetails*& CurrentTest::Details()
-{
- static const TestDetails* testDetails = NULL;
- return testDetails;
-}
-
-}
+#include "CurrentTest.h"
+#include
+
+namespace UnitTest {
+
+UNITTEST_LINKAGE TestResults*& CurrentTest::Results()
+{
+ static TestResults* testResults = NULL;
+ return testResults;
+}
+
+UNITTEST_LINKAGE const TestDetails*& CurrentTest::Details()
+{
+ static const TestDetails* testDetails = NULL;
+ return testDetails;
+}
+
+}
diff --git a/src/CurrentTest.h b/src/CurrentTest.h
index 0d62fdc..642b9dc 100644
--- a/src/CurrentTest.h
+++ b/src/CurrentTest.h
@@ -1,19 +1,19 @@
-#ifndef UNITTEST_CURRENTTESTRESULTS_H
-#define UNITTEST_CURRENTTESTRESULTS_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class TestResults;
-class TestDetails;
-
-namespace CurrentTest
-{
- UNITTEST_LINKAGE TestResults*& Results();
- UNITTEST_LINKAGE const TestDetails*& Details();
-}
-
-}
-
-#endif
+#ifndef UNITTEST_CURRENTTESTRESULTS_H
+#define UNITTEST_CURRENTTESTRESULTS_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class TestResults;
+class TestDetails;
+
+namespace CurrentTest
+{
+ UNITTEST_LINKAGE TestResults*& Results();
+ UNITTEST_LINKAGE const TestDetails*& Details();
+}
+
+}
+
+#endif
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index 83dee1a..4b731f4 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,33 +1,33 @@
-#include "../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "DeferredTestReporter.h"
-#include "TestDetails.h"
-
-using namespace UnitTest;
-
-void DeferredTestReporter::ReportTestStart(TestDetails const& details)
-{
- m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
-}
-
-void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
-{
- DeferredTestResult& r = m_results.back();
- r.failed = true;
- r.failures.push_back(DeferredTestFailure(details.lineNumber, failure));
- r.failureFile = details.filename;
-}
-
-void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
-{
- DeferredTestResult& r = m_results.back();
- r.timeElapsed = secondsElapsed;
-}
-
-DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
-{
- return m_results;
-}
-
-#endif
+#include "../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "DeferredTestReporter.h"
+#include "TestDetails.h"
+
+using namespace UnitTest;
+
+void DeferredTestReporter::ReportTestStart(TestDetails const& details)
+{
+ m_results.push_back(DeferredTestResult(details.suiteName, details.testName));
+}
+
+void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure)
+{
+ DeferredTestResult& r = m_results.back();
+ r.failed = true;
+ r.failures.push_back(DeferredTestFailure(details.lineNumber, failure));
+ r.failureFile = details.filename;
+}
+
+void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed)
+{
+ DeferredTestResult& r = m_results.back();
+ r.timeElapsed = secondsElapsed;
+}
+
+DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults()
+{
+ return m_results;
+}
+
+#endif
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index d4947f4..ad69b26 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -1,35 +1,35 @@
-#ifndef UNITTEST_DEFERREDTESTREPORTER_H
-#define UNITTEST_DEFERREDTESTREPORTER_H
-
-#include "../config.h"
-
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "TestReporter.h"
-#include "DeferredTestResult.h"
-
-#include
-
-UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestResult);
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE DeferredTestReporter : public TestReporter
-{
-public:
- virtual void ReportTestStart(TestDetails const& details);
- virtual void ReportFailure(TestDetails const& details, char const* failure);
- virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
-
- typedef std::vector< DeferredTestResult > DeferredTestResultList;
- DeferredTestResultList& GetResults();
-
-private:
- DeferredTestResultList m_results;
-};
-
-}
-
-#endif
-#endif
+#ifndef UNITTEST_DEFERREDTESTREPORTER_H
+#define UNITTEST_DEFERREDTESTREPORTER_H
+
+#include "../config.h"
+
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "TestReporter.h"
+#include "DeferredTestResult.h"
+
+#include
+
+UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestResult);
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE DeferredTestReporter : public TestReporter
+{
+public:
+ virtual void ReportTestStart(TestDetails const& details);
+ virtual void ReportFailure(TestDetails const& details, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed);
+
+ typedef std::vector< DeferredTestResult > DeferredTestResultList;
+ DeferredTestResultList& GetResults();
+
+private:
+ DeferredTestResultList m_results;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index cbf0a8a..ae54d38 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,46 +1,46 @@
-#include "../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "DeferredTestResult.h"
-#include
-
-namespace UnitTest
-{
-
-DeferredTestFailure::DeferredTestFailure()
- : lineNumber(-1)
-{
- failureStr[0] = '\0';
-}
-
-DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_)
- : lineNumber(lineNumber_)
-{
- std::strcpy(failureStr, failureStr_);
-}
-
-DeferredTestResult::DeferredTestResult()
- : suiteName("")
- , testName("")
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
- : suiteName(suite)
- , testName(test)
- , failureFile("")
- , timeElapsed(0.0f)
- , failed(false)
-{
-}
-
-DeferredTestResult::~DeferredTestResult()
-{
-}
-
-}
-
-#endif
+#include "../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "DeferredTestResult.h"
+#include
+
+namespace UnitTest
+{
+
+DeferredTestFailure::DeferredTestFailure()
+ : lineNumber(-1)
+{
+ failureStr[0] = '\0';
+}
+
+DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_)
+ : lineNumber(lineNumber_)
+{
+ std::strcpy(failureStr, failureStr_);
+}
+
+DeferredTestResult::DeferredTestResult()
+ : suiteName("")
+ , testName("")
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+DeferredTestResult::DeferredTestResult(char const* suite, char const* test)
+ : suiteName(suite)
+ , testName(test)
+ , failureFile("")
+ , timeElapsed(0.0f)
+ , failed(false)
+{
+}
+
+DeferredTestResult::~DeferredTestResult()
+{
+}
+
+}
+
+#endif
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index e580d0c..6f56621 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,52 +1,52 @@
-#ifndef UNITTEST_DEFERREDTESTRESULT_H
-#define UNITTEST_DEFERREDTESTRESULT_H
-
-#include "../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "HelperMacros.h"
-#include
-#include
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE DeferredTestFailure
-{
-public:
- DeferredTestFailure();
- DeferredTestFailure(int lineNumber_, const char* failureStr_);
-
- int lineNumber;
- char failureStr[1024];
-};
-
-}
-
-UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestFailure);
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE DeferredTestResult
-{
-public:
- DeferredTestResult();
- DeferredTestResult(char const* suite, char const* test);
- ~DeferredTestResult();
-
- std::string suiteName;
- std::string testName;
- std::string failureFile;
-
- typedef std::vector< DeferredTestFailure > FailureVec;
- FailureVec failures;
-
- float timeElapsed;
- bool failed;
-};
-
-}
-
-#endif
-#endif
+#ifndef UNITTEST_DEFERREDTESTRESULT_H
+#define UNITTEST_DEFERREDTESTRESULT_H
+
+#include "../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "HelperMacros.h"
+#include
+#include
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE DeferredTestFailure
+{
+public:
+ DeferredTestFailure();
+ DeferredTestFailure(int lineNumber_, const char* failureStr_);
+
+ int lineNumber;
+ char failureStr[1024];
+};
+
+}
+
+UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestFailure);
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE DeferredTestResult
+{
+public:
+ DeferredTestResult();
+ DeferredTestResult(char const* suite, char const* test);
+ ~DeferredTestResult();
+
+ std::string suiteName;
+ std::string testName;
+ std::string failureFile;
+
+ typedef std::vector< DeferredTestFailure > FailureVec;
+ FailureVec failures;
+
+ float timeElapsed;
+ bool failed;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h
index 4ddf5ec..508150f 100644
--- a/src/ExceptionMacros.h
+++ b/src/ExceptionMacros.h
@@ -1,18 +1,18 @@
-#ifndef UNITTEST_EXCEPTIONMACROS_H
-#define UNITTEST_EXCEPTIONMACROS_H
-
-#include "../config.h"
-
-#ifndef UNITTEST_NO_EXCEPTIONS
- #define UT_TRY(x) try x
- #define UT_THROW(x) throw x
- #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody
- #define UT_CATCH_ALL(CatchBody) catch(...) CatchBody
-#else
- #define UT_TRY(x) x
- #define UT_THROW(x)
- #define UT_CATCH(ExceptionType, ExceptionName, CatchBody)
- #define UT_CATCH_ALL(CatchBody)
-#endif
-
-#endif
+#ifndef UNITTEST_EXCEPTIONMACROS_H
+#define UNITTEST_EXCEPTIONMACROS_H
+
+#include "../config.h"
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+ #define UT_TRY(x) try x
+ #define UT_THROW(x) throw x
+ #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody
+ #define UT_CATCH_ALL(CatchBody) catch(...) CatchBody
+#else
+ #define UT_TRY(x) x
+ #define UT_THROW(x)
+ #define UT_CATCH(ExceptionType, ExceptionName, CatchBody)
+ #define UT_CATCH_ALL(CatchBody)
+#endif
+
+#endif
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index 2f47013..d7abc90 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -1,59 +1,59 @@
-#ifndef UNITTEST_EXECUTE_TEST_H
-#define UNITTEST_EXECUTE_TEST_H
-
-#include "../config.h"
-#include "ExceptionMacros.h"
-#include "TestDetails.h"
-#include "TestResults.h"
-#include "MemoryOutStream.h"
-#include "AssertException.h"
-#include "CurrentTest.h"
-
-#ifdef UNITTEST_NO_EXCEPTIONS
- #include "ReportAssertImpl.h"
-#endif
-
-#ifdef UNITTEST_POSIX
- #include "Posix/SignalTranslator.h"
-#endif
-
-namespace UnitTest {
-
-template< typename T >
-void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
-{
- if (isMockTest == false)
- CurrentTest::Details() = &details;
-
-#ifdef UNITTEST_NO_EXCEPTIONS
- if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0)
- {
-#endif
-#ifndef UNITTEST_POSIX
- UT_TRY({ testObject.RunImpl(); })
-#else
- UT_TRY
- ({
- UNITTEST_THROW_SIGNALS_POSIX_ONLY
- testObject.RunImpl();
- })
-#endif
- UT_CATCH(AssertException, e, { (void)e; })
- UT_CATCH(std::exception, e,
- {
- MemoryOutStream stream;
- stream << "Unhandled exception: " << e.what();
- CurrentTest::Results()->OnTestFailure(details, stream.GetText());
- })
- UT_CATCH_ALL
- ({
- CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
- })
-#ifdef UNITTEST_NO_EXCEPTIONS
- }
-#endif
-}
-
-}
-
-#endif
+#ifndef UNITTEST_EXECUTE_TEST_H
+#define UNITTEST_EXECUTE_TEST_H
+
+#include "../config.h"
+#include "ExceptionMacros.h"
+#include "TestDetails.h"
+#include "TestResults.h"
+#include "MemoryOutStream.h"
+#include "AssertException.h"
+#include "CurrentTest.h"
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+ #include "ReportAssertImpl.h"
+#endif
+
+#ifdef UNITTEST_POSIX
+ #include "Posix/SignalTranslator.h"
+#endif
+
+namespace UnitTest {
+
+template< typename T >
+void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest)
+{
+ if (isMockTest == false)
+ CurrentTest::Details() = &details;
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+ if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0)
+ {
+#endif
+#ifndef UNITTEST_POSIX
+ UT_TRY({ testObject.RunImpl(); })
+#else
+ UT_TRY
+ ({
+ UNITTEST_THROW_SIGNALS_POSIX_ONLY
+ testObject.RunImpl();
+ })
+#endif
+ UT_CATCH(AssertException, e, { (void)e; })
+ UT_CATCH(std::exception, e,
+ {
+ MemoryOutStream stream;
+ stream << "Unhandled exception: " << e.what();
+ CurrentTest::Results()->OnTestFailure(details, stream.GetText());
+ })
+ UT_CATCH_ALL
+ ({
+ CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed");
+ })
+#ifdef UNITTEST_NO_EXCEPTIONS
+ }
+#endif
+}
+
+}
+
+#endif
diff --git a/src/HelperMacros.h b/src/HelperMacros.h
index 68792da..67e57ed 100644
--- a/src/HelperMacros.h
+++ b/src/HelperMacros.h
@@ -1,52 +1,52 @@
-#ifndef UNITTEST_HELPERMACROS_H
-#define UNITTEST_HELPERMACROS_H
-
-#include "../config.h"
-
-#define UNITTEST_MULTILINE_MACRO_BEGIN do {
-
-#ifdef UNITTEST_WIN32
- #define UNITTEST_MULTILINE_MACRO_END \
- } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop))
-#else
- #define UNITTEST_MULTILINE_MACRO_END } while(0)
-#endif
-
-
-#ifdef UNITTEST_WIN32_DLL
- #define UNITTEST_IMPORT __declspec(dllimport)
- #define UNITTEST_EXPORT __declspec(dllexport)
-
- #ifdef UNITTEST_DLL_EXPORT
- #define UNITTEST_LINKAGE UNITTEST_EXPORT
- #define UNITTEST_IMPEXP_TEMPLATE
- #else
- #define UNITTEST_LINKAGE UNITTEST_IMPORT
- #define UNITTEST_IMPEXP_TEMPLATE extern
- #endif
-
- #define UNITTEST_STDVECTOR_LINKAGE(T) \
- __pragma(warning(push)) \
- __pragma(warning(disable:4231)) \
- UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \
- UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \
- __pragma(warning(pop))
-#else
- #define UNITTEST_IMPORT
- #define UNITTEST_EXPORT
- #define UNITTEST_LINKAGE
- #define UNITTEST_IMPEXP_TEMPLATE
- #define UNITTEST_STDVECTOR_LINKAGE(T)
-#endif
-
-#ifdef UNITTEST_WIN32
- #define UNITTEST_JMPBUF jmp_buf
- #define UNITTEST_SETJMP setjmp
- #define UNITTEST_LONGJMP longjmp
-#elif defined UNITTEST_POSIX
- #define UNITTEST_JMPBUF std::jmp_buf
- #define UNITTEST_SETJMP setjmp
- #define UNITTEST_LONGJMP std::longjmp
-#endif
-
-#endif
+#ifndef UNITTEST_HELPERMACROS_H
+#define UNITTEST_HELPERMACROS_H
+
+#include "../config.h"
+
+#define UNITTEST_MULTILINE_MACRO_BEGIN do {
+
+#ifdef UNITTEST_WIN32
+ #define UNITTEST_MULTILINE_MACRO_END \
+ } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop))
+#else
+ #define UNITTEST_MULTILINE_MACRO_END } while(0)
+#endif
+
+
+#ifdef UNITTEST_WIN32_DLL
+ #define UNITTEST_IMPORT __declspec(dllimport)
+ #define UNITTEST_EXPORT __declspec(dllexport)
+
+ #ifdef UNITTEST_DLL_EXPORT
+ #define UNITTEST_LINKAGE UNITTEST_EXPORT
+ #define UNITTEST_IMPEXP_TEMPLATE
+ #else
+ #define UNITTEST_LINKAGE UNITTEST_IMPORT
+ #define UNITTEST_IMPEXP_TEMPLATE extern
+ #endif
+
+ #define UNITTEST_STDVECTOR_LINKAGE(T) \
+ __pragma(warning(push)) \
+ __pragma(warning(disable:4231)) \
+ UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \
+ UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \
+ __pragma(warning(pop))
+#else
+ #define UNITTEST_IMPORT
+ #define UNITTEST_EXPORT
+ #define UNITTEST_LINKAGE
+ #define UNITTEST_IMPEXP_TEMPLATE
+ #define UNITTEST_STDVECTOR_LINKAGE(T)
+#endif
+
+#ifdef UNITTEST_WIN32
+ #define UNITTEST_JMPBUF jmp_buf
+ #define UNITTEST_SETJMP setjmp
+ #define UNITTEST_LONGJMP longjmp
+#elif defined UNITTEST_POSIX
+ #define UNITTEST_JMPBUF std::jmp_buf
+ #define UNITTEST_SETJMP setjmp
+ #define UNITTEST_LONGJMP std::longjmp
+#endif
+
+#endif
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index 1e1e97d..3bacb45 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -1,178 +1,178 @@
-#include "MemoryOutStream.h"
-
-#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
-
-namespace UnitTest {
-
-char const* MemoryOutStream::GetText() const
-{
- m_text = this->str();
- return m_text.c_str();
-}
-
-void MemoryOutStream::Clear()
-{
- this->str(std::string());
- m_text = this->str();
-}
-
-}
-
-#else
-
-#include
-#include
-
-namespace UnitTest {
-
-namespace {
-
-template
-void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const& value)
-{
- using namespace std;
-
- char txt[32];
- sprintf(txt, format, value);
- stream << txt;
-}
-
-int RoundUpToMultipleOfPow2Number (int n, int pow2Number)
-{
- return (n + (pow2Number - 1)) & ~(pow2Number - 1);
-}
-
-}
-
-
-MemoryOutStream::MemoryOutStream(int const size)
- : m_capacity (0)
- , m_buffer (0)
-
-{
- GrowBuffer(size);
-}
-
-MemoryOutStream::~MemoryOutStream()
-{
- delete [] m_buffer;
-}
-
-void MemoryOutStream::Clear()
-{
- m_buffer[0] = '\0';
-}
-
-char const* MemoryOutStream::GetText() const
-{
- return m_buffer;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(char const* txt)
-{
- using namespace std;
-
- int const bytesLeft = m_capacity - (int)strlen(m_buffer);
- int const bytesRequired = (int)strlen(txt) + 1;
-
- if (bytesRequired > bytesLeft)
- {
- int const requiredCapacity = bytesRequired + m_capacity - bytesLeft;
- GrowBuffer(requiredCapacity);
- }
-
- strcat(m_buffer, txt);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(int const n)
-{
- FormatToStream(*this, "%i", n);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(long const n)
-{
- FormatToStream(*this, "%li", n);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(unsigned long const n)
-{
- FormatToStream(*this, "%lu", n);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(long long const n)
-{
-#ifdef UNITTEST_WIN32
- FormatToStream(*this, "%I64d", n);
-#else
- FormatToStream(*this, "%lld", n);
-#endif
-
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n)
-{
-#ifdef UNITTEST_WIN32
- FormatToStream(*this, "%I64u", n);
-#else
- FormatToStream(*this, "%llu", n);
-#endif
-
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(float const f)
-{
- FormatToStream(*this, "%ff", f);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(void const* p)
-{
- FormatToStream(*this, "%p", p);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s)
-{
- FormatToStream(*this, "%u", s);
- return *this;
-}
-
-MemoryOutStream& MemoryOutStream::operator <<(double const d)
-{
- FormatToStream(*this, "%f", d);
- return *this;
-}
-
-int MemoryOutStream::GetCapacity() const
-{
- return m_capacity;
-}
-
-
-void MemoryOutStream::GrowBuffer(int const desiredCapacity)
-{
- int const newCapacity = RoundUpToMultipleOfPow2Number(desiredCapacity, GROW_CHUNK_SIZE);
-
- using namespace std;
-
- char* buffer = new char[newCapacity];
- if (m_buffer)
- strcpy(buffer, m_buffer);
- else
- strcpy(buffer, "");
-
- delete [] m_buffer;
- m_buffer = buffer;
- m_capacity = newCapacity;
-}
-
-}
-
-
-#endif
+#include "MemoryOutStream.h"
+
+#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+namespace UnitTest {
+
+char const* MemoryOutStream::GetText() const
+{
+ m_text = this->str();
+ return m_text.c_str();
+}
+
+void MemoryOutStream::Clear()
+{
+ this->str(std::string());
+ m_text = this->str();
+}
+
+}
+
+#else
+
+#include
+#include
+
+namespace UnitTest {
+
+namespace {
+
+template
+void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const& value)
+{
+ using namespace std;
+
+ char txt[32];
+ sprintf(txt, format, value);
+ stream << txt;
+}
+
+int RoundUpToMultipleOfPow2Number (int n, int pow2Number)
+{
+ return (n + (pow2Number - 1)) & ~(pow2Number - 1);
+}
+
+}
+
+
+MemoryOutStream::MemoryOutStream(int const size)
+ : m_capacity (0)
+ , m_buffer (0)
+
+{
+ GrowBuffer(size);
+}
+
+MemoryOutStream::~MemoryOutStream()
+{
+ delete [] m_buffer;
+}
+
+void MemoryOutStream::Clear()
+{
+ m_buffer[0] = '\0';
+}
+
+char const* MemoryOutStream::GetText() const
+{
+ return m_buffer;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(char const* txt)
+{
+ using namespace std;
+
+ int const bytesLeft = m_capacity - (int)strlen(m_buffer);
+ int const bytesRequired = (int)strlen(txt) + 1;
+
+ if (bytesRequired > bytesLeft)
+ {
+ int const requiredCapacity = bytesRequired + m_capacity - bytesLeft;
+ GrowBuffer(requiredCapacity);
+ }
+
+ strcat(m_buffer, txt);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(int const n)
+{
+ FormatToStream(*this, "%i", n);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(long const n)
+{
+ FormatToStream(*this, "%li", n);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(unsigned long const n)
+{
+ FormatToStream(*this, "%lu", n);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(long long const n)
+{
+#ifdef UNITTEST_WIN32
+ FormatToStream(*this, "%I64d", n);
+#else
+ FormatToStream(*this, "%lld", n);
+#endif
+
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n)
+{
+#ifdef UNITTEST_WIN32
+ FormatToStream(*this, "%I64u", n);
+#else
+ FormatToStream(*this, "%llu", n);
+#endif
+
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(float const f)
+{
+ FormatToStream(*this, "%ff", f);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(void const* p)
+{
+ FormatToStream(*this, "%p", p);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s)
+{
+ FormatToStream(*this, "%u", s);
+ return *this;
+}
+
+MemoryOutStream& MemoryOutStream::operator <<(double const d)
+{
+ FormatToStream(*this, "%f", d);
+ return *this;
+}
+
+int MemoryOutStream::GetCapacity() const
+{
+ return m_capacity;
+}
+
+
+void MemoryOutStream::GrowBuffer(int const desiredCapacity)
+{
+ int const newCapacity = RoundUpToMultipleOfPow2Number(desiredCapacity, GROW_CHUNK_SIZE);
+
+ using namespace std;
+
+ char* buffer = new char[newCapacity];
+ if (m_buffer)
+ strcpy(buffer, m_buffer);
+ else
+ strcpy(buffer, "");
+
+ delete [] m_buffer;
+ m_buffer = buffer;
+ m_capacity = newCapacity;
+}
+
+}
+
+
+#endif
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index 380826a..ef2c86f 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -1,73 +1,73 @@
-#ifndef UNITTEST_MEMORYOUTSTREAM_H
-#define UNITTEST_MEMORYOUTSTREAM_H
-
-#include "../config.h"
-#include "HelperMacros.h"
-
-#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
-
-#include
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream
-{
-public:
- MemoryOutStream() {}
- ~MemoryOutStream() {}
- void Clear();
- char const* GetText() const;
-
-private:
- MemoryOutStream(MemoryOutStream const&);
- void operator =(MemoryOutStream const&);
-
- mutable std::string m_text;
-};
-
-}
-
-#else
-
-#include
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE MemoryOutStream
-{
-public:
- explicit MemoryOutStream(int const size = 256);
- ~MemoryOutStream();
-
- void Clear();
- char const* GetText() const;
-
- MemoryOutStream& operator <<(char const* txt);
- MemoryOutStream& operator <<(int n);
- MemoryOutStream& operator <<(long n);
- MemoryOutStream& operator <<(long long n);
- MemoryOutStream& operator <<(unsigned long n);
- MemoryOutStream& operator <<(unsigned long long n);
- MemoryOutStream& operator <<(float f);
- MemoryOutStream& operator <<(double d);
- MemoryOutStream& operator <<(void const* p);
- MemoryOutStream& operator <<(unsigned int s);
-
- enum { GROW_CHUNK_SIZE = 32 };
- int GetCapacity() const;
-
-private:
- void operator= (MemoryOutStream const&);
- void GrowBuffer(int capacity);
-
- int m_capacity;
- char* m_buffer;
-};
-
-}
-
-#endif
-
-#endif
+#ifndef UNITTEST_MEMORYOUTSTREAM_H
+#define UNITTEST_MEMORYOUTSTREAM_H
+
+#include "../config.h"
+#include "HelperMacros.h"
+
+#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+#include
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream
+{
+public:
+ MemoryOutStream() {}
+ ~MemoryOutStream() {}
+ void Clear();
+ char const* GetText() const;
+
+private:
+ MemoryOutStream(MemoryOutStream const&);
+ void operator =(MemoryOutStream const&);
+
+ mutable std::string m_text;
+};
+
+}
+
+#else
+
+#include
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE MemoryOutStream
+{
+public:
+ explicit MemoryOutStream(int const size = 256);
+ ~MemoryOutStream();
+
+ void Clear();
+ char const* GetText() const;
+
+ MemoryOutStream& operator <<(char const* txt);
+ MemoryOutStream& operator <<(int n);
+ MemoryOutStream& operator <<(long n);
+ MemoryOutStream& operator <<(long long n);
+ MemoryOutStream& operator <<(unsigned long n);
+ MemoryOutStream& operator <<(unsigned long long n);
+ MemoryOutStream& operator <<(float f);
+ MemoryOutStream& operator <<(double d);
+ MemoryOutStream& operator <<(void const* p);
+ MemoryOutStream& operator <<(unsigned int s);
+
+ enum { GROW_CHUNK_SIZE = 32 };
+ int GetCapacity() const;
+
+private:
+ void operator= (MemoryOutStream const&);
+ void GrowBuffer(int capacity);
+
+ int m_capacity;
+ char* m_buffer;
+};
+
+}
+
+#endif
+
+#endif
diff --git a/src/Posix/SignalTranslator.cpp b/src/Posix/SignalTranslator.cpp
index 014a771..3689c8c 100644
--- a/src/Posix/SignalTranslator.cpp
+++ b/src/Posix/SignalTranslator.cpp
@@ -1,46 +1,46 @@
-#include "SignalTranslator.h"
-
-namespace UnitTest {
-
-sigjmp_buf* SignalTranslator::s_jumpTarget = 0;
-
-namespace {
-
-void SignalHandler(int sig)
-{
- siglongjmp(*SignalTranslator::s_jumpTarget, sig );
-}
-
-}
-
-
-SignalTranslator::SignalTranslator()
-{
- m_oldJumpTarget = s_jumpTarget;
- s_jumpTarget = &m_currentJumpTarget;
-
- struct sigaction action;
- action.sa_flags = 0;
- action.sa_handler = SignalHandler;
- sigemptyset( &action.sa_mask );
-
- sigaction( SIGSEGV, &action, &m_old_SIGSEGV_action );
- sigaction( SIGFPE , &action, &m_old_SIGFPE_action );
- sigaction( SIGTRAP, &action, &m_old_SIGTRAP_action );
- sigaction( SIGBUS , &action, &m_old_SIGBUS_action );
- sigaction( SIGILL , &action, &m_old_SIGBUS_action );
-}
-
-SignalTranslator::~SignalTranslator()
-{
- sigaction( SIGILL , &m_old_SIGBUS_action , 0 );
- sigaction( SIGBUS , &m_old_SIGBUS_action , 0 );
- sigaction( SIGTRAP, &m_old_SIGTRAP_action, 0 );
- sigaction( SIGFPE , &m_old_SIGFPE_action , 0 );
- sigaction( SIGSEGV, &m_old_SIGSEGV_action, 0 );
-
- s_jumpTarget = m_oldJumpTarget;
-}
-
-
-}
+#include "SignalTranslator.h"
+
+namespace UnitTest {
+
+sigjmp_buf* SignalTranslator::s_jumpTarget = 0;
+
+namespace {
+
+void SignalHandler(int sig)
+{
+ siglongjmp(*SignalTranslator::s_jumpTarget, sig );
+}
+
+}
+
+
+SignalTranslator::SignalTranslator()
+{
+ m_oldJumpTarget = s_jumpTarget;
+ s_jumpTarget = &m_currentJumpTarget;
+
+ struct sigaction action;
+ action.sa_flags = 0;
+ action.sa_handler = SignalHandler;
+ sigemptyset( &action.sa_mask );
+
+ sigaction( SIGSEGV, &action, &m_old_SIGSEGV_action );
+ sigaction( SIGFPE , &action, &m_old_SIGFPE_action );
+ sigaction( SIGTRAP, &action, &m_old_SIGTRAP_action );
+ sigaction( SIGBUS , &action, &m_old_SIGBUS_action );
+ sigaction( SIGILL , &action, &m_old_SIGBUS_action );
+}
+
+SignalTranslator::~SignalTranslator()
+{
+ sigaction( SIGILL , &m_old_SIGBUS_action , 0 );
+ sigaction( SIGBUS , &m_old_SIGBUS_action , 0 );
+ sigaction( SIGTRAP, &m_old_SIGTRAP_action, 0 );
+ sigaction( SIGFPE , &m_old_SIGFPE_action , 0 );
+ sigaction( SIGSEGV, &m_old_SIGSEGV_action, 0 );
+
+ s_jumpTarget = m_oldJumpTarget;
+}
+
+
+}
diff --git a/src/Posix/SignalTranslator.h b/src/Posix/SignalTranslator.h
index 2152b9c..50da5f9 100644
--- a/src/Posix/SignalTranslator.h
+++ b/src/Posix/SignalTranslator.h
@@ -1,42 +1,42 @@
-#ifndef UNITTEST_SIGNALTRANSLATOR_H
-#define UNITTEST_SIGNALTRANSLATOR_H
-
-#include
-#include
-
-namespace UnitTest {
-
-class SignalTranslator
-{
-public:
- SignalTranslator();
- ~SignalTranslator();
-
- static sigjmp_buf* s_jumpTarget;
-
-private:
- sigjmp_buf m_currentJumpTarget;
- sigjmp_buf* m_oldJumpTarget;
-
- struct sigaction m_old_SIGFPE_action;
- struct sigaction m_old_SIGTRAP_action;
- struct sigaction m_old_SIGSEGV_action;
- struct sigaction m_old_SIGBUS_action;
- struct sigaction m_old_SIGABRT_action;
- struct sigaction m_old_SIGALRM_action;
-};
-
-#if !defined (__GNUC__)
- #define UNITTEST_EXTENSION
-#else
- #define UNITTEST_EXTENSION __extension__
-#endif
-
-#define UNITTEST_THROW_SIGNALS_POSIX_ONLY \
- UnitTest::SignalTranslator sig; \
- if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \
- throw ("Unhandled system exception");
-
-}
-
-#endif
+#ifndef UNITTEST_SIGNALTRANSLATOR_H
+#define UNITTEST_SIGNALTRANSLATOR_H
+
+#include
+#include
+
+namespace UnitTest {
+
+class SignalTranslator
+{
+public:
+ SignalTranslator();
+ ~SignalTranslator();
+
+ static sigjmp_buf* s_jumpTarget;
+
+private:
+ sigjmp_buf m_currentJumpTarget;
+ sigjmp_buf* m_oldJumpTarget;
+
+ struct sigaction m_old_SIGFPE_action;
+ struct sigaction m_old_SIGTRAP_action;
+ struct sigaction m_old_SIGSEGV_action;
+ struct sigaction m_old_SIGBUS_action;
+ struct sigaction m_old_SIGABRT_action;
+ struct sigaction m_old_SIGALRM_action;
+};
+
+#if !defined (__GNUC__)
+ #define UNITTEST_EXTENSION
+#else
+ #define UNITTEST_EXTENSION __extension__
+#endif
+
+#define UNITTEST_THROW_SIGNALS_POSIX_ONLY \
+ UnitTest::SignalTranslator sig; \
+ if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \
+ throw ("Unhandled system exception");
+
+}
+
+#endif
diff --git a/src/Posix/TimeHelpers.cpp b/src/Posix/TimeHelpers.cpp
index 35e8136..65c6393 100644
--- a/src/Posix/TimeHelpers.cpp
+++ b/src/Posix/TimeHelpers.cpp
@@ -1,33 +1,33 @@
-#include "TimeHelpers.h"
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
-{
- m_startTime.tv_sec = 0;
- m_startTime.tv_usec = 0;
-}
-
-void Timer::Start()
-{
- gettimeofday(&m_startTime, 0);
-}
-
-double Timer::GetTimeInMs() const
-{
- struct timeval currentTime;
- gettimeofday(¤tTime, 0);
-
- double const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
- double const dus = currentTime.tv_usec - m_startTime.tv_usec;
-
- return (dsecs * 1000.0) + (dus / 1000.0);
-}
-
-void TimeHelpers::SleepMs(int ms)
-{
- usleep(ms * 1000);
-}
-
-}
+#include "TimeHelpers.h"
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+{
+ m_startTime.tv_sec = 0;
+ m_startTime.tv_usec = 0;
+}
+
+void Timer::Start()
+{
+ gettimeofday(&m_startTime, 0);
+}
+
+double Timer::GetTimeInMs() const
+{
+ struct timeval currentTime;
+ gettimeofday(¤tTime, 0);
+
+ double const dsecs = currentTime.tv_sec - m_startTime.tv_sec;
+ double const dus = currentTime.tv_usec - m_startTime.tv_usec;
+
+ return (dsecs * 1000.0) + (dus / 1000.0);
+}
+
+void TimeHelpers::SleepMs(int ms)
+{
+ usleep(ms * 1000);
+}
+
+}
diff --git a/src/Posix/TimeHelpers.h b/src/Posix/TimeHelpers.h
index 5a5bd79..0de4b1a 100644
--- a/src/Posix/TimeHelpers.h
+++ b/src/Posix/TimeHelpers.h
@@ -1,28 +1,28 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include
-
-namespace UnitTest {
-
-class Timer
-{
-public:
- Timer();
- void Start();
- double GetTimeInMs() const;
-
-private:
- struct timeval m_startTime;
-};
-
-
-namespace TimeHelpers
-{
- void SleepMs(int ms);
-}
-
-
-}
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include
+
+namespace UnitTest {
+
+class Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ struct timeval m_startTime;
+};
+
+
+namespace TimeHelpers
+{
+ void SleepMs(int ms);
+}
+
+
+}
+
+#endif
diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp
index c38a518..7a9a63a 100644
--- a/src/ReportAssert.cpp
+++ b/src/ReportAssert.cpp
@@ -1,70 +1,70 @@
-#include "ReportAssert.h"
-#include "ReportAssertImpl.h"
-#include "AssertException.h"
-#include "CurrentTest.h"
-#include "TestResults.h"
-#include "TestDetails.h"
-
-#ifdef UNITTEST_NO_EXCEPTIONS
- #include "ReportAssertImpl.h"
-#endif
-
-namespace UnitTest {
-
-namespace
-{
- bool& AssertExpectedFlag()
- {
- static bool s_assertExpected = false;
- return s_assertExpected;
- }
-}
-
-UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber)
-{
- Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(),
- description, filename, lineNumber);
-}
-
-namespace Detail {
-
-#ifdef UNITTEST_NO_EXCEPTIONS
-UNITTEST_JMPBUF* GetAssertJmpBuf()
-{
- static UNITTEST_JMPBUF s_jmpBuf;
- return &s_jmpBuf;
-}
-#endif
-
-UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
- const TestDetails* testDetails,
- char const* description,
- char const* filename,
- int lineNumber)
-{
- if (AssertExpectedFlag() == false)
- {
- TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber);
- testResults->OnTestFailure(assertDetails, description);
- }
-
- ExpectAssert(false);
-
-#ifndef UNITTEST_NO_EXCEPTIONS
- throw AssertException();
-#else
- UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
-#endif
-}
-
-UNITTEST_LINKAGE void ExpectAssert(bool expected)
-{
- AssertExpectedFlag() = expected;
-}
-
-UNITTEST_LINKAGE bool AssertExpected()
-{
- return AssertExpectedFlag();
-}
-
-}}
+#include "ReportAssert.h"
+#include "ReportAssertImpl.h"
+#include "AssertException.h"
+#include "CurrentTest.h"
+#include "TestResults.h"
+#include "TestDetails.h"
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+ #include "ReportAssertImpl.h"
+#endif
+
+namespace UnitTest {
+
+namespace
+{
+ bool& AssertExpectedFlag()
+ {
+ static bool s_assertExpected = false;
+ return s_assertExpected;
+ }
+}
+
+UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber)
+{
+ Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(),
+ description, filename, lineNumber);
+}
+
+namespace Detail {
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+UNITTEST_JMPBUF* GetAssertJmpBuf()
+{
+ static UNITTEST_JMPBUF s_jmpBuf;
+ return &s_jmpBuf;
+}
+#endif
+
+UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber)
+{
+ if (AssertExpectedFlag() == false)
+ {
+ TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber);
+ testResults->OnTestFailure(assertDetails, description);
+ }
+
+ ExpectAssert(false);
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+ throw AssertException();
+#else
+ UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
+#endif
+}
+
+UNITTEST_LINKAGE void ExpectAssert(bool expected)
+{
+ AssertExpectedFlag() = expected;
+}
+
+UNITTEST_LINKAGE bool AssertExpected()
+{
+ return AssertExpectedFlag();
+}
+
+}}
diff --git a/src/ReportAssert.h b/src/ReportAssert.h
index 7bdf7bb..0b5d6dd 100644
--- a/src/ReportAssert.h
+++ b/src/ReportAssert.h
@@ -1,12 +1,12 @@
-#ifndef UNITTEST_ASSERT_H
-#define UNITTEST_ASSERT_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber);
-
-}
-
-#endif
+#ifndef UNITTEST_ASSERT_H
+#define UNITTEST_ASSERT_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber);
+
+}
+
+#endif
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index aefc78d..2f158c5 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -1,46 +1,46 @@
-#ifndef UNITTEST_REPORTASSERTIMPL_H
-#define UNITTEST_REPORTASSERTIMPL_H
-
-#include "../config.h"
-#include "HelperMacros.h"
-
-#ifdef UNITTEST_NO_EXCEPTIONS
- #include
-#endif
-
-namespace UnitTest {
-
-class TestResults;
-class TestDetails;
-
-namespace Detail {
-
-UNITTEST_LINKAGE void ExpectAssert(bool expected);
-
-UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
- const TestDetails* testDetails,
- char const* description,
- char const* filename,
- int lineNumber);
-
-UNITTEST_LINKAGE bool AssertExpected();
-
-#ifdef UNITTEST_NO_EXCEPTIONS
- UNITTEST_LINKAGE UNITTEST_JMPBUF* GetAssertJmpBuf();
-
- #ifdef UNITTEST_WIN32
- #define UNITTEST_SET_ASSERT_JUMP_TARGET() \
- __pragma(warning(push)) __pragma(warning(disable:4611)) \
- UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) \
- __pragma(warning(pop))
- #else
- #define UNITTEST_SET_ASSERT_JUMP_TARGET() UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf())
- #endif
-
- #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), 1)
-#endif
-
-}
-}
-
-#endif
+#ifndef UNITTEST_REPORTASSERTIMPL_H
+#define UNITTEST_REPORTASSERTIMPL_H
+
+#include "../config.h"
+#include "HelperMacros.h"
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+ #include
+#endif
+
+namespace UnitTest {
+
+class TestResults;
+class TestDetails;
+
+namespace Detail {
+
+UNITTEST_LINKAGE void ExpectAssert(bool expected);
+
+UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults,
+ const TestDetails* testDetails,
+ char const* description,
+ char const* filename,
+ int lineNumber);
+
+UNITTEST_LINKAGE bool AssertExpected();
+
+#ifdef UNITTEST_NO_EXCEPTIONS
+ UNITTEST_LINKAGE UNITTEST_JMPBUF* GetAssertJmpBuf();
+
+ #ifdef UNITTEST_WIN32
+ #define UNITTEST_SET_ASSERT_JUMP_TARGET() \
+ __pragma(warning(push)) __pragma(warning(disable:4611)) \
+ UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) \
+ __pragma(warning(pop))
+ #else
+ #define UNITTEST_SET_ASSERT_JUMP_TARGET() UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf())
+ #endif
+
+ #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), 1)
+#endif
+
+}
+}
+
+#endif
diff --git a/src/Test.cpp b/src/Test.cpp
index eaab9aa..352ba7e 100644
--- a/src/Test.cpp
+++ b/src/Test.cpp
@@ -1,42 +1,42 @@
-#include "../config.h"
-#include "Test.h"
-#include "TestList.h"
-#include "TestResults.h"
-#include "AssertException.h"
-#include "MemoryOutStream.h"
-#include "ExecuteTest.h"
-
-#ifdef UNITTEST_POSIX
- #include "Posix/SignalTranslator.h"
-#endif
-
-namespace UnitTest {
-
-TestList& Test::GetTestList()
-{
- static TestList s_list;
- return s_list;
-}
-
-Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber)
- : m_details(testName, suiteName, filename, lineNumber)
- , m_nextTest(0)
- , m_timeConstraintExempt(false)
- , m_isMockTest(false)
-{
-}
-
-Test::~Test()
-{
-}
-
-void Test::Run()
-{
- ExecuteTest(*this, m_details, m_isMockTest);
-}
-
-void Test::RunImpl() const
-{
-}
-
-}
+#include "../config.h"
+#include "Test.h"
+#include "TestList.h"
+#include "TestResults.h"
+#include "AssertException.h"
+#include "MemoryOutStream.h"
+#include "ExecuteTest.h"
+
+#ifdef UNITTEST_POSIX
+ #include "Posix/SignalTranslator.h"
+#endif
+
+namespace UnitTest {
+
+TestList& Test::GetTestList()
+{
+ static TestList s_list;
+ return s_list;
+}
+
+Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber)
+ : m_details(testName, suiteName, filename, lineNumber)
+ , m_nextTest(0)
+ , m_timeConstraintExempt(false)
+ , m_isMockTest(false)
+{
+}
+
+Test::~Test()
+{
+}
+
+void Test::Run()
+{
+ ExecuteTest(*this, m_details, m_isMockTest);
+}
+
+void Test::RunImpl() const
+{
+}
+
+}
diff --git a/src/Test.h b/src/Test.h
index 1e1dbb2..f51d8e8 100644
--- a/src/Test.h
+++ b/src/Test.h
@@ -1,35 +1,35 @@
-#ifndef UNITTEST_TEST_H
-#define UNITTEST_TEST_H
-
-#include "TestDetails.h"
-
-namespace UnitTest {
-
-class TestResults;
-class TestList;
-
-class UNITTEST_LINKAGE Test
-{
-public:
- explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0);
- virtual ~Test();
- void Run();
-
- TestDetails const m_details;
- Test* m_nextTest;
- mutable bool m_timeConstraintExempt;
- mutable bool m_isMockTest;
-
- static TestList& GetTestList();
-
- virtual void RunImpl() const;
-
-private:
- Test(Test const&);
- Test& operator =(Test const&);
-};
-
-
-}
-
-#endif
+#ifndef UNITTEST_TEST_H
+#define UNITTEST_TEST_H
+
+#include "TestDetails.h"
+
+namespace UnitTest {
+
+class TestResults;
+class TestList;
+
+class UNITTEST_LINKAGE Test
+{
+public:
+ explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0);
+ virtual ~Test();
+ void Run();
+
+ TestDetails const m_details;
+ Test* m_nextTest;
+ mutable bool m_timeConstraintExempt;
+ mutable bool m_isMockTest;
+
+ static TestList& GetTestList();
+
+ virtual void RunImpl() const;
+
+private:
+ Test(Test const&);
+ Test& operator =(Test const&);
+};
+
+
+}
+
+#endif
diff --git a/src/TestDetails.cpp b/src/TestDetails.cpp
index fdd7d1d..a13a168 100644
--- a/src/TestDetails.cpp
+++ b/src/TestDetails.cpp
@@ -1,22 +1,22 @@
-#include "TestDetails.h"
-
-namespace UnitTest {
-
-TestDetails::TestDetails(char const* testName_, char const* suiteName_, char const* filename_, int lineNumber_)
- : suiteName(suiteName_)
- , testName(testName_)
- , filename(filename_)
- , lineNumber(lineNumber_)
-{
-}
-
-TestDetails::TestDetails(const TestDetails& details, int lineNumber_)
- : suiteName(details.suiteName)
- , testName(details.testName)
- , filename(details.filename)
- , lineNumber(lineNumber_)
-{
-}
-
-
-}
+#include "TestDetails.h"
+
+namespace UnitTest {
+
+TestDetails::TestDetails(char const* testName_, char const* suiteName_, char const* filename_, int lineNumber_)
+ : suiteName(suiteName_)
+ , testName(testName_)
+ , filename(filename_)
+ , lineNumber(lineNumber_)
+{
+}
+
+TestDetails::TestDetails(const TestDetails& details, int lineNumber_)
+ : suiteName(details.suiteName)
+ , testName(details.testName)
+ , filename(details.filename)
+ , lineNumber(lineNumber_)
+{
+}
+
+
+}
diff --git a/src/TestDetails.h b/src/TestDetails.h
index 898f7f3..50b630c 100644
--- a/src/TestDetails.h
+++ b/src/TestDetails.h
@@ -1,26 +1,26 @@
-#ifndef UNITTEST_TESTDETAILS_H
-#define UNITTEST_TESTDETAILS_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class UNITTEST_LINKAGE TestDetails
-{
-public:
- TestDetails(char const* testName, char const* suiteName, char const* filename, int lineNumber);
- TestDetails(const TestDetails& details, int lineNumber);
-
- char const* const suiteName;
- char const* const testName;
- char const* const filename;
- int const lineNumber;
-
- TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind
-private:
- TestDetails& operator=(TestDetails const&);
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTDETAILS_H
+#define UNITTEST_TESTDETAILS_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE TestDetails
+{
+public:
+ TestDetails(char const* testName, char const* suiteName, char const* filename, int lineNumber);
+ TestDetails(const TestDetails& details, int lineNumber);
+
+ char const* const suiteName;
+ char const* const testName;
+ char const* const filename;
+ int const lineNumber;
+
+ TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind
+private:
+ TestDetails& operator=(TestDetails const&);
+};
+
+}
+
+#endif
diff --git a/src/TestList.cpp b/src/TestList.cpp
index 38fbfec..4583cbb 100644
--- a/src/TestList.cpp
+++ b/src/TestList.cpp
@@ -1,39 +1,39 @@
-#include "TestList.h"
-#include "Test.h"
-
-#include
-
-namespace UnitTest {
-
-TestList::TestList()
- : m_head(0)
- , m_tail(0)
-{
-}
-
-void TestList::Add(Test* test)
-{
- if (m_tail == 0)
- {
- assert(m_head == 0);
- m_head = test;
- m_tail = test;
- }
- else
- {
- m_tail->m_nextTest = test;
- m_tail = test;
- }
-}
-
-Test* TestList::GetHead() const
-{
- return m_head;
-}
-
-ListAdder::ListAdder(TestList& list, Test* test)
-{
- list.Add(test);
-}
-
-}
+#include "TestList.h"
+#include "Test.h"
+
+#include
+
+namespace UnitTest {
+
+TestList::TestList()
+ : m_head(0)
+ , m_tail(0)
+{
+}
+
+void TestList::Add(Test* test)
+{
+ if (m_tail == 0)
+ {
+ assert(m_head == 0);
+ m_head = test;
+ m_tail = test;
+ }
+ else
+ {
+ m_tail->m_nextTest = test;
+ m_tail = test;
+ }
+}
+
+Test* TestList::GetHead() const
+{
+ return m_head;
+}
+
+ListAdder::ListAdder(TestList& list, Test* test)
+{
+ list.Add(test);
+}
+
+}
diff --git a/src/TestList.h b/src/TestList.h
index ed190c2..a001d3f 100644
--- a/src/TestList.h
+++ b/src/TestList.h
@@ -1,33 +1,33 @@
-#ifndef UNITTEST_TESTLIST_H
-#define UNITTEST_TESTLIST_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class Test;
-
-class UNITTEST_LINKAGE TestList
-{
-public:
- TestList();
- void Add (Test* test);
-
- Test* GetHead() const;
-
-private:
- Test* m_head;
- Test* m_tail;
-};
-
-
-class UNITTEST_LINKAGE ListAdder
-{
-public:
- ListAdder(TestList& list, Test* test);
-};
-
-}
-
-
-#endif
+#ifndef UNITTEST_TESTLIST_H
+#define UNITTEST_TESTLIST_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class Test;
+
+class UNITTEST_LINKAGE TestList
+{
+public:
+ TestList();
+ void Add (Test* test);
+
+ Test* GetHead() const;
+
+private:
+ Test* m_head;
+ Test* m_tail;
+};
+
+
+class UNITTEST_LINKAGE ListAdder
+{
+public:
+ ListAdder(TestList& list, Test* test);
+};
+
+}
+
+
+#endif
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 931d8e7..92b11a4 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -1,117 +1,117 @@
-#ifndef UNITTEST_TESTMACROS_H
-#define UNITTEST_TESTMACROS_H
-
-#include "../config.h"
-#include "TestSuite.h"
-#include "ExceptionMacros.h"
-#include "ExecuteTest.h"
-#include "AssertException.h"
-#include "TestDetails.h"
-#include "MemoryOutStream.h"
-
-#ifndef UNITTEST_POSIX
- #define UNITTEST_THROW_SIGNALS_POSIX_ONLY
-#else
- #include "Posix/SignalTranslator.h"
-#endif
-
-#ifdef TEST
- #error UnitTest++ redefines TEST
-#endif
-
-#ifdef TEST_EX
- #error UnitTest++ redefines TEST_EX
-#endif
-
-#ifdef TEST_FIXTURE_EX
- #error UnitTest++ redefines TEST_FIXTURE_EX
-#endif
-
-#define SUITE(Name) \
- namespace Suite##Name { \
- namespace UnitTestSuite { \
- inline char const* GetSuiteName () { \
- return #Name ; \
- } \
- } \
- } \
- namespace Suite##Name
-
-#define TEST_EX(Name, List) \
- class Test##Name : public UnitTest::Test \
- { \
- public: \
- Test##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \
- private: \
- virtual void RunImpl() const; \
- } test##Name##Instance; \
- \
- UnitTest::ListAdder adder##Name (List, &test##Name##Instance); \
- \
- void Test##Name::RunImpl() const
-
-
-#define TEST(Name) TEST_EX(Name, UnitTest::Test::GetTestList())
-
-
-#define TEST_FIXTURE_EX(Fixture, Name, List) \
- class Fixture##Name##Helper : public Fixture \
- { \
- public: \
- explicit Fixture##Name##Helper(UnitTest::TestDetails const& details) : m_details(details) {} \
- void RunImpl(); \
- UnitTest::TestDetails const& m_details; \
- private: \
- Fixture##Name##Helper(Fixture##Name##Helper const&); \
- Fixture##Name##Helper& operator =(Fixture##Name##Helper const&); \
- }; \
- \
- class Test##Fixture##Name : public UnitTest::Test \
- { \
- public: \
- Test##Fixture##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \
- private: \
- virtual void RunImpl() const; \
- } test##Fixture##Name##Instance; \
- \
- UnitTest::ListAdder adder##Fixture##Name (List, &test##Fixture##Name##Instance); \
- \
- void Test##Fixture##Name::RunImpl() const \
- { \
- volatile bool ctorOk = false; \
- UT_TRY \
- ({ \
- Fixture##Name##Helper fixtureHelper(m_details); \
- ctorOk = true; \
- UnitTest::ExecuteTest(fixtureHelper, m_details, false); \
- }) \
- UT_CATCH (UnitTest::AssertException, e, \
- { \
- (void)e; \
- }) \
- UT_CATCH (std::exception, e, \
- { \
- UnitTest::MemoryOutStream stream; \
- stream << "Unhandled exception: " << e.what(); \
- UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); \
- }) \
- UT_CATCH_ALL \
- ({ \
- if (ctorOk) \
- { \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
- "Unhandled exception while destroying fixture " #Fixture); \
- } \
- else \
- { \
- UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
- "Unhandled exception while constructing fixture " #Fixture); \
- } \
- }) \
- } \
- void Fixture##Name##Helper::RunImpl()
-
-#define TEST_FIXTURE(Fixture,Name) TEST_FIXTURE_EX(Fixture, Name, UnitTest::Test::GetTestList())
-
-
-#endif
+#ifndef UNITTEST_TESTMACROS_H
+#define UNITTEST_TESTMACROS_H
+
+#include "../config.h"
+#include "TestSuite.h"
+#include "ExceptionMacros.h"
+#include "ExecuteTest.h"
+#include "AssertException.h"
+#include "TestDetails.h"
+#include "MemoryOutStream.h"
+
+#ifndef UNITTEST_POSIX
+ #define UNITTEST_THROW_SIGNALS_POSIX_ONLY
+#else
+ #include "Posix/SignalTranslator.h"
+#endif
+
+#ifdef TEST
+ #error UnitTest++ redefines TEST
+#endif
+
+#ifdef TEST_EX
+ #error UnitTest++ redefines TEST_EX
+#endif
+
+#ifdef TEST_FIXTURE_EX
+ #error UnitTest++ redefines TEST_FIXTURE_EX
+#endif
+
+#define SUITE(Name) \
+ namespace Suite##Name { \
+ namespace UnitTestSuite { \
+ inline char const* GetSuiteName () { \
+ return #Name ; \
+ } \
+ } \
+ } \
+ namespace Suite##Name
+
+#define TEST_EX(Name, List) \
+ class Test##Name : public UnitTest::Test \
+ { \
+ public: \
+ Test##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \
+ private: \
+ virtual void RunImpl() const; \
+ } test##Name##Instance; \
+ \
+ UnitTest::ListAdder adder##Name (List, &test##Name##Instance); \
+ \
+ void Test##Name::RunImpl() const
+
+
+#define TEST(Name) TEST_EX(Name, UnitTest::Test::GetTestList())
+
+
+#define TEST_FIXTURE_EX(Fixture, Name, List) \
+ class Fixture##Name##Helper : public Fixture \
+ { \
+ public: \
+ explicit Fixture##Name##Helper(UnitTest::TestDetails const& details) : m_details(details) {} \
+ void RunImpl(); \
+ UnitTest::TestDetails const& m_details; \
+ private: \
+ Fixture##Name##Helper(Fixture##Name##Helper const&); \
+ Fixture##Name##Helper& operator =(Fixture##Name##Helper const&); \
+ }; \
+ \
+ class Test##Fixture##Name : public UnitTest::Test \
+ { \
+ public: \
+ Test##Fixture##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \
+ private: \
+ virtual void RunImpl() const; \
+ } test##Fixture##Name##Instance; \
+ \
+ UnitTest::ListAdder adder##Fixture##Name (List, &test##Fixture##Name##Instance); \
+ \
+ void Test##Fixture##Name::RunImpl() const \
+ { \
+ volatile bool ctorOk = false; \
+ UT_TRY \
+ ({ \
+ Fixture##Name##Helper fixtureHelper(m_details); \
+ ctorOk = true; \
+ UnitTest::ExecuteTest(fixtureHelper, m_details, false); \
+ }) \
+ UT_CATCH (UnitTest::AssertException, e, \
+ { \
+ (void)e; \
+ }) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream stream; \
+ stream << "Unhandled exception: " << e.what(); \
+ UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); \
+ }) \
+ UT_CATCH_ALL \
+ ({ \
+ if (ctorOk) \
+ { \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
+ "Unhandled exception while destroying fixture " #Fixture); \
+ } \
+ else \
+ { \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \
+ "Unhandled exception while constructing fixture " #Fixture); \
+ } \
+ }) \
+ } \
+ void Fixture##Name##Helper::RunImpl()
+
+#define TEST_FIXTURE(Fixture,Name) TEST_FIXTURE_EX(Fixture, Name, UnitTest::Test::GetTestList())
+
+
+#endif
diff --git a/src/TestReporter.cpp b/src/TestReporter.cpp
index 78c765f..acfca3e 100644
--- a/src/TestReporter.cpp
+++ b/src/TestReporter.cpp
@@ -1,9 +1,9 @@
-#include "TestReporter.h"
-
-namespace UnitTest {
-
-TestReporter::~TestReporter()
-{
-}
-
-}
+#include "TestReporter.h"
+
+namespace UnitTest {
+
+TestReporter::~TestReporter()
+{
+}
+
+}
diff --git a/src/TestReporter.h b/src/TestReporter.h
index 99bfaa6..2100524 100644
--- a/src/TestReporter.h
+++ b/src/TestReporter.h
@@ -1,22 +1,22 @@
-#ifndef UNITTEST_TESTREPORTER_H
-#define UNITTEST_TESTREPORTER_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class TestDetails;
-
-class UNITTEST_LINKAGE TestReporter
-{
-public:
- virtual ~TestReporter();
-
- virtual void ReportTestStart(TestDetails const& test) = 0;
- virtual void ReportFailure(TestDetails const& test, char const* failure) = 0;
- virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) = 0;
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) = 0;
-};
-
-}
-#endif
+#ifndef UNITTEST_TESTREPORTER_H
+#define UNITTEST_TESTREPORTER_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class TestDetails;
+
+class UNITTEST_LINKAGE TestReporter
+{
+public:
+ virtual ~TestReporter();
+
+ virtual void ReportTestStart(TestDetails const& test) = 0;
+ virtual void ReportFailure(TestDetails const& test, char const* failure) = 0;
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) = 0;
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) = 0;
+};
+
+}
+#endif
diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp
index cd2c131..1538570 100644
--- a/src/TestReporterStdout.cpp
+++ b/src/TestReporterStdout.cpp
@@ -1,46 +1,46 @@
-#include "TestReporterStdout.h"
-#include
-
-#include "TestDetails.h"
-
-// cstdio doesn't pull in namespace std on VC6, so we do it here.
-#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200)
- namespace std {}
-#endif
-
-namespace UnitTest {
-
-void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
-{
-#if defined(__APPLE__) || defined(__GNUG__)
- char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
-#else
- char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
-#endif
-
- using namespace std;
- printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
-}
-
-void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
-{
-}
-
-void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
-{
-}
-
-void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
- int const failureCount, float secondsElapsed)
-{
- using namespace std;
-
- if (failureCount > 0)
- printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
- else
- printf("Success: %d tests passed.\n", totalTestCount);
-
- printf("Test time: %.2f seconds.\n", secondsElapsed);
-}
-
-}
+#include "TestReporterStdout.h"
+#include
+
+#include "TestDetails.h"
+
+// cstdio doesn't pull in namespace std on VC6, so we do it here.
+#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200)
+ namespace std {}
+#endif
+
+namespace UnitTest {
+
+void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure)
+{
+#if defined(__APPLE__) || defined(__GNUG__)
+ char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n";
+#else
+ char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n";
+#endif
+
+ using namespace std;
+ printf(errorFormat, details.filename, details.lineNumber, details.testName, failure);
+}
+
+void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/)
+{
+}
+
+void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
+{
+}
+
+void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
+ int const failureCount, float secondsElapsed)
+{
+ using namespace std;
+
+ if (failureCount > 0)
+ printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount);
+ else
+ printf("Success: %d tests passed.\n", totalTestCount);
+
+ printf("Test time: %.2f seconds.\n", secondsElapsed);
+}
+
+}
diff --git a/src/TestReporterStdout.h b/src/TestReporterStdout.h
index 4f52f8a..e8d7bbf 100644
--- a/src/TestReporterStdout.h
+++ b/src/TestReporterStdout.h
@@ -1,19 +1,19 @@
-#ifndef UNITTEST_TESTREPORTERSTDOUT_H
-#define UNITTEST_TESTREPORTERSTDOUT_H
-
-#include "TestReporter.h"
-
-namespace UnitTest {
-
-class UNITTEST_LINKAGE TestReporterStdout : public TestReporter
-{
-private:
- virtual void ReportTestStart(TestDetails const& test);
- virtual void ReportFailure(TestDetails const& test, char const* failure);
- virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTREPORTERSTDOUT_H
+#define UNITTEST_TESTREPORTERSTDOUT_H
+
+#include "TestReporter.h"
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE TestReporterStdout : public TestReporter
+{
+private:
+ virtual void ReportTestStart(TestDetails const& test);
+ virtual void ReportFailure(TestDetails const& test, char const* failure);
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+};
+
+}
+
+#endif
diff --git a/src/TestResults.cpp b/src/TestResults.cpp
index 2368e20..b3b67c0 100644
--- a/src/TestResults.cpp
+++ b/src/TestResults.cpp
@@ -1,60 +1,60 @@
-#include "TestResults.h"
-#include "TestReporter.h"
-
-#include "TestDetails.h"
-
-namespace UnitTest {
-
-TestResults::TestResults(TestReporter* testReporter)
- : m_testReporter(testReporter)
- , m_totalTestCount(0)
- , m_failedTestCount(0)
- , m_failureCount(0)
- , m_currentTestFailed(false)
-{
-}
-
-void TestResults::OnTestStart(TestDetails const& test)
-{
- ++m_totalTestCount;
- m_currentTestFailed = false;
- if (m_testReporter)
- m_testReporter->ReportTestStart(test);
-}
-
-void TestResults::OnTestFailure(TestDetails const& test, char const* failure)
-{
- ++m_failureCount;
- if (!m_currentTestFailed)
- {
- ++m_failedTestCount;
- m_currentTestFailed = true;
- }
-
- if (m_testReporter)
- m_testReporter->ReportFailure(test, failure);
-}
-
-void TestResults::OnTestFinish(TestDetails const& test, float secondsElapsed)
-{
- if (m_testReporter)
- m_testReporter->ReportTestFinish(test, secondsElapsed);
-}
-
-int TestResults::GetTotalTestCount() const
-{
- return m_totalTestCount;
-}
-
-int TestResults::GetFailedTestCount() const
-{
- return m_failedTestCount;
-}
-
-int TestResults::GetFailureCount() const
-{
- return m_failureCount;
-}
-
-
-}
+#include "TestResults.h"
+#include "TestReporter.h"
+
+#include "TestDetails.h"
+
+namespace UnitTest {
+
+TestResults::TestResults(TestReporter* testReporter)
+ : m_testReporter(testReporter)
+ , m_totalTestCount(0)
+ , m_failedTestCount(0)
+ , m_failureCount(0)
+ , m_currentTestFailed(false)
+{
+}
+
+void TestResults::OnTestStart(TestDetails const& test)
+{
+ ++m_totalTestCount;
+ m_currentTestFailed = false;
+ if (m_testReporter)
+ m_testReporter->ReportTestStart(test);
+}
+
+void TestResults::OnTestFailure(TestDetails const& test, char const* failure)
+{
+ ++m_failureCount;
+ if (!m_currentTestFailed)
+ {
+ ++m_failedTestCount;
+ m_currentTestFailed = true;
+ }
+
+ if (m_testReporter)
+ m_testReporter->ReportFailure(test, failure);
+}
+
+void TestResults::OnTestFinish(TestDetails const& test, float secondsElapsed)
+{
+ if (m_testReporter)
+ m_testReporter->ReportTestFinish(test, secondsElapsed);
+}
+
+int TestResults::GetTotalTestCount() const
+{
+ return m_totalTestCount;
+}
+
+int TestResults::GetFailedTestCount() const
+{
+ return m_failedTestCount;
+}
+
+int TestResults::GetFailureCount() const
+{
+ return m_failureCount;
+}
+
+
+}
diff --git a/src/TestResults.h b/src/TestResults.h
index d4006a0..a24aaf5 100644
--- a/src/TestResults.h
+++ b/src/TestResults.h
@@ -1,38 +1,38 @@
-#ifndef UNITTEST_TESTRESULTS_H
-#define UNITTEST_TESTRESULTS_H
-
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class TestReporter;
-class TestDetails;
-
-class UNITTEST_LINKAGE TestResults
-{
-public:
- explicit TestResults(TestReporter* reporter = 0);
-
- void OnTestStart(TestDetails const& test);
- void OnTestFailure(TestDetails const& test, char const* failure);
- void OnTestFinish(TestDetails const& test, float secondsElapsed);
-
- int GetTotalTestCount() const;
- int GetFailedTestCount() const;
- int GetFailureCount() const;
-
-private:
- TestReporter* m_testReporter;
- int m_totalTestCount;
- int m_failedTestCount;
- int m_failureCount;
-
- bool m_currentTestFailed;
-
- TestResults(TestResults const&);
- TestResults& operator =(TestResults const&);
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTRESULTS_H
+#define UNITTEST_TESTRESULTS_H
+
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class TestReporter;
+class TestDetails;
+
+class UNITTEST_LINKAGE TestResults
+{
+public:
+ explicit TestResults(TestReporter* reporter = 0);
+
+ void OnTestStart(TestDetails const& test);
+ void OnTestFailure(TestDetails const& test, char const* failure);
+ void OnTestFinish(TestDetails const& test, float secondsElapsed);
+
+ int GetTotalTestCount() const;
+ int GetFailedTestCount() const;
+ int GetFailureCount() const;
+
+private:
+ TestReporter* m_testReporter;
+ int m_totalTestCount;
+ int m_failedTestCount;
+ int m_failureCount;
+
+ bool m_currentTestFailed;
+
+ TestResults(TestResults const&);
+ TestResults& operator =(TestResults const&);
+};
+
+}
+
+#endif
diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp
index 108348e..10f47e4 100644
--- a/src/TestRunner.cpp
+++ b/src/TestRunner.cpp
@@ -1,82 +1,82 @@
-#include "TestRunner.h"
-#include "TestResults.h"
-#include "TestReporter.h"
-#include "TestReporterStdout.h"
-#include "TimeHelpers.h"
-#include "MemoryOutStream.h"
-
-#include
-
-
-namespace UnitTest {
-
-int RunAllTests()
-{
- TestReporterStdout reporter;
- TestRunner runner(reporter);
- return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
-}
-
-
-TestRunner::TestRunner(TestReporter& reporter)
- : m_reporter(&reporter)
- , m_result(new TestResults(&reporter))
- , m_timer(new Timer)
-{
- m_timer->Start();
-}
-
-TestRunner::~TestRunner()
-{
- delete m_result;
- delete m_timer;
-}
-
-TestResults* TestRunner::GetTestResults()
-{
- return m_result;
-}
-
-int TestRunner::Finish() const
-{
- float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0);
- m_reporter->ReportSummary(m_result->GetTotalTestCount(),
- m_result->GetFailedTestCount(),
- m_result->GetFailureCount(),
- secondsElapsed);
-
- return m_result->GetFailureCount();
-}
-
-bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
-{
- using namespace std;
- return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
-}
-
-void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
-{
- if (curTest->m_isMockTest == false)
- CurrentTest::Results() = result;
-
- Timer testTimer;
- testTimer.Start();
-
- result->OnTestStart(curTest->m_details);
-
- curTest->Run();
-
- double const testTimeInMs = testTimer.GetTimeInMs();
- if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
- {
- MemoryOutStream stream;
- stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
- "ms but took " << testTimeInMs << "ms.";
-
- result->OnTestFailure(curTest->m_details, stream.GetText());
- }
-
- result->OnTestFinish(curTest->m_details, static_cast< float >(testTimeInMs / 1000.0));
-}
-
-}
+#include "TestRunner.h"
+#include "TestResults.h"
+#include "TestReporter.h"
+#include "TestReporterStdout.h"
+#include "TimeHelpers.h"
+#include "MemoryOutStream.h"
+
+#include
+
+
+namespace UnitTest {
+
+int RunAllTests()
+{
+ TestReporterStdout reporter;
+ TestRunner runner(reporter);
+ return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
+}
+
+
+TestRunner::TestRunner(TestReporter& reporter)
+ : m_reporter(&reporter)
+ , m_result(new TestResults(&reporter))
+ , m_timer(new Timer)
+{
+ m_timer->Start();
+}
+
+TestRunner::~TestRunner()
+{
+ delete m_result;
+ delete m_timer;
+}
+
+TestResults* TestRunner::GetTestResults()
+{
+ return m_result;
+}
+
+int TestRunner::Finish() const
+{
+ float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0);
+ m_reporter->ReportSummary(m_result->GetTotalTestCount(),
+ m_result->GetFailedTestCount(),
+ m_result->GetFailureCount(),
+ secondsElapsed);
+
+ return m_result->GetFailureCount();
+}
+
+bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const
+{
+ using namespace std;
+ return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName);
+}
+
+void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const
+{
+ if (curTest->m_isMockTest == false)
+ CurrentTest::Results() = result;
+
+ Timer testTimer;
+ testTimer.Start();
+
+ result->OnTestStart(curTest->m_details);
+
+ curTest->Run();
+
+ double const testTimeInMs = testTimer.GetTimeInMs();
+ if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
+ {
+ MemoryOutStream stream;
+ stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
+ "ms but took " << testTimeInMs << "ms.";
+
+ result->OnTestFailure(curTest->m_details, stream.GetText());
+ }
+
+ result->OnTestFinish(curTest->m_details, static_cast< float >(testTimeInMs / 1000.0));
+}
+
+}
diff --git a/src/TestRunner.h b/src/TestRunner.h
index 0253ae2..f88b9cc 100644
--- a/src/TestRunner.h
+++ b/src/TestRunner.h
@@ -1,61 +1,61 @@
-#ifndef UNITTEST_TESTRUNNER_H
-#define UNITTEST_TESTRUNNER_H
-
-#include "Test.h"
-#include "TestList.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-class TestReporter;
-class TestResults;
-class Timer;
-
-UNITTEST_LINKAGE int RunAllTests();
-
-struct True
-{
- bool operator()(const Test* const) const
- {
- return true;
- }
-};
-
-class UNITTEST_LINKAGE TestRunner
-{
-public:
- explicit TestRunner(TestReporter& reporter);
- ~TestRunner();
-
- template< class Predicate >
- int RunTestsIf(TestList const& list, char const* suiteName,
- const Predicate& predicate, int maxTestTimeInMs) const
- {
- Test* curTest = list.GetHead();
-
- while (curTest != 0)
- {
- if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
- RunTest(m_result, curTest, maxTestTimeInMs);
-
- curTest = curTest->m_nextTest;
- }
-
- return Finish();
- }
-
- TestResults* GetTestResults();
-
-private:
- TestReporter* m_reporter;
- TestResults* m_result;
- Timer* m_timer;
-
- int Finish() const;
- bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
- void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
-};
-
-}
-
-#endif
+#ifndef UNITTEST_TESTRUNNER_H
+#define UNITTEST_TESTRUNNER_H
+
+#include "Test.h"
+#include "TestList.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+class TestReporter;
+class TestResults;
+class Timer;
+
+UNITTEST_LINKAGE int RunAllTests();
+
+struct True
+{
+ bool operator()(const Test* const) const
+ {
+ return true;
+ }
+};
+
+class UNITTEST_LINKAGE TestRunner
+{
+public:
+ explicit TestRunner(TestReporter& reporter);
+ ~TestRunner();
+
+ template< class Predicate >
+ int RunTestsIf(TestList const& list, char const* suiteName,
+ const Predicate& predicate, int maxTestTimeInMs) const
+ {
+ Test* curTest = list.GetHead();
+
+ while (curTest != 0)
+ {
+ if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
+ RunTest(m_result, curTest, maxTestTimeInMs);
+
+ curTest = curTest->m_nextTest;
+ }
+
+ return Finish();
+ }
+
+ TestResults* GetTestResults();
+
+private:
+ TestReporter* m_reporter;
+ TestResults* m_result;
+ Timer* m_timer;
+
+ int Finish() const;
+ bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
+ void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
+};
+
+}
+
+#endif
diff --git a/src/TestSuite.h b/src/TestSuite.h
index 02067fd..2812d8c 100644
--- a/src/TestSuite.h
+++ b/src/TestSuite.h
@@ -1,12 +1,12 @@
-#ifndef UNITTEST_TESTSUITE_H
-#define UNITTEST_TESTSUITE_H
-
-namespace UnitTestSuite
-{
- inline char const* GetSuiteName ()
- {
- return "DefaultSuite";
- }
-}
-
-#endif
+#ifndef UNITTEST_TESTSUITE_H
+#define UNITTEST_TESTSUITE_H
+
+namespace UnitTestSuite
+{
+ inline char const* GetSuiteName ()
+ {
+ return "DefaultSuite";
+ }
+}
+
+#endif
diff --git a/src/TimeConstraint.cpp b/src/TimeConstraint.cpp
index 89f1b87..1c12d83 100644
--- a/src/TimeConstraint.cpp
+++ b/src/TimeConstraint.cpp
@@ -1,29 +1,29 @@
-#include "TimeConstraint.h"
-#include "TestResults.h"
-#include "MemoryOutStream.h"
-#include "CurrentTest.h"
-
-namespace UnitTest {
-
-
-TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
- : m_details(details)
- , m_maxMs(ms)
-{
- m_timer.Start();
-}
-
-TimeConstraint::~TimeConstraint()
-{
- double const totalTimeInMs = m_timer.GetTimeInMs();
- if (totalTimeInMs > m_maxMs)
- {
- MemoryOutStream stream;
- stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
- "ms but took " << totalTimeInMs << "ms.";
-
- CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
- }
-}
-
-}
+#include "TimeConstraint.h"
+#include "TestResults.h"
+#include "MemoryOutStream.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+
+TimeConstraint::TimeConstraint(int ms, TestDetails const& details)
+ : m_details(details)
+ , m_maxMs(ms)
+{
+ m_timer.Start();
+}
+
+TimeConstraint::~TimeConstraint()
+{
+ double const totalTimeInMs = m_timer.GetTimeInMs();
+ if (totalTimeInMs > m_maxMs)
+ {
+ MemoryOutStream stream;
+ stream << "Time constraint failed. Expected to run test under " << m_maxMs <<
+ "ms but took " << totalTimeInMs << "ms.";
+
+ CurrentTest::Results()->OnTestFailure(m_details, stream.GetText());
+ }
+}
+
+}
diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h
index fe14461..a73057c 100644
--- a/src/TimeConstraint.h
+++ b/src/TimeConstraint.h
@@ -1,37 +1,37 @@
-#ifndef UNITTEST_TIMECONSTRAINT_H
-#define UNITTEST_TIMECONSTRAINT_H
-
-#include "TimeHelpers.h"
-#include "HelperMacros.h"
-
-namespace UnitTest {
-
-class TestResults;
-class TestDetails;
-
-class UNITTEST_LINKAGE TimeConstraint
-{
-public:
- TimeConstraint(int ms, TestDetails const& details);
- ~TimeConstraint();
-
-private:
- void operator=(TimeConstraint const&);
- TimeConstraint(TimeConstraint const&);
-
- Timer m_timer;
- TestDetails const& m_details;
- int const m_maxMs;
-};
-
-#define UNITTEST_TIME_CONSTRAINT(ms) \
- UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__))
-
-#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \
- UNITTEST_MULTILINE_MACRO_BEGIN \
- m_timeConstraintExempt = true; \
- UNITTEST_MULTILINE_MACRO_END
-
-}
-
-#endif
+#ifndef UNITTEST_TIMECONSTRAINT_H
+#define UNITTEST_TIMECONSTRAINT_H
+
+#include "TimeHelpers.h"
+#include "HelperMacros.h"
+
+namespace UnitTest {
+
+class TestResults;
+class TestDetails;
+
+class UNITTEST_LINKAGE TimeConstraint
+{
+public:
+ TimeConstraint(int ms, TestDetails const& details);
+ ~TimeConstraint();
+
+private:
+ void operator=(TimeConstraint const&);
+ TimeConstraint(TimeConstraint const&);
+
+ Timer m_timer;
+ TestDetails const& m_details;
+ int const m_maxMs;
+};
+
+#define UNITTEST_TIME_CONSTRAINT(ms) \
+ UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__))
+
+#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \
+ UNITTEST_MULTILINE_MACRO_BEGIN \
+ m_timeConstraintExempt = true; \
+ UNITTEST_MULTILINE_MACRO_END
+
+}
+
+#endif
diff --git a/src/TimeHelpers.h b/src/TimeHelpers.h
index 24f0efd..bb5a31a 100644
--- a/src/TimeHelpers.h
+++ b/src/TimeHelpers.h
@@ -1,7 +1,7 @@
-#include "../config.h"
-
-#if defined UNITTEST_POSIX
- #include "Posix/TimeHelpers.h"
-#else
- #include "Win32/TimeHelpers.h"
-#endif
+#include "../config.h"
+
+#if defined UNITTEST_POSIX
+ #include "Posix/TimeHelpers.h"
+#else
+ #include "Win32/TimeHelpers.h"
+#endif
diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp
index 1b39cab..aa97b89 100644
--- a/src/Win32/TimeHelpers.cpp
+++ b/src/Win32/TimeHelpers.cpp
@@ -1,49 +1,49 @@
-#include "TimeHelpers.h"
-
-#define WIN32_LEAN_AND_MEAN
-#include
-
-namespace UnitTest {
-
-Timer::Timer()
- : m_threadHandle(::GetCurrentThread())
- , m_startTime(0)
-{
-#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR
- typedef unsigned long DWORD_PTR;
-#endif
-
- DWORD_PTR systemMask;
- ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
-}
-
-void Timer::Start()
-{
- m_startTime = GetTime();
-}
-
-double Timer::GetTimeInMs() const
-{
- __int64 const elapsedTime = GetTime() - m_startTime;
- double const seconds = double(elapsedTime) / double(m_frequency);
- return seconds * 1000.0;
-}
-
-__int64 Timer::GetTime() const
-{
- LARGE_INTEGER curTime;
- ::SetThreadAffinityMask(m_threadHandle, 1);
- ::QueryPerformanceCounter(&curTime);
- ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
- return curTime.QuadPart;
-}
-
-void TimeHelpers::SleepMs(int ms)
-{
- ::Sleep(ms);
-}
-
-}
+#include "TimeHelpers.h"
+
+#define WIN32_LEAN_AND_MEAN
+#include
+
+namespace UnitTest {
+
+Timer::Timer()
+ : m_threadHandle(::GetCurrentThread())
+ , m_startTime(0)
+{
+#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR
+ typedef unsigned long DWORD_PTR;
+#endif
+
+ DWORD_PTR systemMask;
+ ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+}
+
+void Timer::Start()
+{
+ m_startTime = GetTime();
+}
+
+double Timer::GetTimeInMs() const
+{
+ __int64 const elapsedTime = GetTime() - m_startTime;
+ double const seconds = double(elapsedTime) / double(m_frequency);
+ return seconds * 1000.0;
+}
+
+__int64 Timer::GetTime() const
+{
+ LARGE_INTEGER curTime;
+ ::SetThreadAffinityMask(m_threadHandle, 1);
+ ::QueryPerformanceCounter(&curTime);
+ ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask);
+ return curTime.QuadPart;
+}
+
+void TimeHelpers::SleepMs(int ms)
+{
+ ::Sleep(ms);
+}
+
+}
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index 80c9118..4fb1b43 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -1,45 +1,45 @@
-#ifndef UNITTEST_TIMEHELPERS_H
-#define UNITTEST_TIMEHELPERS_H
-
-#include "../../config.h"
-#include "../HelperMacros.h"
-
-#ifdef UNITTEST_MINGW
- #ifndef __int64
- #define __int64 long long
- #endif
-#endif
-
-namespace UnitTest {
-
-class UNITTEST_LINKAGE Timer
-{
-public:
- Timer();
- void Start();
- double GetTimeInMs() const;
-
-private:
- __int64 GetTime() const;
-
- void* m_threadHandle;
-
-#if defined(_WIN64)
- unsigned __int64 m_processAffinityMask;
-#else
- unsigned long m_processAffinityMask;
-#endif
-
- __int64 m_startTime;
- __int64 m_frequency;
-};
-
-
-namespace TimeHelpers
-{
- UNITTEST_LINKAGE void SleepMs(int ms);
-}
-
-}
-
-#endif
+#ifndef UNITTEST_TIMEHELPERS_H
+#define UNITTEST_TIMEHELPERS_H
+
+#include "../../config.h"
+#include "../HelperMacros.h"
+
+#ifdef UNITTEST_MINGW
+ #ifndef __int64
+ #define __int64 long long
+ #endif
+#endif
+
+namespace UnitTest {
+
+class UNITTEST_LINKAGE Timer
+{
+public:
+ Timer();
+ void Start();
+ double GetTimeInMs() const;
+
+private:
+ __int64 GetTime() const;
+
+ void* m_threadHandle;
+
+#if defined(_WIN64)
+ unsigned __int64 m_processAffinityMask;
+#else
+ unsigned long m_processAffinityMask;
+#endif
+
+ __int64 m_startTime;
+ __int64 m_frequency;
+};
+
+
+namespace TimeHelpers
+{
+ UNITTEST_LINKAGE void SleepMs(int ms);
+}
+
+}
+
+#endif
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index 09f0f24..c5e858b 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -1,131 +1,131 @@
-#include "../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "XmlTestReporter.h"
-
-#include
-#include
-#include
-
-using std::string;
-using std::ostringstream;
-using std::ostream;
-
-namespace {
-
-void ReplaceChar(string& str, char c, string const& replacement)
-{
- for (size_t pos = str.find(c); pos != string::npos; pos = str.find(c, pos + 1))
- str.replace(pos, 1, replacement);
-}
-
-string XmlEscape(string const& value)
-{
- string escaped = value;
-
- ReplaceChar(escaped, '&', "&");
- ReplaceChar(escaped, '<', "<");
- ReplaceChar(escaped, '>', ">");
- ReplaceChar(escaped, '\'', "'");
- ReplaceChar(escaped, '\"', """);
-
- return escaped;
-}
-
-string BuildFailureMessage(string const& file, int line, string const& message)
-{
- ostringstream failureMessage;
- failureMessage << file << "(" << line << ") : " << message;
- return failureMessage.str();
-}
-
-}
-
-namespace UnitTest {
-
-XmlTestReporter::XmlTestReporter(ostream& ostream)
- : m_ostream(ostream)
-{
-}
-
-void XmlTestReporter::ReportSummary(int totalTestCount, int failedTestCount,
- int failureCount, float secondsElapsed)
-{
- AddXmlElement(m_ostream, NULL);
-
- BeginResults(m_ostream, totalTestCount, failedTestCount, failureCount, secondsElapsed);
-
- DeferredTestResultList const& results = GetResults();
- for (DeferredTestResultList::const_iterator i = results.begin(); i != results.end(); ++i)
- {
- BeginTest(m_ostream, *i);
-
- if (i->failed)
- AddFailure(m_ostream, *i);
-
- EndTest(m_ostream, *i);
- }
-
- EndResults(m_ostream);
-}
-
-void XmlTestReporter::AddXmlElement(ostream& os, char const* encoding)
-{
- os << "";
-}
-
-void XmlTestReporter::BeginResults(std::ostream& os, int totalTestCount, int failedTestCount,
- int failureCount, float secondsElapsed)
-{
- os << "";
-}
-
-void XmlTestReporter::EndResults(std::ostream& os)
-{
- os << " ";
-}
-
-void XmlTestReporter::BeginTest(std::ostream& os, DeferredTestResult const& result)
-{
- os << "";
- else
- os << "/>";
-}
-
-void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& result)
-{
- os << ">"; // close element
-
- for (DeferredTestResult::FailureVec::const_iterator it = result.failures.begin();
- it != result.failures.end();
- ++it)
- {
- string const escapedMessage = XmlEscape(std::string(it->failureStr));
- string const message = BuildFailureMessage(result.failureFile, it->lineNumber, escapedMessage);
-
- os << " ";
- }
-}
-
-}
-
-#endif
+#include "../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "XmlTestReporter.h"
+
+#include
+#include
+#include
+
+using std::string;
+using std::ostringstream;
+using std::ostream;
+
+namespace {
+
+void ReplaceChar(string& str, char c, string const& replacement)
+{
+ for (size_t pos = str.find(c); pos != string::npos; pos = str.find(c, pos + 1))
+ str.replace(pos, 1, replacement);
+}
+
+string XmlEscape(string const& value)
+{
+ string escaped = value;
+
+ ReplaceChar(escaped, '&', "&");
+ ReplaceChar(escaped, '<', "<");
+ ReplaceChar(escaped, '>', ">");
+ ReplaceChar(escaped, '\'', "'");
+ ReplaceChar(escaped, '\"', """);
+
+ return escaped;
+}
+
+string BuildFailureMessage(string const& file, int line, string const& message)
+{
+ ostringstream failureMessage;
+ failureMessage << file << "(" << line << ") : " << message;
+ return failureMessage.str();
+}
+
+}
+
+namespace UnitTest {
+
+XmlTestReporter::XmlTestReporter(ostream& ostream)
+ : m_ostream(ostream)
+{
+}
+
+void XmlTestReporter::ReportSummary(int totalTestCount, int failedTestCount,
+ int failureCount, float secondsElapsed)
+{
+ AddXmlElement(m_ostream, NULL);
+
+ BeginResults(m_ostream, totalTestCount, failedTestCount, failureCount, secondsElapsed);
+
+ DeferredTestResultList const& results = GetResults();
+ for (DeferredTestResultList::const_iterator i = results.begin(); i != results.end(); ++i)
+ {
+ BeginTest(m_ostream, *i);
+
+ if (i->failed)
+ AddFailure(m_ostream, *i);
+
+ EndTest(m_ostream, *i);
+ }
+
+ EndResults(m_ostream);
+}
+
+void XmlTestReporter::AddXmlElement(ostream& os, char const* encoding)
+{
+ os << "";
+}
+
+void XmlTestReporter::BeginResults(std::ostream& os, int totalTestCount, int failedTestCount,
+ int failureCount, float secondsElapsed)
+{
+ os << "";
+}
+
+void XmlTestReporter::EndResults(std::ostream& os)
+{
+ os << " ";
+}
+
+void XmlTestReporter::BeginTest(std::ostream& os, DeferredTestResult const& result)
+{
+ os << "";
+ else
+ os << "/>";
+}
+
+void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& result)
+{
+ os << ">"; // close element
+
+ for (DeferredTestResult::FailureVec::const_iterator it = result.failures.begin();
+ it != result.failures.end();
+ ++it)
+ {
+ string const escapedMessage = XmlEscape(std::string(it->failureStr));
+ string const message = BuildFailureMessage(result.failureFile, it->lineNumber, escapedMessage);
+
+ os << " ";
+ }
+}
+
+}
+
+#endif
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index 2adf298..0c3441c 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -1,38 +1,38 @@
-#ifndef UNITTEST_XMLTESTREPORTER_H
-#define UNITTEST_XMLTESTREPORTER_H
-
-#include "../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "DeferredTestReporter.h"
-
-#include
-
-namespace UnitTest
-{
-
-class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter
-{
-public:
- explicit XmlTestReporter(std::ostream& ostream);
-
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
-
-private:
- XmlTestReporter(XmlTestReporter const&);
- XmlTestReporter& operator=(XmlTestReporter const&);
-
- void AddXmlElement(std::ostream& os, char const* encoding);
- void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
- void EndResults(std::ostream& os);
- void BeginTest(std::ostream& os, DeferredTestResult const& result);
- void AddFailure(std::ostream& os, DeferredTestResult const& result);
- void EndTest(std::ostream& os, DeferredTestResult const& result);
-
- std::ostream& m_ostream;
-};
-
-}
-
-#endif
-#endif
+#ifndef UNITTEST_XMLTESTREPORTER_H
+#define UNITTEST_XMLTESTREPORTER_H
+
+#include "../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "DeferredTestReporter.h"
+
+#include
+
+namespace UnitTest
+{
+
+class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter
+{
+public:
+ explicit XmlTestReporter(std::ostream& ostream);
+
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+
+private:
+ XmlTestReporter(XmlTestReporter const&);
+ XmlTestReporter& operator=(XmlTestReporter const&);
+
+ void AddXmlElement(std::ostream& os, char const* encoding);
+ void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+ void EndResults(std::ostream& os);
+ void BeginTest(std::ostream& os, DeferredTestResult const& result);
+ void AddFailure(std::ostream& os, DeferredTestResult const& result);
+ void EndTest(std::ostream& os, DeferredTestResult const& result);
+
+ std::ostream& m_ostream;
+};
+
+}
+
+#endif
+#endif
diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp
index 963ad7b..47de7db 100644
--- a/src/tests/Main.cpp
+++ b/src/tests/Main.cpp
@@ -1,6 +1,6 @@
-#include "../../unittestpp.h"
-
-int main(int, char const *[])
-{
- return UnitTest::RunAllTests();
-}
+#include "../../unittestpp.h"
+
+int main(int, char const *[])
+{
+ return UnitTest::RunAllTests();
+}
diff --git a/src/tests/RecordingReporter.h b/src/tests/RecordingReporter.h
index df46fdf..982c294 100644
--- a/src/tests/RecordingReporter.h
+++ b/src/tests/RecordingReporter.h
@@ -1,98 +1,98 @@
-#ifndef UNITTEST_RECORDINGREPORTER_H
-#define UNITTEST_RECORDINGREPORTER_H
-
-#include "../TestReporter.h"
-#include
-
-#include "../TestDetails.h"
-
-struct RecordingReporter : public UnitTest::TestReporter
-{
-private:
- enum { kMaxStringLength = 256 };
-
-public:
- RecordingReporter()
- : testRunCount(0)
- , testFailedCount(0)
- , lastFailedLine(0)
- , testFinishedCount(0)
- , lastFinishedTestTime(0)
- , summaryTotalTestCount(0)
- , summaryFailedTestCount(0)
- , summaryFailureCount(0)
- , summarySecondsElapsed(0)
- {
- lastStartedSuite[0] = '\0';
- lastStartedTest[0] = '\0';
- lastFailedFile[0] = '\0';
- lastFailedSuite[0] = '\0';
- lastFailedTest[0] = '\0';
- lastFailedMessage[0] = '\0';
- lastFinishedSuite[0] = '\0';
- lastFinishedTest[0] = '\0';
- }
-
- virtual void ReportTestStart(UnitTest::TestDetails const& test)
- {
- using namespace std;
-
- ++testRunCount;
- strcpy(lastStartedSuite, test.suiteName);
- strcpy(lastStartedTest, test.testName);
- }
-
- virtual void ReportFailure(UnitTest::TestDetails const& test, char const* failure)
- {
- using namespace std;
-
- ++testFailedCount;
- strcpy(lastFailedFile, test.filename);
- lastFailedLine = test.lineNumber;
- strcpy(lastFailedSuite, test.suiteName);
- strcpy(lastFailedTest, test.testName);
- strcpy(lastFailedMessage, failure);
- }
-
- virtual void ReportTestFinish(UnitTest::TestDetails const& test, float testDuration)
- {
- using namespace std;
-
- ++testFinishedCount;
- strcpy(lastFinishedSuite, test.suiteName);
- strcpy(lastFinishedTest, test.testName);
- lastFinishedTestTime = testDuration;
- }
-
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed)
- {
- summaryTotalTestCount = totalTestCount;
- summaryFailedTestCount = failedTestCount;
- summaryFailureCount = failureCount;
- summarySecondsElapsed = secondsElapsed;
- }
-
- int testRunCount;
- char lastStartedSuite[kMaxStringLength];
- char lastStartedTest[kMaxStringLength];
-
- int testFailedCount;
- char lastFailedFile[kMaxStringLength];
- int lastFailedLine;
- char lastFailedSuite[kMaxStringLength];
- char lastFailedTest[kMaxStringLength];
- char lastFailedMessage[kMaxStringLength];
-
- int testFinishedCount;
- char lastFinishedSuite[kMaxStringLength];
- char lastFinishedTest[kMaxStringLength];
- float lastFinishedTestTime;
-
- int summaryTotalTestCount;
- int summaryFailedTestCount;
- int summaryFailureCount;
- float summarySecondsElapsed;
-};
-
-
-#endif
+#ifndef UNITTEST_RECORDINGREPORTER_H
+#define UNITTEST_RECORDINGREPORTER_H
+
+#include "../TestReporter.h"
+#include
+
+#include "../TestDetails.h"
+
+struct RecordingReporter : public UnitTest::TestReporter
+{
+private:
+ enum { kMaxStringLength = 256 };
+
+public:
+ RecordingReporter()
+ : testRunCount(0)
+ , testFailedCount(0)
+ , lastFailedLine(0)
+ , testFinishedCount(0)
+ , lastFinishedTestTime(0)
+ , summaryTotalTestCount(0)
+ , summaryFailedTestCount(0)
+ , summaryFailureCount(0)
+ , summarySecondsElapsed(0)
+ {
+ lastStartedSuite[0] = '\0';
+ lastStartedTest[0] = '\0';
+ lastFailedFile[0] = '\0';
+ lastFailedSuite[0] = '\0';
+ lastFailedTest[0] = '\0';
+ lastFailedMessage[0] = '\0';
+ lastFinishedSuite[0] = '\0';
+ lastFinishedTest[0] = '\0';
+ }
+
+ virtual void ReportTestStart(UnitTest::TestDetails const& test)
+ {
+ using namespace std;
+
+ ++testRunCount;
+ strcpy(lastStartedSuite, test.suiteName);
+ strcpy(lastStartedTest, test.testName);
+ }
+
+ virtual void ReportFailure(UnitTest::TestDetails const& test, char const* failure)
+ {
+ using namespace std;
+
+ ++testFailedCount;
+ strcpy(lastFailedFile, test.filename);
+ lastFailedLine = test.lineNumber;
+ strcpy(lastFailedSuite, test.suiteName);
+ strcpy(lastFailedTest, test.testName);
+ strcpy(lastFailedMessage, failure);
+ }
+
+ virtual void ReportTestFinish(UnitTest::TestDetails const& test, float testDuration)
+ {
+ using namespace std;
+
+ ++testFinishedCount;
+ strcpy(lastFinishedSuite, test.suiteName);
+ strcpy(lastFinishedTest, test.testName);
+ lastFinishedTestTime = testDuration;
+ }
+
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed)
+ {
+ summaryTotalTestCount = totalTestCount;
+ summaryFailedTestCount = failedTestCount;
+ summaryFailureCount = failureCount;
+ summarySecondsElapsed = secondsElapsed;
+ }
+
+ int testRunCount;
+ char lastStartedSuite[kMaxStringLength];
+ char lastStartedTest[kMaxStringLength];
+
+ int testFailedCount;
+ char lastFailedFile[kMaxStringLength];
+ int lastFailedLine;
+ char lastFailedSuite[kMaxStringLength];
+ char lastFailedTest[kMaxStringLength];
+ char lastFailedMessage[kMaxStringLength];
+
+ int testFinishedCount;
+ char lastFinishedSuite[kMaxStringLength];
+ char lastFinishedTest[kMaxStringLength];
+ float lastFinishedTestTime;
+
+ int summaryTotalTestCount;
+ int summaryFailedTestCount;
+ int summaryFailureCount;
+ float summarySecondsElapsed;
+};
+
+
+#endif
diff --git a/src/tests/ScopedCurrentTest.h b/src/tests/ScopedCurrentTest.h
index 68ae7f5..e03ae0a 100644
--- a/src/tests/ScopedCurrentTest.h
+++ b/src/tests/ScopedCurrentTest.h
@@ -1,37 +1,37 @@
-#ifndef UNITTEST_SCOPEDCURRENTTEST_H
-#define UNITTEST_SCOPEDCURRENTTEST_H
-
-#include "../CurrentTest.h"
-#include
-
-class ScopedCurrentTest
-{
-public:
- ScopedCurrentTest()
- : m_oldTestResults(UnitTest::CurrentTest::Results())
- , m_oldTestDetails(UnitTest::CurrentTest::Details())
- {
- }
-
- explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL)
- : m_oldTestResults(UnitTest::CurrentTest::Results())
- , m_oldTestDetails(UnitTest::CurrentTest::Details())
- {
- UnitTest::CurrentTest::Results() = &newResults;
-
- if (newDetails != NULL)
- UnitTest::CurrentTest::Details() = newDetails;
- }
-
- ~ScopedCurrentTest()
- {
- UnitTest::CurrentTest::Results() = m_oldTestResults;
- UnitTest::CurrentTest::Details() = m_oldTestDetails;
- }
-
-private:
- UnitTest::TestResults* m_oldTestResults;
- const UnitTest::TestDetails* m_oldTestDetails;
-};
-
-#endif
+#ifndef UNITTEST_SCOPEDCURRENTTEST_H
+#define UNITTEST_SCOPEDCURRENTTEST_H
+
+#include "../CurrentTest.h"
+#include
+
+class ScopedCurrentTest
+{
+public:
+ ScopedCurrentTest()
+ : m_oldTestResults(UnitTest::CurrentTest::Results())
+ , m_oldTestDetails(UnitTest::CurrentTest::Details())
+ {
+ }
+
+ explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL)
+ : m_oldTestResults(UnitTest::CurrentTest::Results())
+ , m_oldTestDetails(UnitTest::CurrentTest::Details())
+ {
+ UnitTest::CurrentTest::Results() = &newResults;
+
+ if (newDetails != NULL)
+ UnitTest::CurrentTest::Details() = newDetails;
+ }
+
+ ~ScopedCurrentTest()
+ {
+ UnitTest::CurrentTest::Results() = m_oldTestResults;
+ UnitTest::CurrentTest::Details() = m_oldTestDetails;
+ }
+
+private:
+ UnitTest::TestResults* m_oldTestResults;
+ const UnitTest::TestDetails* m_oldTestDetails;
+};
+
+#endif
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 3b28c5f..6caba43 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,136 +1,136 @@
-#include "../../config.h"
-#include "../../unittestpp.h"
-
-#include "../ReportAssert.h"
-#include "../ReportAssertImpl.h"
-#include "../AssertException.h"
-
-#include "RecordingReporter.h"
-#include
-
-using namespace UnitTest;
-
-namespace {
-
-TEST(CanSetAssertExpected)
-{
- Detail::ExpectAssert(true);
- CHECK(Detail::AssertExpected());
-
- Detail::ExpectAssert(false);
- CHECK(!Detail::AssertExpected());
-}
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-TEST(ReportAssertThrowsAssertException)
-{
- bool caught = false;
-
- try
- {
- TestResults testResults;
- TestDetails testDetails("", "", "", 0);
- Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
- }
- catch(AssertException const&)
- {
- caught = true;
- }
-
- CHECK(true == caught);
-}
-
-TEST(ReportAssertClearsExpectAssertFlag)
-{
- RecordingReporter reporter;
- TestResults testResults(&reporter);
- TestDetails testDetails("", "", "", 0);
-
- try
- {
- Detail::ExpectAssert(true);
- Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
- }
- catch(AssertException const&)
- {
- }
-
- CHECK(Detail::AssertExpected() == false);
- CHECK_EQUAL(0, reporter.testFailedCount);
-}
-
-TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected)
-{
- const int lineNumber = 12345;
- const char* description = "description";
- const char* filename = "filename";
-
- RecordingReporter reporter;
- TestResults testResults(&reporter);
- TestDetails testDetails("", "", "", 0);
-
- try
- {
- Detail::ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber);
- }
- catch(AssertException const&)
- {
- }
-
- CHECK_EQUAL(description, reporter.lastFailedMessage);
- CHECK_EQUAL(filename, reporter.lastFailedFile);
- CHECK_EQUAL(lineNumber, reporter.lastFailedLine);
-}
-
-TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
-{
- Detail::ExpectAssert(true);
-
- RecordingReporter reporter;
- TestResults testResults(&reporter);
- TestDetails testDetails("", "", "", 0);
-
- try
- {
- Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
- }
- catch(AssertException const&)
- {
- }
-
- CHECK_EQUAL(0, reporter.testFailedCount);
-}
-
-TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning)
-{
- Detail::ExpectAssert(true);
- CHECK_ASSERT(ReportAssert("", "", 0));
- CHECK(!Detail::AssertExpected());
- Detail::ExpectAssert(false);
-}
-
-#else
-
-TEST(SetAssertJumpTargetReturnsFalseWhenSettingJumpTarget)
-{
- CHECK(UNITTEST_SET_ASSERT_JUMP_TARGET() == false);
-}
-
-TEST(JumpToAssertJumpTarget_JumpsToSetPoint_ReturnsTrue)
-{
- const volatile bool taken = !!UNITTEST_SET_ASSERT_JUMP_TARGET();
-
- volatile bool set = false;
- if (taken == false)
- {
- UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
- set = true;
- }
-
- CHECK(set == false);
-}
-
-#endif
-
-}
+#include "../../config.h"
+#include "../../unittestpp.h"
+
+#include "../ReportAssert.h"
+#include "../ReportAssertImpl.h"
+#include "../AssertException.h"
+
+#include "RecordingReporter.h"
+#include
+
+using namespace UnitTest;
+
+namespace {
+
+TEST(CanSetAssertExpected)
+{
+ Detail::ExpectAssert(true);
+ CHECK(Detail::AssertExpected());
+
+ Detail::ExpectAssert(false);
+ CHECK(!Detail::AssertExpected());
+}
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+TEST(ReportAssertThrowsAssertException)
+{
+ bool caught = false;
+
+ try
+ {
+ TestResults testResults;
+ TestDetails testDetails("", "", "", 0);
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ }
+ catch(AssertException const&)
+ {
+ caught = true;
+ }
+
+ CHECK(true == caught);
+}
+
+TEST(ReportAssertClearsExpectAssertFlag)
+{
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
+ try
+ {
+ Detail::ExpectAssert(true);
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ }
+ catch(AssertException const&)
+ {
+ }
+
+ CHECK(Detail::AssertExpected() == false);
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected)
+{
+ const int lineNumber = 12345;
+ const char* description = "description";
+ const char* filename = "filename";
+
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
+ try
+ {
+ Detail::ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber);
+ }
+ catch(AssertException const&)
+ {
+ }
+
+ CHECK_EQUAL(description, reporter.lastFailedMessage);
+ CHECK_EQUAL(filename, reporter.lastFailedFile);
+ CHECK_EQUAL(lineNumber, reporter.lastFailedLine);
+}
+
+TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected)
+{
+ Detail::ExpectAssert(true);
+
+ RecordingReporter reporter;
+ TestResults testResults(&reporter);
+ TestDetails testDetails("", "", "", 0);
+
+ try
+ {
+ Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0);
+ }
+ catch(AssertException const&)
+ {
+ }
+
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning)
+{
+ Detail::ExpectAssert(true);
+ CHECK_ASSERT(ReportAssert("", "", 0));
+ CHECK(!Detail::AssertExpected());
+ Detail::ExpectAssert(false);
+}
+
+#else
+
+TEST(SetAssertJumpTargetReturnsFalseWhenSettingJumpTarget)
+{
+ CHECK(UNITTEST_SET_ASSERT_JUMP_TARGET() == false);
+}
+
+TEST(JumpToAssertJumpTarget_JumpsToSetPoint_ReturnsTrue)
+{
+ const volatile bool taken = !!UNITTEST_SET_ASSERT_JUMP_TARGET();
+
+ volatile bool set = false;
+ if (taken == false)
+ {
+ UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET();
+ set = true;
+ }
+
+ CHECK(set == false);
+}
+
+#endif
+
+}
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index 6b9fb66..c6c727b 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -1,518 +1,518 @@
-#include "../../unittestpp.h"
-#include "../CurrentTest.h"
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-using namespace std;
-
-namespace {
-
-TEST(CheckSucceedsOnTrue)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
-
- ScopedCurrentTest scopedResults(testResults);
- CHECK(true);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckFailsOnFalse)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(false);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(FailureReportsCorrectTestName)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(false);
- }
-
- CHECK_EQUAL(m_details.testName, reporter.lastFailedTest);
-}
-
-TEST(CheckFailureIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- const bool yaddayadda = false;
- CHECK(yaddayadda);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "yaddayadda"));
-}
-
-TEST(CheckEqualSucceedsOnEqual)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(1, 1);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckEqualFailsOnNotEqual)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(1, 2);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckEqualFailureContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- CHECK_EQUAL(1, 123); line = __LINE__;
- }
-
- CHECK_EQUAL("testName", reporter.lastFailedTest);
- CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-int g_sideEffect = 0;
-int FunctionWithSideEffects()
-{
- ++g_sideEffect;
- return 1;
-}
-
-TEST(CheckEqualDoesNotHaveSideEffectsWhenPassing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(1, FunctionWithSideEffects());
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckEqualDoesNotHaveSideEffectsWhenFailing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(2, FunctionWithSideEffects());
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-
-TEST(CheckCloseSucceedsOnEqual)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE (1.0f, 1.001f, 0.01f);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckCloseFailsOnNotEqual)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE (1.0f, 1.1f, 0.01f);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckCloseFailureContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("test", "suite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- CHECK_CLOSE (1.0f, 1.1f, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("test", reporter.lastFailedTest);
- CHECK_EQUAL("suite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckCloseDoesNotHaveSideEffectsWhenPassing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE (1, FunctionWithSideEffects(), 0.1f);
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckCloseDoesNotHaveSideEffectsWhenFailing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE (2, FunctionWithSideEffects(), 0.1f);
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckArrayCloseSucceedsOnEqual)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- const float data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE (data, data, 4, 0.01f);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckArrayCloseFailsOnNotEqual)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayCloseFailureIncludesCheckExpectedAndActual)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]"));
- CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]"));
-}
-
-TEST(CheckArrayCloseFailureContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckArrayCloseFailureIncludesTolerance)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- float const data1[4] = { 0, 1, 2, 3 };
- float const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "0.01"));
-}
-
-TEST(CheckArrayEqualSuceedsOnEqual)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_EQUAL (data, data, 4);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckArrayEqualFailsOnNotEqual)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_EQUAL (data1, data2, 4);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayEqualFailureIncludesCheckExpectedAndActual)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_EQUAL (data1, data2, 4);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]"));
- CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]"));
-}
-
-TEST(CheckArrayEqualFailureContainsCorrectInfo)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[4] = { 0, 1, 2, 3 };
- int const data2[4] = { 0, 1, 3, 3 };
- CHECK_ARRAY_EQUAL (data1, data2, 4); line = __LINE__;
- }
-
- CHECK_EQUAL("CheckArrayEqualFailureContainsCorrectInfo", reporter.lastFailedTest);
- CHECK_EQUAL(__FILE__, reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-float const* FunctionWithSideEffects2()
-{
- ++g_sideEffect;
- static float const data[] = {1,2,3,4};
- return data;
-}
-
-TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenPassing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f);
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenFailing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[] = { 0, 1, 3, 3 };
- CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f);
- }
-
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckArray2DCloseSucceedsOnEqual)
-{
- bool failure = true;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE (data, data, 2, 2, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(!failure);
-}
-
-TEST(CheckArray2DCloseFailsOnNotEqual)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[2][2] = { {0, 1}, {2, 3} };
- int const data2[2][2] = { {0, 1}, {3, 3} };
- CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArray2DCloseFailureIncludesCheckExpectedAndActual)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- int const data1[2][2] = { {0, 1}, {2, 3} };
- int const data2[2][2] = { {0, 1}, {3, 3} };
-
- CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "xpected [ [ 0 1 ] [ 2 3 ] ]"));
- CHECK(strstr(reporter.lastFailedMessage, "was [ [ 0 1 ] [ 3 3 ] ]"));
-}
-
-TEST(CheckArray2DCloseFailureContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- int const data1[2][2] = { {0, 1}, {2, 3} };
- int const data2[2][2] = { {0, 1}, {3, 3} };
- CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckArray2DCloseFailureIncludesTolerance)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- float const data1[2][2] = { {0, 1}, {2, 3} };
- float const data2[2][2] = { {0, 1}, {3, 3} };
- CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "0.01"));
-}
-
-float const* const* FunctionWithSideEffects3()
-{
- ++g_sideEffect;
- static float const data1[] = {0,1};
- static float const data2[] = {2,3};
- static const float* const data[] = {data1, data2};
- return data;
-}
-
-TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenPassing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f);
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenFailing)
-{
- g_sideEffect = 0;
- {
- UnitTest::TestResults testResults;
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {3, 3} };
- CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f);
- }
- CHECK_EQUAL(1, g_sideEffect);
-}
-
-}
+#include "../../unittestpp.h"
+#include "../CurrentTest.h"
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+using namespace std;
+
+namespace {
+
+TEST(CheckSucceedsOnTrue)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(true);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckFailsOnFalse)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(false);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(FailureReportsCorrectTestName)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(false);
+ }
+
+ CHECK_EQUAL(m_details.testName, reporter.lastFailedTest);
+}
+
+TEST(CheckFailureIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ const bool yaddayadda = false;
+ CHECK(yaddayadda);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "yaddayadda"));
+}
+
+TEST(CheckEqualSucceedsOnEqual)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(1, 1);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckEqualFailsOnNotEqual)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(1, 2);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckEqualFailureContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ CHECK_EQUAL(1, 123); line = __LINE__;
+ }
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+int g_sideEffect = 0;
+int FunctionWithSideEffects()
+{
+ ++g_sideEffect;
+ return 1;
+}
+
+TEST(CheckEqualDoesNotHaveSideEffectsWhenPassing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(1, FunctionWithSideEffects());
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckEqualDoesNotHaveSideEffectsWhenFailing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(2, FunctionWithSideEffects());
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+
+TEST(CheckCloseSucceedsOnEqual)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE (1.0f, 1.001f, 0.01f);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckCloseFailsOnNotEqual)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE (1.0f, 1.1f, 0.01f);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckCloseFailureContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("test", "suite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ CHECK_CLOSE (1.0f, 1.1f, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("test", reporter.lastFailedTest);
+ CHECK_EQUAL("suite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckCloseDoesNotHaveSideEffectsWhenPassing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE (1, FunctionWithSideEffects(), 0.1f);
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckCloseDoesNotHaveSideEffectsWhenFailing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE (2, FunctionWithSideEffects(), 0.1f);
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckArrayCloseSucceedsOnEqual)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ const float data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE (data, data, 4, 0.01f);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckArrayCloseFailsOnNotEqual)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayCloseFailureIncludesCheckExpectedAndActual)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]"));
+ CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]"));
+}
+
+TEST(CheckArrayCloseFailureContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArrayCloseFailureIncludesTolerance)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ float const data1[4] = { 0, 1, 2, 3 };
+ float const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "0.01"));
+}
+
+TEST(CheckArrayEqualSuceedsOnEqual)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_EQUAL (data, data, 4);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckArrayEqualFailsOnNotEqual)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_EQUAL (data1, data2, 4);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayEqualFailureIncludesCheckExpectedAndActual)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_EQUAL (data1, data2, 4);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]"));
+ CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]"));
+}
+
+TEST(CheckArrayEqualFailureContainsCorrectInfo)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[4] = { 0, 1, 2, 3 };
+ int const data2[4] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_EQUAL (data1, data2, 4); line = __LINE__;
+ }
+
+ CHECK_EQUAL("CheckArrayEqualFailureContainsCorrectInfo", reporter.lastFailedTest);
+ CHECK_EQUAL(__FILE__, reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+float const* FunctionWithSideEffects2()
+{
+ ++g_sideEffect;
+ static float const data[] = {1,2,3,4};
+ return data;
+}
+
+TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenPassing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f);
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenFailing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[] = { 0, 1, 3, 3 };
+ CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f);
+ }
+
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckArray2DCloseSucceedsOnEqual)
+{
+ bool failure = true;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE (data, data, 2, 2, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(!failure);
+}
+
+TEST(CheckArray2DCloseFailsOnNotEqual)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[2][2] = { {0, 1}, {2, 3} };
+ int const data2[2][2] = { {0, 1}, {3, 3} };
+ CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArray2DCloseFailureIncludesCheckExpectedAndActual)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ int const data1[2][2] = { {0, 1}, {2, 3} };
+ int const data2[2][2] = { {0, 1}, {3, 3} };
+
+ CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "xpected [ [ 0 1 ] [ 2 3 ] ]"));
+ CHECK(strstr(reporter.lastFailedMessage, "was [ [ 0 1 ] [ 3 3 ] ]"));
+}
+
+TEST(CheckArray2DCloseFailureContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ int const data1[2][2] = { {0, 1}, {2, 3} };
+ int const data2[2][2] = { {0, 1}, {3, 3} };
+ CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArray2DCloseFailureIncludesTolerance)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ float const data1[2][2] = { {0, 1}, {2, 3} };
+ float const data2[2][2] = { {0, 1}, {3, 3} };
+ CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "0.01"));
+}
+
+float const* const* FunctionWithSideEffects3()
+{
+ ++g_sideEffect;
+ static float const data1[] = {0,1};
+ static float const data2[] = {2,3};
+ static const float* const data[] = {data1, data2};
+ return data;
+}
+
+TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenPassing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f);
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenFailing)
+{
+ g_sideEffect = 0;
+ {
+ UnitTest::TestResults testResults;
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {3, 3} };
+ CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f);
+ }
+ CHECK_EQUAL(1, g_sideEffect);
+}
+
+}
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index 10b3071..110102a 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -1,291 +1,291 @@
-#include "../../unittestpp.h"
-#include "RecordingReporter.h"
-
-#include
-
-using namespace UnitTest;
-
-
-namespace {
-
-
-TEST(CheckEqualWithUnsignedLong)
-{
- TestResults results;
- unsigned long something = 2;
- CHECK_EQUAL(something, something);
-}
-
-TEST(CheckEqualsWithStringsFailsOnDifferentStrings)
-{
- char txt1[] = "Hello";
- char txt2[] = "Hallo";
- TestResults results;
- CheckEqual(results, txt1, txt2, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-char txt1[] = "Hello"; // non-const on purpose so no folding of duplicate data
-char txt2[] = "Hello";
-
-TEST(CheckEqualsWithStringsWorksOnContentsNonConstNonConst)
-{
- char const* const p1 = txt1;
- char const* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckEqualsWithStringsWorksOnContentsConstConst)
-{
- char* const p1 = txt1;
- char* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckEqualsWithStringsWorksOnContentsNonConstConst)
-{
- char* const p1 = txt1;
- char const* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckEqualsWithStringsWorksOnContentsConstNonConst)
-{
- char const* const p1 = txt1;
- char* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral)
-{
- char const* const p1 = txt1;
- TestResults results;
- CheckEqual(results, "Hello", p1, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckEqualFailureIncludesCheckExpectedAndActual)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- const int something = 2;
- CheckEqual(results, 1, something, TestDetails("", "", "", 0));
-
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "xpected 1"));
- CHECK(strstr(reporter.lastFailedMessage, "was 2"));
-}
-
-TEST(CheckEqualFailureIncludesDetails)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("mytest", "mysuite", "file.h", 101);
-
- CheckEqual(results, 1, 2, details);
-
- CHECK_EQUAL("mytest", reporter.lastFailedTest);
- CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file.h", reporter.lastFailedFile);
- CHECK_EQUAL(101, reporter.lastFailedLine);
-}
-
-TEST(CheckCloseTrue)
-{
- TestResults results;
- CheckClose(results, 3.001f, 3.0f, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckCloseFalse)
-{
- TestResults results;
- CheckClose(results, 3.12f, 3.0f, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckCloseWithZeroEpsilonWorksForSameNumber)
-{
- TestResults results;
- CheckClose(results, 0.1f, 0.1f, 0, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckCloseWithNaNFails)
-{
- const unsigned int bitpattern = 0xFFFFFFFF;
- float nan;
- std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
-
- TestResults results;
- CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckCloseWithNaNAgainstItselfFails)
-{
- const unsigned int bitpattern = 0xFFFFFFFF;
- float nan;
- std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
-
- TestResults results;
- CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckCloseFailureIncludesCheckExpectedAndActual)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- const float expected = 0.9f;
- const float actual = 1.1f;
- CheckClose(results, expected, actual, 0.01f, TestDetails("", "", "", 0));
-
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "xpected 0.9"));
- CHECK(strstr(reporter.lastFailedMessage, "was 1.1"));
-}
-
-TEST(CheckCloseFailureIncludesTolerance)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- CheckClose(results, 2, 3, 0.01f, TestDetails("", "", "", 0));
-
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "0.01"));
-}
-
-TEST(CheckCloseFailureIncludesDetails)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("mytest", "mysuite", "header.h", 10);
-
- CheckClose(results, 2, 3, 0.01f, details);
-
- CHECK_EQUAL("mytest", reporter.lastFailedTest);
- CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
- CHECK_EQUAL("header.h", reporter.lastFailedFile);
- CHECK_EQUAL(10, reporter.lastFailedLine);
-}
-
-
-TEST(CheckArrayEqualTrue)
-{
- TestResults results;
-
- int const array[3] = { 1, 2, 3 };
- CheckArrayEqual(results, array, array, 3, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckArrayEqualFalse)
-{
- TestResults results;
-
- int const array1[3] = { 1, 2, 3 };
- int const array2[3] = { 1, 2, 2 };
- CheckArrayEqual(results, array1, array2, 3, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckArrayCloseTrue)
-{
- TestResults results;
-
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.02f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckArrayCloseFalse)
-{
- TestResults results;
-
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.001f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckArrayCloseFailureIncludesDetails)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("arrayCloseTest", "arrayCloseSuite", "file", 1337);
-
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.001f, details);
-
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file", reporter.lastFailedFile);
- CHECK_EQUAL(1337, reporter.lastFailedLine);
-}
-
-
-TEST(CheckArray2DCloseTrue)
-{
- TestResults results;
-
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.02f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-TEST(CheckArray2DCloseFalse)
-{
- TestResults results;
-
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckCloseWithDoublesSucceeds)
-{
- CHECK_CLOSE(0.5, 0.5, 0.0001);
-}
-
-TEST(CheckArray2DCloseFailureIncludesDetails)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("array2DCloseTest", "array2DCloseSuite", "file", 1234);
-
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, details);
-
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file", reporter.lastFailedFile);
- CHECK_EQUAL(1234, reporter.lastFailedLine);
-}
-
-}
+#include "../../unittestpp.h"
+#include "RecordingReporter.h"
+
+#include
+
+using namespace UnitTest;
+
+
+namespace {
+
+
+TEST(CheckEqualWithUnsignedLong)
+{
+ TestResults results;
+ unsigned long something = 2;
+ CHECK_EQUAL(something, something);
+}
+
+TEST(CheckEqualsWithStringsFailsOnDifferentStrings)
+{
+ char txt1[] = "Hello";
+ char txt2[] = "Hallo";
+ TestResults results;
+ CheckEqual(results, txt1, txt2, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+char txt1[] = "Hello"; // non-const on purpose so no folding of duplicate data
+char txt2[] = "Hello";
+
+TEST(CheckEqualsWithStringsWorksOnContentsNonConstNonConst)
+{
+ char const* const p1 = txt1;
+ char const* const p2 = txt2;
+ TestResults results;
+ CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnContentsConstConst)
+{
+ char* const p1 = txt1;
+ char* const p2 = txt2;
+ TestResults results;
+ CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnContentsNonConstConst)
+{
+ char* const p1 = txt1;
+ char const* const p2 = txt2;
+ TestResults results;
+ CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnContentsConstNonConst)
+{
+ char const* const p1 = txt1;
+ char* const p2 = txt2;
+ TestResults results;
+ CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral)
+{
+ char const* const p1 = txt1;
+ TestResults results;
+ CheckEqual(results, "Hello", p1, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckEqualFailureIncludesCheckExpectedAndActual)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ const int something = 2;
+ CheckEqual(results, 1, something, TestDetails("", "", "", 0));
+
+ using namespace std;
+ CHECK(strstr(reporter.lastFailedMessage, "xpected 1"));
+ CHECK(strstr(reporter.lastFailedMessage, "was 2"));
+}
+
+TEST(CheckEqualFailureIncludesDetails)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ TestDetails const details("mytest", "mysuite", "file.h", 101);
+
+ CheckEqual(results, 1, 2, details);
+
+ CHECK_EQUAL("mytest", reporter.lastFailedTest);
+ CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("file.h", reporter.lastFailedFile);
+ CHECK_EQUAL(101, reporter.lastFailedLine);
+}
+
+TEST(CheckCloseTrue)
+{
+ TestResults results;
+ CheckClose(results, 3.001f, 3.0f, 0.1f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckCloseFalse)
+{
+ TestResults results;
+ CheckClose(results, 3.12f, 3.0f, 0.1f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckCloseWithZeroEpsilonWorksForSameNumber)
+{
+ TestResults results;
+ CheckClose(results, 0.1f, 0.1f, 0, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckCloseWithNaNFails)
+{
+ const unsigned int bitpattern = 0xFFFFFFFF;
+ float nan;
+ std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
+
+ TestResults results;
+ CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckCloseWithNaNAgainstItselfFails)
+{
+ const unsigned int bitpattern = 0xFFFFFFFF;
+ float nan;
+ std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
+
+ TestResults results;
+ CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckCloseFailureIncludesCheckExpectedAndActual)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ const float expected = 0.9f;
+ const float actual = 1.1f;
+ CheckClose(results, expected, actual, 0.01f, TestDetails("", "", "", 0));
+
+ using namespace std;
+ CHECK(strstr(reporter.lastFailedMessage, "xpected 0.9"));
+ CHECK(strstr(reporter.lastFailedMessage, "was 1.1"));
+}
+
+TEST(CheckCloseFailureIncludesTolerance)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ CheckClose(results, 2, 3, 0.01f, TestDetails("", "", "", 0));
+
+ using namespace std;
+ CHECK(strstr(reporter.lastFailedMessage, "0.01"));
+}
+
+TEST(CheckCloseFailureIncludesDetails)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ TestDetails const details("mytest", "mysuite", "header.h", 10);
+
+ CheckClose(results, 2, 3, 0.01f, details);
+
+ CHECK_EQUAL("mytest", reporter.lastFailedTest);
+ CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("header.h", reporter.lastFailedFile);
+ CHECK_EQUAL(10, reporter.lastFailedLine);
+}
+
+
+TEST(CheckArrayEqualTrue)
+{
+ TestResults results;
+
+ int const array[3] = { 1, 2, 3 };
+ CheckArrayEqual(results, array, array, 3, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckArrayEqualFalse)
+{
+ TestResults results;
+
+ int const array1[3] = { 1, 2, 3 };
+ int const array2[3] = { 1, 2, 2 };
+ CheckArrayEqual(results, array1, array2, 3, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckArrayCloseTrue)
+{
+ TestResults results;
+
+ float const array1[3] = { 1.0f, 1.5f, 2.0f };
+ float const array2[3] = { 1.01f, 1.51f, 2.01f };
+ CheckArrayClose(results, array1, array2, 3, 0.02f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckArrayCloseFalse)
+{
+ TestResults results;
+
+ float const array1[3] = { 1.0f, 1.5f, 2.0f };
+ float const array2[3] = { 1.01f, 1.51f, 2.01f };
+ CheckArrayClose(results, array1, array2, 3, 0.001f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckArrayCloseFailureIncludesDetails)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ TestDetails const details("arrayCloseTest", "arrayCloseSuite", "file", 1337);
+
+ float const array1[3] = { 1.0f, 1.5f, 2.0f };
+ float const array2[3] = { 1.01f, 1.51f, 2.01f };
+ CheckArrayClose(results, array1, array2, 3, 0.001f, details);
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("file", reporter.lastFailedFile);
+ CHECK_EQUAL(1337, reporter.lastFailedLine);
+}
+
+
+TEST(CheckArray2DCloseTrue)
+{
+ TestResults results;
+
+ float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
+ { 2.0f, 2.5f, 3.0f },
+ { 3.0f, 3.5f, 4.0f } };
+ float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
+ { 2.01f, 2.51f, 3.01f },
+ { 3.01f, 3.51f, 4.01f } };
+ CheckArray2DClose(results, array1, array2, 3, 3, 0.02f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+TEST(CheckArray2DCloseFalse)
+{
+ TestResults results;
+
+ float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
+ { 2.0f, 2.5f, 3.0f },
+ { 3.0f, 3.5f, 4.0f } };
+ float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
+ { 2.01f, 2.51f, 3.01f },
+ { 3.01f, 3.51f, 4.01f } };
+ CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, TestDetails("", "", "", 0));
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckCloseWithDoublesSucceeds)
+{
+ CHECK_CLOSE(0.5, 0.5, 0.0001);
+}
+
+TEST(CheckArray2DCloseFailureIncludesDetails)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ TestDetails const details("array2DCloseTest", "array2DCloseSuite", "file", 1234);
+
+ float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
+ { 2.0f, 2.5f, 3.0f },
+ { 3.0f, 3.5f, 4.0f } };
+ float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
+ { 2.01f, 2.51f, 3.01f },
+ { 3.01f, 3.51f, 4.01f } };
+ CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, details);
+
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("file", reporter.lastFailedFile);
+ CHECK_EQUAL(1234, reporter.lastFailedLine);
+}
+
+}
diff --git a/src/tests/TestCompositeTestReporter.cpp b/src/tests/TestCompositeTestReporter.cpp
index d302577..c3d6a24 100644
--- a/src/tests/TestCompositeTestReporter.cpp
+++ b/src/tests/TestCompositeTestReporter.cpp
@@ -1,176 +1,176 @@
-#include "../../unittestpp.h"
-#include "../CompositeTestReporter.h"
-
-using namespace UnitTest;
-
-namespace {
-
-TEST(ZeroReportersByDefault)
-{
- CHECK_EQUAL(0, CompositeTestReporter().GetReporterCount());
-}
-
-struct MockReporter : TestReporter
-{
- MockReporter()
- : testStartCalled(false)
- , testStartDetails(NULL)
- , failureCalled(false)
- , failureDetails(NULL)
- , failureStr(NULL)
- , testFinishCalled(false)
- , testFinishDetails(NULL)
- , testFinishSecondsElapsed(-1.0f)
- , summaryCalled(false)
- , summaryTotalTestCount(-1)
- , summaryFailureCount(-1)
- , summarySecondsElapsed(-1.0f)
- {
- }
-
- virtual void ReportTestStart(TestDetails const& test)
- {
- testStartCalled = true;
- testStartDetails = &test;
- }
-
- virtual void ReportFailure(TestDetails const& test, char const* failure)
- {
- failureCalled = true;
- failureDetails = &test;
- failureStr = failure;
- }
-
- virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed)
- {
- testFinishCalled = true;
- testFinishDetails = &test;
- testFinishSecondsElapsed = secondsElapsed;
- }
-
- virtual void ReportSummary(int totalTestCount,
- int failedTestCount,
- int failureCount,
- float secondsElapsed)
- {
- summaryCalled = true;
- summaryTotalTestCount = totalTestCount;
- summaryFailedTestCount = failedTestCount;
- summaryFailureCount = failureCount;
- summarySecondsElapsed = secondsElapsed;
- }
-
- bool testStartCalled;
- TestDetails const* testStartDetails;
-
- bool failureCalled;
- TestDetails const* failureDetails;
- const char* failureStr;
-
- bool testFinishCalled;
- TestDetails const* testFinishDetails;
- float testFinishSecondsElapsed;
-
- bool summaryCalled;
- int summaryTotalTestCount;
- int summaryFailedTestCount;
- int summaryFailureCount;
- float summarySecondsElapsed;
-};
-
-TEST(AddReporter)
-{
- MockReporter r;
- CompositeTestReporter c;
-
- CHECK(c.AddReporter(&r));
- CHECK_EQUAL(1, c.GetReporterCount());
-}
-
-TEST(RemoveReporter)
-{
- MockReporter r;
- CompositeTestReporter c;
-
- c.AddReporter(&r);
- CHECK(c.RemoveReporter(&r));
- CHECK_EQUAL(0, c.GetReporterCount());
-}
-
-struct Fixture
-{
- Fixture()
- {
- c.AddReporter(&r0);
- c.AddReporter(&r1);
- }
-
- MockReporter r0, r1;
- CompositeTestReporter c;
-};
-
-TEST_FIXTURE(Fixture, ReportTestStartCallsReportTestStartOnAllAggregates)
-{
- TestDetails t("", "", "", 0);
- c.ReportTestStart(t);
-
- CHECK(r0.testStartCalled);
- CHECK_EQUAL(&t, r0.testStartDetails);
- CHECK(r1.testStartCalled);
- CHECK_EQUAL(&t, r1.testStartDetails);
-}
-
-TEST_FIXTURE(Fixture, ReportFailureCallsReportFailureOnAllAggregates)
-{
- TestDetails t("", "", "", 0);
- const char* failStr = "fail";
- c.ReportFailure(t, failStr);
-
- CHECK(r0.failureCalled);
- CHECK_EQUAL(&t, r0.failureDetails);
- CHECK_EQUAL(failStr, r0.failureStr);
-
- CHECK(r1.failureCalled);
- CHECK_EQUAL(&t, r1.failureDetails);
- CHECK_EQUAL(failStr, r1.failureStr);
-}
-
-TEST_FIXTURE(Fixture, ReportTestFinishCallsReportTestFinishOnAllAggregates)
-{
- TestDetails t("", "", "", 0);
- const float s = 1.2345f;
- c.ReportTestFinish(t, s);
-
- CHECK(r0.testFinishCalled);
- CHECK_EQUAL(&t, r0.testFinishDetails);
- CHECK_CLOSE(s, r0.testFinishSecondsElapsed, 0.00001f);
-
- CHECK(r1.testFinishCalled);
- CHECK_EQUAL(&t, r1.testFinishDetails);
- CHECK_CLOSE(s, r1.testFinishSecondsElapsed, 0.00001f);
-}
-
-TEST_FIXTURE(Fixture, ReportSummaryCallsReportSummaryOnAllAggregates)
-{
- TestDetails t("", "", "", 0);
- const int testCount = 3;
- const int failedTestCount = 4;
- const int failureCount = 5;
- const float secondsElapsed = 3.14159f;
-
- c.ReportSummary(testCount, failedTestCount, failureCount, secondsElapsed);
-
- CHECK(r0.summaryCalled);
- CHECK_EQUAL(testCount, r0.summaryTotalTestCount);
- CHECK_EQUAL(failedTestCount, r0.summaryFailedTestCount);
- CHECK_EQUAL(failureCount, r0.summaryFailureCount);
- CHECK_CLOSE(secondsElapsed, r0.summarySecondsElapsed, 0.00001f);
-
- CHECK(r1.summaryCalled);
- CHECK_EQUAL(testCount, r1.summaryTotalTestCount);
- CHECK_EQUAL(failedTestCount, r1.summaryFailedTestCount);
- CHECK_EQUAL(failureCount, r1.summaryFailureCount);
- CHECK_CLOSE(secondsElapsed, r1.summarySecondsElapsed, 0.00001f);
-}
-
-}
+#include "../../unittestpp.h"
+#include "../CompositeTestReporter.h"
+
+using namespace UnitTest;
+
+namespace {
+
+TEST(ZeroReportersByDefault)
+{
+ CHECK_EQUAL(0, CompositeTestReporter().GetReporterCount());
+}
+
+struct MockReporter : TestReporter
+{
+ MockReporter()
+ : testStartCalled(false)
+ , testStartDetails(NULL)
+ , failureCalled(false)
+ , failureDetails(NULL)
+ , failureStr(NULL)
+ , testFinishCalled(false)
+ , testFinishDetails(NULL)
+ , testFinishSecondsElapsed(-1.0f)
+ , summaryCalled(false)
+ , summaryTotalTestCount(-1)
+ , summaryFailureCount(-1)
+ , summarySecondsElapsed(-1.0f)
+ {
+ }
+
+ virtual void ReportTestStart(TestDetails const& test)
+ {
+ testStartCalled = true;
+ testStartDetails = &test;
+ }
+
+ virtual void ReportFailure(TestDetails const& test, char const* failure)
+ {
+ failureCalled = true;
+ failureDetails = &test;
+ failureStr = failure;
+ }
+
+ virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed)
+ {
+ testFinishCalled = true;
+ testFinishDetails = &test;
+ testFinishSecondsElapsed = secondsElapsed;
+ }
+
+ virtual void ReportSummary(int totalTestCount,
+ int failedTestCount,
+ int failureCount,
+ float secondsElapsed)
+ {
+ summaryCalled = true;
+ summaryTotalTestCount = totalTestCount;
+ summaryFailedTestCount = failedTestCount;
+ summaryFailureCount = failureCount;
+ summarySecondsElapsed = secondsElapsed;
+ }
+
+ bool testStartCalled;
+ TestDetails const* testStartDetails;
+
+ bool failureCalled;
+ TestDetails const* failureDetails;
+ const char* failureStr;
+
+ bool testFinishCalled;
+ TestDetails const* testFinishDetails;
+ float testFinishSecondsElapsed;
+
+ bool summaryCalled;
+ int summaryTotalTestCount;
+ int summaryFailedTestCount;
+ int summaryFailureCount;
+ float summarySecondsElapsed;
+};
+
+TEST(AddReporter)
+{
+ MockReporter r;
+ CompositeTestReporter c;
+
+ CHECK(c.AddReporter(&r));
+ CHECK_EQUAL(1, c.GetReporterCount());
+}
+
+TEST(RemoveReporter)
+{
+ MockReporter r;
+ CompositeTestReporter c;
+
+ c.AddReporter(&r);
+ CHECK(c.RemoveReporter(&r));
+ CHECK_EQUAL(0, c.GetReporterCount());
+}
+
+struct Fixture
+{
+ Fixture()
+ {
+ c.AddReporter(&r0);
+ c.AddReporter(&r1);
+ }
+
+ MockReporter r0, r1;
+ CompositeTestReporter c;
+};
+
+TEST_FIXTURE(Fixture, ReportTestStartCallsReportTestStartOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ c.ReportTestStart(t);
+
+ CHECK(r0.testStartCalled);
+ CHECK_EQUAL(&t, r0.testStartDetails);
+ CHECK(r1.testStartCalled);
+ CHECK_EQUAL(&t, r1.testStartDetails);
+}
+
+TEST_FIXTURE(Fixture, ReportFailureCallsReportFailureOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const char* failStr = "fail";
+ c.ReportFailure(t, failStr);
+
+ CHECK(r0.failureCalled);
+ CHECK_EQUAL(&t, r0.failureDetails);
+ CHECK_EQUAL(failStr, r0.failureStr);
+
+ CHECK(r1.failureCalled);
+ CHECK_EQUAL(&t, r1.failureDetails);
+ CHECK_EQUAL(failStr, r1.failureStr);
+}
+
+TEST_FIXTURE(Fixture, ReportTestFinishCallsReportTestFinishOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const float s = 1.2345f;
+ c.ReportTestFinish(t, s);
+
+ CHECK(r0.testFinishCalled);
+ CHECK_EQUAL(&t, r0.testFinishDetails);
+ CHECK_CLOSE(s, r0.testFinishSecondsElapsed, 0.00001f);
+
+ CHECK(r1.testFinishCalled);
+ CHECK_EQUAL(&t, r1.testFinishDetails);
+ CHECK_CLOSE(s, r1.testFinishSecondsElapsed, 0.00001f);
+}
+
+TEST_FIXTURE(Fixture, ReportSummaryCallsReportSummaryOnAllAggregates)
+{
+ TestDetails t("", "", "", 0);
+ const int testCount = 3;
+ const int failedTestCount = 4;
+ const int failureCount = 5;
+ const float secondsElapsed = 3.14159f;
+
+ c.ReportSummary(testCount, failedTestCount, failureCount, secondsElapsed);
+
+ CHECK(r0.summaryCalled);
+ CHECK_EQUAL(testCount, r0.summaryTotalTestCount);
+ CHECK_EQUAL(failedTestCount, r0.summaryFailedTestCount);
+ CHECK_EQUAL(failureCount, r0.summaryFailureCount);
+ CHECK_CLOSE(secondsElapsed, r0.summarySecondsElapsed, 0.00001f);
+
+ CHECK(r1.summaryCalled);
+ CHECK_EQUAL(testCount, r1.summaryTotalTestCount);
+ CHECK_EQUAL(failedTestCount, r1.summaryFailedTestCount);
+ CHECK_EQUAL(failureCount, r1.summaryFailureCount);
+ CHECK_CLOSE(secondsElapsed, r1.summarySecondsElapsed, 0.00001f);
+}
+
+}
diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp
index 766539f..35f9c5a 100644
--- a/src/tests/TestCurrentTest.cpp
+++ b/src/tests/TestCurrentTest.cpp
@@ -1,38 +1,38 @@
-#include "../../unittestpp.h"
-#include "../CurrentTest.h"
-#include "ScopedCurrentTest.h"
-
-namespace
-{
-
-TEST(CanSetandGetDetails)
-{
- bool ok = false;
- {
- ScopedCurrentTest scopedTest;
-
- const UnitTest::TestDetails* details = reinterpret_cast< const UnitTest::TestDetails* >(12345);
- UnitTest::CurrentTest::Details() = details;
-
- ok = (UnitTest::CurrentTest::Details() == details);
- }
-
- CHECK(ok);
-}
-
-TEST(CanSetAndGetResults)
-{
- bool ok = false;
- {
- ScopedCurrentTest scopedTest;
-
- UnitTest::TestResults results;
- UnitTest::CurrentTest::Results() = &results;
-
- ok = (UnitTest::CurrentTest::Results() == &results);
- }
-
- CHECK(ok);
-}
-
-}
+#include "../../unittestpp.h"
+#include "../CurrentTest.h"
+#include "ScopedCurrentTest.h"
+
+namespace
+{
+
+TEST(CanSetandGetDetails)
+{
+ bool ok = false;
+ {
+ ScopedCurrentTest scopedTest;
+
+ const UnitTest::TestDetails* details = reinterpret_cast< const UnitTest::TestDetails* >(12345);
+ UnitTest::CurrentTest::Details() = details;
+
+ ok = (UnitTest::CurrentTest::Details() == details);
+ }
+
+ CHECK(ok);
+}
+
+TEST(CanSetAndGetResults)
+{
+ bool ok = false;
+ {
+ ScopedCurrentTest scopedTest;
+
+ UnitTest::TestResults results;
+ UnitTest::CurrentTest::Results() = &results;
+
+ ok = (UnitTest::CurrentTest::Results() == &results);
+ }
+
+ CHECK(ok);
+}
+
+}
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 7550ab4..16ff4af 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,122 +1,122 @@
-#include "../../config.h"
-
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "../../unittestpp.h"
-#include "../DeferredTestReporter.h"
-#include
-
-namespace UnitTest
-{
-
-namespace
-{
-
-#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
- MemoryOutStream& operator <<(MemoryOutStream& lhs, const std::string& rhs)
- {
- lhs << rhs.c_str();
- return lhs;
- }
-#endif
-
-struct MockDeferredTestReporter : public DeferredTestReporter
-{
- virtual void ReportSummary(int, int, int, float)
- {
- }
-};
-
-struct DeferredTestReporterFixture
-{
- DeferredTestReporterFixture()
- : testName("UniqueTestName")
- , testSuite("UniqueTestSuite")
- , fileName("filename.h")
- , lineNumber(12)
- , details(testName.c_str(), testSuite.c_str(), fileName.c_str(), lineNumber)
- {
- }
-
- MockDeferredTestReporter reporter;
- std::string const testName;
- std::string const testSuite;
- std::string const fileName;
- int const lineNumber;
- TestDetails const details;
-};
-
-TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCreatesANewDeferredTest)
-{
- reporter.ReportTestStart(details);
- CHECK_EQUAL(1, (int)reporter.GetResults().size());
-}
-
-TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuite)
-{
- reporter.ReportTestStart(details);
-
- DeferredTestResult const& result = reporter.GetResults().at(0);
- CHECK_EQUAL(testName.c_str(), result.testName);
- CHECK_EQUAL(testSuite.c_str(), result.suiteName);
-}
-
-TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime)
-{
- float const elapsed = 123.45f;
- reporter.ReportTestStart(details);
- reporter.ReportTestFinish(details, elapsed);
-
- DeferredTestResult const& result = reporter.GetResults().at(0);
- CHECK_CLOSE(elapsed, result.timeElapsed, 0.0001f);
-}
-
-TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails)
-{
- char const* failure = "failure";
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, failure);
-
- DeferredTestResult const& result = reporter.GetResults().at(0);
- CHECK(result.failed == true);
- CHECK_EQUAL(fileName.c_str(), result.failureFile);
-}
-
-TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures)
-{
- char const* failure1 = "failure 1";
- char const* failure2 = "failure 2";
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, failure1);
- reporter.ReportFailure(details, failure2);
-
- DeferredTestResult const& result = reporter.GetResults().at(0);
- CHECK_EQUAL(2, (int)result.failures.size());
- CHECK_EQUAL(failure1, result.failures[0].failureStr);
- CHECK_EQUAL(failure2, result.failures[1].failureStr);
-}
-
-TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailureMessage)
-{
- reporter.ReportTestStart(details);
-
- char failureMessage[128];
- char const* goodStr = "Real failure message";
- char const* badStr = "Bogus failure message";
-
- using namespace std;
-
- strcpy(failureMessage, goodStr);
- reporter.ReportFailure(details, failureMessage);
- strcpy(failureMessage, badStr);
-
- DeferredTestResult const& result = reporter.GetResults().at(0);
- DeferredTestFailure const& failure = result.failures.at(0);
- CHECK_EQUAL(goodStr, failure.failureStr);
-}
-
-}}
-
-#endif
+#include "../../config.h"
+
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "../../unittestpp.h"
+#include "../DeferredTestReporter.h"
+#include
+
+namespace UnitTest
+{
+
+namespace
+{
+
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+ MemoryOutStream& operator <<(MemoryOutStream& lhs, const std::string& rhs)
+ {
+ lhs << rhs.c_str();
+ return lhs;
+ }
+#endif
+
+struct MockDeferredTestReporter : public DeferredTestReporter
+{
+ virtual void ReportSummary(int, int, int, float)
+ {
+ }
+};
+
+struct DeferredTestReporterFixture
+{
+ DeferredTestReporterFixture()
+ : testName("UniqueTestName")
+ , testSuite("UniqueTestSuite")
+ , fileName("filename.h")
+ , lineNumber(12)
+ , details(testName.c_str(), testSuite.c_str(), fileName.c_str(), lineNumber)
+ {
+ }
+
+ MockDeferredTestReporter reporter;
+ std::string const testName;
+ std::string const testSuite;
+ std::string const fileName;
+ int const lineNumber;
+ TestDetails const details;
+};
+
+TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCreatesANewDeferredTest)
+{
+ reporter.ReportTestStart(details);
+ CHECK_EQUAL(1, (int)reporter.GetResults().size());
+}
+
+TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuite)
+{
+ reporter.ReportTestStart(details);
+
+ DeferredTestResult const& result = reporter.GetResults().at(0);
+ CHECK_EQUAL(testName.c_str(), result.testName);
+ CHECK_EQUAL(testSuite.c_str(), result.suiteName);
+}
+
+TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime)
+{
+ float const elapsed = 123.45f;
+ reporter.ReportTestStart(details);
+ reporter.ReportTestFinish(details, elapsed);
+
+ DeferredTestResult const& result = reporter.GetResults().at(0);
+ CHECK_CLOSE(elapsed, result.timeElapsed, 0.0001f);
+}
+
+TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails)
+{
+ char const* failure = "failure";
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, failure);
+
+ DeferredTestResult const& result = reporter.GetResults().at(0);
+ CHECK(result.failed == true);
+ CHECK_EQUAL(fileName.c_str(), result.failureFile);
+}
+
+TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures)
+{
+ char const* failure1 = "failure 1";
+ char const* failure2 = "failure 2";
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, failure1);
+ reporter.ReportFailure(details, failure2);
+
+ DeferredTestResult const& result = reporter.GetResults().at(0);
+ CHECK_EQUAL(2, (int)result.failures.size());
+ CHECK_EQUAL(failure1, result.failures[0].failureStr);
+ CHECK_EQUAL(failure2, result.failures[1].failureStr);
+}
+
+TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailureMessage)
+{
+ reporter.ReportTestStart(details);
+
+ char failureMessage[128];
+ char const* goodStr = "Real failure message";
+ char const* badStr = "Bogus failure message";
+
+ using namespace std;
+
+ strcpy(failureMessage, goodStr);
+ reporter.ReportFailure(details, failureMessage);
+ strcpy(failureMessage, badStr);
+
+ DeferredTestResult const& result = reporter.GetResults().at(0);
+ DeferredTestFailure const& failure = result.failures.at(0);
+ CHECK_EQUAL(goodStr, failure.failureStr);
+}
+
+}}
+
+#endif
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 6f55c9a..ecb3dc7 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -1,293 +1,293 @@
-#include "../../config.h"
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-#include "../../unittestpp.h"
-#include "../CurrentTest.h"
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-using namespace std;
-
-namespace {
-
-int ThrowingFunction()
-{
- throw "Doh";
-}
-
-TEST(CheckFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
-}
-
-TEST(CheckEqualFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 1);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
- }
-
- CHECK_EQUAL("testName", reporter.lastFailedTest);
- CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 123);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "123"));
-}
-
-TEST(CheckCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
- }
-
- CHECK_EQUAL("closeTest", reporter.lastFailedTest);
- CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
-}
-
-class ThrowingObject
-{
-public:
- float operator[](int) const
- {
- throw "Test throw";
- }
-};
-
-TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckArrayCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
-TEST(CheckArrayEqualFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
-class ThrowingObject2D
-{
-public:
- float* operator[](int) const
- {
- throw "Test throw";
- }
-};
-
-TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
- }
-
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST(CheckArray2DCloseFailsOnException)
-{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
-}
-
-TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
-}
-
-}
-
-#endif
+#include "../../config.h"
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+#include "../../unittestpp.h"
+#include "../CurrentTest.h"
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+using namespace std;
+
+namespace {
+
+int ThrowingFunction()
+{
+ throw "Doh";
+}
+
+TEST(CheckFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
+}
+
+TEST(CheckEqualFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(ThrowingFunction(), 1);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ }
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(ThrowingFunction(), 123);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
+}
+
+TEST(CheckCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("closeTest", reporter.lastFailedTest);
+ CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
+}
+
+class ThrowingObject
+{
+public:
+ float operator[](int) const
+ {
+ throw "Test throw";
+ }
+};
+
+TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArrayCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+TEST(CheckArrayEqualFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_EQUAL (data, obj, 3);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[4] = { 0, 1, 2, 3 };
+ ThrowingObject obj;
+ CHECK_ARRAY_EQUAL (data, obj, 3);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+class ThrowingObject2D
+{
+public:
+ float* operator[](int) const
+ {
+ throw "Test throw";
+ }
+};
+
+TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ int line = 0;
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
+
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST(CheckArray2DCloseFailsOnException)
+{
+ bool failure = false;
+ {
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ ThrowingObject2D obj;
+ CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
+
+ failure = (testResults.GetFailureCount() > 0);
+ }
+
+ CHECK(failure);
+}
+
+TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ ThrowingObject2D obj;
+ CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "obj"));
+}
+
+}
+
+#endif
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index f83b10c..87d19c5 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -1,175 +1,175 @@
-#include "../../unittestpp.h"
-
-#include "../MemoryOutStream.h"
-#include
-#include
-#include
-
-using namespace UnitTest;
-using namespace std;
-
-namespace {
-
-TEST(DefaultIsEmptyString)
-{
- MemoryOutStream const stream;
- CHECK(stream.GetText() != 0);
- CHECK_EQUAL("", stream.GetText());
-}
-
-TEST(StreamingTextCopiesCharacters)
-{
- MemoryOutStream stream;
- stream << "Lalala";
- CHECK_EQUAL("Lalala", stream.GetText());
-}
-
-TEST(StreamingMultipleTimesConcatenatesResult)
-{
- MemoryOutStream stream;
- stream << "Bork" << "Foo" << "Bar";
- CHECK_EQUAL("BorkFooBar", stream.GetText());
-}
-
-TEST(StreamingIntWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (int)123;
- CHECK_EQUAL("123", stream.GetText());
-}
-
-TEST(StreamingUnsignedIntWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (unsigned int)123;
- CHECK_EQUAL("123", stream.GetText());
-}
-
-TEST(StreamingLongWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (long)(-123);
- CHECK_EQUAL("-123", stream.GetText());
-}
-
-TEST(StreamingUnsignedLongWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (unsigned long)123;
- CHECK_EQUAL("123", stream.GetText());
-}
-
-TEST(StreamingLongLongWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (long long)8589934590ll;
- CHECK_EQUAL("8589934590", stream.GetText());
-}
-
-TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << (unsigned long long)8589934590ull;
- CHECK_EQUAL("8589934590", stream.GetText());
-}
-
-TEST(StreamingFloatWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << 3.1415f;
- CHECK(strstr(stream.GetText(), "3.1415"));
-}
-
-TEST(StreamingDoubleWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- stream << 3.1415;
- CHECK(strstr(stream.GetText(), "3.1415"));
-}
-
-TEST(StreamingPointerWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- int* p = (int*)0x1234;
- stream << p;
- CHECK(strstr(stream.GetText(), "1234"));
-}
-
-TEST(StreamingSizeTWritesCorrectCharacters)
-{
- MemoryOutStream stream;
- size_t const s = 53124;
- stream << s;
- CHECK_EQUAL("53124", stream.GetText());
-}
-
-TEST(ClearEmptiesMemoryOutStreamContents)
-{
- MemoryOutStream stream;
- stream << "Hello world";
- stream.Clear();
- CHECK_EQUAL("", stream.GetText());
-}
-
-#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
-
-TEST(StreamInitialCapacityIsCorrect)
-{
- MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
- CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity());
-}
-
-TEST(StreamInitialCapacityIsMultipleOfGrowChunkSize)
-{
- MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1);
- CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
-}
-
-
-TEST(ExceedingCapacityGrowsBuffer)
-{
- MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
- stream << "012345678901234567890123456789";
- char const* const oldBuffer = stream.GetText();
- stream << "0123456789";
- CHECK(oldBuffer != stream.GetText());
-}
-
-TEST(ExceedingCapacityGrowsBufferByGrowChunk)
-{
- MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
- stream << "0123456789012345678901234567890123456789";
- CHECK_EQUAL(MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
-}
-
-TEST(WritingStringLongerThanCapacityFitsInNewBuffer)
-{
- MemoryOutStream stream(8);
- stream << "0123456789ABCDEF";
- CHECK_EQUAL("0123456789ABCDEF", stream.GetText());
-}
-
-TEST(WritingIntLongerThanCapacityFitsInNewBuffer)
-{
- MemoryOutStream stream(8);
- stream << "aaaa" << 123456;;
- CHECK_EQUAL("aaaa123456", stream.GetText());
-}
-
-TEST(WritingFloatLongerThanCapacityFitsInNewBuffer)
-{
- MemoryOutStream stream(8);
- stream << "aaaa" << 123456.0f;;
- CHECK_EQUAL("aaaa123456.000000f", stream.GetText());
-}
-
-TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer)
-{
- MemoryOutStream stream(8);
- stream << "aaaa" << size_t(32145);
- CHECK_EQUAL("aaaa32145", stream.GetText());
-}
-
-#endif
-
-}
+#include "../../unittestpp.h"
+
+#include "../MemoryOutStream.h"
+#include
+#include
+#include
+
+using namespace UnitTest;
+using namespace std;
+
+namespace {
+
+TEST(DefaultIsEmptyString)
+{
+ MemoryOutStream const stream;
+ CHECK(stream.GetText() != 0);
+ CHECK_EQUAL("", stream.GetText());
+}
+
+TEST(StreamingTextCopiesCharacters)
+{
+ MemoryOutStream stream;
+ stream << "Lalala";
+ CHECK_EQUAL("Lalala", stream.GetText());
+}
+
+TEST(StreamingMultipleTimesConcatenatesResult)
+{
+ MemoryOutStream stream;
+ stream << "Bork" << "Foo" << "Bar";
+ CHECK_EQUAL("BorkFooBar", stream.GetText());
+}
+
+TEST(StreamingIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (int)123;
+ CHECK_EQUAL("123", stream.GetText());
+}
+
+TEST(StreamingUnsignedIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned int)123;
+ CHECK_EQUAL("123", stream.GetText());
+}
+
+TEST(StreamingLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long)(-123);
+ CHECK_EQUAL("-123", stream.GetText());
+}
+
+TEST(StreamingUnsignedLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long)123;
+ CHECK_EQUAL("123", stream.GetText());
+}
+
+TEST(StreamingLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long long)8589934590ll;
+ CHECK_EQUAL("8589934590", stream.GetText());
+}
+
+TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long long)8589934590ull;
+ CHECK_EQUAL("8589934590", stream.GetText());
+}
+
+TEST(StreamingFloatWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << 3.1415f;
+ CHECK(strstr(stream.GetText(), "3.1415"));
+}
+
+TEST(StreamingDoubleWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << 3.1415;
+ CHECK(strstr(stream.GetText(), "3.1415"));
+}
+
+TEST(StreamingPointerWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ int* p = (int*)0x1234;
+ stream << p;
+ CHECK(strstr(stream.GetText(), "1234"));
+}
+
+TEST(StreamingSizeTWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ size_t const s = 53124;
+ stream << s;
+ CHECK_EQUAL("53124", stream.GetText());
+}
+
+TEST(ClearEmptiesMemoryOutStreamContents)
+{
+ MemoryOutStream stream;
+ stream << "Hello world";
+ stream.Clear();
+ CHECK_EQUAL("", stream.GetText());
+}
+
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+TEST(StreamInitialCapacityIsCorrect)
+{
+ MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+ CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity());
+}
+
+TEST(StreamInitialCapacityIsMultipleOfGrowChunkSize)
+{
+ MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1);
+ CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
+}
+
+
+TEST(ExceedingCapacityGrowsBuffer)
+{
+ MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+ stream << "012345678901234567890123456789";
+ char const* const oldBuffer = stream.GetText();
+ stream << "0123456789";
+ CHECK(oldBuffer != stream.GetText());
+}
+
+TEST(ExceedingCapacityGrowsBufferByGrowChunk)
+{
+ MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+ stream << "0123456789012345678901234567890123456789";
+ CHECK_EQUAL(MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
+}
+
+TEST(WritingStringLongerThanCapacityFitsInNewBuffer)
+{
+ MemoryOutStream stream(8);
+ stream << "0123456789ABCDEF";
+ CHECK_EQUAL("0123456789ABCDEF", stream.GetText());
+}
+
+TEST(WritingIntLongerThanCapacityFitsInNewBuffer)
+{
+ MemoryOutStream stream(8);
+ stream << "aaaa" << 123456;;
+ CHECK_EQUAL("aaaa123456", stream.GetText());
+}
+
+TEST(WritingFloatLongerThanCapacityFitsInNewBuffer)
+{
+ MemoryOutStream stream(8);
+ stream << "aaaa" << 123456.0f;;
+ CHECK_EQUAL("aaaa123456.000000f", stream.GetText());
+}
+
+TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer)
+{
+ MemoryOutStream stream(8);
+ stream << "aaaa" << size_t(32145);
+ CHECK_EQUAL("aaaa32145", stream.GetText());
+}
+
+#endif
+
+}
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index 2ae2192..efa31b8 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -1,129 +1,129 @@
-#include "../../unittestpp.h"
-#include "../TestReporter.h"
-#include "../TimeHelpers.h"
-#include "ScopedCurrentTest.h"
-
-using namespace UnitTest;
-
-namespace {
-
-TEST(PassingTestHasNoFailures)
-{
- class PassingTest : public Test
- {
- public:
- PassingTest() : Test("passing") {}
- virtual void RunImpl() const
- {
- CHECK(true);
- }
- };
-
- TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
- PassingTest().Run();
- }
-
- CHECK_EQUAL(0, results.GetFailureCount());
-}
-
-
-TEST(FailingTestHasFailures)
-{
- class FailingTest : public Test
- {
- public:
- FailingTest() : Test("failing") {}
- virtual void RunImpl() const
- {
- CHECK(false);
- }
- };
-
- TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
- FailingTest().Run();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-TEST(ThrowingTestsAreReportedAsFailures)
-{
- class CrashingTest : public Test
- {
- public:
- CrashingTest() : Test("throwing") {}
- virtual void RunImpl() const
- {
- throw "Blah";
- }
- };
-
- TestResults results;
- {
- ScopedCurrentTest scopedResult(results);
- CrashingTest().Run();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-#ifndef UNITTEST_MINGW
-TEST(CrashingTestsAreReportedAsFailures)
-{
- class CrashingTest : public Test
- {
- public:
- CrashingTest() : Test("crashing") {}
- virtual void RunImpl() const
- {
- reinterpret_cast< void (*)() >(0)();
- }
- };
-
- TestResults results;
- {
- ScopedCurrentTest scopedResult(results);
- CrashingTest().Run();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-#endif
-#endif
-
-TEST(TestWithUnspecifiedSuiteGetsDefaultSuite)
-{
- Test test("test");
- CHECK(test.m_details.suiteName != NULL);
- CHECK_EQUAL("DefaultSuite", test.m_details.suiteName);
-}
-
-TEST(TestReflectsSpecifiedSuiteName)
-{
- Test test("test", "testSuite");
- CHECK(test.m_details.suiteName != NULL);
- CHECK_EQUAL("testSuite", test.m_details.suiteName);
-}
-
-void Fail()
-{
- CHECK(false);
-}
-
-TEST(OutOfCoreCHECKMacrosCanFailTests)
-{
- TestResults results;
- {
- ScopedCurrentTest scopedResult(results);
- Fail();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-}
+#include "../../unittestpp.h"
+#include "../TestReporter.h"
+#include "../TimeHelpers.h"
+#include "ScopedCurrentTest.h"
+
+using namespace UnitTest;
+
+namespace {
+
+TEST(PassingTestHasNoFailures)
+{
+ class PassingTest : public Test
+ {
+ public:
+ PassingTest() : Test("passing") {}
+ virtual void RunImpl() const
+ {
+ CHECK(true);
+ }
+ };
+
+ TestResults results;
+ {
+ ScopedCurrentTest scopedResults(results);
+ PassingTest().Run();
+ }
+
+ CHECK_EQUAL(0, results.GetFailureCount());
+}
+
+
+TEST(FailingTestHasFailures)
+{
+ class FailingTest : public Test
+ {
+ public:
+ FailingTest() : Test("failing") {}
+ virtual void RunImpl() const
+ {
+ CHECK(false);
+ }
+ };
+
+ TestResults results;
+ {
+ ScopedCurrentTest scopedResults(results);
+ FailingTest().Run();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+TEST(ThrowingTestsAreReportedAsFailures)
+{
+ class CrashingTest : public Test
+ {
+ public:
+ CrashingTest() : Test("throwing") {}
+ virtual void RunImpl() const
+ {
+ throw "Blah";
+ }
+ };
+
+ TestResults results;
+ {
+ ScopedCurrentTest scopedResult(results);
+ CrashingTest().Run();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+#ifndef UNITTEST_MINGW
+TEST(CrashingTestsAreReportedAsFailures)
+{
+ class CrashingTest : public Test
+ {
+ public:
+ CrashingTest() : Test("crashing") {}
+ virtual void RunImpl() const
+ {
+ reinterpret_cast< void (*)() >(0)();
+ }
+ };
+
+ TestResults results;
+ {
+ ScopedCurrentTest scopedResult(results);
+ CrashingTest().Run();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+#endif
+#endif
+
+TEST(TestWithUnspecifiedSuiteGetsDefaultSuite)
+{
+ Test test("test");
+ CHECK(test.m_details.suiteName != NULL);
+ CHECK_EQUAL("DefaultSuite", test.m_details.suiteName);
+}
+
+TEST(TestReflectsSpecifiedSuiteName)
+{
+ Test test("test", "testSuite");
+ CHECK(test.m_details.suiteName != NULL);
+ CHECK_EQUAL("testSuite", test.m_details.suiteName);
+}
+
+void Fail()
+{
+ CHECK(false);
+}
+
+TEST(OutOfCoreCHECKMacrosCanFailTests)
+{
+ TestResults results;
+ {
+ ScopedCurrentTest scopedResult(results);
+ Fail();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+}
diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp
index fdeba34..59517e7 100644
--- a/src/tests/TestTestList.cpp
+++ b/src/tests/TestTestList.cpp
@@ -1,50 +1,50 @@
-#include "../../unittestpp.h"
-#include "../TestList.h"
-
-using namespace UnitTest;
-
-namespace {
-
-
-TEST(TestListIsEmptyByDefault)
-{
- TestList list;
- CHECK(list.GetHead() == 0);
-}
-
-TEST(AddingTestSetsHeadToTest)
-{
- Test test("test");
- TestList list;
- list.Add(&test);
-
- CHECK(list.GetHead() == &test);
- CHECK(test.m_nextTest == 0);
-}
-
-TEST(AddingSecondTestAddsItToEndOfList)
-{
- Test test1("test1");
- Test test2("test2");
-
- TestList list;
- list.Add(&test1);
- list.Add(&test2);
-
- CHECK(list.GetHead() == &test1);
- CHECK(test1.m_nextTest == &test2);
- CHECK(test2.m_nextTest == 0);
-}
-
-TEST(ListAdderAddsTestToList)
-{
- TestList list;
-
- Test test("");
- ListAdder adder(list, &test);
-
- CHECK(list.GetHead() == &test);
- CHECK(test.m_nextTest == 0);
-}
-
-}
+#include "../../unittestpp.h"
+#include "../TestList.h"
+
+using namespace UnitTest;
+
+namespace {
+
+
+TEST(TestListIsEmptyByDefault)
+{
+ TestList list;
+ CHECK(list.GetHead() == 0);
+}
+
+TEST(AddingTestSetsHeadToTest)
+{
+ Test test("test");
+ TestList list;
+ list.Add(&test);
+
+ CHECK(list.GetHead() == &test);
+ CHECK(test.m_nextTest == 0);
+}
+
+TEST(AddingSecondTestAddsItToEndOfList)
+{
+ Test test1("test1");
+ Test test2("test2");
+
+ TestList list;
+ list.Add(&test1);
+ list.Add(&test2);
+
+ CHECK(list.GetHead() == &test1);
+ CHECK(test1.m_nextTest == &test2);
+ CHECK(test2.m_nextTest == 0);
+}
+
+TEST(ListAdderAddsTestToList)
+{
+ TestList list;
+
+ Test test("");
+ ListAdder adder(list, &test);
+
+ CHECK(list.GetHead() == &test);
+ CHECK(test.m_nextTest == 0);
+}
+
+}
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index b057e4f..8ab11d6 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -1,221 +1,221 @@
-#include "../../unittestpp.h"
-#include "../TestMacros.h"
-#include "../TestList.h"
-#include "../TestResults.h"
-#include "../TestReporter.h"
-#include "../ReportAssert.h"
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-using namespace UnitTest;
-using namespace std;
-
-namespace {
-
-TestList list1;
-TEST_EX(DummyTest, list1)
-{
-}
-
-TEST (TestsAreAddedToTheListThroughMacro)
-{
- CHECK(list1.GetHead() != 0);
- CHECK(list1.GetHead()->m_nextTest == 0);
-}
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-struct ThrowingThingie
-{
- ThrowingThingie() : dummy(false)
- {
- if (!dummy)
- throw "Oops";
- }
-
- bool dummy;
-};
-
-TestList list2;
-TEST_FIXTURE_EX(ThrowingThingie, DummyTestName, list2)
-{
-}
-
-TEST (ExceptionsInFixtureAreReportedAsHappeningInTheFixture)
-{
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResults(result);
- list2.GetHead()->Run();
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "xception"));
- CHECK(strstr(reporter.lastFailedMessage, "fixture"));
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingThingie"));
-}
-
-#endif
-
-struct DummyFixture
-{
- int x;
-};
-
-// We're really testing the macros so we just want them to compile and link
-SUITE(TestSuite1)
-{
- TEST(SimilarlyNamedTestsInDifferentSuitesWork)
- {
- }
-
- TEST_FIXTURE(DummyFixture, SimilarlyNamedFixtureTestsInDifferentSuitesWork)
- {
- }
-}
-
-SUITE(TestSuite2)
-{
- TEST(SimilarlyNamedTestsInDifferentSuitesWork)
- {
- }
-
- TEST_FIXTURE(DummyFixture,SimilarlyNamedFixtureTestsInDifferentSuitesWork)
- {
- }
-}
-
-TestList macroTestList1;
-TEST_EX(MacroTestHelper1, macroTestList1)
-{
-}
-
-TEST(TestAddedWithTEST_EXMacroGetsDefaultSuite)
-{
- CHECK(macroTestList1.GetHead() != NULL);
- CHECK_EQUAL ("MacroTestHelper1", macroTestList1.GetHead()->m_details.testName);
- CHECK_EQUAL ("DefaultSuite", macroTestList1.GetHead()->m_details.suiteName);
-}
-
-TestList macroTestList2;
-TEST_FIXTURE_EX(DummyFixture, MacroTestHelper2, macroTestList2)
-{
-}
-
-TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite)
-{
- CHECK(macroTestList2.GetHead() != NULL);
- CHECK_EQUAL ("MacroTestHelper2", macroTestList2.GetHead()->m_details.testName);
- CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName);
-}
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-struct FixtureCtorThrows
-{
- FixtureCtorThrows() { throw "exception"; }
-};
-
-TestList throwingFixtureTestList1;
-TEST_FIXTURE_EX(FixtureCtorThrows, FixtureCtorThrowsTestName, throwingFixtureTestList1)
-{
-}
-
-TEST(FixturesWithThrowingCtorsAreFailures)
-{
- CHECK(throwingFixtureTestList1.GetHead() != NULL);
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResult(result);
- throwingFixtureTestList1.GetHead()->Run();
- }
-
- int const failureCount = result.GetFailedTestCount();
- CHECK_EQUAL(1, failureCount);
- CHECK(strstr(reporter.lastFailedMessage, "while constructing fixture"));
-}
-
-struct FixtureDtorThrows
-{
- ~FixtureDtorThrows() { throw "exception"; }
-};
-
-TestList throwingFixtureTestList2;
-TEST_FIXTURE_EX(FixtureDtorThrows, FixtureDtorThrowsTestName, throwingFixtureTestList2)
-{
-}
-
-TEST(FixturesWithThrowingDtorsAreFailures)
-{
- CHECK(throwingFixtureTestList2.GetHead() != NULL);
-
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResult(result);
- throwingFixtureTestList2.GetHead()->Run();
- }
-
- int const failureCount = result.GetFailedTestCount();
- CHECK_EQUAL(1, failureCount);
- CHECK(strstr(reporter.lastFailedMessage, "while destroying fixture"));
-}
-
-const int FailingLine = 123;
-
-struct FixtureCtorAsserts
-{
- FixtureCtorAsserts()
- {
- UnitTest::ReportAssert("assert failure", "file", FailingLine);
- }
-};
-
-TestList ctorAssertFixtureTestList;
-TEST_FIXTURE_EX(FixtureCtorAsserts, CorrectlyReportsAssertFailureInCtor, ctorAssertFixtureTestList)
-{
-}
-
-TEST(CorrectlyReportsFixturesWithCtorsThatAssert)
-{
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResults(result);
- ctorAssertFixtureTestList.GetHead()->Run();
- }
-
- const int failureCount = result.GetFailedTestCount();
- CHECK_EQUAL(1, failureCount);
- CHECK_EQUAL(FailingLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedMessage, "assert failure"));
-}
-
-#endif
-
-}
-
-// We're really testing if it's possible to use the same suite in two files
-// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
-// Note: we are outside of the anonymous namespace
-SUITE(SameTestSuite)
-{
- TEST(DummyTest1)
- {
- }
-}
-
-#define CUR_TEST_NAME CurrentTestDetailsContainCurrentTestInfo
-#define INNER_STRINGIFY(X) #X
-#define STRINGIFY(X) INNER_STRINGIFY(X)
-
-TEST(CUR_TEST_NAME)
-{
- const UnitTest::TestDetails* details = CurrentTest::Details();
- CHECK_EQUAL(STRINGIFY(CUR_TEST_NAME), details->testName);
-}
-
-#undef CUR_TEST_NAME
-#undef INNER_STRINGIFY
-#undef STRINGIFY
+#include "../../unittestpp.h"
+#include "../TestMacros.h"
+#include "../TestList.h"
+#include "../TestResults.h"
+#include "../TestReporter.h"
+#include "../ReportAssert.h"
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+using namespace UnitTest;
+using namespace std;
+
+namespace {
+
+TestList list1;
+TEST_EX(DummyTest, list1)
+{
+}
+
+TEST (TestsAreAddedToTheListThroughMacro)
+{
+ CHECK(list1.GetHead() != 0);
+ CHECK(list1.GetHead()->m_nextTest == 0);
+}
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+struct ThrowingThingie
+{
+ ThrowingThingie() : dummy(false)
+ {
+ if (!dummy)
+ throw "Oops";
+ }
+
+ bool dummy;
+};
+
+TestList list2;
+TEST_FIXTURE_EX(ThrowingThingie, DummyTestName, list2)
+{
+}
+
+TEST (ExceptionsInFixtureAreReportedAsHappeningInTheFixture)
+{
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResults(result);
+ list2.GetHead()->Run();
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "xception"));
+ CHECK(strstr(reporter.lastFailedMessage, "fixture"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingThingie"));
+}
+
+#endif
+
+struct DummyFixture
+{
+ int x;
+};
+
+// We're really testing the macros so we just want them to compile and link
+SUITE(TestSuite1)
+{
+ TEST(SimilarlyNamedTestsInDifferentSuitesWork)
+ {
+ }
+
+ TEST_FIXTURE(DummyFixture, SimilarlyNamedFixtureTestsInDifferentSuitesWork)
+ {
+ }
+}
+
+SUITE(TestSuite2)
+{
+ TEST(SimilarlyNamedTestsInDifferentSuitesWork)
+ {
+ }
+
+ TEST_FIXTURE(DummyFixture,SimilarlyNamedFixtureTestsInDifferentSuitesWork)
+ {
+ }
+}
+
+TestList macroTestList1;
+TEST_EX(MacroTestHelper1, macroTestList1)
+{
+}
+
+TEST(TestAddedWithTEST_EXMacroGetsDefaultSuite)
+{
+ CHECK(macroTestList1.GetHead() != NULL);
+ CHECK_EQUAL ("MacroTestHelper1", macroTestList1.GetHead()->m_details.testName);
+ CHECK_EQUAL ("DefaultSuite", macroTestList1.GetHead()->m_details.suiteName);
+}
+
+TestList macroTestList2;
+TEST_FIXTURE_EX(DummyFixture, MacroTestHelper2, macroTestList2)
+{
+}
+
+TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite)
+{
+ CHECK(macroTestList2.GetHead() != NULL);
+ CHECK_EQUAL ("MacroTestHelper2", macroTestList2.GetHead()->m_details.testName);
+ CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName);
+}
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+struct FixtureCtorThrows
+{
+ FixtureCtorThrows() { throw "exception"; }
+};
+
+TestList throwingFixtureTestList1;
+TEST_FIXTURE_EX(FixtureCtorThrows, FixtureCtorThrowsTestName, throwingFixtureTestList1)
+{
+}
+
+TEST(FixturesWithThrowingCtorsAreFailures)
+{
+ CHECK(throwingFixtureTestList1.GetHead() != NULL);
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResult(result);
+ throwingFixtureTestList1.GetHead()->Run();
+ }
+
+ int const failureCount = result.GetFailedTestCount();
+ CHECK_EQUAL(1, failureCount);
+ CHECK(strstr(reporter.lastFailedMessage, "while constructing fixture"));
+}
+
+struct FixtureDtorThrows
+{
+ ~FixtureDtorThrows() { throw "exception"; }
+};
+
+TestList throwingFixtureTestList2;
+TEST_FIXTURE_EX(FixtureDtorThrows, FixtureDtorThrowsTestName, throwingFixtureTestList2)
+{
+}
+
+TEST(FixturesWithThrowingDtorsAreFailures)
+{
+ CHECK(throwingFixtureTestList2.GetHead() != NULL);
+
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResult(result);
+ throwingFixtureTestList2.GetHead()->Run();
+ }
+
+ int const failureCount = result.GetFailedTestCount();
+ CHECK_EQUAL(1, failureCount);
+ CHECK(strstr(reporter.lastFailedMessage, "while destroying fixture"));
+}
+
+const int FailingLine = 123;
+
+struct FixtureCtorAsserts
+{
+ FixtureCtorAsserts()
+ {
+ UnitTest::ReportAssert("assert failure", "file", FailingLine);
+ }
+};
+
+TestList ctorAssertFixtureTestList;
+TEST_FIXTURE_EX(FixtureCtorAsserts, CorrectlyReportsAssertFailureInCtor, ctorAssertFixtureTestList)
+{
+}
+
+TEST(CorrectlyReportsFixturesWithCtorsThatAssert)
+{
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResults(result);
+ ctorAssertFixtureTestList.GetHead()->Run();
+ }
+
+ const int failureCount = result.GetFailedTestCount();
+ CHECK_EQUAL(1, failureCount);
+ CHECK_EQUAL(FailingLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedMessage, "assert failure"));
+}
+
+#endif
+
+}
+
+// We're really testing if it's possible to use the same suite in two files
+// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
+// Note: we are outside of the anonymous namespace
+SUITE(SameTestSuite)
+{
+ TEST(DummyTest1)
+ {
+ }
+}
+
+#define CUR_TEST_NAME CurrentTestDetailsContainCurrentTestInfo
+#define INNER_STRINGIFY(X) #X
+#define STRINGIFY(X) INNER_STRINGIFY(X)
+
+TEST(CUR_TEST_NAME)
+{
+ const UnitTest::TestDetails* details = CurrentTest::Details();
+ CHECK_EQUAL(STRINGIFY(CUR_TEST_NAME), details->testName);
+}
+
+#undef CUR_TEST_NAME
+#undef INNER_STRINGIFY
+#undef STRINGIFY
diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp
index 15fff1e..38414e5 100644
--- a/src/tests/TestTestResults.cpp
+++ b/src/tests/TestTestResults.cpp
@@ -1,111 +1,111 @@
-#include "../../unittestpp.h"
-#include "../TestResults.h"
-#include "RecordingReporter.h"
-
-using namespace UnitTest;
-
-namespace {
-
-TestDetails const details("testname", "suitename", "filename", 123);
-
-
-TEST(StartsWithNoTestsRun)
-{
- TestResults results;
- CHECK_EQUAL (0, results.GetTotalTestCount());
-}
-
-TEST(RecordsNumbersOfTests)
-{
- TestResults results;
- results.OnTestStart(details);
- results.OnTestStart(details);
- results.OnTestStart(details);
- CHECK_EQUAL(3, results.GetTotalTestCount());
-}
-
-TEST(StartsWithNoTestsFailing)
-{
- TestResults results;
- CHECK_EQUAL (0, results.GetFailureCount());
-}
-
-TEST(RecordsNumberOfFailures)
-{
- TestResults results;
- results.OnTestFailure(details, "");
- results.OnTestFailure(details, "");
- CHECK_EQUAL(2, results.GetFailureCount());
-}
-
-TEST(RecordsNumberOfFailedTests)
-{
- TestResults results;
-
- results.OnTestStart(details);
- results.OnTestFailure(details, "");
- results.OnTestFinish(details, 0);
-
- results.OnTestStart(details);
- results.OnTestFailure(details, "");
- results.OnTestFailure(details, "");
- results.OnTestFailure(details, "");
- results.OnTestFinish(details, 0);
-
- CHECK_EQUAL (2, results.GetFailedTestCount());
-}
-
-TEST(NotifiesReporterOfTestStartWithCorrectInfo)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
- results.OnTestStart(details);
-
- CHECK_EQUAL (1, reporter.testRunCount);
- CHECK_EQUAL ("suitename", reporter.lastStartedSuite);
- CHECK_EQUAL ("testname", reporter.lastStartedTest);
-}
-
-TEST(NotifiesReporterOfTestFailureWithCorrectInfo)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
-
- results.OnTestFailure(details, "failurestring");
- CHECK_EQUAL (1, reporter.testFailedCount);
- CHECK_EQUAL ("filename", reporter.lastFailedFile);
- CHECK_EQUAL (123, reporter.lastFailedLine);
- CHECK_EQUAL ("suitename", reporter.lastFailedSuite);
- CHECK_EQUAL ("testname", reporter.lastFailedTest);
- CHECK_EQUAL ("failurestring", reporter.lastFailedMessage);
-}
-
-TEST(NotifiesReporterOfCheckFailureWithCorrectInfo)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
-
- results.OnTestFailure(details, "failurestring");
- CHECK_EQUAL (1, reporter.testFailedCount);
-
- CHECK_EQUAL ("filename", reporter.lastFailedFile);
- CHECK_EQUAL (123, reporter.lastFailedLine);
- CHECK_EQUAL ("testname", reporter.lastFailedTest);
- CHECK_EQUAL ("suitename", reporter.lastFailedSuite);
- CHECK_EQUAL ("failurestring", reporter.lastFailedMessage);
-}
-
-TEST(NotifiesReporterOfTestEnd)
-{
- RecordingReporter reporter;
- TestResults results(&reporter);
-
- results.OnTestFinish(details, 0.1234f);
- CHECK_EQUAL (1, reporter.testFinishedCount);
- CHECK_EQUAL ("testname", reporter.lastFinishedTest);
- CHECK_EQUAL ("suitename", reporter.lastFinishedSuite);
- CHECK_CLOSE (0.1234f, reporter.lastFinishedTestTime, 0.0001f);
-}
-
-
-}
+#include "../../unittestpp.h"
+#include "../TestResults.h"
+#include "RecordingReporter.h"
+
+using namespace UnitTest;
+
+namespace {
+
+TestDetails const details("testname", "suitename", "filename", 123);
+
+
+TEST(StartsWithNoTestsRun)
+{
+ TestResults results;
+ CHECK_EQUAL (0, results.GetTotalTestCount());
+}
+
+TEST(RecordsNumbersOfTests)
+{
+ TestResults results;
+ results.OnTestStart(details);
+ results.OnTestStart(details);
+ results.OnTestStart(details);
+ CHECK_EQUAL(3, results.GetTotalTestCount());
+}
+
+TEST(StartsWithNoTestsFailing)
+{
+ TestResults results;
+ CHECK_EQUAL (0, results.GetFailureCount());
+}
+
+TEST(RecordsNumberOfFailures)
+{
+ TestResults results;
+ results.OnTestFailure(details, "");
+ results.OnTestFailure(details, "");
+ CHECK_EQUAL(2, results.GetFailureCount());
+}
+
+TEST(RecordsNumberOfFailedTests)
+{
+ TestResults results;
+
+ results.OnTestStart(details);
+ results.OnTestFailure(details, "");
+ results.OnTestFinish(details, 0);
+
+ results.OnTestStart(details);
+ results.OnTestFailure(details, "");
+ results.OnTestFailure(details, "");
+ results.OnTestFailure(details, "");
+ results.OnTestFinish(details, 0);
+
+ CHECK_EQUAL (2, results.GetFailedTestCount());
+}
+
+TEST(NotifiesReporterOfTestStartWithCorrectInfo)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+ results.OnTestStart(details);
+
+ CHECK_EQUAL (1, reporter.testRunCount);
+ CHECK_EQUAL ("suitename", reporter.lastStartedSuite);
+ CHECK_EQUAL ("testname", reporter.lastStartedTest);
+}
+
+TEST(NotifiesReporterOfTestFailureWithCorrectInfo)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+
+ results.OnTestFailure(details, "failurestring");
+ CHECK_EQUAL (1, reporter.testFailedCount);
+ CHECK_EQUAL ("filename", reporter.lastFailedFile);
+ CHECK_EQUAL (123, reporter.lastFailedLine);
+ CHECK_EQUAL ("suitename", reporter.lastFailedSuite);
+ CHECK_EQUAL ("testname", reporter.lastFailedTest);
+ CHECK_EQUAL ("failurestring", reporter.lastFailedMessage);
+}
+
+TEST(NotifiesReporterOfCheckFailureWithCorrectInfo)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+
+ results.OnTestFailure(details, "failurestring");
+ CHECK_EQUAL (1, reporter.testFailedCount);
+
+ CHECK_EQUAL ("filename", reporter.lastFailedFile);
+ CHECK_EQUAL (123, reporter.lastFailedLine);
+ CHECK_EQUAL ("testname", reporter.lastFailedTest);
+ CHECK_EQUAL ("suitename", reporter.lastFailedSuite);
+ CHECK_EQUAL ("failurestring", reporter.lastFailedMessage);
+}
+
+TEST(NotifiesReporterOfTestEnd)
+{
+ RecordingReporter reporter;
+ TestResults results(&reporter);
+
+ results.OnTestFinish(details, 0.1234f);
+ CHECK_EQUAL (1, reporter.testFinishedCount);
+ CHECK_EQUAL ("testname", reporter.lastFinishedTest);
+ CHECK_EQUAL ("suitename", reporter.lastFinishedSuite);
+ CHECK_CLOSE (0.1234f, reporter.lastFinishedTestTime, 0.0001f);
+}
+
+
+}
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index 0aeec11..b607ec6 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -1,322 +1,322 @@
-#include "../../unittestpp.h"
-#include "RecordingReporter.h"
-#include "../ReportAssert.h"
-#include "../TestList.h"
-#include "../TimeHelpers.h"
-#include "../TimeConstraint.h"
-#include "../ReportAssertImpl.h"
-
-using namespace UnitTest;
-
-namespace
-{
-
-struct TestRunnerFixture
-{
- TestRunnerFixture()
- : runner(reporter)
- {
- s_testRunnerFixtureTestResults = runner.GetTestResults();
- }
-
- static TestResults* s_testRunnerFixtureTestResults;
-
- RecordingReporter reporter;
- TestList list;
- TestRunner runner;
-};
-
-TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL;
-
-struct MockTest : public Test
-{
- MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1)
- : Test(testName)
- , success(success_)
- , asserted(assert_)
- , count(count_)
- {
- m_isMockTest = true;
- }
-
- virtual void RunImpl() const
- {
- TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults;
-
- for (int i=0; i < count; ++i)
- {
- if (asserted)
- Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0);
- else if (!success)
- testResults->OnTestFailure(m_details, "message");
- }
- }
-
- bool const success;
- bool const asserted;
- int const count;
-};
-
-TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly)
-{
- MockTest test("goodtest", true, false);
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(1, reporter.testRunCount);
- CHECK_EQUAL("goodtest", reporter.lastStartedTest);
-}
-
-TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly)
-{
- MockTest test("goodtest", true, false);
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(1, reporter.testFinishedCount);
- CHECK_EQUAL("goodtest", reporter.lastFinishedTest);
-}
-
-class SlowTest : public Test
-{
-public:
- SlowTest() : Test("slow", "somesuite", "filename", 123) {}
- virtual void RunImpl() const
- {
- TimeHelpers::SleepMs(20);
- }
-};
-
-TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime)
-{
- SlowTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f);
-}
-
-TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun)
-{
- CHECK_EQUAL(0, runner.RunTestsIf(list, NULL, True(), 0));
- CHECK_EQUAL(0, reporter.testRunCount);
- CHECK_EQUAL(0, reporter.testFailedCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest)
-{
- MockTest test1("test", false, false);
- list.Add(&test1);
- MockTest test2("test", true, false);
- list.Add(&test2);
- MockTest test3("test", false, false);
- list.Add(&test3);
-
- CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0));
- CHECK_EQUAL(2, reporter.testFailedCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
-{
- MockTest test("test", true, true);
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(1, reporter.testFailedCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit)
-{
- MockTest test("test", false, true, 3);
- list.Add(&test);
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(1, reporter.summaryFailureCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
-{
- MockTest test1("test", true, false);
- MockTest test2("test", true, false);
- MockTest test3("test", true, false);
- list.Add(&test1);
- list.Add(&test2);
- list.Add(&test3);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(3, reporter.summaryTotalTestCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests)
-{
- MockTest test1("test", false, false, 2);
- MockTest test2("test", true, false);
- MockTest test3("test", false, false, 3);
- list.Add(&test1);
- list.Add(&test2);
- list.Add(&test3);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(2, reporter.summaryFailedTestCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures)
-{
- MockTest test1("test", false, false, 2);
- MockTest test2("test", true, false);
- MockTest test3("test", false, false, 3);
- list.Add(&test1);
- list.Add(&test2);
- list.Add(&test3);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(5, reporter.summaryFailureCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold)
-{
- SlowTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(0, reporter.testFailedCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold)
-{
- SlowTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 3);
- CHECK_EQUAL(1, reporter.testFailedCount);
-}
-
-TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation)
-{
- SlowTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 3);
-
- using namespace std;
-
- CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest);
- CHECK(strstr(test.m_details.filename, reporter.lastFailedFile));
- CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine);
-
- CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed"));
- CHECK(strstr(reporter.lastFailedMessage, "3ms"));
-}
-
-TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses)
-{
- class SlowExemptedTest : public Test
- {
- public:
- SlowExemptedTest() : Test("slowexempted", "", 0) {}
- virtual void RunImpl() const
- {
- UNITTEST_TIME_CONSTRAINT_EXEMPT();
- TimeHelpers::SleepMs(20);
- }
- };
-
- SlowExemptedTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 3);
- CHECK_EQUAL(0, reporter.testFailedCount);
-}
-
-struct TestSuiteFixture
-{
- TestSuiteFixture()
- : test1("TestInDefaultSuite")
- , test2("TestInOtherSuite", "OtherSuite")
- , test3("SecondTestInDefaultSuite")
- , runner(reporter)
- {
- list.Add(&test1);
- list.Add(&test2);
- }
-
- Test test1;
- Test test2;
- Test test3;
- RecordingReporter reporter;
- TestList list;
- TestRunner runner;
-};
-
-TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed)
-{
- runner.RunTestsIf(list, NULL, True(), 0);
- CHECK_EQUAL(2, reporter.summaryTotalTestCount);
-}
-
-TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite)
-{
- runner.RunTestsIf(list, "OtherSuite", True(), 0);
- CHECK_EQUAL(1, reporter.summaryTotalTestCount);
- CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest);
-}
-
-struct RunTestIfNameIs
-{
- RunTestIfNameIs(char const* name_)
- : name(name_)
- {
- }
-
- bool operator()(const Test* const test) const
- {
- using namespace std;
- return (0 == strcmp(test->m_details.testName, name));
- }
-
- char const* name;
-};
-
-TEST(TestMockPredicateBehavesCorrectly)
-{
- RunTestIfNameIs predicate("pass");
-
- Test pass("pass");
- Test fail("fail");
-
- CHECK(predicate(&pass));
- CHECK(!predicate(&fail));
-}
-
-TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate)
-{
- Test should_run("goodtest");
- list.Add(&should_run);
-
- Test should_not_run("badtest");
- list.Add(&should_not_run);
-
- runner.RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0);
- CHECK_EQUAL(1, reporter.testRunCount);
- CHECK_EQUAL("goodtest", reporter.lastStartedTest);
-}
-
-TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate)
-{
- Test runningTest1("goodtest", "suite");
- Test skippedTest2("goodtest");
- Test skippedTest3("badtest", "suite");
- Test skippedTest4("badtest");
-
- list.Add(&runningTest1);
- list.Add(&skippedTest2);
- list.Add(&skippedTest3);
- list.Add(&skippedTest4);
-
- runner.RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0);
-
- CHECK_EQUAL(1, reporter.testRunCount);
- CHECK_EQUAL("goodtest", reporter.lastStartedTest);
- CHECK_EQUAL("suite", reporter.lastStartedSuite);
-}
-
-}
+#include "../../unittestpp.h"
+#include "RecordingReporter.h"
+#include "../ReportAssert.h"
+#include "../TestList.h"
+#include "../TimeHelpers.h"
+#include "../TimeConstraint.h"
+#include "../ReportAssertImpl.h"
+
+using namespace UnitTest;
+
+namespace
+{
+
+struct TestRunnerFixture
+{
+ TestRunnerFixture()
+ : runner(reporter)
+ {
+ s_testRunnerFixtureTestResults = runner.GetTestResults();
+ }
+
+ static TestResults* s_testRunnerFixtureTestResults;
+
+ RecordingReporter reporter;
+ TestList list;
+ TestRunner runner;
+};
+
+TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL;
+
+struct MockTest : public Test
+{
+ MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1)
+ : Test(testName)
+ , success(success_)
+ , asserted(assert_)
+ , count(count_)
+ {
+ m_isMockTest = true;
+ }
+
+ virtual void RunImpl() const
+ {
+ TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults;
+
+ for (int i=0; i < count; ++i)
+ {
+ if (asserted)
+ Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0);
+ else if (!success)
+ testResults->OnTestFailure(m_details, "message");
+ }
+ }
+
+ bool const success;
+ bool const asserted;
+ int const count;
+};
+
+TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly)
+{
+ MockTest test("goodtest", true, false);
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(1, reporter.testRunCount);
+ CHECK_EQUAL("goodtest", reporter.lastStartedTest);
+}
+
+TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly)
+{
+ MockTest test("goodtest", true, false);
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(1, reporter.testFinishedCount);
+ CHECK_EQUAL("goodtest", reporter.lastFinishedTest);
+}
+
+class SlowTest : public Test
+{
+public:
+ SlowTest() : Test("slow", "somesuite", "filename", 123) {}
+ virtual void RunImpl() const
+ {
+ TimeHelpers::SleepMs(20);
+ }
+};
+
+TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime)
+{
+ SlowTest test;
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f);
+}
+
+TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun)
+{
+ CHECK_EQUAL(0, runner.RunTestsIf(list, NULL, True(), 0));
+ CHECK_EQUAL(0, reporter.testRunCount);
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest)
+{
+ MockTest test1("test", false, false);
+ list.Add(&test1);
+ MockTest test2("test", true, false);
+ list.Add(&test2);
+ MockTest test3("test", false, false);
+ list.Add(&test3);
+
+ CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0));
+ CHECK_EQUAL(2, reporter.testFailedCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
+{
+ MockTest test("test", true, true);
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(1, reporter.testFailedCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit)
+{
+ MockTest test("test", false, true, 3);
+ list.Add(&test);
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(1, reporter.summaryFailureCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
+{
+ MockTest test1("test", true, false);
+ MockTest test2("test", true, false);
+ MockTest test3("test", true, false);
+ list.Add(&test1);
+ list.Add(&test2);
+ list.Add(&test3);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(3, reporter.summaryTotalTestCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests)
+{
+ MockTest test1("test", false, false, 2);
+ MockTest test2("test", true, false);
+ MockTest test3("test", false, false, 3);
+ list.Add(&test1);
+ list.Add(&test2);
+ list.Add(&test3);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(2, reporter.summaryFailedTestCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures)
+{
+ MockTest test1("test", false, false, 2);
+ MockTest test2("test", true, false);
+ MockTest test3("test", false, false, 3);
+ list.Add(&test1);
+ list.Add(&test2);
+ list.Add(&test3);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(5, reporter.summaryFailureCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold)
+{
+ SlowTest test;
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold)
+{
+ SlowTest test;
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 3);
+ CHECK_EQUAL(1, reporter.testFailedCount);
+}
+
+TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation)
+{
+ SlowTest test;
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 3);
+
+ using namespace std;
+
+ CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest);
+ CHECK(strstr(test.m_details.filename, reporter.lastFailedFile));
+ CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine);
+
+ CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed"));
+ CHECK(strstr(reporter.lastFailedMessage, "3ms"));
+}
+
+TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses)
+{
+ class SlowExemptedTest : public Test
+ {
+ public:
+ SlowExemptedTest() : Test("slowexempted", "", 0) {}
+ virtual void RunImpl() const
+ {
+ UNITTEST_TIME_CONSTRAINT_EXEMPT();
+ TimeHelpers::SleepMs(20);
+ }
+ };
+
+ SlowExemptedTest test;
+ list.Add(&test);
+
+ runner.RunTestsIf(list, NULL, True(), 3);
+ CHECK_EQUAL(0, reporter.testFailedCount);
+}
+
+struct TestSuiteFixture
+{
+ TestSuiteFixture()
+ : test1("TestInDefaultSuite")
+ , test2("TestInOtherSuite", "OtherSuite")
+ , test3("SecondTestInDefaultSuite")
+ , runner(reporter)
+ {
+ list.Add(&test1);
+ list.Add(&test2);
+ }
+
+ Test test1;
+ Test test2;
+ Test test3;
+ RecordingReporter reporter;
+ TestList list;
+ TestRunner runner;
+};
+
+TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed)
+{
+ runner.RunTestsIf(list, NULL, True(), 0);
+ CHECK_EQUAL(2, reporter.summaryTotalTestCount);
+}
+
+TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite)
+{
+ runner.RunTestsIf(list, "OtherSuite", True(), 0);
+ CHECK_EQUAL(1, reporter.summaryTotalTestCount);
+ CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest);
+}
+
+struct RunTestIfNameIs
+{
+ RunTestIfNameIs(char const* name_)
+ : name(name_)
+ {
+ }
+
+ bool operator()(const Test* const test) const
+ {
+ using namespace std;
+ return (0 == strcmp(test->m_details.testName, name));
+ }
+
+ char const* name;
+};
+
+TEST(TestMockPredicateBehavesCorrectly)
+{
+ RunTestIfNameIs predicate("pass");
+
+ Test pass("pass");
+ Test fail("fail");
+
+ CHECK(predicate(&pass));
+ CHECK(!predicate(&fail));
+}
+
+TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate)
+{
+ Test should_run("goodtest");
+ list.Add(&should_run);
+
+ Test should_not_run("badtest");
+ list.Add(&should_not_run);
+
+ runner.RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0);
+ CHECK_EQUAL(1, reporter.testRunCount);
+ CHECK_EQUAL("goodtest", reporter.lastStartedTest);
+}
+
+TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate)
+{
+ Test runningTest1("goodtest", "suite");
+ Test skippedTest2("goodtest");
+ Test skippedTest3("badtest", "suite");
+ Test skippedTest4("badtest");
+
+ list.Add(&runningTest1);
+ list.Add(&skippedTest2);
+ list.Add(&skippedTest3);
+ list.Add(&skippedTest4);
+
+ runner.RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0);
+
+ CHECK_EQUAL(1, reporter.testRunCount);
+ CHECK_EQUAL("goodtest", reporter.lastStartedTest);
+ CHECK_EQUAL("suite", reporter.lastStartedSuite);
+}
+
+}
diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp
index 07e51cd..ad7725f 100644
--- a/src/tests/TestTestSuite.cpp
+++ b/src/tests/TestTestSuite.cpp
@@ -1,12 +1,12 @@
-#include "../../unittestpp.h"
-
-// We're really testing if it's possible to use the same suite in two files
-// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
-// Note: we are outside of the anonymous namespace
-SUITE(SameTestSuite)
-{
- TEST(DummyTest2)
- {
- }
-}
-
+#include "../../unittestpp.h"
+
+// We're really testing if it's possible to use the same suite in two files
+// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
+// Note: we are outside of the anonymous namespace
+SUITE(SameTestSuite)
+{
+ TEST(DummyTest2)
+ {
+ }
+}
+
diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp
index 96f880c..eec7e43 100644
--- a/src/tests/TestTimeConstraint.cpp
+++ b/src/tests/TestTimeConstraint.cpp
@@ -1,69 +1,69 @@
-#include "../../unittestpp.h"
-#include "../TestResults.h"
-#include "../TimeHelpers.h"
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-using namespace UnitTest;
-
-namespace
-{
-
-TEST(TimeConstraintSucceedsWithFastTest)
-{
- TestResults result;
- {
- ScopedCurrentTest scopedResult(result);
- TimeConstraint t(200, TestDetails("", "", "", 0));
- TimeHelpers::SleepMs(5);
- }
- CHECK_EQUAL(0, result.GetFailureCount());
-}
-
-TEST(TimeConstraintFailsWithSlowTest)
-{
- TestResults result;
- {
- ScopedCurrentTest scopedResult(result);
- TimeConstraint t(10, TestDetails("", "", "", 0));
- TimeHelpers::SleepMs(20);
- }
- CHECK_EQUAL(1, result.GetFailureCount());
-}
-
-TEST(TimeConstraintFailureIncludesCorrectData)
-{
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResult(result);
-
- TestDetails const details("testname", "suitename", "filename", 10);
- TimeConstraint t(10, details);
- TimeHelpers::SleepMs(20);
- }
-
- using namespace std;
-
- CHECK(strstr(reporter.lastFailedFile, "filename"));
- CHECK_EQUAL(10, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "testname"));
-}
-
-TEST(TimeConstraintFailureIncludesTimeoutInformation)
-{
- RecordingReporter reporter;
- TestResults result(&reporter);
- {
- ScopedCurrentTest scopedResult(result);
- TimeConstraint t(10, TestDetails("", "", "", 0));
- TimeHelpers::SleepMs(20);
- }
-
- using namespace std;
-
- CHECK(strstr(reporter.lastFailedMessage, "ime constraint"));
- CHECK(strstr(reporter.lastFailedMessage, "under 10ms"));
-}
-
-}
+#include "../../unittestpp.h"
+#include "../TestResults.h"
+#include "../TimeHelpers.h"
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+using namespace UnitTest;
+
+namespace
+{
+
+TEST(TimeConstraintSucceedsWithFastTest)
+{
+ TestResults result;
+ {
+ ScopedCurrentTest scopedResult(result);
+ TimeConstraint t(200, TestDetails("", "", "", 0));
+ TimeHelpers::SleepMs(5);
+ }
+ CHECK_EQUAL(0, result.GetFailureCount());
+}
+
+TEST(TimeConstraintFailsWithSlowTest)
+{
+ TestResults result;
+ {
+ ScopedCurrentTest scopedResult(result);
+ TimeConstraint t(10, TestDetails("", "", "", 0));
+ TimeHelpers::SleepMs(20);
+ }
+ CHECK_EQUAL(1, result.GetFailureCount());
+}
+
+TEST(TimeConstraintFailureIncludesCorrectData)
+{
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResult(result);
+
+ TestDetails const details("testname", "suitename", "filename", 10);
+ TimeConstraint t(10, details);
+ TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK(strstr(reporter.lastFailedFile, "filename"));
+ CHECK_EQUAL(10, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "testname"));
+}
+
+TEST(TimeConstraintFailureIncludesTimeoutInformation)
+{
+ RecordingReporter reporter;
+ TestResults result(&reporter);
+ {
+ ScopedCurrentTest scopedResult(result);
+ TimeConstraint t(10, TestDetails("", "", "", 0));
+ TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK(strstr(reporter.lastFailedMessage, "ime constraint"));
+ CHECK(strstr(reporter.lastFailedMessage, "under 10ms"));
+}
+
+}
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index 76f15c3..bee7dcf 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,65 +1,65 @@
-#include "../../unittestpp.h"
-#include "../TimeHelpers.h"
-
-#include "RecordingReporter.h"
-#include "ScopedCurrentTest.h"
-
-namespace {
-
-TEST(TimeConstraintMacroQualifiesNamespace)
-{
- // If this compiles without a "using namespace UnitTest;", all is well.
- UNITTEST_TIME_CONSTRAINT(1);
-}
-
-TEST(TimeConstraintMacroUsesCorrectInfo)
-{
- int testLine = 0;
- RecordingReporter reporter;
-
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
- UnitTest::TimeHelpers::SleepMs(20);
- }
-
- using namespace std;
-
- CHECK_EQUAL(1, reporter.testFailedCount);
- CHECK(strstr(reporter.lastFailedFile, __FILE__));
- CHECK_EQUAL(testLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
-}
-
-TEST(TimeConstraintMacroComparesAgainstPreciseActual)
-{
- int testLine = 0;
- RecordingReporter reporter;
-
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__;
-
- // start a new timer and run until we're as little over the 1 msec
- // threshold as we can achieve; this should guarantee that the "test"
- // runs in some very small amount of time > 1 msec
- UnitTest::Timer myTimer;
- myTimer.Start();
-
- while (myTimer.GetTimeInMs() < 1.001)
- UnitTest::TimeHelpers::SleepMs(0);
- }
-
- using namespace std;
-
- CHECK_EQUAL(1, reporter.testFailedCount);
- CHECK(strstr(reporter.lastFailedFile, __FILE__));
- CHECK_EQUAL(testLine, reporter.lastFailedLine);
- CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
-}
-
-}
+#include "../../unittestpp.h"
+#include "../TimeHelpers.h"
+
+#include "RecordingReporter.h"
+#include "ScopedCurrentTest.h"
+
+namespace {
+
+TEST(TimeConstraintMacroQualifiesNamespace)
+{
+ // If this compiles without a "using namespace UnitTest;", all is well.
+ UNITTEST_TIME_CONSTRAINT(1);
+}
+
+TEST(TimeConstraintMacroUsesCorrectInfo)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
+ UnitTest::TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo"));
+}
+
+TEST(TimeConstraintMacroComparesAgainstPreciseActual)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__;
+
+ // start a new timer and run until we're as little over the 1 msec
+ // threshold as we can achieve; this should guarantee that the "test"
+ // runs in some very small amount of time > 1 msec
+ UnitTest::Timer myTimer;
+ myTimer.Start();
+
+ while (myTimer.GetTimeInMs() < 1.001)
+ UnitTest::TimeHelpers::SleepMs(0);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
+}
+
+}
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index e6a00bf..f38ca93 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -1,148 +1,148 @@
-#include "../../unittestpp.h"
-#include "ScopedCurrentTest.h"
-
-// These are sample tests that show the different features of the framework
-
-namespace {
-
-TEST(ValidCheckSucceeds)
-{
- bool const b = true;
- CHECK(b);
-}
-
-TEST(CheckWorksWithPointers)
-{
- void* p = (void *)0x100;
- CHECK(p);
- CHECK(p != 0);
-}
-
-TEST(ValidCheckEqualSucceeds)
-{
- int const x = 3;
- int const y = 3;
- CHECK_EQUAL(x, y);
-}
-
-TEST(CheckEqualWorksWithPointers)
-{
- void* p = (void *)0;
- CHECK_EQUAL((void*)0, p);
-}
-
-TEST(ValidCheckCloseSucceeds)
-{
- CHECK_CLOSE(2.0f, 2.001f, 0.01f);
- CHECK_CLOSE(2.001f, 2.0f, 0.01f);
-}
-
-TEST(ArrayCloseSucceeds)
-{
- float const a1[] = {1, 2, 3};
- float const a2[] = {1, 2.01f, 3};
- CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f);
-}
-
-#ifndef UNITTEST_NO_EXCEPTIONS
-
-TEST(CheckThrowMacroSucceedsOnCorrectException)
-{
- struct TestException {};
- CHECK_THROW(throw TestException(), TestException);
-}
-
-TEST(CheckAssertSucceeds)
-{
- CHECK_ASSERT(UnitTest::ReportAssert("desc", "file", 0));
-}
-
-TEST(CheckThrowMacroFailsOnMissingException)
-{
- class NoThrowTest : public UnitTest::Test
- {
- public:
- NoThrowTest() : Test("nothrow") {}
- void DontThrow() const
- {
- }
-
- virtual void RunImpl() const
- {
- CHECK_THROW(DontThrow(), int);
- }
- };
-
- UnitTest::TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
-
- NoThrowTest test;
- test.Run();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-TEST(CheckThrowMacroFailsOnWrongException)
-{
- class WrongThrowTest : public UnitTest::Test
- {
- public:
- WrongThrowTest() : Test("wrongthrow") {}
- virtual void RunImpl() const
- {
- CHECK_THROW(throw "oops", int);
- }
- };
-
- UnitTest::TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
-
- WrongThrowTest test;
- test.Run();
- }
-
- CHECK_EQUAL(1, results.GetFailureCount());
-}
-
-#endif
-
-struct SimpleFixture
-{
- SimpleFixture()
- {
- ++instanceCount;
- }
- ~SimpleFixture()
- {
- --instanceCount;
- }
-
- static int instanceCount;
-};
-
-int SimpleFixture::instanceCount = 0;
-
-TEST_FIXTURE(SimpleFixture, DefaultFixtureCtorIsCalled)
-{
- CHECK(SimpleFixture::instanceCount > 0);
-}
-
-TEST_FIXTURE(SimpleFixture, OnlyOneFixtureAliveAtATime)
-{
- CHECK_EQUAL(1, SimpleFixture::instanceCount);
-}
-
-void CheckBool(const bool b)
-{
- CHECK(b);
-}
-
-TEST(CanCallCHECKOutsideOfTestFunction)
-{
- CheckBool(true);
-}
-
-}
+#include "../../unittestpp.h"
+#include "ScopedCurrentTest.h"
+
+// These are sample tests that show the different features of the framework
+
+namespace {
+
+TEST(ValidCheckSucceeds)
+{
+ bool const b = true;
+ CHECK(b);
+}
+
+TEST(CheckWorksWithPointers)
+{
+ void* p = (void *)0x100;
+ CHECK(p);
+ CHECK(p != 0);
+}
+
+TEST(ValidCheckEqualSucceeds)
+{
+ int const x = 3;
+ int const y = 3;
+ CHECK_EQUAL(x, y);
+}
+
+TEST(CheckEqualWorksWithPointers)
+{
+ void* p = (void *)0;
+ CHECK_EQUAL((void*)0, p);
+}
+
+TEST(ValidCheckCloseSucceeds)
+{
+ CHECK_CLOSE(2.0f, 2.001f, 0.01f);
+ CHECK_CLOSE(2.001f, 2.0f, 0.01f);
+}
+
+TEST(ArrayCloseSucceeds)
+{
+ float const a1[] = {1, 2, 3};
+ float const a2[] = {1, 2.01f, 3};
+ CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f);
+}
+
+#ifndef UNITTEST_NO_EXCEPTIONS
+
+TEST(CheckThrowMacroSucceedsOnCorrectException)
+{
+ struct TestException {};
+ CHECK_THROW(throw TestException(), TestException);
+}
+
+TEST(CheckAssertSucceeds)
+{
+ CHECK_ASSERT(UnitTest::ReportAssert("desc", "file", 0));
+}
+
+TEST(CheckThrowMacroFailsOnMissingException)
+{
+ class NoThrowTest : public UnitTest::Test
+ {
+ public:
+ NoThrowTest() : Test("nothrow") {}
+ void DontThrow() const
+ {
+ }
+
+ virtual void RunImpl() const
+ {
+ CHECK_THROW(DontThrow(), int);
+ }
+ };
+
+ UnitTest::TestResults results;
+ {
+ ScopedCurrentTest scopedResults(results);
+
+ NoThrowTest test;
+ test.Run();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+TEST(CheckThrowMacroFailsOnWrongException)
+{
+ class WrongThrowTest : public UnitTest::Test
+ {
+ public:
+ WrongThrowTest() : Test("wrongthrow") {}
+ virtual void RunImpl() const
+ {
+ CHECK_THROW(throw "oops", int);
+ }
+ };
+
+ UnitTest::TestResults results;
+ {
+ ScopedCurrentTest scopedResults(results);
+
+ WrongThrowTest test;
+ test.Run();
+ }
+
+ CHECK_EQUAL(1, results.GetFailureCount());
+}
+
+#endif
+
+struct SimpleFixture
+{
+ SimpleFixture()
+ {
+ ++instanceCount;
+ }
+ ~SimpleFixture()
+ {
+ --instanceCount;
+ }
+
+ static int instanceCount;
+};
+
+int SimpleFixture::instanceCount = 0;
+
+TEST_FIXTURE(SimpleFixture, DefaultFixtureCtorIsCalled)
+{
+ CHECK(SimpleFixture::instanceCount > 0);
+}
+
+TEST_FIXTURE(SimpleFixture, OnlyOneFixtureAliveAtATime)
+{
+ CHECK_EQUAL(1, SimpleFixture::instanceCount);
+}
+
+void CheckBool(const bool b)
+{
+ CHECK(b);
+}
+
+TEST(CanCallCHECKOutsideOfTestFunction)
+{
+ CheckBool(true);
+}
+
+}
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index dde5759..cbf93a9 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,188 +1,188 @@
-#include "../../config.h"
-#ifndef UNITTEST_NO_DEFERRED_REPORTER
-
-#include "../../unittestpp.h"
-#include "../XmlTestReporter.h"
-
-#include
-
-using namespace UnitTest;
-using std::ostringstream;
-
-namespace
-{
-
-#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
-
-// Overload to let MemoryOutStream accept std::string
-MemoryOutStream& operator<<(MemoryOutStream& s, const std::string& value)
-{
- s << value.c_str();
- return s;
-}
-
-#endif
-
-struct XmlTestReporterFixture
-{
- XmlTestReporterFixture()
- : reporter(output)
- {
- }
-
- ostringstream output;
- XmlTestReporter reporter;
-};
-
-TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped)
-{
- TestDetails const details("TestName", "suite", "filename.h", 4321);
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, "\"\"\'\'&&<<>>");
- reporter.ReportTestFinish(details, 0.1f);
- reporter.ReportSummary(1, 2, 3, 0.1f);
-
- char const* expected =
- ""
- ""
- ""
- " "
- " "
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled)
-{
- TestDetails const details("", "", "", 0);
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, "message");
- reporter.ReportTestFinish(details, 1.0F);
- CHECK(output.str().empty());
-
- reporter.ReportSummary(1, 1, 1, 1.0f);
- CHECK(!output.str().empty());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat)
-{
- reporter.ReportSummary(0, 0, 0, 0.1f);
-
- const char *expected =
- ""
- ""
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat)
-{
- TestDetails const details("TestName", "DefaultSuite", "", 0);
-
- reporter.ReportTestStart(details);
- reporter.ReportSummary(1, 0, 0, 0.1f);
-
- const char *expected =
- ""
- ""
- ""
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat)
-{
- TestDetails const details("A Test", "suite", "A File", 4321);
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, "A Failure");
- reporter.ReportSummary(1, 1, 1, 0.1f);
-
- const char *expected =
- ""
- ""
- ""
- " "
- " "
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped)
-{
- TestDetails const details("TestName", "suite", "filename.h", 4321);
-
- reporter.ReportTestStart(details);
- reporter.ReportFailure(details, "\"\'&<>");
- reporter.ReportTestFinish(details, 0.1f);
- reporter.ReportSummary(1, 1, 1, 0.1f);
-
- char const* expected =
- ""
- ""
- ""
- " "
- " "
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess)
-{
- TestDetails const failedDetails("FailedTest", "suite", "fail.h", 1);
- reporter.ReportTestStart(failedDetails);
- reporter.ReportFailure(failedDetails, "expected 1 but was 2");
- reporter.ReportTestFinish(failedDetails, 0.1f);
-
- TestDetails const succeededDetails("SucceededTest", "suite", "", 0);
- reporter.ReportTestStart(succeededDetails);
- reporter.ReportTestFinish(succeededDetails, 1.0f);
- reporter.ReportSummary(2, 1, 1, 1.1f);
-
- char const* expected =
- ""
- ""
- ""
- " "
- " "
- ""
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures)
-{
- TestDetails const failedDetails1("FailedTest", "suite", "fail.h", 1);
- TestDetails const failedDetails2("FailedTest", "suite", "fail.h", 31);
-
- reporter.ReportTestStart(failedDetails1);
- reporter.ReportFailure(failedDetails1, "expected 1 but was 2");
- reporter.ReportFailure(failedDetails2, "expected one but was two");
- reporter.ReportTestFinish(failedDetails1, 0.1f);
-
- reporter.ReportSummary(1, 1, 2, 1.1f);
-
- char const* expected =
- ""
- ""
- ""
- " "
- " "
- " "
- " ";
-
- CHECK_EQUAL(expected, output.str());
-}
-
-}
-
-#endif
+#include "../../config.h"
+#ifndef UNITTEST_NO_DEFERRED_REPORTER
+
+#include "../../unittestpp.h"
+#include "../XmlTestReporter.h"
+
+#include
+
+using namespace UnitTest;
+using std::ostringstream;
+
+namespace
+{
+
+#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+
+// Overload to let MemoryOutStream accept std::string
+MemoryOutStream& operator<<(MemoryOutStream& s, const std::string& value)
+{
+ s << value.c_str();
+ return s;
+}
+
+#endif
+
+struct XmlTestReporterFixture
+{
+ XmlTestReporterFixture()
+ : reporter(output)
+ {
+ }
+
+ ostringstream output;
+ XmlTestReporter reporter;
+};
+
+TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped)
+{
+ TestDetails const details("TestName", "suite", "filename.h", 4321);
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, "\"\"\'\'&&<<>>");
+ reporter.ReportTestFinish(details, 0.1f);
+ reporter.ReportSummary(1, 2, 3, 0.1f);
+
+ char const* expected =
+ ""
+ ""
+ ""
+ " "
+ " "
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled)
+{
+ TestDetails const details("", "", "", 0);
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, "message");
+ reporter.ReportTestFinish(details, 1.0F);
+ CHECK(output.str().empty());
+
+ reporter.ReportSummary(1, 1, 1, 1.0f);
+ CHECK(!output.str().empty());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat)
+{
+ reporter.ReportSummary(0, 0, 0, 0.1f);
+
+ const char *expected =
+ ""
+ ""
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat)
+{
+ TestDetails const details("TestName", "DefaultSuite", "", 0);
+
+ reporter.ReportTestStart(details);
+ reporter.ReportSummary(1, 0, 0, 0.1f);
+
+ const char *expected =
+ ""
+ ""
+ ""
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat)
+{
+ TestDetails const details("A Test", "suite", "A File", 4321);
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, "A Failure");
+ reporter.ReportSummary(1, 1, 1, 0.1f);
+
+ const char *expected =
+ ""
+ ""
+ ""
+ " "
+ " "
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped)
+{
+ TestDetails const details("TestName", "suite", "filename.h", 4321);
+
+ reporter.ReportTestStart(details);
+ reporter.ReportFailure(details, "\"\'&<>");
+ reporter.ReportTestFinish(details, 0.1f);
+ reporter.ReportSummary(1, 1, 1, 0.1f);
+
+ char const* expected =
+ ""
+ ""
+ ""
+ " "
+ " "
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess)
+{
+ TestDetails const failedDetails("FailedTest", "suite", "fail.h", 1);
+ reporter.ReportTestStart(failedDetails);
+ reporter.ReportFailure(failedDetails, "expected 1 but was 2");
+ reporter.ReportTestFinish(failedDetails, 0.1f);
+
+ TestDetails const succeededDetails("SucceededTest", "suite", "", 0);
+ reporter.ReportTestStart(succeededDetails);
+ reporter.ReportTestFinish(succeededDetails, 1.0f);
+ reporter.ReportSummary(2, 1, 1, 1.1f);
+
+ char const* expected =
+ ""
+ ""
+ ""
+ " "
+ " "
+ ""
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures)
+{
+ TestDetails const failedDetails1("FailedTest", "suite", "fail.h", 1);
+ TestDetails const failedDetails2("FailedTest", "suite", "fail.h", 31);
+
+ reporter.ReportTestStart(failedDetails1);
+ reporter.ReportFailure(failedDetails1, "expected 1 but was 2");
+ reporter.ReportFailure(failedDetails2, "expected one but was two");
+ reporter.ReportTestFinish(failedDetails1, 0.1f);
+
+ reporter.ReportSummary(1, 1, 2, 1.1f);
+
+ char const* expected =
+ ""
+ ""
+ ""
+ " "
+ " "
+ " "
+ " ";
+
+ CHECK_EQUAL(expected, output.str());
+}
+
+}
+
+#endif
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj
index 50d9fa3..fd855f2 100644
--- a/src/tests/test-unittestpp_vs2005.vcproj
+++ b/src/tests/test-unittestpp_vs2005.vcproj
@@ -1,580 +1,580 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/tests/test-unittestpp_vs2008.vcproj b/src/tests/test-unittestpp_vs2008.vcproj
index e6cfbee..93fc202 100644
--- a/src/tests/test-unittestpp_vs2008.vcproj
+++ b/src/tests/test-unittestpp_vs2008.vcproj
@@ -1,569 +1,569 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/unittestpp_vs2005.vcproj b/src/unittestpp_vs2005.vcproj
index b69882c..0c1f6ae 100644
--- a/src/unittestpp_vs2005.vcproj
+++ b/src/unittestpp_vs2005.vcproj
@@ -1,614 +1,614 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/unittestpp_vs2008.vcproj b/src/unittestpp_vs2008.vcproj
index b695cab..68a2ea3 100644
--- a/src/unittestpp_vs2008.vcproj
+++ b/src/unittestpp_vs2008.vcproj
@@ -1,607 +1,607 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/unittestpp.h b/unittestpp.h
index b66b2c4..dd3a5de 100644
--- a/unittestpp.h
+++ b/unittestpp.h
@@ -1,11 +1,11 @@
-#ifndef UNITTESTPP_H
-#define UNITTESTPP_H
-
-#include "config.h"
-#include "src/TestMacros.h"
-#include "src/CheckMacros.h"
-#include "src/TestRunner.h"
-#include "src/TimeConstraint.h"
-#include "src/ReportAssert.h"
-
-#endif
+#ifndef UNITTESTPP_H
+#define UNITTESTPP_H
+
+#include "config.h"
+#include "src/TestMacros.h"
+#include "src/CheckMacros.h"
+#include "src/TestRunner.h"
+#include "src/TimeConstraint.h"
+#include "src/ReportAssert.h"
+
+#endif
diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln
index 3bb7617..85c6b09 100644
--- a/unittestpp_vs2005.sln
+++ b/unittestpp_vs2005.sln
@@ -1,49 +1,49 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32
- win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32
- win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32
- win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32
- win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32
- win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+�サソ
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+ ProjectSection(ProjectDependencies) = postProject
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32
+ win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32
+ win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32
+ win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32
+ win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32
+ win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/unittestpp_vs2008.sln b/unittestpp_vs2008.sln
index f7004a4..fe863c2 100644
--- a/unittestpp_vs2008.sln
+++ b/unittestpp_vs2008.sln
@@ -1,49 +1,49 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32
- win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32
- win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32
- win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32
- win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32
- win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+�サソ
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+ ProjectSection(ProjectDependencies) = postProject
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32
+ win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32
+ win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32
+ win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32
+ win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32
+ win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
From aeaae3e6e6ac7eaf0471dd5de8952fcc1f8354dd Mon Sep 17 00:00:00 2001
From: Pete Johns
Date: Mon, 28 Jan 2013 21:13:15 +1100
Subject: [PATCH 040/218] Compare char* with char* to fix OS X build with
clang.
---
src/tests/TestDeferredTestReporter.cpp | 6 +++---
src/tests/TestXmlTestReporter.cpp | 14 +++++++-------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 16ff4af..a45eb05 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -57,8 +57,8 @@ TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuit
reporter.ReportTestStart(details);
DeferredTestResult const& result = reporter.GetResults().at(0);
- CHECK_EQUAL(testName.c_str(), result.testName);
- CHECK_EQUAL(testSuite.c_str(), result.suiteName);
+ CHECK_EQUAL(testName.c_str(), result.testName.c_str());
+ CHECK_EQUAL(testSuite.c_str(), result.suiteName.c_str());
}
TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime)
@@ -80,7 +80,7 @@ TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails)
DeferredTestResult const& result = reporter.GetResults().at(0);
CHECK(result.failed == true);
- CHECK_EQUAL(fileName.c_str(), result.failureFile);
+ CHECK_EQUAL(fileName.c_str(), result.failureFile.c_str());
}
TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures)
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index cbf93a9..ec9cb7a 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -52,7 +52,7 @@ TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped)
" "
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled)
@@ -77,7 +77,7 @@ TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat)
""
" ";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat)
@@ -93,7 +93,7 @@ TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat)
""
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat)
@@ -112,7 +112,7 @@ TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat)
" "
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped)
@@ -132,7 +132,7 @@ TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped)
" "
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess)
@@ -156,7 +156,7 @@ TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess)
""
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures)
@@ -180,7 +180,7 @@ TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures)
" "
"";
- CHECK_EQUAL(expected, output.str());
+ CHECK_EQUAL(expected, output.str().c_str());
}
}
From 69acc43ef408e296a56d2a97770a92d356dda75b Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 3 Feb 2013 00:47:52 -0600
Subject: [PATCH 041/218] CHECK_EQUAL no longer crashes if string pointers are
NULL.
---
src/Checks.cpp | 4 ++--
src/tests/TestChecks.cpp | 27 +++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/Checks.cpp b/src/Checks.cpp
index 2d09519..3e09231 100644
--- a/src/Checks.cpp
+++ b/src/Checks.cpp
@@ -10,10 +10,10 @@ void CheckStringsEqual(TestResults& results, char const* expected, char const* a
{
using namespace std;
- if (strcmp(expected, actual))
+ if ((expected && actual) ? strcmp(expected, actual) : (expected || actual))
{
UnitTest::MemoryOutStream stream;
- stream << "Expected " << expected << " but was " << actual;
+ stream << "Expected " << (expected ? expected : "") << " but was " << (actual ? actual : "");
results.OnTestFailure(details, stream.GetText());
}
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index 110102a..3d73b99 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -72,6 +72,33 @@ TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral)
CHECK_EQUAL(0, results.GetFailureCount());
}
+TEST(CheckEqualsWithStringsWorksOnNullExpected)
+{
+ char const* const expected = "hi";
+ char const* const actual = NULL;
+ TestResults results;
+ CheckEqual(results, expected, actual, TestDetails("", "", "", 0));
+ CHECK_EQUAL (1, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnNullActual)
+{
+ char const* const expected = NULL;
+ char const* const actual = "hi";
+ TestResults results;
+ CheckEqual(results, expected, actual, TestDetails("", "", "", 0));
+ CHECK_EQUAL (1, results.GetFailureCount());
+}
+
+TEST(CheckEqualsWithStringsWorksOnNullExpectedAndActual)
+{
+ char const* const expected = NULL;
+ char const* const actual = NULL;
+ TestResults results;
+ CheckEqual(results, expected, actual, TestDetails("", "", "", 0));
+ CHECK_EQUAL (0, results.GetFailureCount());
+}
+
TEST(CheckEqualFailureIncludesCheckExpectedAndActual)
{
RecordingReporter reporter;
From 904f733b158499a82a3747e1370997132d706540 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 3 Feb 2013 01:14:24 -0600
Subject: [PATCH 042/218] Added test verifying that UNITTEST_TIME_CONSTRAINT
works in TEST_FIXTURE tests.
---
src/tests/TestTimeConstraintMacro.cpp | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index bee7dcf..ebb5388 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -62,4 +62,27 @@ TEST(TimeConstraintMacroComparesAgainstPreciseActual)
CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual"));
}
+struct EmptyFixture {};
+
+TEST_FIXTURE(EmptyFixture, TimeConstraintMacroWorksInFixtures)
+{
+ int testLine = 0;
+ RecordingReporter reporter;
+
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+
+ UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__;
+ UnitTest::TimeHelpers::SleepMs(20);
+ }
+
+ using namespace std;
+
+ CHECK_EQUAL(1, reporter.testFailedCount);
+ CHECK(strstr(reporter.lastFailedFile, __FILE__));
+ CHECK_EQUAL(testLine, reporter.lastFailedLine);
+ CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroWorksInFixtures"));
+}
+
}
From 4dced283c84fdd0727759a0cded823c52b2018ea Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 3 Feb 2013 01:38:16 -0600
Subject: [PATCH 043/218] Refactored SlowTestWithTimeExemptionPass into two
tests, defined in the SlowTestHelper namespace. These tests are actually run
by new test SlowTestsWithTimeExemptionsPass.
---
src/Test.cpp | 1 -
src/Test.h | 2 +-
src/TestDetails.cpp | 2 ++
src/TestDetails.h | 1 +
src/TestRunner.cpp | 2 +-
src/TimeConstraint.h | 2 +-
src/tests/TestTestRunner.cpp | 36 +++++++++++++++++++++---------------
7 files changed, 27 insertions(+), 19 deletions(-)
diff --git a/src/Test.cpp b/src/Test.cpp
index 352ba7e..6a270db 100644
--- a/src/Test.cpp
+++ b/src/Test.cpp
@@ -21,7 +21,6 @@ TestList& Test::GetTestList()
Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber)
: m_details(testName, suiteName, filename, lineNumber)
, m_nextTest(0)
- , m_timeConstraintExempt(false)
, m_isMockTest(false)
{
}
diff --git a/src/Test.h b/src/Test.h
index f51d8e8..bf7c4a3 100644
--- a/src/Test.h
+++ b/src/Test.h
@@ -17,7 +17,7 @@ public:
TestDetails const m_details;
Test* m_nextTest;
- mutable bool m_timeConstraintExempt;
+
mutable bool m_isMockTest;
static TestList& GetTestList();
diff --git a/src/TestDetails.cpp b/src/TestDetails.cpp
index a13a168..3af0446 100644
--- a/src/TestDetails.cpp
+++ b/src/TestDetails.cpp
@@ -7,6 +7,7 @@ TestDetails::TestDetails(char const* testName_, char const* suiteName_, char con
, testName(testName_)
, filename(filename_)
, lineNumber(lineNumber_)
+ , timeConstraintExempt(false)
{
}
@@ -15,6 +16,7 @@ TestDetails::TestDetails(const TestDetails& details, int lineNumber_)
, testName(details.testName)
, filename(details.filename)
, lineNumber(lineNumber_)
+ , timeConstraintExempt(details.timeConstraintExempt)
{
}
diff --git a/src/TestDetails.h b/src/TestDetails.h
index 50b630c..eb7d596 100644
--- a/src/TestDetails.h
+++ b/src/TestDetails.h
@@ -15,6 +15,7 @@ public:
char const* const testName;
char const* const filename;
int const lineNumber;
+ mutable bool timeConstraintExempt;
TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind
private:
diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp
index 10f47e4..a8151e6 100644
--- a/src/TestRunner.cpp
+++ b/src/TestRunner.cpp
@@ -67,7 +67,7 @@ void TestRunner::RunTest(TestResults* const result, Test* const curTest, int con
curTest->Run();
double const testTimeInMs = testTimer.GetTimeInMs();
- if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt)
+ if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_details.timeConstraintExempt)
{
MemoryOutStream stream;
stream << "Global time constraint failed. Expected under " << maxTestTimeInMs <<
diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h
index a73057c..8c06913 100644
--- a/src/TimeConstraint.h
+++ b/src/TimeConstraint.h
@@ -29,7 +29,7 @@ private:
#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \
UNITTEST_MULTILINE_MACRO_BEGIN \
- m_timeConstraintExempt = true; \
+ m_details.timeConstraintExempt = true; \
UNITTEST_MULTILINE_MACRO_END
}
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index b607ec6..5b2d65a 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -207,24 +207,30 @@ TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation)
CHECK(strstr(reporter.lastFailedMessage, "3ms"));
}
-TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses)
+
+namespace SlowTestHelper
{
- class SlowExemptedTest : public Test
+ TestRunnerFixture testRunnerFixture;
+
+ TEST_EX(SlowExemptedTest, testRunnerFixture.list)
{
- public:
- SlowExemptedTest() : Test("slowexempted", "", 0) {}
- virtual void RunImpl() const
- {
- UNITTEST_TIME_CONSTRAINT_EXEMPT();
- TimeHelpers::SleepMs(20);
- }
- };
+ UNITTEST_TIME_CONSTRAINT_EXEMPT();
+ TimeHelpers::SleepMs(20);
+ }
+
+ class Fixture {};
+
+ TEST_FIXTURE_EX(Fixture, SlowExemptedTest, testRunnerFixture.list)
+ {
+ UNITTEST_TIME_CONSTRAINT_EXEMPT();
+ TimeHelpers::SleepMs(20);
+ }
+}
- SlowExemptedTest test;
- list.Add(&test);
-
- runner.RunTestsIf(list, NULL, True(), 3);
- CHECK_EQUAL(0, reporter.testFailedCount);
+TEST(SlowTestsWithTimeExemptionPass)
+{
+ SlowTestHelper::testRunnerFixture.runner.RunTestsIf(SlowTestHelper::testRunnerFixture.list, NULL, True(), 3);
+ CHECK_EQUAL(0, SlowTestHelper::testRunnerFixture.reporter.testFailedCount);
}
struct TestSuiteFixture
From 107378a39710230fbc3110a38dfd5acd302e76a1 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 5 Feb 2013 23:22:32 -0600
Subject: [PATCH 044/218] Changed all parameters to
TestReporterStdout::ReportSummary to be const. This best preserved the intent
of the original definition while supporting a non-conformant compiler that
could not handle the mismatch.
---
src/TestReporterStdout.cpp | 2 +-
src/TestReporterStdout.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp
index 1538570..c519e76 100644
--- a/src/TestReporterStdout.cpp
+++ b/src/TestReporterStdout.cpp
@@ -31,7 +31,7 @@ void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float)
}
void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount,
- int const failureCount, float secondsElapsed)
+ int const failureCount, float const secondsElapsed)
{
using namespace std;
diff --git a/src/TestReporterStdout.h b/src/TestReporterStdout.h
index e8d7bbf..457c0b6 100644
--- a/src/TestReporterStdout.h
+++ b/src/TestReporterStdout.h
@@ -11,7 +11,7 @@ private:
virtual void ReportTestStart(TestDetails const& test);
virtual void ReportFailure(TestDetails const& test, char const* failure);
virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
- virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
+ virtual void ReportSummary(int const totalTestCount, int const failedTestCount, int const failureCount, float const secondsElapsed);
};
}
From 000349718d3a77b95f54df6ac4e17fb698ab6eb4 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 6 Feb 2013 00:13:45 -0600
Subject: [PATCH 045/218] Changed sprintf to snprintf in
MemoryOutStream::FormatToStream. Removed trailing 'f' from floats and
formatted all floats and doubles to '%0.6f'.
---
src/MemoryOutStream.cpp | 9 +++++----
src/tests/TestMemoryOutStream.cpp | 14 +++++++++++---
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index 3bacb45..8b97132 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -32,8 +32,9 @@ void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const
{
using namespace std;
- char txt[32];
- sprintf(txt, format, value);
+ const size_t BUFFER_SIZE=32;
+ char txt[BUFFER_SIZE];
+ snprintf(txt, BUFFER_SIZE, format, value);
stream << txt;
}
@@ -127,7 +128,7 @@ MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n)
MemoryOutStream& MemoryOutStream::operator <<(float const f)
{
- FormatToStream(*this, "%ff", f);
+ FormatToStream(*this, "%0.6f", f);
return *this;
}
@@ -145,7 +146,7 @@ MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s)
MemoryOutStream& MemoryOutStream::operator <<(double const d)
{
- FormatToStream(*this, "%f", d);
+ FormatToStream(*this, "%0.6f", d);
return *this;
}
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 87d19c5..964f149 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -4,6 +4,7 @@
#include
#include
#include
+#include
using namespace UnitTest;
using namespace std;
@@ -152,15 +153,15 @@ TEST(WritingStringLongerThanCapacityFitsInNewBuffer)
TEST(WritingIntLongerThanCapacityFitsInNewBuffer)
{
MemoryOutStream stream(8);
- stream << "aaaa" << 123456;;
+ stream << "aaaa" << 123456;
CHECK_EQUAL("aaaa123456", stream.GetText());
}
TEST(WritingFloatLongerThanCapacityFitsInNewBuffer)
{
MemoryOutStream stream(8);
- stream << "aaaa" << 123456.0f;;
- CHECK_EQUAL("aaaa123456.000000f", stream.GetText());
+ stream << "aaaa" << 123456.0f;
+ CHECK_EQUAL("aaaa123456.000000", stream.GetText());
}
TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer)
@@ -170,6 +171,13 @@ TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer)
CHECK_EQUAL("aaaa32145", stream.GetText());
}
+TEST(VerifyLargeDoubleCanBeStreamedWithoutCrashing)
+{
+ MemoryOutStream stream(8);
+ stream << DBL_MAX;
+ CHECK(true);
+}
+
#endif
}
From 4706ca942f53da90cc09117d7fe0f7da5efa5ffe Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Fri, 8 Feb 2013 23:33:47 -0600
Subject: [PATCH 046/218] Converted integral stream testing to min/max/mid
style. Added hard-coded strings for each sizeof() the common integral sizes
to eliminate dependency on platform-specific sizes.
---
src/tests/TestMemoryOutStream.cpp | 151 +++++++++++++++++++++++++++++-
1 file changed, 146 insertions(+), 5 deletions(-)
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 964f149..8ab0d03 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -2,8 +2,8 @@
#include "../MemoryOutStream.h"
#include
-#include
#include
+#include
#include
using namespace UnitTest;
@@ -11,6 +11,57 @@ using namespace std;
namespace {
+const char* const maxSignedIntegralStr(size_t nBytes)
+{
+ switch(nBytes)
+ {
+ case 8:
+ return "9223372036854775807";
+ case 4:
+ return "2147483647";
+ case 2:
+ return "32767";
+ case 1:
+ return "127";
+ default:
+ return "Unsupported signed integral size";
+ }
+}
+
+const char* const minSignedIntegralStr(size_t nBytes)
+{
+ switch(nBytes)
+ {
+ case 8:
+ return "-9223372036854775808";
+ case 4:
+ return "-2147483648";
+ case 2:
+ return "-32768";
+ case 1:
+ return "-128";
+ default:
+ return "Unsupported signed integral size";
+ }
+}
+
+const char* const maxUnsignedIntegralStr(size_t nBytes)
+{
+ switch(nBytes)
+ {
+ case 8:
+ return "18446744073709551615";
+ case 4:
+ return "4294967295";
+ case 2:
+ return "65535";
+ case 1:
+ return "255";
+ default:
+ return "Unsupported signed integral size";
+ }
+}
+
TEST(DefaultIsEmptyString)
{
MemoryOutStream const stream;
@@ -39,6 +90,20 @@ TEST(StreamingIntWritesCorrectCharacters)
CHECK_EQUAL("123", stream.GetText());
}
+TEST(StreaminMaxIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << INT_MAX;
+ CHECK_EQUAL(maxSignedIntegralStr(sizeof(int)), stream.GetText());
+}
+
+TEST(StreamingMinIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << INT_MIN;
+ CHECK_EQUAL(minSignedIntegralStr(sizeof(int)), stream.GetText());
+}
+
TEST(StreamingUnsignedIntWritesCorrectCharacters)
{
MemoryOutStream stream;
@@ -46,6 +111,20 @@ TEST(StreamingUnsignedIntWritesCorrectCharacters)
CHECK_EQUAL("123", stream.GetText());
}
+TEST(StreamingMaxUnsignedIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned int)UINT_MAX;
+ CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned int)), stream.GetText());
+}
+
+TEST(StreamingMinUnsignedIntWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned int)0;
+ CHECK_EQUAL("0", stream.GetText());
+}
+
TEST(StreamingLongWritesCorrectCharacters)
{
MemoryOutStream stream;
@@ -53,6 +132,20 @@ TEST(StreamingLongWritesCorrectCharacters)
CHECK_EQUAL("-123", stream.GetText());
}
+TEST(StreamingMaxLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long)(LONG_MAX);
+ CHECK_EQUAL(maxSignedIntegralStr(sizeof(long)), stream.GetText());
+}
+
+TEST(StreamingMinLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long)(LONG_MIN);
+ CHECK_EQUAL(minSignedIntegralStr(sizeof(long)), stream.GetText());
+}
+
TEST(StreamingUnsignedLongWritesCorrectCharacters)
{
MemoryOutStream stream;
@@ -60,18 +153,66 @@ TEST(StreamingUnsignedLongWritesCorrectCharacters)
CHECK_EQUAL("123", stream.GetText());
}
+TEST(StreamingMaxUnsignedLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long)ULONG_MAX;
+ CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long)), stream.GetText());
+}
+
+TEST(StreamingMinUnsignedLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long)0ul;
+ CHECK_EQUAL("0", stream.GetText());
+}
+
TEST(StreamingLongLongWritesCorrectCharacters)
{
MemoryOutStream stream;
- stream << (long long)8589934590ll;
- CHECK_EQUAL("8589934590", stream.GetText());
+ stream << (long long)-12345ll;
+ CHECK_EQUAL("-12345", stream.GetText());
}
+#ifdef LLONG_MAX
+TEST(StreamingMaxLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long long)LLONG_MAX;
+ CHECK_EQUAL(maxSignedIntegralStr(sizeof(long long)), stream.GetText());
+}
+#endif
+
+#ifdef LLONG_MIN
+TEST(StreamingMinLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (long long)LLONG_MIN;
+ CHECK_EQUAL(minSignedIntegralStr(sizeof(long long)), stream.GetText());
+}
+#endif
+
TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
{
MemoryOutStream stream;
- stream << (unsigned long long)8589934590ull;
- CHECK_EQUAL("8589934590", stream.GetText());
+ stream << (unsigned long long)85899ull;
+ CHECK_EQUAL("85899", stream.GetText());
+}
+
+#ifdef ULLONG_MAX
+TEST(StreamingMaxUnsignedLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long long)ULLONG_MAX;
+ CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long long)), stream.GetText());
+}
+#endif
+
+TEST(StreamingMinUnsignedLongLongWritesCorrectCharacters)
+{
+ MemoryOutStream stream;
+ stream << (unsigned long long)0ull;
+ CHECK_EQUAL("0", stream.GetText());
}
TEST(StreamingFloatWritesCorrectCharacters)
From cd36781bed3237d34a71d42359abeed4b41bf13c Mon Sep 17 00:00:00 2001
From: Sean Farrell
Date: Fri, 15 Feb 2013 13:34:25 +0100
Subject: [PATCH 047/218] Fixes compile error with MSC.
Unfortunately MSC does not support C99 where snprintf was added to the
standard. As a workaround alias _snprint to snprintf.
---
src/MemoryOutStream.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp
index 8b97132..3c112b6 100644
--- a/src/MemoryOutStream.cpp
+++ b/src/MemoryOutStream.cpp
@@ -23,6 +23,10 @@ void MemoryOutStream::Clear()
#include
#include
+#if _MSC_VER
+#define snprintf _snprintf
+#endif
+
namespace UnitTest {
namespace {
From 14ec171068181c97c27908159867920df7de7d22 Mon Sep 17 00:00:00 2001
From: Sean Farrell
Date: Fri, 15 Feb 2013 13:34:58 +0100
Subject: [PATCH 048/218] Adds Visual Studio 2010 project files.
---
TestUnitTest++.vsnet2010.vcxproj | 123 +++++++++++++++++++++++
TestUnitTest++.vsnet2010.vcxproj.filters | 26 +++++
UnitTest++.vsnet2010.sln | 26 +++++
UnitTest++.vsnet2010.vcxproj | 118 ++++++++++++++++++++++
UnitTest++.vsnet2010.vcxproj.filters | 55 ++++++++++
5 files changed, 348 insertions(+)
create mode 100644 TestUnitTest++.vsnet2010.vcxproj
create mode 100644 TestUnitTest++.vsnet2010.vcxproj.filters
create mode 100644 UnitTest++.vsnet2010.sln
create mode 100644 UnitTest++.vsnet2010.vcxproj
create mode 100644 UnitTest++.vsnet2010.vcxproj.filters
diff --git a/TestUnitTest++.vsnet2010.vcxproj b/TestUnitTest++.vsnet2010.vcxproj
new file mode 100644
index 0000000..0bc8ac1
--- /dev/null
+++ b/TestUnitTest++.vsnet2010.vcxproj
@@ -0,0 +1,123 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}
+ TestUnitTestvsnet2005
+ Win32Proj
+ TestUnitTest++.vsnet2010
+
+
+
+ Application
+ Unicode
+ false
+
+
+ Application
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ $(SolutionDir)$(Configuration)\
+ obj\$(ProjectName)\$(Configuration)\
+ true
+ $(SolutionDir)$(Configuration)\
+ obj\$(ProjectName)\$(Configuration)\
+ false
+
+
+
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
+ true
+ Async
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ Level4
+ EditAndContinue
+
+
+ true
+ Console
+ MachineX86
+
+
+ "$(TargetPath)"
+
+
+
+
+ MaxSpeed
+ WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
+ Async
+ MultiThreadedDLL
+
+
+ Level4
+ ProgramDatabase
+
+
+ true
+ Console
+ true
+ true
+ MachineX86
+
+
+ "$(TargetPath)"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {64a4fefe-0461-4e95-8cc1-91ef5f57dbc6}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TestUnitTest++.vsnet2010.vcxproj.filters b/TestUnitTest++.vsnet2010.vcxproj.filters
new file mode 100644
index 0000000..450d1fb
--- /dev/null
+++ b/TestUnitTest++.vsnet2010.vcxproj.filters
@@ -0,0 +1,26 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UnitTest++.vsnet2010.sln b/UnitTest++.vsnet2010.sln
new file mode 100644
index 0000000..47268f1
--- /dev/null
+++ b/UnitTest++.vsnet2010.sln
@@ -0,0 +1,26 @@
+�サソ
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2010", "UnitTest++.vsnet2010.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2010", "TestUnitTest++.vsnet2010.vcxproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
+ {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/UnitTest++.vsnet2010.vcxproj b/UnitTest++.vsnet2010.vcxproj
new file mode 100644
index 0000000..9e0816b
--- /dev/null
+++ b/UnitTest++.vsnet2010.vcxproj
@@ -0,0 +1,118 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
+ UnitTestvsnet2005
+ Win32Proj
+ UnitTest++.vsnet2010
+
+
+
+ StaticLibrary
+ Unicode
+ false
+
+
+ StaticLibrary
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ $(SolutionDir)$(Configuration)\
+ obj\$(ProjectName)\$(Configuration)\
+ $(SolutionDir)$(Configuration)\
+ obj\$(ProjectName)\$(Configuration)\
+
+
+
+ Disabled
+ WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
+ true
+ Async
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ Level4
+ EditAndContinue
+
+
+
+
+ MinSpace
+ WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
+ Async
+ MultiThreadedDLL
+
+
+ Level4
+ ProgramDatabase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UnitTest++.vsnet2010.vcxproj.filters b/UnitTest++.vsnet2010.vcxproj.filters
new file mode 100644
index 0000000..eea216f
--- /dev/null
+++ b/UnitTest++.vsnet2010.vcxproj.filters
@@ -0,0 +1,55 @@
+�サソ
+
+
+
+ {574dd04f-2b0e-463b-adf4-d019dba5403f}
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From d62159e6ab823112589025a10583e0a83ae12a92 Mon Sep 17 00:00:00 2001
From: Sean Farrell
Date: Fri, 15 Feb 2013 13:35:23 +0100
Subject: [PATCH 049/218] Adds .gitignore.
---
.gitignore | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..23d7021
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+*.o
+*.a
+*.user
+*.suo
+*.sdf
+*.opensdf
+Release
+Debug
+ipch
\ No newline at end of file
From fbf390cd8d0e55009fb94a4a45e617bcdd3eed19 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 16 Feb 2013 23:53:30 -0600
Subject: [PATCH 050/218] Add .what() to error message when standard exception
is raised in CHECK.
---
src/CheckMacros.h | 7 +++++++
src/tests/TestExceptions.cpp | 16 +++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index db93aab..a8c125c 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -41,6 +41,13 @@
if (!UnitTest::Check(value)) \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK(" #value ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index ecb3dc7..b5b7339 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -6,13 +6,15 @@
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
+#include
+
using namespace std;
namespace {
int ThrowingFunction()
{
- throw "Doh";
+ throw std::logic_error("Doh");
}
TEST(CheckFailsOnException)
@@ -41,6 +43,18 @@ TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
}
+TEST(CheckFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+}
+
TEST(CheckEqualFailsOnException)
{
bool failure = false;
From 5ddcdd9682490d1033cf2ef212b18aa837fc099a Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 16 Feb 2013 23:56:20 -0600
Subject: [PATCH 051/218] Add .what() to error message when standard exception
is raised in CHECK_EQUAL.
---
src/CheckMacros.h | 7 +++++++
src/tests/TestExceptions.cpp | 12 ++++++++++++
2 files changed, 19 insertions(+)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index a8c125c..c8e6e34 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -61,6 +61,13 @@
({ \
UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK_EQUAL(" #expected ", " #actual ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index b5b7339..d8e1c6f 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -100,6 +100,18 @@ TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
CHECK(strstr(reporter.lastFailedMessage, "123"));
}
+TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_EQUAL(ThrowingFunction(), 123);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+}
+
TEST(CheckCloseFailsOnException)
{
bool failure = false;
From 0950a96eee8ca6b33ea9c8bfe29f5ebd94456c8a Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 16 Feb 2013 23:59:18 -0600
Subject: [PATCH 052/218] Add .what() to error message when standard exception
is raised in CHECK_CLOSE.
---
src/CheckMacros.h | 7 +++++++
src/tests/TestExceptions.cpp | 12 ++++++++++++
2 files changed, 19 insertions(+)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index c8e6e34..65be97a 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -81,6 +81,13 @@
({ \
UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK_CLOSE(" #expected ", " #actual ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index d8e1c6f..ff3b597 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -156,6 +156,18 @@ TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
}
+TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ RecordingReporter reporter;
+ {
+ UnitTest::TestResults testResults(&reporter);
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
+ }
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+}
+
class ThrowingObject
{
public:
From 6266300f01a3bd244330869b479107dda0f087b7 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 17 Feb 2013 00:31:05 -0600
Subject: [PATCH 053/218] Refactor common logic for CHECK tests into a fixture
and add separate tests for std::exception and non.
---
src/tests/TestExceptions.cpp | 77 +++++++++++++++++++++++-------------
1 file changed, 49 insertions(+), 28 deletions(-)
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index ff3b597..88ee41b 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -13,45 +13,66 @@ using namespace std;
namespace {
int ThrowingFunction()
+{
+ throw "Doh";
+}
+
+int ThrowingStdExceptionFunction()
{
throw std::logic_error("Doh");
}
-TEST(CheckFailsOnException)
+struct CheckFixture
{
- bool failure = false;
+ CheckFixture()
+ : reporter()
+ , testResults(&reporter)
{
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- failure = (testResults.GetFailureCount() > 0);
}
- CHECK(failure);
-}
-
-TEST(CheckFailureBecauseOfExceptionIncludesCheckContents)
-{
- RecordingReporter reporter;
+ void Throw()
{
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
- }
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
-}
-
-TEST(CheckFailureBecauseOfStandardExceptionIncludesWhat)
-{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
ScopedCurrentTest scopedResults(testResults);
CHECK(ThrowingFunction() == 1);
}
+ void StdThrow()
+ {
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingStdExceptionFunction() == 1);
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+};
+
+TEST_FIXTURE(CheckFixture, CheckFailsOnException)
+{
+ Throw();
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckFixture, CheckFailsOnStdException)
+{
+ StdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents)
+{
+ Throw();
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
+}
+
+TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents)
+{
+ StdThrow();
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1"));
+}
+
+TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ StdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
@@ -106,7 +127,7 @@ TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
{
UnitTest::TestResults testResults(&reporter);
ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 123);
+ CHECK_EQUAL(ThrowingStdExceptionFunction(), 123);
}
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
@@ -162,7 +183,7 @@ TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
{
UnitTest::TestResults testResults(&reporter);
ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
+ CHECK_CLOSE((float)ThrowingStdExceptionFunction(), 1.0001f, 0.1f);
}
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
From 7e97b46aa422c8d7ebbc8b86d1fa51c31a8e8af6 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 17 Feb 2013 22:03:36 -0600
Subject: [PATCH 054/218] Improve CheckFixture method names.
Rename `CheckFixture::Throw` to `CheckFixture::PerformCheckWithNonStdThrow`.
Rename `CheckFixture::StdThrow` to CheckFixture::PerformCheckWithStdThrow`.
---
src/tests/TestExceptions.cpp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 88ee41b..bf43152 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -30,13 +30,13 @@ struct CheckFixture
{
}
- void Throw()
+ void PerformCheckWithNonStdThrow()
{
ScopedCurrentTest scopedResults(testResults);
CHECK(ThrowingFunction() == 1);
}
- void StdThrow()
+ void PerformCheckWithStdThrow()
{
ScopedCurrentTest scopedResults(testResults);
CHECK(ThrowingStdExceptionFunction() == 1);
@@ -48,31 +48,31 @@ struct CheckFixture
TEST_FIXTURE(CheckFixture, CheckFailsOnException)
{
- Throw();
+ PerformCheckWithNonStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
TEST_FIXTURE(CheckFixture, CheckFailsOnStdException)
{
- StdThrow();
+ PerformCheckWithStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents)
{
- Throw();
+ PerformCheckWithNonStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
}
TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents)
{
- StdThrow();
+ PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1"));
}
TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat)
{
- StdThrow();
+ PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
From 3d1e3324d2ae82dccdead10b0f702ecb3941b998 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 17 Feb 2013 22:17:35 -0600
Subject: [PATCH 055/218] Refactor TestExceptions CheckEqual tests to use a
fixture and add additional tests for std:: exceptions.
---
src/tests/TestExceptions.cpp | 88 +++++++++++++++++++++++-------------
1 file changed, 57 insertions(+), 31 deletions(-)
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index bf43152..753df10 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -76,31 +76,49 @@ TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat)
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
-TEST(CheckEqualFailsOnException)
+struct CheckEqualFixture
{
- bool failure = false;
+ CheckEqualFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
{
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 1);
- failure = (testResults.GetFailureCount() > 0);
}
- CHECK(failure);
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
-TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException)
{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
+ PerformCheckWithStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
+}
- CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
- }
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
CHECK_EQUAL("testName", reporter.lastFailedTest);
CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
@@ -108,27 +126,35 @@ TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 123);
- }
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
CHECK(strstr(reporter.lastFailedMessage, "123"));
}
-TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingStdExceptionFunction(), 123);
- }
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
+}
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
From 858fa04977b3b23ea2aabc0e1119b6572eb57a20 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 17 Feb 2013 22:23:59 -0600
Subject: [PATCH 056/218] Refactor TestExceptions CheckClose tests to use a
fixture and add additional tests for std:: exceptions.
---
src/tests/TestExceptions.cpp | 93 +++++++++++++++++++++++-------------
1 file changed, 61 insertions(+), 32 deletions(-)
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 753df10..c225035 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -159,30 +159,51 @@ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionInclu
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
-TEST(CheckCloseFailsOnException)
+struct CheckCloseFixture
{
- bool failure = false;
+ CheckCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
{
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
- failure = (testResults.GetFailureCount() > 0);
}
- CHECK(failure);
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
}
-TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException)
{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__;
- }
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
CHECK_EQUAL("closeTest", reporter.lastFailedTest);
CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
@@ -190,27 +211,35 @@ TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f);
- }
+ PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()"));
+ CHECK_EQUAL("closeTest", reporter.lastFailedTest);
+ CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())"));
CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
}
-TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_CLOSE((float)ThrowingStdExceptionFunction(), 1.0001f, 0.1f);
- }
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())"));
+ CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
+}
+
+TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
From 17293bf412367566ff735981d53999aeab6ddf6e Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 17 Feb 2013 22:46:04 -0600
Subject: [PATCH 057/218] Add .what() to error reporting for std::exceptions in
CHECK_ARRAY_CLOSE.
---
src/CheckMacros.h | 7 ++
src/tests/TestExceptions.cpp | 129 +++++++++++++++++++++++------------
2 files changed, 91 insertions(+), 45 deletions(-)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 65be97a..6560af9 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -114,6 +114,13 @@
({ \
UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index c225035..e3333de 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -253,18 +253,48 @@ public:
}
};
-TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
+class StdThrowingObject
{
- int line = 0;
- RecordingReporter reporter;
+public:
+ float operator[](int) const
{
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ throw std::runtime_error("Test throw");
}
+};
+
+struct CheckArrayCloseFixture
+{
+ CheckArrayCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
+
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
@@ -272,56 +302,65 @@ TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArrayCloseFailsOnException)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
+ PerformCheckWithStdThrow();
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnException)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
+ PerformCheckWithNonStdThrow();
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f);
- }
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnStdException)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
}
-TEST(CheckArrayEqualFailsOnException)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents)
{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
+ PerformCheckWithStdThrow();
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
+}
- failure = (testResults.GetFailureCount() > 0);
- }
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
- CHECK(failure);
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnStdException)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
}
TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
From af9d91d16bd8e7cf9da33af889cbbd3201910768 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 21:20:34 -0600
Subject: [PATCH 058/218] Add .what() to error reporting for std::exceptions in
CHECK_ARRAY_EQUAL.
---
src/CheckMacros.h | 7 +++
src/tests/TestExceptions.cpp | 86 +++++++++++++++++++++++++++++++-----
2 files changed, 83 insertions(+), 10 deletions(-)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 6560af9..9833222 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -101,6 +101,13 @@
({ \
UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index e3333de..647517d 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -363,22 +363,88 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionInclude
CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
}
-TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents)
+struct CheckArrayEqualFixture
{
- RecordingReporter reporter;
+ CheckArrayEqualFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
{
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
-
- const float data[4] = { 0, 1, 2, 3 };
- ThrowingObject obj;
- CHECK_ARRAY_EQUAL (data, obj, 3);
}
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
}
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnStdException)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnStdException)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
+}
+
+
class ThrowingObject2D
{
public:
From 4a95a3473ab28f4b520dd00504c783d51148108e Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 21:40:38 -0600
Subject: [PATCH 059/218] Add .what() to error reporting for std::exceptions in
CHECK_ARRAY2D_CLOSE.
---
src/CheckMacros.h | 9 +-
src/tests/TestExceptions.cpp | 238 ++++++++++++++++++++---------------
2 files changed, 148 insertions(+), 99 deletions(-)
diff --git a/src/CheckMacros.h b/src/CheckMacros.h
index 9833222..9d6a759 100644
--- a/src/CheckMacros.h
+++ b/src/CheckMacros.h
@@ -141,10 +141,17 @@
({ \
UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \
}) \
+ UT_CATCH (std::exception, e, \
+ { \
+ UnitTest::MemoryOutStream message; \
+ message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY2D_CLOSE(" #expected ", " #actual ")"; \
+ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
+ message.GetText()); \
+ }) \
UT_CATCH_ALL \
({ \
UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \
- "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \
+ "Unhandled exception in CHECK_ARRAY2D_CLOSE(" #expected ", " #actual ")"); \
}) \
UNITTEST_MULTILINE_MACRO_END
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 647517d..0965467 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -262,6 +262,8 @@ public:
}
};
+SUITE(ArrayClose)
+{
struct CheckArrayCloseFixture
{
CheckArrayCloseFixture()
@@ -292,7 +294,7 @@ struct CheckArrayCloseFixture
int line;
};
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
{
PerformCheckWithNonStdThrow();
@@ -302,7 +304,7 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionCon
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdExceptionContainsCorrectDetails)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
{
PerformCheckWithStdThrow();
@@ -312,21 +314,21 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdException
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnException)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException)
{
PerformCheckWithNonStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnStdException)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException)
{
PerformCheckWithStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
{
PerformCheckWithNonStdThrow();
@@ -334,7 +336,7 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCh
CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
{
PerformCheckWithStdThrow();
@@ -342,72 +344,81 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionInclude
CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnException)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnStdException)
-{
- PerformCheckWithStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat)
+TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
{
PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
}
+}
-struct CheckArrayEqualFixture
+SUITE(ArrayEqual)
{
- CheckArrayEqualFixture()
- : reporter()
- , testResults(&reporter)
- , line(-1)
+ struct CheckArrayEqualFixture
{
- }
+ CheckArrayEqualFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
- void PerformCheckWithNonStdThrow()
- {
- UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__;
- }
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayEqualTest", "arrayEqualSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__;
+ }
- void PerformCheckWithStdThrow()
- {
- UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__;
- }
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayEqualTest", "arrayEqualSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__;
+ }
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
- int line;
-};
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+ };
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnException)
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
+
+ CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException)
{
PerformCheckWithNonStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnStdException)
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException)
{
PerformCheckWithStdThrow();
CHECK(testResults.GetFailureCount() > 0);
}
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents)
{
PerformCheckWithNonStdThrow();
@@ -415,7 +426,7 @@ TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnExceptionIncludesCh
CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
}
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents)
{
PerformCheckWithStdThrow();
@@ -423,28 +434,16 @@ TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnStdExceptionInclude
CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
}
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnException)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnStdException)
-{
- PerformCheckWithStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat)
+TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat)
{
PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
}
+}
-
+SUITE(Check2D)
+{
class ThrowingObject2D
{
public:
@@ -454,18 +453,48 @@ public:
}
};
-TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
+class StdThrowingObject2D
{
- int line = 0;
- RecordingReporter reporter;
+public:
+ float* operator[](int) const
{
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
-
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ throw std::runtime_error("Test throw");
}
+};
+
+struct CheckArray2DCloseFixture
+{
+ CheckArray2DCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
+
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
@@ -473,40 +502,53 @@ TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails)
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArray2DCloseFailsOnException)
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- bool failure = false;
- {
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
+ PerformCheckWithStdThrow();
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
-
- failure = (testResults.GetFailureCount() > 0);
- }
-
- CHECK(failure);
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
+ PerformCheckWithNonStdThrow();
- const float data[2][2] = { {0, 1}, {2, 3} };
- ThrowingObject2D obj;
- CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f);
- }
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+}
+
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "obj"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()"));
}
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()"));
+}
+
+TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
+}
+}
}
#endif
From 299df3efe54d147194156575392e8b8b5af287e8 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 21:46:40 -0600
Subject: [PATCH 060/218] Group all exception tests into suites and normalize
indentation.
---
src/tests/TestExceptions.cpp | 791 ++++++++++++++++++-----------------
1 file changed, 400 insertions(+), 391 deletions(-)
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 0965467..fa8b917 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -22,226 +22,235 @@ int ThrowingStdExceptionFunction()
throw std::logic_error("Doh");
}
-struct CheckFixture
+SUITE(CheckExceptionTests)
{
- CheckFixture()
- : reporter()
- , testResults(&reporter)
+ struct CheckFixture
{
+ CheckFixture()
+ : reporter()
+ , testResults(&reporter)
+ {
+ }
+
+ void PerformCheckWithNonStdThrow()
+ {
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingFunction() == 1);
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ ScopedCurrentTest scopedResults(testResults);
+ CHECK(ThrowingStdExceptionFunction() == 1);
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ };
+
+ TEST_FIXTURE(CheckFixture, CheckFailsOnException)
+ {
+ PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
- void PerformCheckWithNonStdThrow()
+ TEST_FIXTURE(CheckFixture, CheckFailsOnStdException)
{
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingFunction() == 1);
+ PerformCheckWithStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
- void PerformCheckWithStdThrow()
+ TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents)
{
- ScopedCurrentTest scopedResults(testResults);
- CHECK(ThrowingStdExceptionFunction() == 1);
+ PerformCheckWithNonStdThrow();
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
}
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
-};
-
-TEST_FIXTURE(CheckFixture, CheckFailsOnException)
-{
- PerformCheckWithNonStdThrow();
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckFixture, CheckFailsOnStdException)
-{
- PerformCheckWithStdThrow();
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1"));
-}
-
-TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1"));
-}
-
-TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
-}
-
-struct CheckEqualFixture
-{
- CheckEqualFixture()
- : reporter()
- , testResults(&reporter)
- , line(-1)
+ TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents)
{
+ PerformCheckWithStdThrow();
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1"));
}
- void PerformCheckWithNonStdThrow()
+ TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat)
{
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ PerformCheckWithStdThrow();
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+ }
+}
+
+SUITE(CheckEqualExceptionTests)
+{
+ struct CheckEqualFixture
+ {
+ CheckEqualFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
+
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+ };
+
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException)
+ {
+ PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
- void PerformCheckWithStdThrow()
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException)
{
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__;
+ PerformCheckWithStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
- int line;
-};
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException)
-{
- PerformCheckWithNonStdThrow();
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException)
-{
- PerformCheckWithStdThrow();
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK_EQUAL("testName", reporter.lastFailedTest);
- CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails)
-{
- PerformCheckWithStdThrow();
-
- CHECK_EQUAL("testName", reporter.lastFailedTest);
- CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "123"));
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()"));
- CHECK(strstr(reporter.lastFailedMessage, "123"));
-}
-
-TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
-}
-
-struct CheckCloseFixture
-{
- CheckCloseFixture()
- : reporter()
- , testResults(&reporter)
- , line(-1)
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
{
+ PerformCheckWithNonStdThrow();
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithNonStdThrow()
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__;
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithStdThrow()
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
{
- UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__;
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
}
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
- int line;
-};
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents)
+ {
+ PerformCheckWithStdThrow();
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException)
-{
- PerformCheckWithNonStdThrow();
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
+ }
- CHECK(testResults.GetFailureCount() > 0);
+ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+ }
}
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException)
+SUITE(CheckCloseExceptionTests)
{
- PerformCheckWithStdThrow();
+ struct CheckCloseFixture
+ {
+ CheckCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
- CHECK(testResults.GetFailureCount() > 0);
-}
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__;
+ }
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
-{
- PerformCheckWithNonStdThrow();
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__;
+ }
- CHECK_EQUAL("closeTest", reporter.lastFailedTest);
- CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+ };
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails)
-{
- PerformCheckWithStdThrow();
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException)
+ {
+ PerformCheckWithNonStdThrow();
- CHECK_EQUAL("closeTest", reporter.lastFailedTest);
- CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
+ CHECK(testResults.GetFailureCount() > 0);
+ }
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException)
+ {
+ PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())"));
- CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
-}
+ CHECK(testResults.GetFailureCount() > 0);
+ }
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails)
+ {
+ PerformCheckWithNonStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())"));
- CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
-}
+ CHECK_EQUAL("closeTest", reporter.lastFailedTest);
+ CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+ }
-TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails)
+ {
+ PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+ CHECK_EQUAL("closeTest", reporter.lastFailedTest);
+ CHECK_EQUAL("closeSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+ }
+
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents)
+ {
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())"));
+ CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
+ }
+
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())"));
+ CHECK(strstr(reporter.lastFailedMessage, "1.0001f"));
+ }
+
+ TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
+ }
}
class ThrowingObject
@@ -262,97 +271,97 @@ public:
}
};
-SUITE(ArrayClose)
+SUITE(CheckArrayCloseExceptionTests)
{
-struct CheckArrayCloseFixture
-{
- CheckArrayCloseFixture()
- : reporter()
- , testResults(&reporter)
- , line(-1)
+ struct CheckArrayCloseFixture
{
+ CheckArrayCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
+
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ int const data[4] = { 0, 1, 2, 3 };
+ CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+ };
+
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
+ {
+ PerformCheckWithNonStdThrow();
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithNonStdThrow()
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__;
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithStdThrow()
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException)
{
- UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- int const data[4] = { 0, 1, 2, 3 };
- CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__;
+ PerformCheckWithNonStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
}
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
- int line;
-};
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException)
+ {
+ PerformCheckWithStdThrow();
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
-{
- PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
+ }
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
+ {
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
+ }
+
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
+ }
+
+ TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
+ }
}
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
-{
- PerformCheckWithStdThrow();
-
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException)
-{
- PerformCheckWithStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
-}
-
-TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
-}
-}
-
-SUITE(ArrayEqual)
+SUITE(CheckArrayEqualExceptionTests)
{
struct CheckArrayEqualFixture
{
@@ -384,170 +393,170 @@ SUITE(ArrayEqual)
int line;
};
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
-{
- PerformCheckWithStdThrow();
-
- CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException)
-{
- PerformCheckWithStdThrow();
-
- CHECK(testResults.GetFailureCount() > 0);
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
-}
-
-TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
-
- CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
-}
-}
-
-SUITE(Check2D)
-{
-class ThrowingObject2D
-{
-public:
- float* operator[](int) const
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
{
- throw "Test throw";
- }
-};
+ PerformCheckWithNonStdThrow();
-class StdThrowingObject2D
-{
-public:
- float* operator[](int) const
- {
- throw std::runtime_error("Test throw");
- }
-};
-
-struct CheckArray2DCloseFixture
-{
- CheckArray2DCloseFixture()
- : reporter()
- , testResults(&reporter)
- , line(-1)
- {
+ CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithNonStdThrow()
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest);
+ CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
}
- void PerformCheckWithStdThrow()
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException)
{
- UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
- const float data[2][2] = { {0, 1}, {2, 3} };
- CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ PerformCheckWithNonStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
}
- RecordingReporter reporter;
- UnitTest::TestResults testResults;
- int line;
-};
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException)
+ {
+ PerformCheckWithStdThrow();
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
-{
- PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
+ }
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents)
+ {
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()"));
+ }
+
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()"));
+ }
+
+ TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
+ }
}
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
+SUITE(CheckArray2DExceptionTests)
{
- PerformCheckWithStdThrow();
+ class ThrowingObject2D
+ {
+ public:
+ float* operator[](int) const
+ {
+ throw "Test throw";
+ }
+ };
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("filename", reporter.lastFailedFile);
- CHECK_EQUAL(line, reporter.lastFailedLine);
-}
+ class StdThrowingObject2D
+ {
+ public:
+ float* operator[](int) const
+ {
+ throw std::runtime_error("Test throw");
+ }
+ };
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException)
-{
- PerformCheckWithNonStdThrow();
+ struct CheckArray2DCloseFixture
+ {
+ CheckArray2DCloseFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
+ {
+ }
- CHECK(testResults.GetFailureCount() > 0);
-}
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException)
-{
- PerformCheckWithStdThrow();
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ const float data[2][2] = { {0, 1}, {2, 3} };
+ CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__;
+ }
- CHECK(testResults.GetFailureCount() > 0);
-}
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+ };
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
-{
- PerformCheckWithNonStdThrow();
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails)
+ {
+ PerformCheckWithNonStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()"));
-}
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+ }
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
-{
- PerformCheckWithStdThrow();
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails)
+ {
+ PerformCheckWithStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "data"));
- CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()"));
-}
+ CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
+ CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+ }
-TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
-{
- PerformCheckWithStdThrow();
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException)
+ {
+ PerformCheckWithNonStdThrow();
- CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
-}
+ CHECK(testResults.GetFailureCount() > 0);
+ }
+
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(testResults.GetFailureCount() > 0);
+ }
+
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents)
+ {
+ PerformCheckWithNonStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()"));
+ }
+
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "data"));
+ CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()"));
+ }
+
+ TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat)
+ {
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)"));
+ }
}
}
From b840df2d0d4667f2d04b8d17bbbf84b807421891 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 22:23:26 -0600
Subject: [PATCH 061/218] Change default MemoryOutStream to be a
std::ostringstream.
This changes restores the default behavior to that of UT++ 1.4.
It is accomplished by reintroducing the old UNITTEST_USE_CUSTOM_STREAMS
define, commented out, and surrounding the new define in an ifndef
block. It was done this way to preserve any unconventional users that
were specifying either flag in their build system, instead of in this
file.
---
config.h | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/config.h b/config.h
index 92706c7..5313b09 100644
--- a/config.h
+++ b/config.h
@@ -28,13 +28,22 @@
#endif
-// MemoryOutStream is a custom reimplementation of parts of std::ostringstream.
-// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream.
+// By default, MemoryOutStream is implemented in terms of std::ostringstream.
// This is useful if you are using the CHECK macros on objects that have something like this defined:
// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value)
+//
+// On the other hand, it can be more expensive.
+// Un-comment this line to use the custom MemoryOutStream (no deps on std::ostringstream).
-//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+// #define UNITTEST_USE_CUSTOM_STREAMS
+// Developer note: This dual-macro setup is to preserve compatibility with UnitTest++ 1.4 users
+// who may have used or defined UNITTEST_USE_CUSTOM_STREAMS outside of this configuration file, as
+// well as Google Code HEAD users that may have used or defined
+// UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM outside of this configuration file.
+#ifndef UNITTEST_USE_CUSTOM_STREAMS
+ #define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
+#endif
// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like
// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL
From 8a58afab17d02e7107b8481c929598d158521941 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 23:26:18 -0600
Subject: [PATCH 062/218] Add install targets and install path customization.
This commit adds install() directives to the CMake file. By default,
headers will be installed to CMAKE_INSTALL_PREFIX/include/UnitTest++
and libUnitTest++.a will be installed to CMAKE_INSTALL_PREFIX/lib.
If the user defines UTPP_USE_PLUS_SIGN=OFF when generating, the ++
will be replaced with PP in both the library file name and the
include path.
---
CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++++-----
1 file changed, 34 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9210fe6..3e50e0f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,12 @@
cmake_minimum_required(VERSION 2.8.1)
project(UnitTest++)
+option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON)
+
# get the main sources
-file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h)
-source_group("" FILES ${SRCS})
+file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h)
+file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
+source_group("" FILES ${headers_} ${sources_})
# get platform specific sources
if (WIN32)
@@ -11,19 +14,28 @@ if (WIN32)
else()
set(PLAT_DIR Posix)
endif(WIN32)
+
file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
source_group(${PLAT_DIR} FILES ${PLAT_SRCS})
# create the lib
-add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS})
-set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS})
+
+if(${UTPP_USE_PLUS_SIGN})
+ set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+endif()
+
include_directories(src)
# build the test runner
file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h)
source_group( "" FILES ${TEST_SRCS})
add_executable(TestUnitTestPP ${TEST_SRCS})
-set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+
+if(${UTPP_USE_PLUS_SIGN})
+ set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+endif()
+
target_link_libraries(TestUnitTestPP UnitTestPP)
# turn on testing
@@ -33,3 +45,20 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
# add the test runner as a test
add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
add_dependencies(check TestUnitTestPP)
+
+
+# add install targets
+# need a custom install path?
+# define CMAKE_INSTALL_PREFIX to change root folder
+# don't want it to go in include/UnitTest++?
+# define UTPP_INSTALL_DESTINATION
+if (NOT DEFINED UTPP_INSTALL_DESTINATION)
+ if(${UTPP_USE_PLUS_SIGN})
+ set (UTPP_INSTALL_DESTINATION "include/UnitTest++")
+ else()
+ set (UTPP_INSTALL_DESTINATION "include/UnitTestPP")
+ endif()
+endif()
+
+install(TARGETS UnitTestPP DESTINATION lib)
+install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
\ No newline at end of file
From c702d69a8560a290d2a661d2ef9ba4c4cca96136 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 23:33:33 -0600
Subject: [PATCH 063/218] Revert "Add install targets and install path
customization."
This reverts commit 1fa77e11c6e3afa9c3f4f54c3c888bf5c713fed5.
---
CMakeLists.txt | 39 +++++----------------------------------
1 file changed, 5 insertions(+), 34 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e50e0f..9210fe6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,12 +1,9 @@
cmake_minimum_required(VERSION 2.8.1)
project(UnitTest++)
-option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON)
-
# get the main sources
-file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h)
-file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
-source_group("" FILES ${headers_} ${sources_})
+file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h)
+source_group("" FILES ${SRCS})
# get platform specific sources
if (WIN32)
@@ -14,28 +11,19 @@ if (WIN32)
else()
set(PLAT_DIR Posix)
endif(WIN32)
-
file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
source_group(${PLAT_DIR} FILES ${PLAT_SRCS})
# create the lib
-add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS})
-
-if(${UTPP_USE_PLUS_SIGN})
- set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
-endif()
-
+add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS})
+set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
include_directories(src)
# build the test runner
file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h)
source_group( "" FILES ${TEST_SRCS})
add_executable(TestUnitTestPP ${TEST_SRCS})
-
-if(${UTPP_USE_PLUS_SIGN})
- set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
-endif()
-
+set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
target_link_libraries(TestUnitTestPP UnitTestPP)
# turn on testing
@@ -45,20 +33,3 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
# add the test runner as a test
add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
add_dependencies(check TestUnitTestPP)
-
-
-# add install targets
-# need a custom install path?
-# define CMAKE_INSTALL_PREFIX to change root folder
-# don't want it to go in include/UnitTest++?
-# define UTPP_INSTALL_DESTINATION
-if (NOT DEFINED UTPP_INSTALL_DESTINATION)
- if(${UTPP_USE_PLUS_SIGN})
- set (UTPP_INSTALL_DESTINATION "include/UnitTest++")
- else()
- set (UTPP_INSTALL_DESTINATION "include/UnitTestPP")
- endif()
-endif()
-
-install(TARGETS UnitTestPP DESTINATION lib)
-install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
\ No newline at end of file
From 13a6c9e6ada95a291cdcf132ba2a0122f4a924a7 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 23:35:10 -0600
Subject: [PATCH 064/218] Add install targets and install path customization.
This commit adds install() directives to the CMake file. By default,
headers will be installed to CMAKE_INSTALL_PREFIX/include/UnitTest++
and libUnitTest++.a will be installed to CMAKE_INSTALL_PREFIX/lib.
If the user defines UTPP_USE_PLUS_SIGN=OFF when generating, the ++
will be replaced with PP in both the library file name and the
include path.
---
CMakeLists.txt | 35 ++++++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9210fe6..ba5694d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,12 @@
cmake_minimum_required(VERSION 2.8.1)
project(UnitTest++)
+option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON)
+
# get the main sources
-file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h)
-source_group("" FILES ${SRCS})
+file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h)
+file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
+source_group("" FILES ${headers_} ${sources_})
# get platform specific sources
if (WIN32)
@@ -11,19 +14,28 @@ if (WIN32)
else()
set(PLAT_DIR Posix)
endif(WIN32)
+
file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
source_group(${PLAT_DIR} FILES ${PLAT_SRCS})
# create the lib
-add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS})
-set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS})
+
+if(${UTPP_USE_PLUS_SIGN})
+ set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+endif()
+
include_directories(src)
# build the test runner
file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h)
source_group( "" FILES ${TEST_SRCS})
add_executable(TestUnitTestPP ${TEST_SRCS})
-set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+
+if(${UTPP_USE_PLUS_SIGN})
+ set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+endif()
+
target_link_libraries(TestUnitTestPP UnitTestPP)
# turn on testing
@@ -33,3 +45,16 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
# add the test runner as a test
add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
add_dependencies(check TestUnitTestPP)
+
+
+# add install targets
+# need a custom install path?
+# define CMAKE_INSTALL_PREFIX to change root folder
+if(${UTPP_USE_PLUS_SIGN})
+ set (UTPP_INSTALL_DESTINATION "include/UnitTest++")
+else()
+ set (UTPP_INSTALL_DESTINATION "include/UnitTestPP")
+endif()
+
+install(TARGETS UnitTestPP DESTINATION lib)
+install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
\ No newline at end of file
From c3aa1e45a899bd0e746653c397da482371b89c6e Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Tue, 19 Feb 2013 23:56:22 -0600
Subject: [PATCH 065/218] Move unittestpp.h to src/UnitTestPP.h and add
src/UnitTest++.h.
This is a 1.4 compatibility and consistency fix.
---
src/UnitTest++.h | 1 +
src/UnitTestPP.h | 11 +++++++++++
src/tests/Main.cpp | 2 +-
src/tests/TestAssertHandler.cpp | 2 +-
src/tests/TestCheckMacros.cpp | 2 +-
src/tests/TestChecks.cpp | 2 +-
src/tests/TestCompositeTestReporter.cpp | 2 +-
src/tests/TestCurrentTest.cpp | 2 +-
src/tests/TestDeferredTestReporter.cpp | 2 +-
src/tests/TestExceptions.cpp | 2 +-
src/tests/TestMemoryOutStream.cpp | 2 +-
src/tests/TestTest.cpp | 2 +-
src/tests/TestTestList.cpp | 2 +-
src/tests/TestTestMacros.cpp | 2 +-
src/tests/TestTestResults.cpp | 2 +-
src/tests/TestTestRunner.cpp | 2 +-
src/tests/TestTestSuite.cpp | 2 +-
src/tests/TestTimeConstraint.cpp | 2 +-
src/tests/TestTimeConstraintMacro.cpp | 2 +-
src/tests/TestUnitTestPP.cpp | 2 +-
src/tests/TestXmlTestReporter.cpp | 2 +-
unittestpp.h | 11 -----------
22 files changed, 31 insertions(+), 30 deletions(-)
create mode 100644 src/UnitTest++.h
create mode 100644 src/UnitTestPP.h
delete mode 100644 unittestpp.h
diff --git a/src/UnitTest++.h b/src/UnitTest++.h
new file mode 100644
index 0000000..1a9fe86
--- /dev/null
+++ b/src/UnitTest++.h
@@ -0,0 +1 @@
+#include "UnitTestPP.h"
\ No newline at end of file
diff --git a/src/UnitTestPP.h b/src/UnitTestPP.h
new file mode 100644
index 0000000..69dde9b
--- /dev/null
+++ b/src/UnitTestPP.h
@@ -0,0 +1,11 @@
+#ifndef UNITTESTPP_H
+#define UNITTESTPP_H
+
+#include "../config.h"
+#include "TestMacros.h"
+#include "CheckMacros.h"
+#include "TestRunner.h"
+#include "TimeConstraint.h"
+#include "ReportAssert.h"
+
+#endif
diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp
index 47de7db..6e8c891 100644
--- a/src/tests/Main.cpp
+++ b/src/tests/Main.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
int main(int, char const *[])
{
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 6caba43..30275bc 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,5 +1,5 @@
#include "../../config.h"
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../ReportAssert.h"
#include "../ReportAssertImpl.h"
diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp
index c6c727b..be60875 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/src/tests/TestCheckMacros.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp
index 3d73b99..3059d50 100644
--- a/src/tests/TestChecks.cpp
+++ b/src/tests/TestChecks.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "RecordingReporter.h"
#include
diff --git a/src/tests/TestCompositeTestReporter.cpp b/src/tests/TestCompositeTestReporter.cpp
index c3d6a24..9318cc6 100644
--- a/src/tests/TestCompositeTestReporter.cpp
+++ b/src/tests/TestCompositeTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../CompositeTestReporter.h"
using namespace UnitTest;
diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp
index 35f9c5a..43732a8 100644
--- a/src/tests/TestCurrentTest.cpp
+++ b/src/tests/TestCurrentTest.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../CurrentTest.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index a45eb05..0d7775e 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -2,7 +2,7 @@
#ifndef UNITTEST_NO_DEFERRED_REPORTER
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../DeferredTestReporter.h"
#include
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index fa8b917..6c0307f 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -1,7 +1,7 @@
#include "../../config.h"
#ifndef UNITTEST_NO_EXCEPTIONS
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp
index 8ab0d03..27a7ce8 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/src/tests/TestMemoryOutStream.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../MemoryOutStream.h"
#include
diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp
index efa31b8..58b0bc2 100644
--- a/src/tests/TestTest.cpp
+++ b/src/tests/TestTest.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TestReporter.h"
#include "../TimeHelpers.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp
index 59517e7..03828e9 100644
--- a/src/tests/TestTestList.cpp
+++ b/src/tests/TestTestList.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TestList.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp
index 8ab11d6..4a0f3ea 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/src/tests/TestTestMacros.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TestMacros.h"
#include "../TestList.h"
#include "../TestResults.h"
diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp
index 38414e5..2b9b703 100644
--- a/src/tests/TestTestResults.cpp
+++ b/src/tests/TestTestResults.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TestResults.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp
index 5b2d65a..3a98d62 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/src/tests/TestTestRunner.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "RecordingReporter.h"
#include "../ReportAssert.h"
#include "../TestList.h"
diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp
index ad7725f..a82b75e 100644
--- a/src/tests/TestTestSuite.cpp
+++ b/src/tests/TestTestSuite.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
// We're really testing if it's possible to use the same suite in two files
// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp
index eec7e43..611ee6c 100644
--- a/src/tests/TestTimeConstraint.cpp
+++ b/src/tests/TestTimeConstraint.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TestResults.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp
index ebb5388..2e710bb 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/src/tests/TestTimeConstraintMacro.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../TimeHelpers.h"
#include "RecordingReporter.h"
diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp
index f38ca93..cb4d0d0 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/src/tests/TestUnitTestPP.cpp
@@ -1,4 +1,4 @@
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "ScopedCurrentTest.h"
// These are sample tests that show the different features of the framework
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index ec9cb7a..447acf0 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,7 +1,7 @@
#include "../../config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
-#include "../../unittestpp.h"
+#include "../../src/UnitTestPP.h"
#include "../XmlTestReporter.h"
#include
diff --git a/unittestpp.h b/unittestpp.h
deleted file mode 100644
index dd3a5de..0000000
--- a/unittestpp.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef UNITTESTPP_H
-#define UNITTESTPP_H
-
-#include "config.h"
-#include "src/TestMacros.h"
-#include "src/CheckMacros.h"
-#include "src/TestRunner.h"
-#include "src/TimeConstraint.h"
-#include "src/ReportAssert.h"
-
-#endif
From 0f8d425de712a0098cf4a3d43e1150fce06dbf12 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 00:01:55 -0600
Subject: [PATCH 066/218] Move config.h to src/Config.h.
This is a 1.4 compatibility and consistency change.
---
src/AssertException.h | 2 +-
src/Checks.h | 2 +-
config.h => src/Config.h | 0
src/DeferredTestReporter.cpp | 2 +-
src/DeferredTestReporter.h | 2 +-
src/DeferredTestResult.cpp | 2 +-
src/DeferredTestResult.h | 2 +-
src/ExceptionMacros.h | 2 +-
src/ExecuteTest.h | 2 +-
src/HelperMacros.h | 2 +-
src/MemoryOutStream.h | 2 +-
src/ReportAssertImpl.h | 2 +-
src/Test.cpp | 2 +-
src/TestMacros.h | 2 +-
src/TimeHelpers.h | 2 +-
src/UnitTestPP.h | 2 +-
src/Win32/TimeHelpers.h | 2 +-
src/XmlTestReporter.cpp | 2 +-
src/XmlTestReporter.h | 2 +-
src/tests/TestAssertHandler.cpp | 2 +-
src/tests/TestDeferredTestReporter.cpp | 2 +-
src/tests/TestExceptions.cpp | 2 +-
src/tests/TestXmlTestReporter.cpp | 2 +-
23 files changed, 22 insertions(+), 22 deletions(-)
rename config.h => src/Config.h (100%)
diff --git a/src/AssertException.h b/src/AssertException.h
index 620e397..e5d0705 100644
--- a/src/AssertException.h
+++ b/src/AssertException.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_ASSERTEXCEPTION_H
#define UNITTEST_ASSERTEXCEPTION_H
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_EXCEPTIONS
#include "HelperMacros.h"
diff --git a/src/Checks.h b/src/Checks.h
index 4eb1842..b2cc4db 100644
--- a/src/Checks.h
+++ b/src/Checks.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_CHECKS_H
#define UNITTEST_CHECKS_H
-#include "../config.h"
+#include "Config.h"
#include "TestResults.h"
#include "MemoryOutStream.h"
diff --git a/config.h b/src/Config.h
similarity index 100%
rename from config.h
rename to src/Config.h
diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp
index 4b731f4..60e0ded 100644
--- a/src/DeferredTestReporter.cpp
+++ b/src/DeferredTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h
index ad69b26..757e53f 100644
--- a/src/DeferredTestReporter.h
+++ b/src/DeferredTestReporter.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_DEFERREDTESTREPORTER_H
#define UNITTEST_DEFERREDTESTREPORTER_H
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp
index ae54d38..5071f82 100644
--- a/src/DeferredTestResult.cpp
+++ b/src/DeferredTestResult.cpp
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestResult.h"
diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h
index 6f56621..0929566 100644
--- a/src/DeferredTestResult.h
+++ b/src/DeferredTestResult.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_DEFERREDTESTRESULT_H
#define UNITTEST_DEFERREDTESTRESULT_H
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "HelperMacros.h"
diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h
index 508150f..e549c2c 100644
--- a/src/ExceptionMacros.h
+++ b/src/ExceptionMacros.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_EXCEPTIONMACROS_H
#define UNITTEST_EXCEPTIONMACROS_H
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_EXCEPTIONS
#define UT_TRY(x) try x
diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h
index d7abc90..d683dc0 100644
--- a/src/ExecuteTest.h
+++ b/src/ExecuteTest.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_EXECUTE_TEST_H
#define UNITTEST_EXECUTE_TEST_H
-#include "../config.h"
+#include "Config.h"
#include "ExceptionMacros.h"
#include "TestDetails.h"
#include "TestResults.h"
diff --git a/src/HelperMacros.h b/src/HelperMacros.h
index 67e57ed..fb3181d 100644
--- a/src/HelperMacros.h
+++ b/src/HelperMacros.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_HELPERMACROS_H
#define UNITTEST_HELPERMACROS_H
-#include "../config.h"
+#include "Config.h"
#define UNITTEST_MULTILINE_MACRO_BEGIN do {
diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h
index ef2c86f..0c46f53 100644
--- a/src/MemoryOutStream.h
+++ b/src/MemoryOutStream.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_MEMORYOUTSTREAM_H
#define UNITTEST_MEMORYOUTSTREAM_H
-#include "../config.h"
+#include "Config.h"
#include "HelperMacros.h"
#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM
diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h
index 2f158c5..88efc03 100644
--- a/src/ReportAssertImpl.h
+++ b/src/ReportAssertImpl.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_REPORTASSERTIMPL_H
#define UNITTEST_REPORTASSERTIMPL_H
-#include "../config.h"
+#include "Config.h"
#include "HelperMacros.h"
#ifdef UNITTEST_NO_EXCEPTIONS
diff --git a/src/Test.cpp b/src/Test.cpp
index 6a270db..6941722 100644
--- a/src/Test.cpp
+++ b/src/Test.cpp
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "Config.h"
#include "Test.h"
#include "TestList.h"
#include "TestResults.h"
diff --git a/src/TestMacros.h b/src/TestMacros.h
index 92b11a4..facc94e 100644
--- a/src/TestMacros.h
+++ b/src/TestMacros.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TESTMACROS_H
#define UNITTEST_TESTMACROS_H
-#include "../config.h"
+#include "Config.h"
#include "TestSuite.h"
#include "ExceptionMacros.h"
#include "ExecuteTest.h"
diff --git a/src/TimeHelpers.h b/src/TimeHelpers.h
index bb5a31a..f34ed00 100644
--- a/src/TimeHelpers.h
+++ b/src/TimeHelpers.h
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "Config.h"
#if defined UNITTEST_POSIX
#include "Posix/TimeHelpers.h"
diff --git a/src/UnitTestPP.h b/src/UnitTestPP.h
index 69dde9b..c9bbc0c 100644
--- a/src/UnitTestPP.h
+++ b/src/UnitTestPP.h
@@ -1,7 +1,7 @@
#ifndef UNITTESTPP_H
#define UNITTESTPP_H
-#include "../config.h"
+#include "Config.h"
#include "TestMacros.h"
#include "CheckMacros.h"
#include "TestRunner.h"
diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h
index 4fb1b43..2bbe75f 100644
--- a/src/Win32/TimeHelpers.h
+++ b/src/Win32/TimeHelpers.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_TIMEHELPERS_H
#define UNITTEST_TIMEHELPERS_H
-#include "../../config.h"
+#include "../Config.h"
#include "../HelperMacros.h"
#ifdef UNITTEST_MINGW
diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp
index c5e858b..c3312ea 100644
--- a/src/XmlTestReporter.cpp
+++ b/src/XmlTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "XmlTestReporter.h"
diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h
index 0c3441c..63d424e 100644
--- a/src/XmlTestReporter.h
+++ b/src/XmlTestReporter.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_XMLTESTREPORTER_H
#define UNITTEST_XMLTESTREPORTER_H
-#include "../config.h"
+#include "Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "DeferredTestReporter.h"
diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp
index 30275bc..cc13759 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/src/tests/TestAssertHandler.cpp
@@ -1,4 +1,4 @@
-#include "../../config.h"
+#include "../Config.h"
#include "../../src/UnitTestPP.h"
#include "../ReportAssert.h"
diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp
index 0d7775e..9719973 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/src/tests/TestDeferredTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../../config.h"
+#include "../Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index 6c0307f..18ff2ea 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -1,4 +1,4 @@
-#include "../../config.h"
+#include "../Config.h"
#ifndef UNITTEST_NO_EXCEPTIONS
#include "../../src/UnitTestPP.h"
diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp
index 447acf0..7805bf5 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/src/tests/TestXmlTestReporter.cpp
@@ -1,4 +1,4 @@
-#include "../../config.h"
+#include "../Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
#include "../../src/UnitTestPP.h"
From deb7e2736dbe1a822b98978ff6fba709d9c13210 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 00:13:07 -0600
Subject: [PATCH 067/218] Ensure all headers, including platform, are being
installed.
---
CMakeLists.txt | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba5694d..c7b4a43 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,16 +10,17 @@ source_group("" FILES ${headers_} ${sources_})
# get platform specific sources
if (WIN32)
- set(PLAT_DIR Win32)
+ set(platformDir_ Win32)
else()
- set(PLAT_DIR Posix)
+ set(platformDir_ Posix)
endif(WIN32)
-file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
-source_group(${PLAT_DIR} FILES ${PLAT_SRCS})
+file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.h)
+file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.cpp)
+source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_})
# create the lib
-add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS})
+add_library(UnitTestPP STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_})
if(${UTPP_USE_PLUS_SIGN})
set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
@@ -57,4 +58,5 @@ else()
endif()
install(TARGETS UnitTestPP DESTINATION lib)
-install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
\ No newline at end of file
+install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
+install(FILES ${platformHeaders_} DESTINATION ${UTPP_INSTALL_DESTINATION}/${platformDir_})
\ No newline at end of file
From 859e6250d2d1b9d76b8e67132d3eaa4941c6da5c Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 00:22:14 -0600
Subject: [PATCH 068/218] Move src to UnitTest++ and move src/tests to tests.
CMakeLists was modified to support this, then include paths for the
test executable also had to be modified to include UnitTest++.
---
CMakeLists.txt | 12 ++++++------
{src => UnitTest++}/AssertException.cpp | 0
{src => UnitTest++}/AssertException.h | 0
{src => UnitTest++}/CheckMacros.h | 0
{src => UnitTest++}/Checks.cpp | 0
{src => UnitTest++}/Checks.h | 0
{src => UnitTest++}/CompositeTestReporter.cpp | 0
{src => UnitTest++}/CompositeTestReporter.h | 0
{src => UnitTest++}/Config.h | 0
{src => UnitTest++}/CurrentTest.cpp | 0
{src => UnitTest++}/CurrentTest.h | 0
{src => UnitTest++}/DeferredTestReporter.cpp | 0
{src => UnitTest++}/DeferredTestReporter.h | 0
{src => UnitTest++}/DeferredTestResult.cpp | 0
{src => UnitTest++}/DeferredTestResult.h | 0
{src => UnitTest++}/ExceptionMacros.h | 0
{src => UnitTest++}/ExecuteTest.h | 0
{src => UnitTest++}/HelperMacros.h | 0
{src => UnitTest++}/Makefile.am | 0
{src => UnitTest++}/MemoryOutStream.cpp | 0
{src => UnitTest++}/MemoryOutStream.h | 0
{src => UnitTest++}/Posix/SignalTranslator.cpp | 0
{src => UnitTest++}/Posix/SignalTranslator.h | 0
{src => UnitTest++}/Posix/TimeHelpers.cpp | 0
{src => UnitTest++}/Posix/TimeHelpers.h | 0
{src => UnitTest++}/ReportAssert.cpp | 0
{src => UnitTest++}/ReportAssert.h | 0
{src => UnitTest++}/ReportAssertImpl.h | 0
{src => UnitTest++}/Test.cpp | 0
{src => UnitTest++}/Test.h | 0
{src => UnitTest++}/TestDetails.cpp | 0
{src => UnitTest++}/TestDetails.h | 0
{src => UnitTest++}/TestList.cpp | 0
{src => UnitTest++}/TestList.h | 0
{src => UnitTest++}/TestMacros.h | 0
{src => UnitTest++}/TestReporter.cpp | 0
{src => UnitTest++}/TestReporter.h | 0
{src => UnitTest++}/TestReporterStdout.cpp | 0
{src => UnitTest++}/TestReporterStdout.h | 0
{src => UnitTest++}/TestResults.cpp | 0
{src => UnitTest++}/TestResults.h | 0
{src => UnitTest++}/TestRunner.cpp | 0
{src => UnitTest++}/TestRunner.h | 0
{src => UnitTest++}/TestSuite.h | 0
{src => UnitTest++}/TimeConstraint.cpp | 0
{src => UnitTest++}/TimeConstraint.h | 0
{src => UnitTest++}/TimeHelpers.h | 0
{src => UnitTest++}/UnitTest++.h | 0
{src => UnitTest++}/UnitTestPP.h | 0
{src => UnitTest++}/Win32/TimeHelpers.cpp | 0
{src => UnitTest++}/Win32/TimeHelpers.h | 0
{src => UnitTest++}/XmlTestReporter.cpp | 0
{src => UnitTest++}/XmlTestReporter.h | 0
{src => UnitTest++}/unittestpp_vs2005.vcproj | 0
{src => UnitTest++}/unittestpp_vs2008.vcproj | 0
{src/tests => tests}/Main.cpp | 2 +-
{src/tests => tests}/RecordingReporter.h | 4 ++--
{src/tests => tests}/ScopedCurrentTest.h | 2 +-
{src/tests => tests}/TestAssertHandler.cpp | 10 +++++-----
{src/tests => tests}/TestCheckMacros.cpp | 4 ++--
{src/tests => tests}/TestChecks.cpp | 2 +-
{src/tests => tests}/TestCompositeTestReporter.cpp | 4 ++--
{src/tests => tests}/TestCurrentTest.cpp | 4 ++--
{src/tests => tests}/TestDeferredTestReporter.cpp | 6 +++---
{src/tests => tests}/TestExceptions.cpp | 6 +++---
{src/tests => tests}/TestMemoryOutStream.cpp | 4 ++--
{src/tests => tests}/TestTest.cpp | 6 +++---
{src/tests => tests}/TestTestList.cpp | 4 ++--
{src/tests => tests}/TestTestMacros.cpp | 12 ++++++------
{src/tests => tests}/TestTestResults.cpp | 4 ++--
{src/tests => tests}/TestTestRunner.cpp | 12 ++++++------
{src/tests => tests}/TestTestSuite.cpp | 2 +-
{src/tests => tests}/TestTimeConstraint.cpp | 6 +++---
{src/tests => tests}/TestTimeConstraintMacro.cpp | 4 ++--
{src/tests => tests}/TestUnitTestPP.cpp | 2 +-
{src/tests => tests}/TestXmlTestReporter.cpp | 6 +++---
{src/tests => tests}/test-unittestpp_vs2005.vcproj | 0
{src/tests => tests}/test-unittestpp_vs2008.vcproj | 0
78 files changed, 59 insertions(+), 59 deletions(-)
rename {src => UnitTest++}/AssertException.cpp (100%)
rename {src => UnitTest++}/AssertException.h (100%)
rename {src => UnitTest++}/CheckMacros.h (100%)
rename {src => UnitTest++}/Checks.cpp (100%)
rename {src => UnitTest++}/Checks.h (100%)
rename {src => UnitTest++}/CompositeTestReporter.cpp (100%)
rename {src => UnitTest++}/CompositeTestReporter.h (100%)
rename {src => UnitTest++}/Config.h (100%)
rename {src => UnitTest++}/CurrentTest.cpp (100%)
rename {src => UnitTest++}/CurrentTest.h (100%)
rename {src => UnitTest++}/DeferredTestReporter.cpp (100%)
rename {src => UnitTest++}/DeferredTestReporter.h (100%)
rename {src => UnitTest++}/DeferredTestResult.cpp (100%)
rename {src => UnitTest++}/DeferredTestResult.h (100%)
rename {src => UnitTest++}/ExceptionMacros.h (100%)
rename {src => UnitTest++}/ExecuteTest.h (100%)
rename {src => UnitTest++}/HelperMacros.h (100%)
rename {src => UnitTest++}/Makefile.am (100%)
rename {src => UnitTest++}/MemoryOutStream.cpp (100%)
rename {src => UnitTest++}/MemoryOutStream.h (100%)
rename {src => UnitTest++}/Posix/SignalTranslator.cpp (100%)
rename {src => UnitTest++}/Posix/SignalTranslator.h (100%)
rename {src => UnitTest++}/Posix/TimeHelpers.cpp (100%)
rename {src => UnitTest++}/Posix/TimeHelpers.h (100%)
rename {src => UnitTest++}/ReportAssert.cpp (100%)
rename {src => UnitTest++}/ReportAssert.h (100%)
rename {src => UnitTest++}/ReportAssertImpl.h (100%)
rename {src => UnitTest++}/Test.cpp (100%)
rename {src => UnitTest++}/Test.h (100%)
rename {src => UnitTest++}/TestDetails.cpp (100%)
rename {src => UnitTest++}/TestDetails.h (100%)
rename {src => UnitTest++}/TestList.cpp (100%)
rename {src => UnitTest++}/TestList.h (100%)
rename {src => UnitTest++}/TestMacros.h (100%)
rename {src => UnitTest++}/TestReporter.cpp (100%)
rename {src => UnitTest++}/TestReporter.h (100%)
rename {src => UnitTest++}/TestReporterStdout.cpp (100%)
rename {src => UnitTest++}/TestReporterStdout.h (100%)
rename {src => UnitTest++}/TestResults.cpp (100%)
rename {src => UnitTest++}/TestResults.h (100%)
rename {src => UnitTest++}/TestRunner.cpp (100%)
rename {src => UnitTest++}/TestRunner.h (100%)
rename {src => UnitTest++}/TestSuite.h (100%)
rename {src => UnitTest++}/TimeConstraint.cpp (100%)
rename {src => UnitTest++}/TimeConstraint.h (100%)
rename {src => UnitTest++}/TimeHelpers.h (100%)
rename {src => UnitTest++}/UnitTest++.h (100%)
rename {src => UnitTest++}/UnitTestPP.h (100%)
rename {src => UnitTest++}/Win32/TimeHelpers.cpp (100%)
rename {src => UnitTest++}/Win32/TimeHelpers.h (100%)
rename {src => UnitTest++}/XmlTestReporter.cpp (100%)
rename {src => UnitTest++}/XmlTestReporter.h (100%)
rename {src => UnitTest++}/unittestpp_vs2005.vcproj (100%)
rename {src => UnitTest++}/unittestpp_vs2008.vcproj (100%)
rename {src/tests => tests}/Main.cpp (66%)
rename {src/tests => tests}/RecordingReporter.h (97%)
rename {src/tests => tests}/ScopedCurrentTest.h (96%)
rename {src/tests => tests}/TestAssertHandler.cpp (93%)
rename {src/tests => tests}/TestCheckMacros.cpp (99%)
rename {src/tests => tests}/TestChecks.cpp (99%)
rename {src/tests => tests}/TestCompositeTestReporter.cpp (98%)
rename {src/tests => tests}/TestCurrentTest.cpp (89%)
rename {src/tests => tests}/TestDeferredTestReporter.cpp (96%)
rename {src/tests => tests}/TestExceptions.cpp (99%)
rename {src/tests => tests}/TestMemoryOutStream.cpp (99%)
rename {src/tests => tests}/TestTest.cpp (95%)
rename {src/tests => tests}/TestTestList.cpp (91%)
rename {src/tests => tests}/TestTestMacros.cpp (95%)
rename {src/tests => tests}/TestTestResults.cpp (97%)
rename {src/tests => tests}/TestTestRunner.cpp (97%)
rename {src/tests => tests}/TestTestSuite.cpp (88%)
rename {src/tests => tests}/TestTimeConstraint.cpp (93%)
rename {src/tests => tests}/TestTimeConstraintMacro.cpp (97%)
rename {src/tests => tests}/TestUnitTestPP.cpp (98%)
rename {src/tests => tests}/TestXmlTestReporter.cpp (98%)
rename {src/tests => tests}/test-unittestpp_vs2005.vcproj (100%)
rename {src/tests => tests}/test-unittestpp_vs2008.vcproj (100%)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c7b4a43..11e3ae9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,8 +4,8 @@ project(UnitTest++)
option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON)
# get the main sources
-file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h)
-file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
+file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.h)
+file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.cpp)
source_group("" FILES ${headers_} ${sources_})
# get platform specific sources
@@ -15,8 +15,8 @@ else()
set(platformDir_ Posix)
endif(WIN32)
-file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.h)
-file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.cpp)
+file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.h)
+file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.cpp)
source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_})
# create the lib
@@ -26,12 +26,12 @@ if(${UTPP_USE_PLUS_SIGN})
set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
endif()
-include_directories(src)
# build the test runner
-file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h)
+file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h)
source_group( "" FILES ${TEST_SRCS})
add_executable(TestUnitTestPP ${TEST_SRCS})
+include_directories(UnitTest++)
if(${UTPP_USE_PLUS_SIGN})
set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
diff --git a/src/AssertException.cpp b/UnitTest++/AssertException.cpp
similarity index 100%
rename from src/AssertException.cpp
rename to UnitTest++/AssertException.cpp
diff --git a/src/AssertException.h b/UnitTest++/AssertException.h
similarity index 100%
rename from src/AssertException.h
rename to UnitTest++/AssertException.h
diff --git a/src/CheckMacros.h b/UnitTest++/CheckMacros.h
similarity index 100%
rename from src/CheckMacros.h
rename to UnitTest++/CheckMacros.h
diff --git a/src/Checks.cpp b/UnitTest++/Checks.cpp
similarity index 100%
rename from src/Checks.cpp
rename to UnitTest++/Checks.cpp
diff --git a/src/Checks.h b/UnitTest++/Checks.h
similarity index 100%
rename from src/Checks.h
rename to UnitTest++/Checks.h
diff --git a/src/CompositeTestReporter.cpp b/UnitTest++/CompositeTestReporter.cpp
similarity index 100%
rename from src/CompositeTestReporter.cpp
rename to UnitTest++/CompositeTestReporter.cpp
diff --git a/src/CompositeTestReporter.h b/UnitTest++/CompositeTestReporter.h
similarity index 100%
rename from src/CompositeTestReporter.h
rename to UnitTest++/CompositeTestReporter.h
diff --git a/src/Config.h b/UnitTest++/Config.h
similarity index 100%
rename from src/Config.h
rename to UnitTest++/Config.h
diff --git a/src/CurrentTest.cpp b/UnitTest++/CurrentTest.cpp
similarity index 100%
rename from src/CurrentTest.cpp
rename to UnitTest++/CurrentTest.cpp
diff --git a/src/CurrentTest.h b/UnitTest++/CurrentTest.h
similarity index 100%
rename from src/CurrentTest.h
rename to UnitTest++/CurrentTest.h
diff --git a/src/DeferredTestReporter.cpp b/UnitTest++/DeferredTestReporter.cpp
similarity index 100%
rename from src/DeferredTestReporter.cpp
rename to UnitTest++/DeferredTestReporter.cpp
diff --git a/src/DeferredTestReporter.h b/UnitTest++/DeferredTestReporter.h
similarity index 100%
rename from src/DeferredTestReporter.h
rename to UnitTest++/DeferredTestReporter.h
diff --git a/src/DeferredTestResult.cpp b/UnitTest++/DeferredTestResult.cpp
similarity index 100%
rename from src/DeferredTestResult.cpp
rename to UnitTest++/DeferredTestResult.cpp
diff --git a/src/DeferredTestResult.h b/UnitTest++/DeferredTestResult.h
similarity index 100%
rename from src/DeferredTestResult.h
rename to UnitTest++/DeferredTestResult.h
diff --git a/src/ExceptionMacros.h b/UnitTest++/ExceptionMacros.h
similarity index 100%
rename from src/ExceptionMacros.h
rename to UnitTest++/ExceptionMacros.h
diff --git a/src/ExecuteTest.h b/UnitTest++/ExecuteTest.h
similarity index 100%
rename from src/ExecuteTest.h
rename to UnitTest++/ExecuteTest.h
diff --git a/src/HelperMacros.h b/UnitTest++/HelperMacros.h
similarity index 100%
rename from src/HelperMacros.h
rename to UnitTest++/HelperMacros.h
diff --git a/src/Makefile.am b/UnitTest++/Makefile.am
similarity index 100%
rename from src/Makefile.am
rename to UnitTest++/Makefile.am
diff --git a/src/MemoryOutStream.cpp b/UnitTest++/MemoryOutStream.cpp
similarity index 100%
rename from src/MemoryOutStream.cpp
rename to UnitTest++/MemoryOutStream.cpp
diff --git a/src/MemoryOutStream.h b/UnitTest++/MemoryOutStream.h
similarity index 100%
rename from src/MemoryOutStream.h
rename to UnitTest++/MemoryOutStream.h
diff --git a/src/Posix/SignalTranslator.cpp b/UnitTest++/Posix/SignalTranslator.cpp
similarity index 100%
rename from src/Posix/SignalTranslator.cpp
rename to UnitTest++/Posix/SignalTranslator.cpp
diff --git a/src/Posix/SignalTranslator.h b/UnitTest++/Posix/SignalTranslator.h
similarity index 100%
rename from src/Posix/SignalTranslator.h
rename to UnitTest++/Posix/SignalTranslator.h
diff --git a/src/Posix/TimeHelpers.cpp b/UnitTest++/Posix/TimeHelpers.cpp
similarity index 100%
rename from src/Posix/TimeHelpers.cpp
rename to UnitTest++/Posix/TimeHelpers.cpp
diff --git a/src/Posix/TimeHelpers.h b/UnitTest++/Posix/TimeHelpers.h
similarity index 100%
rename from src/Posix/TimeHelpers.h
rename to UnitTest++/Posix/TimeHelpers.h
diff --git a/src/ReportAssert.cpp b/UnitTest++/ReportAssert.cpp
similarity index 100%
rename from src/ReportAssert.cpp
rename to UnitTest++/ReportAssert.cpp
diff --git a/src/ReportAssert.h b/UnitTest++/ReportAssert.h
similarity index 100%
rename from src/ReportAssert.h
rename to UnitTest++/ReportAssert.h
diff --git a/src/ReportAssertImpl.h b/UnitTest++/ReportAssertImpl.h
similarity index 100%
rename from src/ReportAssertImpl.h
rename to UnitTest++/ReportAssertImpl.h
diff --git a/src/Test.cpp b/UnitTest++/Test.cpp
similarity index 100%
rename from src/Test.cpp
rename to UnitTest++/Test.cpp
diff --git a/src/Test.h b/UnitTest++/Test.h
similarity index 100%
rename from src/Test.h
rename to UnitTest++/Test.h
diff --git a/src/TestDetails.cpp b/UnitTest++/TestDetails.cpp
similarity index 100%
rename from src/TestDetails.cpp
rename to UnitTest++/TestDetails.cpp
diff --git a/src/TestDetails.h b/UnitTest++/TestDetails.h
similarity index 100%
rename from src/TestDetails.h
rename to UnitTest++/TestDetails.h
diff --git a/src/TestList.cpp b/UnitTest++/TestList.cpp
similarity index 100%
rename from src/TestList.cpp
rename to UnitTest++/TestList.cpp
diff --git a/src/TestList.h b/UnitTest++/TestList.h
similarity index 100%
rename from src/TestList.h
rename to UnitTest++/TestList.h
diff --git a/src/TestMacros.h b/UnitTest++/TestMacros.h
similarity index 100%
rename from src/TestMacros.h
rename to UnitTest++/TestMacros.h
diff --git a/src/TestReporter.cpp b/UnitTest++/TestReporter.cpp
similarity index 100%
rename from src/TestReporter.cpp
rename to UnitTest++/TestReporter.cpp
diff --git a/src/TestReporter.h b/UnitTest++/TestReporter.h
similarity index 100%
rename from src/TestReporter.h
rename to UnitTest++/TestReporter.h
diff --git a/src/TestReporterStdout.cpp b/UnitTest++/TestReporterStdout.cpp
similarity index 100%
rename from src/TestReporterStdout.cpp
rename to UnitTest++/TestReporterStdout.cpp
diff --git a/src/TestReporterStdout.h b/UnitTest++/TestReporterStdout.h
similarity index 100%
rename from src/TestReporterStdout.h
rename to UnitTest++/TestReporterStdout.h
diff --git a/src/TestResults.cpp b/UnitTest++/TestResults.cpp
similarity index 100%
rename from src/TestResults.cpp
rename to UnitTest++/TestResults.cpp
diff --git a/src/TestResults.h b/UnitTest++/TestResults.h
similarity index 100%
rename from src/TestResults.h
rename to UnitTest++/TestResults.h
diff --git a/src/TestRunner.cpp b/UnitTest++/TestRunner.cpp
similarity index 100%
rename from src/TestRunner.cpp
rename to UnitTest++/TestRunner.cpp
diff --git a/src/TestRunner.h b/UnitTest++/TestRunner.h
similarity index 100%
rename from src/TestRunner.h
rename to UnitTest++/TestRunner.h
diff --git a/src/TestSuite.h b/UnitTest++/TestSuite.h
similarity index 100%
rename from src/TestSuite.h
rename to UnitTest++/TestSuite.h
diff --git a/src/TimeConstraint.cpp b/UnitTest++/TimeConstraint.cpp
similarity index 100%
rename from src/TimeConstraint.cpp
rename to UnitTest++/TimeConstraint.cpp
diff --git a/src/TimeConstraint.h b/UnitTest++/TimeConstraint.h
similarity index 100%
rename from src/TimeConstraint.h
rename to UnitTest++/TimeConstraint.h
diff --git a/src/TimeHelpers.h b/UnitTest++/TimeHelpers.h
similarity index 100%
rename from src/TimeHelpers.h
rename to UnitTest++/TimeHelpers.h
diff --git a/src/UnitTest++.h b/UnitTest++/UnitTest++.h
similarity index 100%
rename from src/UnitTest++.h
rename to UnitTest++/UnitTest++.h
diff --git a/src/UnitTestPP.h b/UnitTest++/UnitTestPP.h
similarity index 100%
rename from src/UnitTestPP.h
rename to UnitTest++/UnitTestPP.h
diff --git a/src/Win32/TimeHelpers.cpp b/UnitTest++/Win32/TimeHelpers.cpp
similarity index 100%
rename from src/Win32/TimeHelpers.cpp
rename to UnitTest++/Win32/TimeHelpers.cpp
diff --git a/src/Win32/TimeHelpers.h b/UnitTest++/Win32/TimeHelpers.h
similarity index 100%
rename from src/Win32/TimeHelpers.h
rename to UnitTest++/Win32/TimeHelpers.h
diff --git a/src/XmlTestReporter.cpp b/UnitTest++/XmlTestReporter.cpp
similarity index 100%
rename from src/XmlTestReporter.cpp
rename to UnitTest++/XmlTestReporter.cpp
diff --git a/src/XmlTestReporter.h b/UnitTest++/XmlTestReporter.h
similarity index 100%
rename from src/XmlTestReporter.h
rename to UnitTest++/XmlTestReporter.h
diff --git a/src/unittestpp_vs2005.vcproj b/UnitTest++/unittestpp_vs2005.vcproj
similarity index 100%
rename from src/unittestpp_vs2005.vcproj
rename to UnitTest++/unittestpp_vs2005.vcproj
diff --git a/src/unittestpp_vs2008.vcproj b/UnitTest++/unittestpp_vs2008.vcproj
similarity index 100%
rename from src/unittestpp_vs2008.vcproj
rename to UnitTest++/unittestpp_vs2008.vcproj
diff --git a/src/tests/Main.cpp b/tests/Main.cpp
similarity index 66%
rename from src/tests/Main.cpp
rename to tests/Main.cpp
index 6e8c891..ae9cc54 100644
--- a/src/tests/Main.cpp
+++ b/tests/Main.cpp
@@ -1,4 +1,4 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
int main(int, char const *[])
{
diff --git a/src/tests/RecordingReporter.h b/tests/RecordingReporter.h
similarity index 97%
rename from src/tests/RecordingReporter.h
rename to tests/RecordingReporter.h
index 982c294..ea899a2 100644
--- a/src/tests/RecordingReporter.h
+++ b/tests/RecordingReporter.h
@@ -1,10 +1,10 @@
#ifndef UNITTEST_RECORDINGREPORTER_H
#define UNITTEST_RECORDINGREPORTER_H
-#include "../TestReporter.h"
+#include "UnitTest++/TestReporter.h"
#include
-#include "../TestDetails.h"
+#include "UnitTest++/TestDetails.h"
struct RecordingReporter : public UnitTest::TestReporter
{
diff --git a/src/tests/ScopedCurrentTest.h b/tests/ScopedCurrentTest.h
similarity index 96%
rename from src/tests/ScopedCurrentTest.h
rename to tests/ScopedCurrentTest.h
index e03ae0a..60b1a8e 100644
--- a/src/tests/ScopedCurrentTest.h
+++ b/tests/ScopedCurrentTest.h
@@ -1,7 +1,7 @@
#ifndef UNITTEST_SCOPEDCURRENTTEST_H
#define UNITTEST_SCOPEDCURRENTTEST_H
-#include "../CurrentTest.h"
+#include "UnitTest++/CurrentTest.h"
#include
class ScopedCurrentTest
diff --git a/src/tests/TestAssertHandler.cpp b/tests/TestAssertHandler.cpp
similarity index 93%
rename from src/tests/TestAssertHandler.cpp
rename to tests/TestAssertHandler.cpp
index cc13759..c9286f3 100644
--- a/src/tests/TestAssertHandler.cpp
+++ b/tests/TestAssertHandler.cpp
@@ -1,9 +1,9 @@
-#include "../Config.h"
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/Config.h"
+#include "UnitTest++/UnitTestPP.h"
-#include "../ReportAssert.h"
-#include "../ReportAssertImpl.h"
-#include "../AssertException.h"
+#include "UnitTest++/ReportAssert.h"
+#include "UnitTest++/ReportAssertImpl.h"
+#include "UnitTest++/AssertException.h"
#include "RecordingReporter.h"
#include
diff --git a/src/tests/TestCheckMacros.cpp b/tests/TestCheckMacros.cpp
similarity index 99%
rename from src/tests/TestCheckMacros.cpp
rename to tests/TestCheckMacros.cpp
index be60875..45ea0e9 100644
--- a/src/tests/TestCheckMacros.cpp
+++ b/tests/TestCheckMacros.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../CurrentTest.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestChecks.cpp b/tests/TestChecks.cpp
similarity index 99%
rename from src/tests/TestChecks.cpp
rename to tests/TestChecks.cpp
index 3059d50..758ca31 100644
--- a/src/tests/TestChecks.cpp
+++ b/tests/TestChecks.cpp
@@ -1,4 +1,4 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
#include "RecordingReporter.h"
#include
diff --git a/src/tests/TestCompositeTestReporter.cpp b/tests/TestCompositeTestReporter.cpp
similarity index 98%
rename from src/tests/TestCompositeTestReporter.cpp
rename to tests/TestCompositeTestReporter.cpp
index 9318cc6..9440a9e 100644
--- a/src/tests/TestCompositeTestReporter.cpp
+++ b/tests/TestCompositeTestReporter.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../CompositeTestReporter.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/CompositeTestReporter.h"
using namespace UnitTest;
diff --git a/src/tests/TestCurrentTest.cpp b/tests/TestCurrentTest.cpp
similarity index 89%
rename from src/tests/TestCurrentTest.cpp
rename to tests/TestCurrentTest.cpp
index 43732a8..7de1a72 100644
--- a/src/tests/TestCurrentTest.cpp
+++ b/tests/TestCurrentTest.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../CurrentTest.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/CurrentTest.h"
#include "ScopedCurrentTest.h"
namespace
diff --git a/src/tests/TestDeferredTestReporter.cpp b/tests/TestDeferredTestReporter.cpp
similarity index 96%
rename from src/tests/TestDeferredTestReporter.cpp
rename to tests/TestDeferredTestReporter.cpp
index 9719973..60c347c 100644
--- a/src/tests/TestDeferredTestReporter.cpp
+++ b/tests/TestDeferredTestReporter.cpp
@@ -1,9 +1,9 @@
-#include "../Config.h"
+#include "UnitTest++/Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
-#include "../../src/UnitTestPP.h"
-#include "../DeferredTestReporter.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/DeferredTestReporter.h"
#include
namespace UnitTest
diff --git a/src/tests/TestExceptions.cpp b/tests/TestExceptions.cpp
similarity index 99%
rename from src/tests/TestExceptions.cpp
rename to tests/TestExceptions.cpp
index 18ff2ea..1a0ab04 100644
--- a/src/tests/TestExceptions.cpp
+++ b/tests/TestExceptions.cpp
@@ -1,8 +1,8 @@
-#include "../Config.h"
+#include "UnitTest++/Config.h"
#ifndef UNITTEST_NO_EXCEPTIONS
-#include "../../src/UnitTestPP.h"
-#include "../CurrentTest.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/CurrentTest.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestMemoryOutStream.cpp b/tests/TestMemoryOutStream.cpp
similarity index 99%
rename from src/tests/TestMemoryOutStream.cpp
rename to tests/TestMemoryOutStream.cpp
index 27a7ce8..74a9a56 100644
--- a/src/tests/TestMemoryOutStream.cpp
+++ b/tests/TestMemoryOutStream.cpp
@@ -1,6 +1,6 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
-#include "../MemoryOutStream.h"
+#include "UnitTest++/MemoryOutStream.h"
#include
#include
#include
diff --git a/src/tests/TestTest.cpp b/tests/TestTest.cpp
similarity index 95%
rename from src/tests/TestTest.cpp
rename to tests/TestTest.cpp
index 58b0bc2..2aeab6d 100644
--- a/src/tests/TestTest.cpp
+++ b/tests/TestTest.cpp
@@ -1,6 +1,6 @@
-#include "../../src/UnitTestPP.h"
-#include "../TestReporter.h"
-#include "../TimeHelpers.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TestReporter.h"
+#include "UnitTest++/TimeHelpers.h"
#include "ScopedCurrentTest.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestList.cpp b/tests/TestTestList.cpp
similarity index 91%
rename from src/tests/TestTestList.cpp
rename to tests/TestTestList.cpp
index 03828e9..73732c5 100644
--- a/src/tests/TestTestList.cpp
+++ b/tests/TestTestList.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../TestList.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TestList.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestMacros.cpp b/tests/TestTestMacros.cpp
similarity index 95%
rename from src/tests/TestTestMacros.cpp
rename to tests/TestTestMacros.cpp
index 4a0f3ea..4f0cfed 100644
--- a/src/tests/TestTestMacros.cpp
+++ b/tests/TestTestMacros.cpp
@@ -1,9 +1,9 @@
-#include "../../src/UnitTestPP.h"
-#include "../TestMacros.h"
-#include "../TestList.h"
-#include "../TestResults.h"
-#include "../TestReporter.h"
-#include "../ReportAssert.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TestMacros.h"
+#include "UnitTest++/TestList.h"
+#include "UnitTest++/TestResults.h"
+#include "UnitTest++/TestReporter.h"
+#include "UnitTest++/ReportAssert.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestTestResults.cpp b/tests/TestTestResults.cpp
similarity index 97%
rename from src/tests/TestTestResults.cpp
rename to tests/TestTestResults.cpp
index 2b9b703..a115687 100644
--- a/src/tests/TestTestResults.cpp
+++ b/tests/TestTestResults.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../TestResults.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TestResults.h"
#include "RecordingReporter.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestRunner.cpp b/tests/TestTestRunner.cpp
similarity index 97%
rename from src/tests/TestTestRunner.cpp
rename to tests/TestTestRunner.cpp
index 3a98d62..fa05356 100644
--- a/src/tests/TestTestRunner.cpp
+++ b/tests/TestTestRunner.cpp
@@ -1,10 +1,10 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
#include "RecordingReporter.h"
-#include "../ReportAssert.h"
-#include "../TestList.h"
-#include "../TimeHelpers.h"
-#include "../TimeConstraint.h"
-#include "../ReportAssertImpl.h"
+#include "UnitTest++/ReportAssert.h"
+#include "UnitTest++/TestList.h"
+#include "UnitTest++/TimeHelpers.h"
+#include "UnitTest++/TimeConstraint.h"
+#include "UnitTest++/ReportAssertImpl.h"
using namespace UnitTest;
diff --git a/src/tests/TestTestSuite.cpp b/tests/TestTestSuite.cpp
similarity index 88%
rename from src/tests/TestTestSuite.cpp
rename to tests/TestTestSuite.cpp
index a82b75e..ff56089 100644
--- a/src/tests/TestTestSuite.cpp
+++ b/tests/TestTestSuite.cpp
@@ -1,4 +1,4 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
// We're really testing if it's possible to use the same suite in two files
// to compile and link successfuly (TestTestSuite.cpp has suite with the same name)
diff --git a/src/tests/TestTimeConstraint.cpp b/tests/TestTimeConstraint.cpp
similarity index 93%
rename from src/tests/TestTimeConstraint.cpp
rename to tests/TestTimeConstraint.cpp
index 611ee6c..5cb6c16 100644
--- a/src/tests/TestTimeConstraint.cpp
+++ b/tests/TestTimeConstraint.cpp
@@ -1,6 +1,6 @@
-#include "../../src/UnitTestPP.h"
-#include "../TestResults.h"
-#include "../TimeHelpers.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TestResults.h"
+#include "UnitTest++/TimeHelpers.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestTimeConstraintMacro.cpp b/tests/TestTimeConstraintMacro.cpp
similarity index 97%
rename from src/tests/TestTimeConstraintMacro.cpp
rename to tests/TestTimeConstraintMacro.cpp
index 2e710bb..3caf15d 100644
--- a/src/tests/TestTimeConstraintMacro.cpp
+++ b/tests/TestTimeConstraintMacro.cpp
@@ -1,5 +1,5 @@
-#include "../../src/UnitTestPP.h"
-#include "../TimeHelpers.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/TimeHelpers.h"
#include "RecordingReporter.h"
#include "ScopedCurrentTest.h"
diff --git a/src/tests/TestUnitTestPP.cpp b/tests/TestUnitTestPP.cpp
similarity index 98%
rename from src/tests/TestUnitTestPP.cpp
rename to tests/TestUnitTestPP.cpp
index cb4d0d0..3bd6ab7 100644
--- a/src/tests/TestUnitTestPP.cpp
+++ b/tests/TestUnitTestPP.cpp
@@ -1,4 +1,4 @@
-#include "../../src/UnitTestPP.h"
+#include "UnitTest++/UnitTestPP.h"
#include "ScopedCurrentTest.h"
// These are sample tests that show the different features of the framework
diff --git a/src/tests/TestXmlTestReporter.cpp b/tests/TestXmlTestReporter.cpp
similarity index 98%
rename from src/tests/TestXmlTestReporter.cpp
rename to tests/TestXmlTestReporter.cpp
index 7805bf5..154ada8 100644
--- a/src/tests/TestXmlTestReporter.cpp
+++ b/tests/TestXmlTestReporter.cpp
@@ -1,8 +1,8 @@
-#include "../Config.h"
+#include "UnitTest++/Config.h"
#ifndef UNITTEST_NO_DEFERRED_REPORTER
-#include "../../src/UnitTestPP.h"
-#include "../XmlTestReporter.h"
+#include "UnitTest++/UnitTestPP.h"
+#include "UnitTest++/XmlTestReporter.h"
#include
diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/tests/test-unittestpp_vs2005.vcproj
similarity index 100%
rename from src/tests/test-unittestpp_vs2005.vcproj
rename to tests/test-unittestpp_vs2005.vcproj
diff --git a/src/tests/test-unittestpp_vs2008.vcproj b/tests/test-unittestpp_vs2008.vcproj
similarity index 100%
rename from src/tests/test-unittestpp_vs2008.vcproj
rename to tests/test-unittestpp_vs2008.vcproj
From 647ce0a491e46092cf1c15f03b1a18c9c57ca68a Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 22:59:01 -0600
Subject: [PATCH 069/218] Rename COPYING to LICENSE; delete NEWS since it was
empty anyway.
---
LICENSE | 20 ++++++++++++++++++++
NEWS | 0
2 files changed, 20 insertions(+)
create mode 100644 LICENSE
delete mode 100644 NEWS
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9f96308
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2006 Noel Llopis and Charles Nicholson
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/NEWS b/NEWS
deleted file mode 100644
index e69de29..0000000
From e2397508139d54eaab8456321d02a896761f9fa6 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 22:59:33 -0600
Subject: [PATCH 070/218] Delete COPYING (previously renamed to LICENSE).
---
COPYING | 20 --------------------
1 file changed, 20 deletions(-)
delete mode 100644 COPYING
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 9f96308..0000000
--- a/COPYING
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2006 Noel Llopis and Charles Nicholson
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
From e5d732991cb3e357b2087a7b62bea2287f257b79 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 23:04:14 -0600
Subject: [PATCH 071/218] Rename README to README.md
---
README => README.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename README => README.md (100%)
diff --git a/README b/README.md
similarity index 100%
rename from README
rename to README.md
From 57e049c523c64ac7afdb1fff90e138903146e3ab Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 20 Feb 2013 23:04:28 -0600
Subject: [PATCH 072/218] Add Markdown formatting to README.md
---
README.md | 57 +++++++++++++++++++++++++++----------------------------
1 file changed, 28 insertions(+), 29 deletions(-)
diff --git a/README.md b/README.md
index 63c9351..727e010 100644
--- a/README.md
+++ b/README.md
@@ -1,47 +1,46 @@
-UnitTest++ README
-Version: v1.4
-Last update: 2008-10-30
+UnitTest++
+==========
-UnitTest++ is free software. You may copy, distribute, and modify it under
-the terms of the License contained in the file COPYING distributed
+*UnitTest++ is free software. You may copy, distribute, and modify it under
+the terms of the License contained in the file LICENSE distributed
with this package. This license is the same as the MIT/X Consortium
-license.
+license.*
-See src/tests/TestUnitTest++.cpp for usage.
-Authors:
-Noel Llopis (llopis@convexhull.com)
-Charles Nicholson (charles.nicholson@gmail.com)
+### Authors: ###
+* Noel Llopis (llopis@convexhull.com)
+* Charles Nicholson (charles.nicholson@gmail.com)
-Contributors:
-Jim Tilander
-Kim Grasman
-Jonathan Jansson
-Dirck Blaskey
-Rory Driscoll
-Dan Lind
-Matt Kimmel -- Submitted with permission from Blue Fang Games
-Anthony Moralez
-Jeff Dixon
-Randy Coulman
-Lieven van der Heide
+### Contributors not included in github history ###
+* Jim Tilander
+* Kim Grasman
+* Jonathan Jansson
+* Dirck Blaskey
+* Rory Driscoll
+* Dan Lind
+* Matt Kimmel -- Submitted with permission from Blue Fang Games
+* Anthony Moralez
+* Jeff Dixon
+* Randy Coulman
+* Lieven van der Heide
-Release notes:
---------------
-Version 1.4 (2008-10-30)
+Historic release notes
+----------------------
+
+### Version 1.4 (2008-10-30) ###
- CHECK macros work at arbitrary stack depth from inside TESTs.
- Remove obsolete TEST_UTILITY macros
- Predicated test execution (via TestRunner::RunTestsIf)
- Better exception handling for fixture ctors/dtors.
- VC6/7/8/9 support
-Version 1.3 (2007-4-22)
+### Version 1.3 (2007-4-22) ###
- Removed dynamic memory allocations (other than streams)
- MinGW support
- Consistent (native) line endings
- Minor bug fixing
-Version 1.2 (2006-10-29)
+### Version 1.2 (2006-10-29) ###
- First pass at documentation.
- More detailed error crash catching in fixtures.
- Standard streams used for printing objects under check. This should allow the
@@ -54,7 +53,7 @@ Version 1.2 (2006-10-29)
- Posix library name is libUnitTest++.a now
- Floating point numbers are postfixed with 'f' in the failure reports
-Version 1.1 (2006-04-18)
+### Version 1.1 (2006-04-18) ###
- CHECK macros do not have side effects even if one of the parameters changes state
- Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE)
- Added local and global time constraints
@@ -63,6 +62,6 @@ Version 1.1 (2006-04-18)
- Failing tests are added to Visual Studio's error list
- Fixed Visual Studio projects to work with spaces in directories
-Version 1.0 (2006-03-15)
+### Version 1.0 (2006-03-15) ###
- Initial release
From c23edddd158cbff185aeed4a0da140ff94909afa Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sat, 23 Mar 2013 22:24:57 -0500
Subject: [PATCH 073/218] - Fixed include path in CMakeLists.txt
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 11e3ae9..ce5af75 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,7 +31,7 @@ endif()
file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h)
source_group( "" FILES ${TEST_SRCS})
add_executable(TestUnitTestPP ${TEST_SRCS})
-include_directories(UnitTest++)
+include_directories(.)
if(${UTPP_USE_PLUS_SIGN})
set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
From ce196f218a59a9440463f510ed9d97ba7d8a6c88 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:13:10 -0500
Subject: [PATCH 074/218] Add support and project files for Visual Studio 2012
---
.gitattributes | 1 +
.gitignore | 4 +
CMakeLists.txt | 17 +-
tests/TestTest.cpp | 3 +-
vs_projects/vs2012_x64/TestUnitTest++.vcxproj | 299 +++++++++++++++++
.../vs2012_x64/TestUnitTest++.vcxproj.filters | 30 ++
vs_projects/vs2012_x64/UnitTest++.sln | 38 +++
vs_projects/vs2012_x64/UnitTest++.vcxproj | 256 +++++++++++++++
.../vs2012_x64/UnitTest++.vcxproj.filters | 63 ++++
vs_projects/vs2012_x86/TestUnitTest++.vcxproj | 306 ++++++++++++++++++
.../vs2012_x86/TestUnitTest++.vcxproj.filters | 30 ++
vs_projects/vs2012_x86/UnitTest++.sln | 38 +++
vs_projects/vs2012_x86/UnitTest++.vcxproj | 256 +++++++++++++++
.../vs2012_x86/UnitTest++.vcxproj.filters | 63 ++++
14 files changed, 1395 insertions(+), 9 deletions(-)
create mode 100644 vs_projects/vs2012_x64/TestUnitTest++.vcxproj
create mode 100644 vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2012_x64/UnitTest++.sln
create mode 100644 vs_projects/vs2012_x64/UnitTest++.vcxproj
create mode 100644 vs_projects/vs2012_x64/UnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2012_x86/TestUnitTest++.vcxproj
create mode 100644 vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2012_x86/UnitTest++.sln
create mode 100644 vs_projects/vs2012_x86/UnitTest++.vcxproj
create mode 100644 vs_projects/vs2012_x86/UnitTest++.vcxproj.filters
diff --git a/.gitattributes b/.gitattributes
index 615713b..ce46819 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -7,6 +7,7 @@
*.sln text eol=crlf
*.vcproj text eol=crlf
*.vcxproj text eol=crlf
+*.vcxproj.filters text eol=crlf
# VC6 files
*.dsw text eol=crlf
diff --git a/.gitignore b/.gitignore
index 23d7021..397bce8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,10 @@
*.suo
*.sdf
*.opensdf
+
+# Build output directories
Release
Debug
+MinSizeRel
+RelWithDebInfo
ipch
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce5af75..7b2482d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,7 @@ source_group("" FILES ${headers_} ${sources_})
# get platform specific sources
if (WIN32)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
set(platformDir_ Win32)
else()
set(platformDir_ Posix)
@@ -20,32 +21,32 @@ file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${pla
source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_})
# create the lib
-add_library(UnitTestPP STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_})
+add_library(UnitTest++ STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_})
if(${UTPP_USE_PLUS_SIGN})
- set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
+ set_target_properties(UnitTest++ PROPERTIES OUTPUT_NAME UnitTest++)
endif()
# build the test runner
file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h)
source_group( "" FILES ${TEST_SRCS})
-add_executable(TestUnitTestPP ${TEST_SRCS})
+add_executable(TestUnitTest++ ${TEST_SRCS})
include_directories(.)
if(${UTPP_USE_PLUS_SIGN})
- set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++)
+ set_target_properties(TestUnitTest++ PROPERTIES OUTPUT_NAME TestUnitTest++)
endif()
-target_link_libraries(TestUnitTestPP UnitTestPP)
+target_link_libraries(TestUnitTest++ UnitTest++)
# turn on testing
enable_testing()
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)
# add the test runner as a test
-add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
-add_dependencies(check TestUnitTestPP)
+add_test(NAME TestUnitTest++ COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
+add_dependencies(check TestUnitTest++)
# add install targets
@@ -57,6 +58,6 @@ else()
set (UTPP_INSTALL_DESTINATION "include/UnitTestPP")
endif()
-install(TARGETS UnitTestPP DESTINATION lib)
+install(TARGETS UnitTest++ DESTINATION lib)
install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION})
install(FILES ${platformHeaders_} DESTINATION ${UTPP_INSTALL_DESTINATION}/${platformDir_})
\ No newline at end of file
diff --git a/tests/TestTest.cpp b/tests/TestTest.cpp
index 2aeab6d..5c4f358 100644
--- a/tests/TestTest.cpp
+++ b/tests/TestTest.cpp
@@ -72,7 +72,7 @@ TEST(ThrowingTestsAreReportedAsFailures)
CHECK_EQUAL(1, results.GetFailureCount());
}
-#ifndef UNITTEST_MINGW
+#if !defined(UNITTEST_MINGW) && !defined(UNITTEST_WIN32)
TEST(CrashingTestsAreReportedAsFailures)
{
class CrashingTest : public Test
@@ -81,6 +81,7 @@ TEST(CrashingTestsAreReportedAsFailures)
CrashingTest() : Test("crashing") {}
virtual void RunImpl() const
{
+
reinterpret_cast< void (*)() >(0)();
}
};
diff --git a/vs_projects/vs2012_x64/TestUnitTest++.vcxproj b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj
new file mode 100644
index 0000000..17aef9f
--- /dev/null
+++ b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj
@@ -0,0 +1,299 @@
+�サソ
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}
+ Win32Proj
+ x64
+ TestUnitTest++
+
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\Debug\
+ TestUnitTest++.dir\Debug\
+ TestUnitTest++
+ .exe
+ true
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\Release\
+ TestUnitTest++.dir\Release\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\MinSizeRel\
+ TestUnitTest++.dir\MinSizeRel\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\RelWithDebInfo\
+ TestUnitTest++.dir\RelWithDebInfo\
+ TestUnitTest++
+ .exe
+ true
+ true
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7867CF0A-53DE-4CAD-A141-976283C590C4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters
new file mode 100644
index 0000000..3cfece1
--- /dev/null
+++ b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters
@@ -0,0 +1,30 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2012_x64/UnitTest++.sln b/vs_projects/vs2012_x64/UnitTest++.sln
new file mode 100644
index 0000000..43e350c
--- /dev/null
+++ b/vs_projects/vs2012_x64/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{FAE7B8C1-428D-45DB-9A26-751A64C666D1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {7867CF0A-53DE-4CAD-A141-976283C590C4} = {7867CF0A-53DE-4CAD-A141-976283C590C4}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{7867CF0A-53DE-4CAD-A141-976283C590C4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ Release|x64 = Release|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Debug|x64.ActiveCfg = Debug|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Debug|x64.Build.0 = Debug|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Release|x64.ActiveCfg = Release|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Release|x64.Build.0 = Release|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.Debug|x64.ActiveCfg = Debug|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.Debug|x64.Build.0 = Debug|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.Release|x64.ActiveCfg = Release|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.Release|x64.Build.0 = Release|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2012_x64/UnitTest++.vcxproj b/vs_projects/vs2012_x64/UnitTest++.vcxproj
new file mode 100644
index 0000000..7ea763f
--- /dev/null
+++ b/vs_projects/vs2012_x64/UnitTest++.vcxproj
@@ -0,0 +1,256 @@
+�サソ
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {7867CF0A-53DE-4CAD-A141-976283C590C4}
+ Win32Proj
+ x64
+ UnitTest++
+
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\Debug\
+ UnitTest++.dir\Debug\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\Release\
+ UnitTest++.dir\Release\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\MinSizeRel\
+ UnitTest++.dir\MinSizeRel\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x64\RelWithDebInfo\
+ UnitTest++.dir\RelWithDebInfo\
+ UnitTest++
+ .lib
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters b/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters
new file mode 100644
index 0000000..b692ccf
--- /dev/null
+++ b/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters
@@ -0,0 +1,63 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+ {6C3785C9-4B23-45F4-871B-C1DD411A4396}
+
+
+
diff --git a/vs_projects/vs2012_x86/TestUnitTest++.vcxproj b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj
new file mode 100644
index 0000000..f12b1da
--- /dev/null
+++ b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj
@@ -0,0 +1,306 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ MinSizeRel
+ Win32
+
+
+ RelWithDebInfo
+ Win32
+
+
+
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}
+ Win32Proj
+ Win32
+ TestUnitTest++
+
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+ Application
+ false
+ MultiByte
+ v110
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\Debug\
+ TestUnitTest++.dir\Debug\
+ TestUnitTest++
+ .exe
+ true
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\Release\
+ TestUnitTest++.dir\Release\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\MinSizeRel\
+ TestUnitTest++.dir\MinSizeRel\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\RelWithDebInfo\
+ TestUnitTest++.dir\RelWithDebInfo\
+ TestUnitTest++
+ .exe
+ true
+ true
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4128153F-6FD2-46E5-9330-3650015B97E1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters
new file mode 100644
index 0000000..3cfece1
--- /dev/null
+++ b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters
@@ -0,0 +1,30 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2012_x86/UnitTest++.sln b/vs_projects/vs2012_x86/UnitTest++.sln
new file mode 100644
index 0000000..466e16e
--- /dev/null
+++ b/vs_projects/vs2012_x86/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{206E8A31-7D19-4632-A9A4-930039BB4A16}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4128153F-6FD2-46E5-9330-3650015B97E1} = {4128153F-6FD2-46E5-9330-3650015B97E1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{4128153F-6FD2-46E5-9330-3650015B97E1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ MinSizeRel|Win32 = MinSizeRel|Win32
+ Release|Win32 = Release|Win32
+ RelWithDebInfo|Win32 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.Debug|Win32.ActiveCfg = Debug|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.Debug|Win32.Build.0 = Debug|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.Release|Win32.ActiveCfg = Release|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.Release|Win32.Build.0 = Release|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {206E8A31-7D19-4632-A9A4-930039BB4A16}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.Debug|Win32.Build.0 = Debug|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.Release|Win32.ActiveCfg = Release|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.Release|Win32.Build.0 = Release|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {4128153F-6FD2-46E5-9330-3650015B97E1}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2012_x86/UnitTest++.vcxproj b/vs_projects/vs2012_x86/UnitTest++.vcxproj
new file mode 100644
index 0000000..471eaaa
--- /dev/null
+++ b/vs_projects/vs2012_x86/UnitTest++.vcxproj
@@ -0,0 +1,256 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ MinSizeRel
+ Win32
+
+
+ RelWithDebInfo
+ Win32
+
+
+
+ {4128153F-6FD2-46E5-9330-3650015B97E1}
+ Win32Proj
+ Win32
+ UnitTest++
+
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+ StaticLibrary
+ false
+ MultiByte
+ v110
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\Debug\
+ UnitTest++.dir\Debug\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\Release\
+ UnitTest++.dir\Release\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\MinSizeRel\
+ UnitTest++.dir\MinSizeRel\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2012_x86\RelWithDebInfo\
+ UnitTest++.dir\RelWithDebInfo\
+ UnitTest++
+ .lib
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters b/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters
new file mode 100644
index 0000000..7818cf8
--- /dev/null
+++ b/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters
@@ -0,0 +1,63 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+ {27C32F86-0D7D-4B85-AF93-E62D39E9D551}
+
+
+
From 11405eee0fac7451ed8dccf4a397ceb7d2d56ebb Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:31:40 -0500
Subject: [PATCH 075/218] Add *.bat as eol=crlf.
---
.gitattributes | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitattributes b/.gitattributes
index ce46819..4d390e4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -12,3 +12,6 @@
# VC6 files
*.dsw text eol=crlf
*.dsp text eol=crlf
+
+# Other 'windows-specific' files
+*.bat text eol=crlf
\ No newline at end of file
From 500bb6ef7db2e8c41bfb563c7130a4d7cc8eac2a Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:31:51 -0500
Subject: [PATCH 076/218] Add strip_cmake.bat for deleting "extra" files
generated by CMake.
Note that the solutions/workspaces generated for Visual Studio, by
default, will still have the extra projects in them. They must be
deleted from the project before running this strip_cmake.bat.
TODO: Teach strip_cmake.bat how to actually strip the offending
projects from the solutions/workspaces.
---
vs_projects/strip_cmake.bat | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 vs_projects/strip_cmake.bat
diff --git a/vs_projects/strip_cmake.bat b/vs_projects/strip_cmake.bat
new file mode 100644
index 0000000..882499e
--- /dev/null
+++ b/vs_projects/strip_cmake.bat
@@ -0,0 +1,17 @@
+@echo off
+setlocal
+set slnDir_=%1
+
+rem TODO: Use VS automation to remove CMake projects
+
+rem This batch file tries to delete things from the sub-folders
+rem that may or may not be there based on the Visual Studio
+rem version in play. I chose to make it quick and dumb so that
+rem it can be called on each project folder with no special
+rem logic.
+
+pushd %slnDir_%
+del /Q ALL_BUILD.* check.* cmake_install.cmake CMakeCache.txt CTestTestfile.cmake
+del /Q INSTALL.* RUN_TESTS.*
+rmdir /s /q CMakeFiles
+popd
\ No newline at end of file
From 77e92e35ad2ff076f2a455c6342bdb1739e33fc9 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:35:33 -0500
Subject: [PATCH 077/218] Generate new Visual Studio 2010 projects.
---
UnitTest++.vsnet2010.sln | 26 --
UnitTest++.vsnet2010.vcxproj | 118 -------
UnitTest++.vsnet2010.vcxproj.filters | 55 ----
vs_projects/vs2010_x64/TestUnitTest++.vcxproj | 295 ++++++++++++++++++
.../vs2010_x64/TestUnitTest++.vcxproj.filters | 30 ++
vs_projects/vs2010_x64/UnitTest++.sln | 38 +++
vs_projects/vs2010_x64/UnitTest++.vcxproj | 252 +++++++++++++++
.../vs2010_x64/UnitTest++.vcxproj.filters | 63 ++++
vs_projects/vs2010_x86/TestUnitTest++.vcxproj | 295 ++++++++++++++++++
.../vs2010_x86/TestUnitTest++.vcxproj.filters | 30 ++
vs_projects/vs2010_x86/UnitTest++.sln | 38 +++
vs_projects/vs2010_x86/UnitTest++.vcxproj | 252 +++++++++++++++
.../vs2010_x86/UnitTest++.vcxproj.filters | 63 ++++
13 files changed, 1356 insertions(+), 199 deletions(-)
delete mode 100644 UnitTest++.vsnet2010.sln
delete mode 100644 UnitTest++.vsnet2010.vcxproj
delete mode 100644 UnitTest++.vsnet2010.vcxproj.filters
create mode 100644 vs_projects/vs2010_x64/TestUnitTest++.vcxproj
create mode 100644 vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2010_x64/UnitTest++.sln
create mode 100644 vs_projects/vs2010_x64/UnitTest++.vcxproj
create mode 100644 vs_projects/vs2010_x64/UnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2010_x86/TestUnitTest++.vcxproj
create mode 100644 vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters
create mode 100644 vs_projects/vs2010_x86/UnitTest++.sln
create mode 100644 vs_projects/vs2010_x86/UnitTest++.vcxproj
create mode 100644 vs_projects/vs2010_x86/UnitTest++.vcxproj.filters
diff --git a/UnitTest++.vsnet2010.sln b/UnitTest++.vsnet2010.sln
deleted file mode 100644
index 47268f1..0000000
--- a/UnitTest++.vsnet2010.sln
+++ /dev/null
@@ -1,26 +0,0 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2010", "UnitTest++.vsnet2010.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2010", "TestUnitTest++.vsnet2010.vcxproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/UnitTest++.vsnet2010.vcxproj b/UnitTest++.vsnet2010.vcxproj
deleted file mode 100644
index 9e0816b..0000000
--- a/UnitTest++.vsnet2010.vcxproj
+++ /dev/null
@@ -1,118 +0,0 @@
-�サソ
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- UnitTestvsnet2005
- Win32Proj
- UnitTest++.vsnet2010
-
-
-
- StaticLibrary
- Unicode
- false
-
-
- StaticLibrary
- Unicode
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- $(SolutionDir)$(Configuration)\
- obj\$(ProjectName)\$(Configuration)\
- $(SolutionDir)$(Configuration)\
- obj\$(ProjectName)\$(Configuration)\
-
-
-
- Disabled
- WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- true
- Async
- EnableFastChecks
- MultiThreadedDebugDLL
-
-
- Level4
- EditAndContinue
-
-
-
-
- MinSpace
- WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- Async
- MultiThreadedDLL
-
-
- Level4
- ProgramDatabase
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/UnitTest++.vsnet2010.vcxproj.filters b/UnitTest++.vsnet2010.vcxproj.filters
deleted file mode 100644
index eea216f..0000000
--- a/UnitTest++.vsnet2010.vcxproj.filters
+++ /dev/null
@@ -1,55 +0,0 @@
-�サソ
-
-
-
- {574dd04f-2b0e-463b-adf4-d019dba5403f}
-
-
-
-
- Win32
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Win32
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vs_projects/vs2010_x64/TestUnitTest++.vcxproj b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj
new file mode 100644
index 0000000..231b6ad
--- /dev/null
+++ b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj
@@ -0,0 +1,295 @@
+�サソ
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}
+ Win32Proj
+ x64
+ TestUnitTest++
+
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\Debug\
+ TestUnitTest++.dir\Debug\
+ TestUnitTest++
+ .exe
+ true
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\Release\
+ TestUnitTest++.dir\Release\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\MinSizeRel\
+ TestUnitTest++.dir\MinSizeRel\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\RelWithDebInfo\
+ TestUnitTest++.dir\RelWithDebInfo\
+ TestUnitTest++
+ .exe
+ true
+ true
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:x64 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FB6A3EF4-5303-407E-A45C-687834E9D072
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters
new file mode 100644
index 0000000..3cfece1
--- /dev/null
+++ b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters
@@ -0,0 +1,30 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2010_x64/UnitTest++.sln b/vs_projects/vs2010_x64/UnitTest++.sln
new file mode 100644
index 0000000..71a48b2
--- /dev/null
+++ b/vs_projects/vs2010_x64/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{5C5EBB30-ECAF-4BCF-9054-094ED2894699}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FB6A3EF4-5303-407E-A45C-687834E9D072} = {FB6A3EF4-5303-407E-A45C-687834E9D072}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{FB6A3EF4-5303-407E-A45C-687834E9D072}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ Release|x64 = Release|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Debug|x64.ActiveCfg = Debug|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Debug|x64.Build.0 = Debug|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Release|x64.ActiveCfg = Release|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Release|x64.Build.0 = Release|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.Debug|x64.ActiveCfg = Debug|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.Debug|x64.Build.0 = Debug|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.Release|x64.ActiveCfg = Release|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.Release|x64.Build.0 = Release|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2010_x64/UnitTest++.vcxproj b/vs_projects/vs2010_x64/UnitTest++.vcxproj
new file mode 100644
index 0000000..b846709
--- /dev/null
+++ b/vs_projects/vs2010_x64/UnitTest++.vcxproj
@@ -0,0 +1,252 @@
+�サソ
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {FB6A3EF4-5303-407E-A45C-687834E9D072}
+ Win32Proj
+ x64
+ UnitTest++
+
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\Debug\
+ UnitTest++.dir\Debug\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\Release\
+ UnitTest++.dir\Release\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\MinSizeRel\
+ UnitTest++.dir\MinSizeRel\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x64\RelWithDebInfo\
+ UnitTest++.dir\RelWithDebInfo\
+ UnitTest++
+ .lib
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters b/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters
new file mode 100644
index 0000000..7f071c1
--- /dev/null
+++ b/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters
@@ -0,0 +1,63 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+ {DB64CD83-3739-41F0-B91D-D72E42A76AA6}
+
+
+
diff --git a/vs_projects/vs2010_x86/TestUnitTest++.vcxproj b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj
new file mode 100644
index 0000000..7e58525
--- /dev/null
+++ b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj
@@ -0,0 +1,295 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ MinSizeRel
+ Win32
+
+
+ RelWithDebInfo
+ Win32
+
+
+
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}
+ Win32Proj
+ Win32
+ TestUnitTest++
+
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+ Application
+ false
+ MultiByte
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\Debug\
+ TestUnitTest++.dir\Debug\
+ TestUnitTest++
+ .exe
+ true
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\Release\
+ TestUnitTest++.dir\Release\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\MinSizeRel\
+ TestUnitTest++.dir\MinSizeRel\
+ TestUnitTest++
+ .exe
+ false
+ true
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\RelWithDebInfo\
+ TestUnitTest++.dir\RelWithDebInfo\
+ TestUnitTest++
+ .exe
+ true
+ true
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ false
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.lib
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ /machine:X86 /debug %(AdditionalOptions)
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib
+ %(AdditionalLibraryDirectories)
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.lib
+ true
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.pdb
+ 10000000
+ Console
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 59739FC9-D084-4B2E-BFEA-28D91A9BD3F8
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters
new file mode 100644
index 0000000..3cfece1
--- /dev/null
+++ b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters
@@ -0,0 +1,30 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2010_x86/UnitTest++.sln b/vs_projects/vs2010_x86/UnitTest++.sln
new file mode 100644
index 0000000..93b5868
--- /dev/null
+++ b/vs_projects/vs2010_x86/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8} = {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ MinSizeRel|Win32 = MinSizeRel|Win32
+ Release|Win32 = Release|Win32
+ RelWithDebInfo|Win32 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Debug|Win32.Build.0 = Debug|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Release|Win32.ActiveCfg = Release|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Release|Win32.Build.0 = Release|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Debug|Win32.Build.0 = Debug|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Release|Win32.ActiveCfg = Release|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Release|Win32.Build.0 = Release|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2010_x86/UnitTest++.vcxproj b/vs_projects/vs2010_x86/UnitTest++.vcxproj
new file mode 100644
index 0000000..d767591
--- /dev/null
+++ b/vs_projects/vs2010_x86/UnitTest++.vcxproj
@@ -0,0 +1,252 @@
+�サソ
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ MinSizeRel
+ Win32
+
+
+ RelWithDebInfo
+ Win32
+
+
+
+ {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}
+ Win32Proj
+ Win32
+ UnitTest++
+
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+ StaticLibrary
+ false
+ MultiByte
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\Debug\
+ UnitTest++.dir\Debug\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\Release\
+ UnitTest++.dir\Release\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\MinSizeRel\
+ UnitTest++.dir\MinSizeRel\
+ UnitTest++
+ .lib
+ U:\unittest-cpp-pj\vs_projects\vs2010_x86\RelWithDebInfo\
+ UnitTest++.dir\RelWithDebInfo\
+ UnitTest++
+ .lib
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ EnableFastChecks
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ Level3
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)
+ Debug
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)
+ Release
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions)
+ MinSizeRel
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ /Zm1000 %(AdditionalOptions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+ ProgramDatabase
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ Level3
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions)
+ RelWithDebInfo
+ $(IntDir)
+ U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/UnitTest++.pdb
+
+
+ WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+
+
+ U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters b/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters
new file mode 100644
index 0000000..2ea1e73
--- /dev/null
+++ b/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters
@@ -0,0 +1,63 @@
+�サソ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Win32
+
+
+
+
+ {0E6D11F1-BD64-469A-BBC0-AF98B7FFF0CA}
+
+
+
From aaf008f458b5a8b273300662cfa62cbe6a912fb6 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:46:01 -0500
Subject: [PATCH 078/218] Generate new Visual Studio 2008 projects.
---
.gitignore | 3 +
unittestpp_vs2008.sln | 49 ---
vs_projects/vs2008_x64/TestUnitTest++.vcproj | 330 ++++++++++++++++
vs_projects/vs2008_x64/UnitTest++.sln | 38 ++
vs_projects/vs2008_x64/UnitTest++.vcproj | 374 +++++++++++++++++++
vs_projects/vs2008_x86/TestUnitTest++.vcproj | 330 ++++++++++++++++
vs_projects/vs2008_x86/UnitTest++.sln | 38 ++
vs_projects/vs2008_x86/UnitTest++.vcproj | 374 +++++++++++++++++++
8 files changed, 1487 insertions(+), 49 deletions(-)
delete mode 100644 unittestpp_vs2008.sln
create mode 100644 vs_projects/vs2008_x64/TestUnitTest++.vcproj
create mode 100644 vs_projects/vs2008_x64/UnitTest++.sln
create mode 100644 vs_projects/vs2008_x64/UnitTest++.vcproj
create mode 100644 vs_projects/vs2008_x86/TestUnitTest++.vcproj
create mode 100644 vs_projects/vs2008_x86/UnitTest++.sln
create mode 100644 vs_projects/vs2008_x86/UnitTest++.vcproj
diff --git a/.gitignore b/.gitignore
index 397bce8..edfc779 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,12 @@
*.o
*.a
+
+# Visual Studio temp/user files
*.user
*.suo
*.sdf
*.opensdf
+*.ncb
# Build output directories
Release
diff --git a/unittestpp_vs2008.sln b/unittestpp_vs2008.sln
deleted file mode 100644
index fe863c2..0000000
--- a/unittestpp_vs2008.sln
+++ /dev/null
@@ -1,49 +0,0 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32
- win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32
- win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32
- win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32
- win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32
- win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/vs_projects/vs2008_x64/TestUnitTest++.vcproj b/vs_projects/vs2008_x64/TestUnitTest++.vcproj
new file mode 100644
index 0000000..c124d92
--- /dev/null
+++ b/vs_projects/vs2008_x64/TestUnitTest++.vcproj
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2008_x64/UnitTest++.sln b/vs_projects/vs2008_x64/UnitTest++.sln
new file mode 100644
index 0000000..6f6762c
--- /dev/null
+++ b/vs_projects/vs2008_x64/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{7AAC9879-0F64-49B3-9420-0DB18FB337BF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82} = {B8F60BD4-3946-4458-A2B3-72B42A399B82}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{B8F60BD4-3946-4458-A2B3-72B42A399B82}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ Release|x64 = Release|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Debug|x64.ActiveCfg = Debug|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Debug|x64.Build.0 = Debug|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Release|x64.ActiveCfg = Release|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Release|x64.Build.0 = Release|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Debug|x64.ActiveCfg = Debug|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Debug|x64.Build.0 = Debug|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Release|x64.ActiveCfg = Release|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Release|x64.Build.0 = Release|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {B8F60BD4-3946-4458-A2B3-72B42A399B82}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2008_x64/UnitTest++.vcproj b/vs_projects/vs2008_x64/UnitTest++.vcproj
new file mode 100644
index 0000000..e1ab1bd
--- /dev/null
+++ b/vs_projects/vs2008_x64/UnitTest++.vcproj
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2008_x86/TestUnitTest++.vcproj b/vs_projects/vs2008_x86/TestUnitTest++.vcproj
new file mode 100644
index 0000000..9700001
--- /dev/null
+++ b/vs_projects/vs2008_x86/TestUnitTest++.vcproj
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2008_x86/UnitTest++.sln b/vs_projects/vs2008_x86/UnitTest++.sln
new file mode 100644
index 0000000..3444310
--- /dev/null
+++ b/vs_projects/vs2008_x86/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{52AD06AB-CCF0-447B-AAEE-F072735C7FB1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {241694AB-FC8A-4374-A564-BD0D0BC75020} = {241694AB-FC8A-4374-A564-BD0D0BC75020}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{241694AB-FC8A-4374-A564-BD0D0BC75020}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ MinSizeRel|Win32 = MinSizeRel|Win32
+ Release|Win32 = Release|Win32
+ RelWithDebInfo|Win32 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Debug|Win32.Build.0 = Debug|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Release|Win32.ActiveCfg = Release|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Release|Win32.Build.0 = Release|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.Debug|Win32.ActiveCfg = Debug|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.Debug|Win32.Build.0 = Debug|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.Release|Win32.ActiveCfg = Release|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.Release|Win32.Build.0 = Release|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {241694AB-FC8A-4374-A564-BD0D0BC75020}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2008_x86/UnitTest++.vcproj b/vs_projects/vs2008_x86/UnitTest++.vcproj
new file mode 100644
index 0000000..95ae6cf
--- /dev/null
+++ b/vs_projects/vs2008_x86/UnitTest++.vcproj
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From d4551abf58b1d03de41840151a294ac6852f7ffb Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 01:46:31 -0500
Subject: [PATCH 079/218] Remove old TestUnitTest++ 2010 project files.
---
TestUnitTest++.vsnet2010.vcxproj | 123 -----------------------
TestUnitTest++.vsnet2010.vcxproj.filters | 26 -----
2 files changed, 149 deletions(-)
delete mode 100644 TestUnitTest++.vsnet2010.vcxproj
delete mode 100644 TestUnitTest++.vsnet2010.vcxproj.filters
diff --git a/TestUnitTest++.vsnet2010.vcxproj b/TestUnitTest++.vsnet2010.vcxproj
deleted file mode 100644
index 0bc8ac1..0000000
--- a/TestUnitTest++.vsnet2010.vcxproj
+++ /dev/null
@@ -1,123 +0,0 @@
-�サソ
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}
- TestUnitTestvsnet2005
- Win32Proj
- TestUnitTest++.vsnet2010
-
-
-
- Application
- Unicode
- false
-
-
- Application
- Unicode
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- $(SolutionDir)$(Configuration)\
- obj\$(ProjectName)\$(Configuration)\
- true
- $(SolutionDir)$(Configuration)\
- obj\$(ProjectName)\$(Configuration)\
- false
-
-
-
- Disabled
- WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- true
- Async
- EnableFastChecks
- MultiThreadedDebugDLL
-
-
- Level4
- EditAndContinue
-
-
- true
- Console
- MachineX86
-
-
- "$(TargetPath)"
-
-
-
-
- MaxSpeed
- WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
- Async
- MultiThreadedDLL
-
-
- Level4
- ProgramDatabase
-
-
- true
- Console
- true
- true
- MachineX86
-
-
- "$(TargetPath)"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {64a4fefe-0461-4e95-8cc1-91ef5f57dbc6}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TestUnitTest++.vsnet2010.vcxproj.filters b/TestUnitTest++.vsnet2010.vcxproj.filters
deleted file mode 100644
index 450d1fb..0000000
--- a/TestUnitTest++.vsnet2010.vcxproj.filters
+++ /dev/null
@@ -1,26 +0,0 @@
-�サソ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From 90c1b7a3b7c75b27d1711b5fb380689fd3a99133 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 02:08:36 -0500
Subject: [PATCH 080/218] Generate new Visual Studio 2005 projects.
---
UnitTest++/TestReporterStdout.h | 2 +-
vs_projects/vs2005_x64/TestUnitTest++.vcproj | 330 ++++++++++++++++
vs_projects/vs2005_x64/UnitTest++.sln | 38 ++
vs_projects/vs2005_x64/UnitTest++.vcproj | 374 +++++++++++++++++++
vs_projects/vs2005_x86/TestUnitTest++.vcproj | 330 ++++++++++++++++
vs_projects/vs2005_x86/UnitTest++.sln | 38 ++
vs_projects/vs2005_x86/UnitTest++.vcproj | 374 +++++++++++++++++++
7 files changed, 1485 insertions(+), 1 deletion(-)
create mode 100644 vs_projects/vs2005_x64/TestUnitTest++.vcproj
create mode 100644 vs_projects/vs2005_x64/UnitTest++.sln
create mode 100644 vs_projects/vs2005_x64/UnitTest++.vcproj
create mode 100644 vs_projects/vs2005_x86/TestUnitTest++.vcproj
create mode 100644 vs_projects/vs2005_x86/UnitTest++.sln
create mode 100644 vs_projects/vs2005_x86/UnitTest++.vcproj
diff --git a/UnitTest++/TestReporterStdout.h b/UnitTest++/TestReporterStdout.h
index 457c0b6..e8d7bbf 100644
--- a/UnitTest++/TestReporterStdout.h
+++ b/UnitTest++/TestReporterStdout.h
@@ -11,7 +11,7 @@ private:
virtual void ReportTestStart(TestDetails const& test);
virtual void ReportFailure(TestDetails const& test, char const* failure);
virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
- virtual void ReportSummary(int const totalTestCount, int const failedTestCount, int const failureCount, float const secondsElapsed);
+ virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
};
}
diff --git a/vs_projects/vs2005_x64/TestUnitTest++.vcproj b/vs_projects/vs2005_x64/TestUnitTest++.vcproj
new file mode 100644
index 0000000..e40a68a
--- /dev/null
+++ b/vs_projects/vs2005_x64/TestUnitTest++.vcproj
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2005_x64/UnitTest++.sln b/vs_projects/vs2005_x64/UnitTest++.sln
new file mode 100644
index 0000000..9fff3bd
--- /dev/null
+++ b/vs_projects/vs2005_x64/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{9AE72F67-C325-4B4E-A001-6242514071DE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0266798B-A432-430B-9DE2-4351926EA9DE} = {0266798B-A432-430B-9DE2-4351926EA9DE}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{0266798B-A432-430B-9DE2-4351926EA9DE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ Release|x64 = Release|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.Debug|x64.ActiveCfg = Debug|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.Debug|x64.Build.0 = Debug|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.Release|x64.ActiveCfg = Release|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.Release|x64.Build.0 = Release|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {9AE72F67-C325-4B4E-A001-6242514071DE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.Debug|x64.ActiveCfg = Debug|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.Debug|x64.Build.0 = Debug|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.Release|x64.ActiveCfg = Release|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.Release|x64.Build.0 = Release|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {0266798B-A432-430B-9DE2-4351926EA9DE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2005_x64/UnitTest++.vcproj b/vs_projects/vs2005_x64/UnitTest++.vcproj
new file mode 100644
index 0000000..382b863
--- /dev/null
+++ b/vs_projects/vs2005_x64/UnitTest++.vcproj
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2005_x86/TestUnitTest++.vcproj b/vs_projects/vs2005_x86/TestUnitTest++.vcproj
new file mode 100644
index 0000000..522d871
--- /dev/null
+++ b/vs_projects/vs2005_x86/TestUnitTest++.vcproj
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2005_x86/UnitTest++.sln b/vs_projects/vs2005_x86/UnitTest++.sln
new file mode 100644
index 0000000..04cb02a
--- /dev/null
+++ b/vs_projects/vs2005_x86/UnitTest++.sln
@@ -0,0 +1,38 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{580F19DE-3641-4DDD-99F5-992777B8789A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044} = {74254CA4-A6A2-4867-87B7-5B3A77BDF044}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{74254CA4-A6A2-4867-87B7-5B3A77BDF044}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ MinSizeRel|Win32 = MinSizeRel|Win32
+ Release|Win32 = Release|Win32
+ RelWithDebInfo|Win32 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.Debug|Win32.Build.0 = Debug|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.Release|Win32.ActiveCfg = Release|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.Release|Win32.Build.0 = Release|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {580F19DE-3641-4DDD-99F5-992777B8789A}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Debug|Win32.ActiveCfg = Debug|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Debug|Win32.Build.0 = Debug|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Release|Win32.ActiveCfg = Release|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Release|Win32.Build.0 = Release|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2005_x86/UnitTest++.vcproj b/vs_projects/vs2005_x86/UnitTest++.vcproj
new file mode 100644
index 0000000..a7e5be7
--- /dev/null
+++ b/vs_projects/vs2005_x86/UnitTest++.vcproj
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From c39d185b237203e638f1b245d2d0815bc8af2d41 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 02:09:19 -0500
Subject: [PATCH 081/218] Remove old Visual Studio 2005 projects.
---
UnitTest++.vsnet2005.sln | 29 ----
UnitTest++.vsnet2005.vcproj | 318 ------------------------------------
unittestpp_vs2005.sln | 49 ------
3 files changed, 396 deletions(-)
delete mode 100644 UnitTest++.vsnet2005.sln
delete mode 100644 UnitTest++.vsnet2005.vcproj
delete mode 100644 unittestpp_vs2005.sln
diff --git a/UnitTest++.vsnet2005.sln b/UnitTest++.vsnet2005.sln
deleted file mode 100644
index 382f334..0000000
--- a/UnitTest++.vsnet2005.sln
+++ /dev/null
@@ -1,29 +0,0 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/UnitTest++.vsnet2005.vcproj b/UnitTest++.vsnet2005.vcproj
deleted file mode 100644
index 7e45646..0000000
--- a/UnitTest++.vsnet2005.vcproj
+++ /dev/null
@@ -1,318 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln
deleted file mode 100644
index 85c6b09..0000000
--- a/unittestpp_vs2005.sln
+++ /dev/null
@@ -1,49 +0,0 @@
-�サソ
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}"
- ProjectSection(ProjectDependencies) = postProject
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32
- win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32
- win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32
- win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32
- win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32
- win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
- {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32
- {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
From caa4df97b0a810e75c191ac362b8c9eb57949bcd Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 02:13:59 -0500
Subject: [PATCH 082/218] Generate new Visual Studio 2003 projects.
---
vs_projects/vs2003_x86/TestUnitTest++.vcproj | 329 ++++++++++++++++
vs_projects/vs2003_x86/UnitTest++.sln | 42 +++
vs_projects/vs2003_x86/UnitTest++.vcproj | 373 +++++++++++++++++++
3 files changed, 744 insertions(+)
create mode 100644 vs_projects/vs2003_x86/TestUnitTest++.vcproj
create mode 100644 vs_projects/vs2003_x86/UnitTest++.sln
create mode 100644 vs_projects/vs2003_x86/UnitTest++.vcproj
diff --git a/vs_projects/vs2003_x86/TestUnitTest++.vcproj b/vs_projects/vs2003_x86/TestUnitTest++.vcproj
new file mode 100644
index 0000000..d3eea78
--- /dev/null
+++ b/vs_projects/vs2003_x86/TestUnitTest++.vcproj
@@ -0,0 +1,329 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vs_projects/vs2003_x86/UnitTest++.sln b/vs_projects/vs2003_x86/UnitTest++.sln
new file mode 100644
index 0000000..9803357
--- /dev/null
+++ b/vs_projects/vs2003_x86/UnitTest++.sln
@@ -0,0 +1,42 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{F39EC7C8-6F40-4523-A955-D6E811D0FCDA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83} = {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ MinSizeRel = MinSizeRel
+ Release = Release
+ RelWithDebInfo = RelWithDebInfo
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Debug.ActiveCfg = Debug|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Debug.Build.0 = Debug|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.MinSizeRel.ActiveCfg = MinSizeRel|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.MinSizeRel.Build.0 = MinSizeRel|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Release.ActiveCfg = Release|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Release.Build.0 = Release|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.RelWithDebInfo.ActiveCfg = RelWithDebInfo|Win32
+ {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.RelWithDebInfo.Build.0 = RelWithDebInfo|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Debug.ActiveCfg = Debug|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Debug.Build.0 = Debug|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.MinSizeRel.ActiveCfg = MinSizeRel|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.MinSizeRel.Build.0 = MinSizeRel|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Release.ActiveCfg = Release|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Release.Build.0 = Release|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.RelWithDebInfo.ActiveCfg = RelWithDebInfo|Win32
+ {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.RelWithDebInfo.Build.0 = RelWithDebInfo|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/vs_projects/vs2003_x86/UnitTest++.vcproj b/vs_projects/vs2003_x86/UnitTest++.vcproj
new file mode 100644
index 0000000..652c742
--- /dev/null
+++ b/vs_projects/vs2003_x86/UnitTest++.vcproj
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 6824ef6f6d7f20cb7c0d89a1f80e4be8b9212a75 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 02:14:44 -0500
Subject: [PATCH 083/218] Remove missed Visual Studio 2005 file.
---
TestUnitTest++.vsnet2005.vcproj | 256 --------------------------------
1 file changed, 256 deletions(-)
delete mode 100644 TestUnitTest++.vsnet2005.vcproj
diff --git a/TestUnitTest++.vsnet2005.vcproj b/TestUnitTest++.vsnet2005.vcproj
deleted file mode 100644
index 79b7874..0000000
--- a/TestUnitTest++.vsnet2005.vcproj
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
From d761d7d7b8fafe182baf2f9643a57dfc97a07d2c Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Sun, 24 Mar 2013 02:14:53 -0500
Subject: [PATCH 084/218] Remove old Visual Studio 2003 project files.
---
TestUnitTest++.vsnet2003.vcproj | 174 ------------------------
UnitTest++.vsnet2003.sln | 30 -----
UnitTest++.vsnet2003.vcproj | 226 --------------------------------
3 files changed, 430 deletions(-)
delete mode 100644 TestUnitTest++.vsnet2003.vcproj
delete mode 100644 UnitTest++.vsnet2003.sln
delete mode 100644 UnitTest++.vsnet2003.vcproj
diff --git a/TestUnitTest++.vsnet2003.vcproj b/TestUnitTest++.vsnet2003.vcproj
deleted file mode 100644
index e596d80..0000000
--- a/TestUnitTest++.vsnet2003.vcproj
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/UnitTest++.vsnet2003.sln b/UnitTest++.vsnet2003.sln
deleted file mode 100644
index 265d7ba..0000000
--- a/UnitTest++.vsnet2003.sln
+++ /dev/null
@@ -1,30 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}"
- ProjectSection(ProjectDependencies) = postProject
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32
- {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32
- {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/UnitTest++.vsnet2003.vcproj b/UnitTest++.vsnet2003.vcproj
deleted file mode 100644
index 75c8f2e..0000000
--- a/UnitTest++.vsnet2003.vcproj
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
From e90b9e5a63e305c7b3868a7bebff3a134eb7bae3 Mon Sep 17 00:00:00 2001
From: "Victor Lavaud (qdii)"
Date: Fri, 29 Mar 2013 20:59:47 +0100
Subject: [PATCH 085/218] Fixed autotools
---
Makefile.am | 2 +-
UnitTest++/Makefile.am | 4 ++--
configure.ac | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 1563f21..18f39ba 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,2 +1,2 @@
EXTRA_DIST = docs
-SUBDIRS = src
+SUBDIRS = UnitTest++
diff --git a/UnitTest++/Makefile.am b/UnitTest++/Makefile.am
index c38712e..32bf52b 100644
--- a/UnitTest++/Makefile.am
+++ b/UnitTest++/Makefile.am
@@ -1,9 +1,9 @@
lib_LTLIBRARIES = libUnitTest++.la
pkgincludedir = $(includedir)/UnitTest++
nobase_pkginclude_HEADERS = UnitTest++.h Config.h Test.h TestDetails.h TestList.h TestSuite.h TestResults.h TestMacros.h CheckMacros.h TestRunner.h TimeConstraint.h ExecuteTest.h AssertException.h MemoryOutStream.h CurrentTest.h Posix/SignalTranslator.h Checks.h TimeHelpers.h Posix/TimeHelpers.h
-libUnitTest___la_SOURCES = AssertException.cpp Test.cpp Checks.cpp TestRunner.cpp TestResults.cpp TestReporter.cpp TestReporterStdout.cpp ReportAssert.cpp TestList.cpp TimeConstraint.cpp TestDetails.cpp MemoryOutStream.cpp DeferredTestReporter.cpp DeferredTestResult.cpp XmlTestReporter.cpp CurrentTest.cpp Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp
+libUnitTest___la_SOURCES = AssertException.cpp Test.cpp Checks.cpp TestRunner.cpp TestResults.cpp TestReporter.cpp TestReporterStdout.cpp ReportAssert.cpp TestList.cpp TimeConstraint.cpp TestDetails.cpp MemoryOutStream.cpp DeferredTestReporter.cpp DeferredTestResult.cpp XmlTestReporter.cpp CurrentTest.cpp Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp CompositeTestReporter.cpp
libUnitTest___la_LDFLAGS = -version-number @LIBUNITTEST_SO_VERSION@
check_PROGRAMS = TestUnitTest++
-TestUnitTest___SOURCES = tests/Main.cpp tests/TestAssertHandler.cpp tests/TestChecks.cpp tests/TestUnitTest++.cpp tests/TestTest.cpp tests/TestTestResults.cpp tests/TestTestRunner.cpp tests/TestCheckMacros.cpp tests/TestTestList.cpp tests/TestTestMacros.cpp tests/TestTimeConstraint.cpp tests/TestTimeConstraintMacro.cpp tests/TestMemoryOutStream.cpp tests/TestDeferredTestReporter.cpp tests/TestXmlTestReporter.cpp tests/TestCurrentTest.cpp
+TestUnitTest___SOURCES = $(top_srcdir)/tests/Main.cpp $(top_srcdir)/tests/TestAssertHandler.cpp $(top_srcdir)/tests/TestCheckMacros.cpp $(top_srcdir)/tests/TestChecks.cpp $(top_srcdir)/tests/TestCompositeTestReporter.cpp $(top_srcdir)/tests/TestCurrentTest.cpp $(top_srcdir)/tests/TestDeferredTestReporter.cpp $(top_srcdir)/tests/TestExceptions.cpp $(top_srcdir)/tests/TestMemoryOutStream.cpp $(top_srcdir)/tests/TestTest.cpp $(top_srcdir)/tests/TestTestList.cpp $(top_srcdir)/tests/TestTestMacros.cpp $(top_srcdir)/tests/TestTestResults.cpp $(top_srcdir)/tests/TestTestRunner.cpp $(top_srcdir)/tests/TestTestSuite.cpp $(top_srcdir)/tests/TestTimeConstraint.cpp $(top_srcdir)/tests/TestTimeConstraintMacro.cpp $(top_srcdir)/tests/TestUnitTestPP.cpp $(top_srcdir)/tests/TestXmlTestReporter.cpp
TestUnitTest___LDADD = libUnitTest++.la
TESTS = TestUnitTest++
diff --git a/configure.ac b/configure.ac
index 88ab84c..64ebc93 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
AC_PREREQ([2.69])
AC_INIT([UnitTest++], [1.4], [victor.lavaud@gmail.com])
-AC_CONFIG_SRCDIR([src/TestDetails.cpp])
+AC_CONFIG_SRCDIR([UnitTest++/TestDetails.cpp])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE()
@@ -29,5 +29,5 @@ AC_TYPE_SIZE_T
AC_CHECK_FUNCS([gettimeofday strstr])
AC_CONFIG_FILES([Makefile
- src/Makefile])
+ UnitTest++/Makefile])
AC_OUTPUT
From 0e306b25db3adb9e935cd01dfed03fb179579b69 Mon Sep 17 00:00:00 2001
From: "Victor Lavaud (qdii)"
Date: Fri, 29 Mar 2013 21:03:46 +0100
Subject: [PATCH 086/218] Added license (MIT)
---
COPYING | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 COPYING
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..9c71e2a
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,25 @@
+Copyright (c)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+[Except as contained in this notice, the name of
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from .]
From d233fbc1768cacf289de3e0e113613933a104d69 Mon Sep 17 00:00:00 2001
From: Patrick Johnmeyer
Date: Wed, 10 Apr 2013 22:28:43 -0500
Subject: [PATCH 087/218] Remove COPYING inadvertently merged from #38
---
COPYING | 25 -------------------------
1 file changed, 25 deletions(-)
delete mode 100644 COPYING
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 9c71e2a..0000000
--- a/COPYING
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-[Except as contained in this notice, the name of
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-from .]
From f9cfd92f8cef2e6f6786ee17d6561ecc4bc0211a Mon Sep 17 00:00:00 2001
From: Christopher Frederick
Date: Thu, 18 Apr 2013 06:46:13 +0900
Subject: [PATCH 088/218] Add .gitignore for Xcode projects
---
xcode_projects/.gitignore | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 xcode_projects/.gitignore
diff --git a/xcode_projects/.gitignore b/xcode_projects/.gitignore
new file mode 100644
index 0000000..aa64f28
--- /dev/null
+++ b/xcode_projects/.gitignore
@@ -0,0 +1,10 @@
+#######################################
+# Temporary OS X files
+
+.DS_Store
+
+#######################################
+# Personal XCode 4 settings
+
+xcuserdata
+*.xcuserstate
From 03503dbeb8a1f8fc6603b38c252f96d6d9d2c3ec Mon Sep 17 00:00:00 2001
From: Christopher Frederick
Date: Thu, 18 Apr 2013 11:09:12 +0900
Subject: [PATCH 089/218] Add a new Xcode 4.6 project
---
.../UnitTest++.xcodeproj/project.pbxproj | 202 ++++++++++++++++++
.../contents.xcworkspacedata | 7 +
2 files changed, 209 insertions(+)
create mode 100644 xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
create mode 100644 xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1075828
--- /dev/null
+++ b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
@@ -0,0 +1,202 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXFileReference section */
+ 8347D76F171F8D1C00FE3FC1 /* libUnitTest++.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libUnitTest++.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8347D76C171F8D1C00FE3FC1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 8347D766171F8D1C00FE3FC1 = {
+ isa = PBXGroup;
+ children = (
+ 8347D770171F8D1C00FE3FC1 /* Products */,
+ );
+ sourceTree = "";
+ };
+ 8347D770171F8D1C00FE3FC1 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8347D76F171F8D1C00FE3FC1 /* libUnitTest++.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8347D76D171F8D1C00FE3FC1 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 8347D76E171F8D1C00FE3FC1 /* UnitTest++ */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 8347D773171F8D1C00FE3FC1 /* Build configuration list for PBXNativeTarget "UnitTest++" */;
+ buildPhases = (
+ 8347D76B171F8D1C00FE3FC1 /* Sources */,
+ 8347D76C171F8D1C00FE3FC1 /* Frameworks */,
+ 8347D76D171F8D1C00FE3FC1 /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "UnitTest++";
+ productName = "UnitTest++";
+ productReference = 8347D76F171F8D1C00FE3FC1 /* libUnitTest++.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 8347D767171F8D1C00FE3FC1 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0460;
+ ORGANIZATIONNAME = "UnitTest++";
+ };
+ buildConfigurationList = 8347D76A171F8D1C00FE3FC1 /* Build configuration list for PBXProject "UnitTest++" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 8347D766171F8D1C00FE3FC1;
+ productRefGroup = 8347D770171F8D1C00FE3FC1 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8347D76E171F8D1C00FE3FC1 /* UnitTest++ */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8347D76B171F8D1C00FE3FC1 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 8347D771171F8D1C00FE3FC1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ 8347D772171F8D1C00FE3FC1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ 8347D774171F8D1C00FE3FC1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ EXECUTABLE_PREFIX = lib;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ 8347D775171F8D1C00FE3FC1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ EXECUTABLE_PREFIX = lib;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 8347D76A171F8D1C00FE3FC1 /* Build configuration list for PBXProject "UnitTest++" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 8347D771171F8D1C00FE3FC1 /* Debug */,
+ 8347D772171F8D1C00FE3FC1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 8347D773171F8D1C00FE3FC1 /* Build configuration list for PBXNativeTarget "UnitTest++" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 8347D774171F8D1C00FE3FC1 /* Debug */,
+ 8347D775171F8D1C00FE3FC1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 8347D767171F8D1C00FE3FC1 /* Project object */;
+}
diff --git a/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..241816d
--- /dev/null
+++ b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
From c74f0cfb801fc6521a5d0ee92085d67c09503aa5 Mon Sep 17 00:00:00 2001
From: Christopher Frederick
Date: Thu, 18 Apr 2013 11:26:42 +0900
Subject: [PATCH 090/218] Add UnitTest++ source to the project
---
.../UnitTest++.xcodeproj/project.pbxproj | 217 ++++++++++++++++++
1 file changed, 217 insertions(+)
diff --git a/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
index 1075828..51db5ab 100644
--- a/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
+++ b/xcode_projects/xcode4-6/UnitTest++.xcodeproj/project.pbxproj
@@ -6,8 +6,109 @@
objectVersion = 46;
objects = {
+/* Begin PBXBuildFile section */
+ 83D5FCED171F910E005B0069 /* AssertException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCB5171F910E005B0069 /* AssertException.cpp */; };
+ 83D5FCEE171F910E005B0069 /* AssertException.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCB6171F910E005B0069 /* AssertException.h */; };
+ 83D5FCEF171F910E005B0069 /* CheckMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCB7171F910E005B0069 /* CheckMacros.h */; };
+ 83D5FCF0171F910E005B0069 /* Checks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCB8171F910E005B0069 /* Checks.cpp */; };
+ 83D5FCF1171F910E005B0069 /* Checks.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCB9171F910E005B0069 /* Checks.h */; };
+ 83D5FCF2171F910E005B0069 /* CompositeTestReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCBA171F910E005B0069 /* CompositeTestReporter.cpp */; };
+ 83D5FCF3171F910E005B0069 /* CompositeTestReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCBB171F910E005B0069 /* CompositeTestReporter.h */; };
+ 83D5FCF4171F910E005B0069 /* Config.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCBC171F910E005B0069 /* Config.h */; };
+ 83D5FCF5171F910E005B0069 /* CurrentTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCBD171F910E005B0069 /* CurrentTest.cpp */; };
+ 83D5FCF6171F910E005B0069 /* CurrentTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCBE171F910E005B0069 /* CurrentTest.h */; };
+ 83D5FCF7171F910E005B0069 /* DeferredTestReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCBF171F910E005B0069 /* DeferredTestReporter.cpp */; };
+ 83D5FCF8171F910E005B0069 /* DeferredTestReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC0171F910E005B0069 /* DeferredTestReporter.h */; };
+ 83D5FCF9171F910E005B0069 /* DeferredTestResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCC1171F910E005B0069 /* DeferredTestResult.cpp */; };
+ 83D5FCFA171F910E005B0069 /* DeferredTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC2171F910E005B0069 /* DeferredTestResult.h */; };
+ 83D5FCFB171F910E005B0069 /* ExceptionMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC3171F910E005B0069 /* ExceptionMacros.h */; };
+ 83D5FCFC171F910E005B0069 /* ExecuteTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC4171F910E005B0069 /* ExecuteTest.h */; };
+ 83D5FCFD171F910E005B0069 /* HelperMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC5171F910E005B0069 /* HelperMacros.h */; };
+ 83D5FCFE171F910E005B0069 /* MemoryOutStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCC7171F910E005B0069 /* MemoryOutStream.cpp */; };
+ 83D5FCFF171F910E005B0069 /* MemoryOutStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCC8171F910E005B0069 /* MemoryOutStream.h */; };
+ 83D5FD00171F910E005B0069 /* SignalTranslator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCCA171F910E005B0069 /* SignalTranslator.cpp */; };
+ 83D5FD01171F910E005B0069 /* SignalTranslator.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCCB171F910E005B0069 /* SignalTranslator.h */; };
+ 83D5FD02171F910E005B0069 /* TimeHelpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCCC171F910E005B0069 /* TimeHelpers.cpp */; };
+ 83D5FD03171F910E005B0069 /* TimeHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCCD171F910E005B0069 /* TimeHelpers.h */; };
+ 83D5FD04171F910E005B0069 /* ReportAssert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCCE171F910E005B0069 /* ReportAssert.cpp */; };
+ 83D5FD05171F910E005B0069 /* ReportAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCCF171F910E005B0069 /* ReportAssert.h */; };
+ 83D5FD06171F910E005B0069 /* ReportAssertImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD0171F910E005B0069 /* ReportAssertImpl.h */; };
+ 83D5FD07171F910E005B0069 /* Test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCD1171F910E005B0069 /* Test.cpp */; };
+ 83D5FD08171F910E005B0069 /* Test.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD2171F910E005B0069 /* Test.h */; };
+ 83D5FD09171F910E005B0069 /* TestDetails.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCD3171F910E005B0069 /* TestDetails.cpp */; };
+ 83D5FD0A171F910E005B0069 /* TestDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD4171F910E005B0069 /* TestDetails.h */; };
+ 83D5FD0B171F910E005B0069 /* TestList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCD5171F910E005B0069 /* TestList.cpp */; };
+ 83D5FD0C171F910E005B0069 /* TestList.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD6171F910E005B0069 /* TestList.h */; };
+ 83D5FD0D171F910E005B0069 /* TestMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD7171F910E005B0069 /* TestMacros.h */; };
+ 83D5FD0E171F910E005B0069 /* TestReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCD8171F910E005B0069 /* TestReporter.cpp */; };
+ 83D5FD0F171F910E005B0069 /* TestReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCD9171F910E005B0069 /* TestReporter.h */; };
+ 83D5FD10171F910E005B0069 /* TestReporterStdout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCDA171F910E005B0069 /* TestReporterStdout.cpp */; };
+ 83D5FD11171F910E005B0069 /* TestReporterStdout.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCDB171F910E005B0069 /* TestReporterStdout.h */; };
+ 83D5FD12171F910E005B0069 /* TestResults.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCDC171F910E005B0069 /* TestResults.cpp */; };
+ 83D5FD13171F910E005B0069 /* TestResults.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCDD171F910E005B0069 /* TestResults.h */; };
+ 83D5FD14171F910E005B0069 /* TestRunner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCDE171F910E005B0069 /* TestRunner.cpp */; };
+ 83D5FD15171F910E005B0069 /* TestRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCDF171F910E005B0069 /* TestRunner.h */; };
+ 83D5FD16171F910E005B0069 /* TestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCE0171F910E005B0069 /* TestSuite.h */; };
+ 83D5FD17171F910E005B0069 /* TimeConstraint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCE1171F910E005B0069 /* TimeConstraint.cpp */; };
+ 83D5FD18171F910E005B0069 /* TimeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCE2171F910E005B0069 /* TimeConstraint.h */; };
+ 83D5FD19171F910E005B0069 /* TimeHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCE3171F910E005B0069 /* TimeHelpers.h */; };
+ 83D5FD1A171F910E005B0069 /* UnitTest++.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCE4171F910E005B0069 /* UnitTest++.h */; };
+ 83D5FD1B171F910E005B0069 /* UnitTestPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCE5171F910E005B0069 /* UnitTestPP.h */; };
+ 83D5FD1E171F910E005B0069 /* XmlTestReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83D5FCEB171F910E005B0069 /* XmlTestReporter.cpp */; };
+ 83D5FD1F171F910E005B0069 /* XmlTestReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D5FCEC171F910E005B0069 /* XmlTestReporter.h */; };
+/* End PBXBuildFile section */
+
/* Begin PBXFileReference section */
8347D76F171F8D1C00FE3FC1 /* libUnitTest++.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libUnitTest++.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 83D5FCB5171F910E005B0069 /* AssertException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssertException.cpp; sourceTree = ""; };
+ 83D5FCB6171F910E005B0069 /* AssertException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssertException.h; sourceTree = ""; };
+ 83D5FCB7171F910E005B0069 /* CheckMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckMacros.h; sourceTree = ""; };
+ 83D5FCB8171F910E005B0069 /* Checks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Checks.cpp; sourceTree = ""; };
+ 83D5FCB9171F910E005B0069 /* Checks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Checks.h; sourceTree = ""; };
+ 83D5FCBA171F910E005B0069 /* CompositeTestReporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompositeTestReporter.cpp; sourceTree = ""; };
+ 83D5FCBB171F910E005B0069 /* CompositeTestReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompositeTestReporter.h; sourceTree = ""; };
+ 83D5FCBC171F910E005B0069 /* Config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config.h; sourceTree = ""; };
+ 83D5FCBD171F910E005B0069 /* CurrentTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CurrentTest.cpp; sourceTree = ""; };
+ 83D5FCBE171F910E005B0069 /* CurrentTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CurrentTest.h; sourceTree = ""; };
+ 83D5FCBF171F910E005B0069 /* DeferredTestReporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeferredTestReporter.cpp; sourceTree = ""; };
+ 83D5FCC0171F910E005B0069 /* DeferredTestReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeferredTestReporter.h; sourceTree = ""; };
+ 83D5FCC1171F910E005B0069 /* DeferredTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeferredTestResult.cpp; sourceTree = ""; };
+ 83D5FCC2171F910E005B0069 /* DeferredTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeferredTestResult.h; sourceTree = ""; };
+ 83D5FCC3171F910E005B0069 /* ExceptionMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionMacros.h; sourceTree = ""; };
+ 83D5FCC4171F910E005B0069 /* ExecuteTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExecuteTest.h; sourceTree = ""; };
+ 83D5FCC5171F910E005B0069 /* HelperMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelperMacros.h; sourceTree = ""; };
+ 83D5FCC7171F910E005B0069 /* MemoryOutStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryOutStream.cpp; sourceTree = "