- subclassing cstring in order to be able to create an instance of cstring
without changing its signature: the code remains C++03/C++17 compatibile
even if boost.test is compiled with other options than the test module
- added casting and usage checks
- deduce_cstring rationale change
std::vector<bool>::const_iterator returns a temporary of a proxy class
while the value is needed for constructing the test case with parameters.
- added test reproducing the issue
On gcc and clang, add __attribute__((__format__)) checking to the report_error function.
Cast faulting addresses to uintptr_t for formatting as 0x%08lx - this won't work on LLP64, but Win64 uses SEH anyway.
Fix swapped si_code/si_addr (& si_band) format arguments.
Add missing %s to format diagnostic information.
- Check __GNUC__ major : format attribute was introduced sometime during gcc 2.8, so 3 definitely has it.
Same should apply for any compiler claiming GNUC compatibility
- Check that diagnostic information is not passed to format unescaped: If it is passed unescaped, the '%%' will be
condensed to a single '%' and the test will fail.
Check if SI_ASYNCIO and SI_MESGQ are defined as macros. This allows
to run tests on OpenBSD 6.5, where the macros are missing.
This is identical to patch-boost_test_impl_execution_monitor_ipp in
OpenBSD Ports, except that I added a comment.
* topic/GH-218-outstream-default-filename:
Change log
Master test suite name setup prior to all other setup
# Conflicts:
# doc/closing_chapters/change_log.qbk
This is a simple call to a global setting that can be performed
- in an idempotent manner
- prior to any other setup
Since some loggers rely on the master test suite (generation of the
output files), this setting should precede any other. In particular,
it should not be delayed until the user `init_unit_test` is called. A global object fits this purpose.
Fixes GH-209.
A new helper meta-function has been added to check if the type under
test is complete or not. Incomplete types cannot be used with
std::numeric_limits.
The newly added test cannot be run on pre C++11 because of the limited
BOOST_TEST support (unrelated to the std::numeric_limits issue).
Forward declarations for templates should also have the visibility right
Local static variables cannot have their visibility set and need to get out of the function scope.
- adding tests for custom command line argument passing
- using command line argument in global fixtures and raising strong errors
- using command line argument in init function and describing the errors
- using command line argument dataset test cases and describing the errors
- removing sample totally from all the examples
Using arbitrary parameter pack of a template
class/struct to infer the list of types, instead
of restricting to `std::tuples`.
Filtering the mpl::sequences from this logic because
the parameter pack is filled with `mpl::na` on non-entries.
Failed and errored are exclusive in the JUnit sense.
Counting the number of total tests slightly differently.
Changing slightly the signature of unit_test_log_formatter::log_build_info to avoid a sticky
state when the function was called only once (happens for instance in JUNIT).
* topic/GH-202-boost-timer-deprecation:
Change log
Documentation updates
Adding the support for skipped test units/suites in the reporter and formatters
<boost/timer.hpp> removal and time-out for suites and major refactoring
As boost/timer.hpp is being deprecated, and the needed functionality
is very little, reimplemeted naively a timing class for the purpose
of measuring the test-unit time.
- specific timer class that is cross-platform and agnostic to changes made
to the OS while measuring time (mac, posix and windows). Wall-clock and system/user
time available
- changed framework to work fully with microseconds. Only ::alarm needs seconds
and ceiling is used for signaling time-out
- Windows now signals also time-outs the same way as for other platforms (exception
raised in the test and reported). However, Windows platform do not raise a signal
that terminates the current test
- timeout is not used for failing a test-suite as well. Remaining time calculation is
now made in microseconds. Adding an observer interface for signaling time out and
adding the time outs in the test results
- cleaned up interfaces, clarify the code about the dimension of the different scalar values.
The BOOST_DATA_TEST_CASE creates an implicit test suite. that consumes
all the decorators that have been declared prior to the BOOST_DATA_TEST_CASE
macro. In order to properly propagate the decorators to the underlying
test-case generator (the data test case), a new "stacked" decorator collector
has been implemented. The new decorator decorator::stack_decorator
allows the user to push the currently stacked decorator to a higher level of the
hierarchy.
The singleton reference variables and a few other globals may not be actually
used in the user's code, which makes gcc emit warnings. This commit marks these
variables as potentially unused, which silences the warnings.
Apparently, some versions of legacy MinGW headers don't provide
the standard vsnprintf function, as Appveyor CI fails for this target.
Thus we use the non-standard MSVC-specific _vsnprintf instead.
To ease the creation of contexts, variadic let us declare several
values in one call (no extra brace) while ticky context let us
add new information while they arrive.
The example shows a random trial making a test fail. We force the failure
for the unit tests, which does not remove the documentation value of the
example.
It is now possible to compare a type that is tolerance based together
with a type that is not necessarily tolerance based but still
arithmetic.
Doc update and tests.