blob: 6f24f94e9bf0bd61222c4755acf9a5bc23958709 [file] [log] [blame]
onqtam8126b562016-05-27 17:01:15 +03001<!DOCTYPE html>
2<html>
3<title>roadmap</title>
4<xmp theme="united" style="display:none;">
5
6## Roadmap
7
8Support the development of the project with donations! I work on this project in my spare time and every cent is a big deal.
9
10[![Donate to support](https://pledgie.com/campaigns/31280.png)](https://pledgie.com/campaigns/31280)
11
12This is a list of planned features for future releases (maybe in the given order).
13
onqtame8bdda42016-06-01 15:12:36 +030014- switch to using ```std::vector``` and ```std::set``` and remove custom implementations
15- the set holding all registered tests should use a specialized allocator to minimize program startup time
onqtam8126b562016-05-27 17:01:15 +030016- fix the test coverage reports - currently each example replaces the coverage from the last example
17- test with gcc 6 and use it in the CI builds
onqtame8bdda42016-06-01 15:12:36 +030018- a mechanism for translating exceptions - users should be able to teach the framework about their types (look at Catch for this)
onqtam8126b562016-05-27 17:01:15 +030019- support for ```std::exception``` and derivatives (mainly for calling the ```.what()``` method when caught unexpectedly)
20- test with missed warning flags for GCC - look into https://github.com/Barro/compiler-warnings
21- crash handling: signals on UNIX platforms or structured exceptions on Windows
22- support for tags
23 - may fail tag
24 - invisible tag
25 - look at Catch - https://github.com/philsquared/Catch/blob/master/docs/test-cases-and-sections.html#special-tags
26- output to file
27- reporters
28 - a system for writing custom reporters
29 - ability to use multiple reporters at once (but only 1 to stdout)
30 - a compact reporter
31 - an xml reporter
32 - jUnit/xUnit reporters
33- add the ability to query if code is currently being ran in a test - ```doctest::isRunningInTest()```
34- convolution support for the assertion macros (with a predicate)
35- time stuff
36 - reporting running time of tests
37 - restricting duration of test cases
38 - killing a test that exceeds a time limit (will perhaps require threading or processes)
39- adding contextual info to asserts (logging) - with an ```INFO```/```CONTEXT``` /```TRACEPOINT``` macro
40- add ```ERROR```/```FAIL``` macros
41- running tests a few times
42- marking a test to run X times (should also multiply with the global test run times)
43- test execution in separate processes - ```fork()``` for UNIX and [this](https://github.com/nemequ/munit/issues/2) for Windows
44- ability to provide a temp folder that is cleared between each test case
45- detect floating point exceptions
46- ```Bitwise()``` class that has overloaded operators for comparison - to be used to check objects bitwise against each other
47- integrate static analysis on the CI: **msvc**, **clang**, **cppcheck**
48- get a build with **MinGW-w64** running on **appveyor**
49
50And here is a list of things that are being considered but not part of the roadmap yet:
51
onqtame8bdda42016-06-01 15:12:36 +030052- rework the cmake single header assembly - to use a ```.cmake``` script that sets the permissions of ```doctest.h``` as read only
53- look into MSTest integration
54 - http://accu.org/index.php/journals/1851
55 - https://msdn.microsoft.com/en-us/library/hh270865.aspx
56 - also look into similar Xcode integration
onqtam8126b562016-05-27 17:01:15 +030057- matchers - should investigate what they are :D
onqtame8bdda42016-06-01 15:12:36 +030058- generators? - look at Catch - and investigate what they are (also in [boost](http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/tests_organization/test_cases/test_case_generation.html)
onqtam8126b562016-05-27 17:01:15 +030059- option to list files in which there are test cases who match the current filters
60- handle ```wchar``` strings
onqtame8bdda42016-06-01 15:12:36 +030061- a progress reporter
62- doctest in a GUI environment? with no console? APIs for attaching a console? querying if there is one? should investigate...
63- ability to customize the colors in the console output
onqtam8126b562016-05-27 17:01:15 +030064- refactor the assertion macros - make proxy functions that do most of the things to minimize code bloat
65- pool allocator for the ```String``` class - currently very unoptimized
66- ability to specify ASC/DESC for the order option
67- command line error handling/reporting
68- utf8? not sure if this should be here
69- print a warning when no assertion is encountered in a test case
70- hierarchical test suites - using a stack for the pushed ones - should be easy
71- put everything from the ```detail``` namespace also in a nested anonymous namespace to make them with internal linkage
72- ability to re-run only newly compiled tests based on time stamps using ```__DATE__``` and ```__TIME__``` - stored in some file
onqtame8bdda42016-06-01 15:12:36 +030073- submit to [boost](http://www.boost.org/development/requirements.html)?
onqtam8126b562016-05-27 17:01:15 +030074
75---------------
76
77[Home](readme.html#reference)
78
79
80</xmp>
81<script src="strapdown.js/strapdown.js"></script>
82</html>