- additions:
XTESTS_TEST_POINTER_NULL()andXTESTS_TEST_POINTER_NOT_NULL(), with terse aliasesTEST_POINTER_NULL/TEST_PTR_NULLandTEST_POINTER_NOT_NULL/TEST_PTR_NOT_NULL;- further short aliases in xtests/terse-api.h:
TEST_BOOL_*,TEST_CHAR_EQ_EXACT,TEST_FP_*_EXACT,TEST_INT_EQ_EXACT,TEST_INT_EQ_ANY_*,TEST_MS_SLICE_*/TEST_WS_SLICE_*,TEST_WS_NOT_CONTAIN_APPROX,TEST_EQUAL_WITH_MESSAGE/TEST_EQ_WITH_MSG,TEST_NOT_EQUAL_WITH_MESSAGE/TEST_NE_WITH_MSG, andEND_RUNNER_UPDATE_EXITCODE; XTESTS_START_RUNNER()(and related start-runner APIs) now infer a runner name from a source path such as__FILE__when it has a C/C++ extension (.c,.cc,.cpp,.cxx) and a stem ofentry/mainor equal to its leaf directory; any other value is used as given;
- changes:
- pointer equality/inequality failure messages now say the actual value "is not null as expected" or "actual pointer is null not as expected" when the expected pointer is null, rather than comparing against a platform-formatted null address;
- collapsed the internal file, line, function, and expression parameters into an
flfe_thelper in xtests.core.cpp;
- dependencies:
- requires STLSoft 1.11.2 or later (
_STLSOFT_VER>=0x010b02FF);
- requires STLSoft 1.11.2 or later (
- documentation:
- documented the
__FILE__runner-name rules in theXTESTS_START_RUNNER*()Doxygen markup in xtests.h, in COMPONENTS.md, and in a new README.md Runner Names section; - updated the COMPONENTS.md Terse API table;
- documented the
- examples:
- illustrated the new pointer-null macros in example.c.tests;
- example.cpp.udt now starts its runner with
__FILE__;
- testing:
- test.component.temp_directory, test.scratch.fail_all, and test.unit.shwild-patterns now start their runners with
__FILE__; - test.scratch.versions now also reports shwild (when
XTESTS_USE_SHWILD) underefferent dependencies:, and omits the heading when no dependency is printed;
- test.component.temp_directory, test.scratch.fail_all, and test.unit.shwild-patterns now start their runners with
- version:
- bumped
_XTESTS_VER_RELSTATUSto0xFF(released) in xtests.h; synced DoxyfilePROJECT_NUMBER;
- bumped
- Expanded xtests/terse-api.h with further short aliases matching the established
TYPE_OPvocabulary (BOOL,CHAR/FP/INT+EQ/NE,MS/WS+SLICE, and message / exit-code helpers):TEST_BOOL_TRUE/TEST_BOOL_FALSE/TEST_BOOL_EQ/TEST_BOOL_NE;TEST_CHAR_EQ_EXACT,TEST_FP_EQ_EXACT/TEST_FP_NE_EXACT,TEST_INT_EQ_EXACT;TEST_INT_EQ_ANY_IN_RANGE/TEST_INT_EQ_ANY_NOT_IN_RANGE/TEST_INT_EQ_ANY_OF/TEST_INT_EQ_ANY_OF2/TEST_INT_EQ_ANY_OF3;TEST_MS_SLICE_EQ/TEST_MS_SLICE_EQ_APPROX/TEST_MS_SLICE_NE/TEST_MS_SLICE_NE_APPROXand theTEST_WS_SLICE_*counterparts;TEST_WS_NOT_CONTAIN_APPROX(parity withTEST_MS_NOT_CONTAIN_APPROX);TEST_EQUAL_WITH_MESSAGE/TEST_EQ_WITH_MSG,TEST_NOT_EQUAL_WITH_MESSAGE/TEST_NE_WITH_MSG, andEND_RUNNER_UPDATE_EXITCODE;
- Bumped
_XTESTS_VER_RELSTATUSto0x81(beta 1) in xtests.h; synced DoxyfilePROJECT_NUMBER; - Updated COMPONENTS.md Terse API table for the new boolean short forms;
XTESTS_START_RUNNER()(and related start-runner APIs) now infer a runner name from a source path such as__FILE__, when the path has a C/C++ extension (.c,.cc,.cpp,.cxx) and either its stem isentryormain(result: the leaf directory if it beginsexample.ortest., otherwise the nearestexample/examples/testancestor joined with the directories below it by., e.g.example.cpp.udt) or its stem equals its leaf directory (result: the stem); any other value is used as given;- Documented the
__FILE__runner-name rules in theXTESTS_START_RUNNER*()Doxygen markup in xtests.h, in the test-runner section of COMPONENTS.md, and in a new README.md Runner Names section; - example.cpp.udt, test.component.temp_directory, test.scratch.fail_all, and test.unit.shwild-patterns now start their runners with
__FILE__; - Collapsed the internal file, line, function, and expression parameters into an
flfe_thelper in xtests.core.cpp;
- Added
XTESTS_TEST_POINTER_NULL()andXTESTS_TEST_POINTER_NOT_NULL()(currently wrappers ofXTESTS_TEST_POINTER_EQUAL(NULL, …)/XTESTS_TEST_POINTER_NOT_EQUAL(NULL, …)), with terse aliasesTEST_POINTER_NULL/TEST_PTR_NULLandTEST_POINTER_NOT_NULL/TEST_PTR_NOT_NULL; - Illustrated the new pointer-null macros in example.c.tests, including deliberate failures that emit the null-expected wording;
- Pointer equality/inequality failure messages now say the actual value "is not null as expected" (with the actual address) or "actual pointer is null not as expected" (without a redundant
'0x0') when the expected pointer is null, rather than comparing against a platform-formatted null address;
0.27.0
- Migrated
_XTESTS_VER_*from_XTESTS_VER_ALPHABETAto_XTESTS_VER_RELSTATUS(0xC1), with documentation-skip aliases for_XTESTS_VER_ALPHABETAand_XTESTS_VER_AB; - Tip-synced run_all_examples.sh, run_all_scratch_tests (
.sh/.cmd), and run_all_unit_tests.sh from misc-dev-scripts cmake-helpers; - Added empty .sis scratch ATF / skip-interactive list stubs (examples ATF retained);
- Restructured ci-cell.yml to build → artifact → run jobs with non-Windows execute-bit restore (Windows .cmd dogfood, CTest, component, and scratch
continue-on-errorretained); - Added README.md Developer Experience section;
- Synced Doxyfile
PROJECT_NUMBERto 0.27.0-rc1;
- examples:
- Shortened examples/ leaf directory names (dropped redundant
example.c./example.cpp.prefixes), e.g. factorial, runner, string-comparisons-n, temp_directory; - Conformed each example main.c / main.cpp
File:(and\file) banner to the slash-path form (e.g.examples/c/factorial/main.c); - Aligned
XTESTS_START_RUNNERnames and CMakedefine_example_programtargets with the shortened directories (notably example.c.string-comparisons-n / example.cpp.string-comparisons-n); - Updated examples/descriptors.cpp
\examplepaths for the shortened layout (and added the string-comparisons-n examples);
- Shortened examples/ leaf directory names (dropped redundant
- documentation:
- Restored missing doc/mainpage.md referenced by Doxyfile
USE_MDFILE_AS_MAINPAGE;
- Restored missing doc/mainpage.md referenced by Doxyfile
- version:
- Bumped
_XTESTS_VER_ALPHABETAto0x83(beta 3) in xtests.h; synced DoxyfilePROJECT_NUMBER; - NEWS.md chronology row for 0.27.0-beta3;
- Bumped
- testing:
- Shortened test/ leaf directory names (dropped redundant
test.<kind>.prefixes), e.g. command-line-functions, string-comparisons.C, setup-fail; - Conformed each entry.c / entry.cpp
File:banner to the slash-path form (e.g.test/unit/string-comparisons/entry.cpp); - Aligned
XTESTS_START_RUNNERnames and CMakedefine_*targets with the shortened directories (including test.unit.command-line-functions, test.scratch.setup-fail, test.scratch.fail_all, and.C-suffixed C-API programs); - Fixed runner typo
test.test.unit.string_comparisons→ test.unit.string-comparisons; - Fixed test/scratch/CMakeLists.txt
add_subdirectoryfor integer_comparisons.C;
- Shortened test/ leaf directory names (dropped redundant
- version:
- Bumped
_XTESTS_VER_ALPHABETAto0x82(beta 2) in xtests.h; synced DoxyfilePROJECT_NUMBER; - NEWS.md chronology row for 0.27.0-beta2;
- Bumped
- API:
- Fixed
xtests_testWideStringsNlength parameter type frominttoptrdiff_t, matching the multibyte API and avoiding truncation of large|n|values; - Fixed C-API
xtests_testMultibyteStringsN/xtests_testWideStringsNto bound compared lengths to|n|(via boundedstrnlen/wcsnlen), aligning with the C++ path and enabling safe use with non-NUL-terminated buffers; - Added case-insensitive slice macros
XTESTS_TEST_*_STRING_SLICE_EQUAL_APPROX/XTESTS_TEST_*_STRING_SLICE_NOT_EQUAL_APPROX(multibyte and wide, with terse aliases); - Added
XTESTS_TEST_MULTIBYTE_STRING_SLICE_NOT_EQUAL/XTESTS_TEST_WIDE_STRING_SLICE_NOT_EQUAL(and terse aliases);
- Fixed
- documentation:
- COMPONENTS.md entries for the new slice
EQUAL/NOT_EQUAL/APPROXmacros; - NEWS.md chronology row for 0.27.0-beta1;
- COMPONENTS.md entries for the new slice
- examples:
- Added example.c.string_comparisons_n, illustrating exact (
n > 0) and limit (n < 0) forms ofTEST_MS_EQ_N/TEST_MS_NE_N, including non-NUL-terminated buffers; - Added example.cpp.string_comparisons_n, illustrating the same
_Ncontract for wide strings,std::wstring, and non-NUL-terminated buffers;
- Added example.c.string_comparisons_n, illustrating exact (
- testing:
- Extended test.unit.string_slices.c with
TEST_WIDE_STRING_SLICE_EQUALcoverage parallel to the multibyte cases, plusNOT_EQUAL/APPROXcoverage for multibyte and wide slices; - Extended test.unit.string_comparisons / test.unit.string_comparisons.c for the
StringsN|n|contract and non-NUL-terminated buffers;
- Extended test.unit.string_slices.c with
- version:
- Bumped
_XTESTS_VERto 0.27.0 (_XTESTS_VER_ALPHABETA0x81) in xtests.h; synced DoxyfilePROJECT_NUMBER;
- Bumped
- Applied misc-dev-scripts 0.6.0 editor/Git/
.sisdrop-in templates on boilerplate; - Restored historical .gitignore patterns as a sorted union with misc-dev-scripts gold section layout;
- Aligned the common CMake helper scripts (prepare_cmake.sh, build_cmake.sh, ctest_cmake.sh, clean_cmake.sh, remove_cmake_artefacts.sh, and the run_all_*.sh / run_all_*.cmd runners) with misc-dev-scripts gold (SisClr), retaining
--c-standard,--cxx-standard,--no-shwild, and--stlsoft-root-dirin prepare_cmake.sh; - Renamed the scratch version reporter target from
versionstotest.scratch.versions(test/scratch/versions/), so that run_all_scratch_tests.sh discovers it; - Added .sis/ci_examples_allowed_to_fail.txt (
example.c.runner,example.c.tests,example.cpp.udt) and adopted the BDUT run_all_examples.sh / run_all_examples.cmd runners, so that examples which demonstrate failure by design are reported as anticipated rather than failing the run; - Fixed ci-cell.yml so that the component-test step invokes run_all_component_tests.sh (run_all_unit_tests.sh does not accept
--component-only); - Made the Windows cells of ci-cell.yml (MSVC cl and MinGW) dogfood the native run_all_*.cmd runners under
shell: cmd, with the Bash runners retained for non-Windows cells;
- Made CMake C and C++ language standards settings overrideable by external configurations (e.g., from command-line overrides or CI workflows);
- Extended prepare_cmake.sh with
--c-standardand--cxx-standard(mirroring sistools / chomp), including C90 and the C++98–23 set used by the Compatibility matrix; - Added a Clang (Linux) column to the README.md Compatibility matrix and filled every surveyed cell ✅ after a temporary language×toolchain build survey; restored modular CI (cell / install-smoke / stlsoft-routes) with the canonical push-branch set;
- Filled the README.md Compatibility matrix Clang (macOS) column from Apple Clang 15 builds;
- Fixed ISO C90 pedantic failures in xtests.h:
#errortext no longer contains//;XTESTS_GET_FUNCTION_()avoids__func__when compiling as C90; - Fixed further ISO C90 pedantic failures: C90-safe inline for
xtests_internal_while_0_(); converted remaining C++//comments in xtests.h (and test.unit.string_slices.c) to/* */where they sit in active translation units; - Fixed GCC C++98 build:
STLSOFT_SUPPRESS_UNUSED(is_tty)without taking the address of a temporary in xtests.core.cpp; - STLSoft (freelibs tree): exclude MinGW from C++23
STD_gmtime_r/localtime_rclaims in api/external/time.h; under ISO C90 setSTLSOFT_CUSTOM_C_INLINEtostatic __attribute__((unused))(not GNUextern inline) in cccap/clang.h and cccap/gcc.h; - Removed a duplicate C++20/C17 Compatibility matrix row;
- example.cpp.temp_file now removes files left by
temp_file::Noneafter illustrating that they persist, sorun_all_examples.shno longer pollutes the working tree; - UNIX
temp_filenow keeps themkstempdescriptor and records the path as a C-string, rather than reopening and assigningsize() - 1; - Replaced the nested
<details>catalog in README.md Components with a short map linking to COMPONENTS.md, which lists each public construct with a small example; - Aligned .gitattributes with the CLASP C/C++ GitHub-hosted form, including C++ source extras, Linguist language classification, and
-linguist-detectable; - Added a Rust FileType autocmd to .vimrc;
- Normalised prerelease version headings in CHANGES.md to hyphen-compact SemVer form;
- Added a Details column to NEWS.md;
- Regenerated the README.md table of contents with hyphen markers and example subsections;
- Set
_XTESTS_VER_ALPHABETAto0x82(beta 2) and added_XTESTS_VER_ABas an alias of_XTESTS_VER_ALPHABETAin xtests.h;
- Added minimal C and C++ usage examples to README.md;
- Created a custom Doxygen main page (doc/mainpage.md) and a generate_doxygen.sh script for automated documentation building, bringing documentation generation on parity with peer projects;
- Excluded README.md and INSTALL.md from Doxygen input to eliminate unresolved cross-reference warnings, and corrected obsolete configuration parameters in Doxyfile;
- Clarified test suite expectations in INSTALL.md and FAQ.md, clearly distinguishing passing unit and component tests from failing scratch programs;
- Corrected the signature and usage documentation of the
XTESTS_CASE_ENDmacro in xtests.h and README.md, removing the legacy description parameter; - Corrected linkage advice in INSTALL.md to target the xtests.core library artifact and documented proper modern CMake
find_packageconsumption; - Documented known compiler-specific two-phase lookup and wide-character support gaps in KNOWN_ISSUES.md;
- Corrected double-period parsing warnings and invalid slice member reference comments in xtests.h's Doxygen blocks;
- Corrected multiple miscellaneous typos, file header metadata, and file/module description blocks across project headers and tests;
- Added modular GitHub Actions CI (ci.yml / ci-cell.yml) with install-smoke coverage;
- Converted CHANGES.txt to CHANGES.md and removed HISTORY.md;
- README CI badge now targets ci.yml; tagline and TOC tidy;
- Updated INSTALL.md / README.md for consolidated STLSoft repository URL;
- CMake improvements (incl. legacy MSVC warning suppression, absolute STLSoft include path, public STLSoft include for core target);
- Enhanced run_all_unit_tests.sh (
--unit-only/--component-onlyand--no-makeguard); - Project boilerplate updates (.gitattributes, .vimrc, .vscode/settings.json, AUTHORS.md, KNOWN_ISSUES.md, TODO.md, LICENSE);
- Removed legacy Visual Studio project/solution files;
- Added run_all_unit_tests.cmd;
- Further CMake, CTest, and GitHub Actions polish;
- CTest compatibility;
- GitHub Actions;
- Allowing comparisons between integer values/variables of arbitrary type and sign;
- C++-98 compatibility;
- MinGW compatibility;
- Various CMake scripts canonicalisation;
- Fixed defect in format specifiers for end-case summary;
- Compatibility with older compilers (incl. Visual C++ 14);
- Compatibility with older operating systems (incl. Windows Vista);
- prepare_cmake.sh / CMakeLists.txt : + added '--no-shwild' /
CMAKE_NO_SHWILD; - Minor improvements to
temp_directoryandtemp_fileto improve portability;
- N-len string comparisons now works regardless of integral type of length argument;
- Fix wrong conditionality on inclusion of stlsoft/conversion/sas_to_string.hpp;
- Improved compatibility to types that provide shims
stlsoft::c_str_data_a()andstlsoft::c_str_len_a(), rather thanstlsoft::c_str_ptr_a(); - Fixed inconsistency in handling of verbosity levels (esp.
XTESTS_VERBOSITY_FIRST_CASE_SUMMARY_ON_ERROR); - Visual C++ compatibility;
- Further application of terse api in example and test programs;
- Various tidyings;
- Improved scope and consistency in example and test programs;
- added support (including coloured output) for (in)equality testing of UDTs;
temp_directorynow finds and deletes sockets (in addition to files);- fixed defect (when on UNIX) in
temp_file; - now ensures that does not emit ANSI colour sequences when running on Windows on an old terminal that does not support them;
- now uses
stlsoft::integral_traits<>for integer test macros (in C++) to allow for custom integral types to be tested; temp_filenow takes ahint_dirparameter to allow specification of directory for (temporary) file;- added missing test macros
XTESTS_TEST_FLOATINGPOINT_GREATER(),XTESTS_TEST_FLOATINGPOINT_GREATER_OR_EQUAL(),XTESTS_TEST_FLOATINGPOINT_LESS(),XTESTS_TEST_FLOATINGPOINT_LESS_OR_EQUAL(); - added macro
XTESTS_COMMANDLINE_PARSE_HELP_OR_VERBOSITY(), which allows for a unified command-line parsing in test programs; - added terse forms of macros, available by including xtests/terse-api.h;
XTESTS_COMMANDLINE_PARSE_VERBOSITY()now also recognises, if the command-line argument"--verbosity= . . ."is not found, the enviroment variables"XTESTS_VERBOSITY"and"TEST_VERBOSITY";- added test programs test.scratch.all_failure_messages, test.scratch.basics2, test.scratch.custom_integral_types;
- substantial internal refactoring;
- minor tidying to CMake facilities;
- minor improvements to examples;
- minor improvements to project boilerplate files;
- updated STLSoft constructs, incl. macros;
- added CMake MSVC MT support;
- Fix to colour output at high verbosity levels;
- Added and applied CMake functions for examples and test programs;
- Some refactoring in main header include/xtests/xtests.h;
- VC++ 19+ warnings;
- Fixed vulnerability in length-limited string comparisons;
- Renamed project test.scratch.string_slices.c => test.unit.string_slices.c;
- no changes;
- Coloured output now bold;
- Minor fixes to CMake build scripts;
- Expanded shwild integration (including CMake detection);
- Significant enhancement and refactoring around use of CMake;
- Added coloured output for test-case / runner names;
- General tidying;
- Compatibility with legacy versions of Visual C++;
- Refactored common aspects of example and test
main()functions; - Language/compiler compatibility fixes, including MinGW-W64 compatibility;
- CMake build scripts enhancements;
- compatibility with STLSoft 1.11.1-alpha13 or later;
- minimal coloured console output;
- fixed VC++ / CMake configuration;
XTESTS_TEST_INTEGER_EQUAL_EXACT(),XTESTS_TEST_INTEGER_NOT_EQUAL(),XTESTS_TEST_INTEGER_GREATER(),XTESTS_TEST_INTEGER_GREATER_OR_EQUAL(),XTESTS_TEST_INTEGER_LESS(),XTESTS_TEST_INTEGER_LESS_OR_EQUAL()are all implemented in terms of_Generic(where supported) in C compilation units in order to be able to report the expected and actual values upon failure (as is done in C++ compilation units);- general tidying;
- Various CMake standardisations and simplifications;
- Visual C++ 17 (2022) compatibility;
- CMake Windows compatibility;
- Small improvements for
temp_directoryandtemp_file; - now depends on STLSoft 1.11;
- Clang 14+ compatibility;
- CMake scripts improvements;
- now depends on STLSoft 1.10.6;
- Clang 14+ compatibility;
- CMake support minor improvements;
- fixed include of STLSoft header-file in presence of shwild;
- added
XTESTS_TEST_MULTIBYTE_STRING_MATCHES()that, in the presence of the shwild library, provides pattern matching;
- completed CMake support, with flexible mechanism to select STLSoft dependency;
- added CMake support;
- added Doxygen;
- added makefile(s) for GCC generic version;
- fix to xtests::cpp::util::temp_directory;
- fix defect in example;
- fixed xtests::cpp::util::temp_directory dtor semantics for EmptyOnClose and RemoveOnClose;
- compatibility with Visual Studio 2019 (16.8.2);
- added implicit-link support for VC++ 15 and VC++16;
- added makefile(s) for VC++ 15 and VC++16;
- various makefile improvements;
- GCC 8 compatibility;
- added xtests::cpp::util::temp_file ctor that takes a callback function that is used to provide initial contents of the file;
- added VC++ 10 project and solution files;
- fixed range comparison tests;
- fixing up VC++-specific non-standard token-pasting;
- removed dependency on/discrimination for STLSoft 1.10 delta (though now works perfectly well with STLSoft 1.10 proper);
- fix to 0.18.8 release;
- NOTE: requires STLSoft 1.9.128;
- bundles shwild 0.10.1;
- changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT;
- support for Borland C++ 6.2x;
- added makefiles for Borland 5.82, 6.1x, 6.2x;
- significant refactoring of structure of makefiles;
- strict C-compilation compatibility;
- NOTE: requires STLSoft 1.9.128;
- bundles shwild 0.10.1;
- added temp_directory and temp_file utility classes;
- now supports test cases that have void* param (for setup param);
- support for cdecl and stdcall test cases;
- support for Clang;
- support for VC++ 11;
- support for VC++ 12;
- support for VC++ 14;
- NOTE: requires STLSoft 1.9.121;
- bundles shwild 0.10.1;
- added XTESTS_TEST_MULTIBYTE_STRING_SLICE_EQUAL() / XTESTS_TEST_WIDE_STRING_SLICE_EQUAL() macros for testing string slices;
- expected/unexpected exception event messages now include file+line;
- refactoring of implementation;
- tidying up of makefile gripes;
- NOTE: requires STLSoft 1.9.117;
- bundles shwild 0.9.18;
- improved handling of booleans;
- VC++ 11 compatibility;
- NOTE: requires STLSoft 1.9.115;
- bundles shwild 0.9.18;
- workaround for strange behaviour (probably code-generation fault) in GCC 4.2 on Mac OS-X 10.7;
- NOTE: requires STLSoft 1.9.111;
- various minor modifications for compatibility with recent versions of GCC 4.X;
- NOTE: requires STLSoft 1.9.111;
- added function pointer testing, via XTESTS_TEST_FUNCTION_POINTER_EQUAL() and XTESTS_TEST_FUNCTION_POINTER_NOT_EQUAL();
- added implicit-link support for VC++ 10;
- fixes for 64-bit compatibility;
- NOTE: requires STLSoft 1.9.100;
- minimal compatibility enhancements;
- NOTE: requires STLSoft 1.9.99;
- added in-range testing, via XTESTS_TEST_INTEGER_EQUAL_ANY_IN_RANGE() and XTESTS_TEST_INTEGER_EQUAL_ANY_NOT_IN_RANGE();
- added XTESTS_ARRAY_END_POST;
- VC6 compatibility for signed __int16, unsigned __int16, & signed __int1632;
- NOTE: requires STLSoft 1.9.97;
- workaround for erroneous Borland compilation error;
- NOTE: requires STLSoft 1.9.89;
- removed erroneous debug information in UNIXem release builds;
- NOTE: requires STLSoft 1.9.89;
- workaround for minor warning;
- NOTE: requires STLSoft 1.9.87;
- added ability to display a summary of only the first case to fail;
- renamed and add to enumerators of xtests_verbosity_t;
- NOTE: requires STLSoft 1.9.85;
- workaround for Intel C/C++ compiler defect;
- NOTE: requires STLSoft 1.9.85;
- added XTESTS_REQUIRE(), to allow testing to stop after test failure, to avoid contract violations;
- NOTE: requires STLSoft 1.9.85;
- added XTESTS_FLOATINGPOINT_FACTOR_SCOPE scoping class;
- added XTESTS_TEST_FLOATINGPOINT_NOT_EQUAL_EXACT, XTESTS_TEST_FLOATINGPOINT_NOT_EQUAL_APPROX, and XTESTS_TEST_FLOATINGPOINT_NOT_EQUAL test macros;
- NOTE: requires STLSoft 1.9.78;
- fixed defect in XTESTS_START_RUNNER_WITH_REPORTER_AND_STREAM_AND_FLAGS_AND_SETUP_FNS();
- added implicit link support for Intel C/C++ 10 & 11;
- allows stream to be NULL, and assumes stdout if no reporter specified;
- NOTE: requires STLSoft 1.9.77;
- changes to defn of exceptions & RTTI, for conformance to other library (e.g. Pantheios) makefile templates;
- now allows compilation absent RTTI;
- NOTE: now requires STLSoft 1.9.77;
- fixed defect in internal snprintf() abstraction, which faults on Linux;
- NOTE: now requires STLSoft 1.9.77;
- fixed defect in core, whereby snprintf() overrun led to fault;
- NOTE: now requires STLSoft 1.9.76;
- added setup / teardown functionality;
- NOTE: now requires STLSoft 1.9.75;
- added support for Borland 5.9.x and 6.1.x;
- added workaround for over-eager warnings in GCC 4.3;
- NOTE: now requires STLSoft 1.9.74;
- added ability to suppress reporting of empty test cases;
- added XTESTS_START_RUNNER_WITH_FLAGS();
- now uses Windows debugging support when emulating UNIX on Windows;
- added facilities for length-limiting string comparison;
- added missing macros for case-insensitive string inequality;
- added full support for custom reporter functionality;
- corrected defect whereby s/uint64 integer failures were not counted towards the total;
- fixed various minor defects;
- added XTESTS_TEST_ENUM_TRUE() and XTESTS_TEST_ENUM_FALSE();
- added XTESTS_TEST_BOOLEAN_TRUE() and XTESTS_TEST_BOOLEAN_FALSE();
- avoid precipitating warnings about unused return values;
- added xtestsComparisonApproxNotEqual comparison enumerator, and adjusted all comparison operations accordingly;
- added xtests_testMultibyteStringContains() and xtests_testWideStringContains(), and all corresponding test macros;
- cleared up some wrong (but benign) code exercised when compiling with exception-support switched off;
- fixed defective != comparison of signed & unsigned 64-bit integers;
- added more integer specialisations of xtests_failure_reporter<>;
- added call to XTESTS_TEST_PASSED() when an expected exception is received;
- added more integer specialisations of xtests_failure_reporter<>;
- fixed a defect in the approximate comparison of negative floating-point numbers;
- fixed a bug in the reporting mechanism for boolean enforcement failures;
- elimination of compiler warning on VC++ 8+;
- added ability to specify output stream (FILE*) when starting a test runner;
- addition of missing makefiles in the distro;
- bundles shwild 0.9.18;
- minor weakening of string comparison;
- bundles shwild 0.9.17;
- minor compatibility enhancements;
- added Win64-compatibility;
- added compatibity with heterogeneous string types to xtests_writeFailMessage();
- fix for Sun Pro compatibility;
- fix for Borland compilation error with widestring macros;
- added makefiles for VC9, GCC 4.1 and GCC 4.2;
- altered library names to use UNIX libXXXX naming convention in UNIX builds;
- added evaluation of heterogeneous string types, using shim-based type-tunneling;
- added implicit link support for VC++ 9;
- added explicit support for character tests;
- fixed bug in formatting of != tests;
- added explicit support for boolean tests;
- fix for wide string support;
- minor bug fix to prevent confusion about threading models on some UNIX operating systems;
- added wide string comparison;
- enhanced multibyte string comparison;
- minor bug fix in definition of XTEST_TEST_POINTER_???? macros;
- added support for pointer testing;
- enhanced string testing;
- fixed implicit link bug;
- fixed compilation bug when exception-handling support not enabled;
- fix in main header for bug encountered in C compilation units;
- enhancements to test & example programs;
- minor bug fix for Borland compilation;
- First public release;