Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 3.25 KB

TODO.md

File metadata and controls

57 lines (43 loc) · 3.25 KB

xTests - TODO

Table of Contents

Functional improvements

  • Fix multibyte string-equality helpers (XTESTS_TEST_MULTIBYTE_STRING_EQUAL / sas_to_string_m) so string-access shims (e.g. c_str_data_a) declared after xtests.h is included are found under GCC/MinGW two-phase lookup; unblocks Pantheios test.unit.bec.COMErrorObject on MinGW;
  • support for “--list” flag;
  • support for named test case(s);
  • apply XTESTS_START_RUNNER(__FILE__, …) name inference in remaining test and example programs;
  • ~~~document __FILE__ runner-name inference in README.md and Doxygen~~~ - ✅;
  • unit tests for runner-name inference from __FILE__ / source paths;
  • support for “—-timings” flag;
  • support for “—-leaks” flag;
  • verbosity level 6 is to show all cases as they are executed, including successful results;
  • _Generic to select type(s) in API macros;
  • wide-character testing and compiler-specific handling of “%C”;
  • each case should have access to a FILE* variable that is like stderr, but contents only printed when case fails;
  • allow TEST_INT_EQ(0, stlsoft::ss_uint32_t(1)) such that the comparison works without needing to specify u suffix;
  • ~~~refactor internally params { file+line+function } into a structure~~~ - ✅;
  • internal printf translates %zu transparently for those (older) standard libraries that do not support;
  • ~~~summary should list #cases that failed/succeeded~~~ - ✅;
  • C: integer equal etc should produce message that logs both exp and act, like BDUT;
  • refactor out default reporter into separate implementation file;
  • remove the function-local static default fprintf_reporter (s_reporter in get_reporter_()), which permanently binds the first FILE* / tty flags and breaks subsequent XTESTS_START_RUNNER_WITH_STREAM uses (e.g. capture-to-temp-file then a later stdout runner);
  • remove most/all static_cast in implementation files;
  • wide-character impl/tests on Windows (and maybe elide when on UNIX, or at least without full C++20 support);
  • change uint32_t type(s)??;
  • execution context;
  • apply Visitor and have custom outputs;
  • ~~~coloured console output, for "SUCCESS" and "FAILURE" reports~~~ - ✅;
  • ~~~enhance C-form of macros using _Generic - this provided as of version 0.24.0~~~ - ✅;
  • ~~~simplified (shorter) macros, via opt-in header(s)~~~ - ✅;
  • ~~~ensuring different verbosity levels handled appropriately, in summary and expanded form(s)~~~ - ✅;

Performance improvements

  • <none>

Packaging improvements

  • Automated CI matrix for checking combinations of C and C++ language standards;
  • ~~~GitHub Actions~~~ - ✅:
    • ~~~Build~~~ - ✅;
    • ~~~Unit-tests~~~ - ✅;
  • ~~~CMake build setup should be able to infer STLSoft if available via a CMake find mechanism (e.g. find_package()) - this provided as of version 0.20.5~~~ - ✅;