onqtam | 8126b56 | 2016-05-27 17:01:15 +0300 | [diff] [blame^] | 1 | <!DOCTYPE html> |
| 2 | <html> |
| 3 | <title>roadmap</title> |
| 4 | <xmp theme="united" style="display:none;"> |
| 5 | |
| 6 | ## Roadmap |
| 7 | |
| 8 | Support 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 | |
| 12 | This is a list of planned features for future releases (maybe in the given order). |
| 13 | |
| 14 | - fix the test coverage reports - currently each example replaces the coverage from the last example |
| 15 | - test with gcc 6 and use it in the CI builds |
| 16 | - support for ```std::exception``` and derivatives (mainly for calling the ```.what()``` method when caught unexpectedly) |
| 17 | - test with missed warning flags for GCC - look into https://github.com/Barro/compiler-warnings |
| 18 | - crash handling: signals on UNIX platforms or structured exceptions on Windows |
| 19 | - support for tags |
| 20 | - may fail tag |
| 21 | - invisible tag |
| 22 | - look at Catch - https://github.com/philsquared/Catch/blob/master/docs/test-cases-and-sections.html#special-tags |
| 23 | - output to file |
| 24 | - reporters |
| 25 | - a system for writing custom reporters |
| 26 | - ability to use multiple reporters at once (but only 1 to stdout) |
| 27 | - a compact reporter |
| 28 | - an xml reporter |
| 29 | - jUnit/xUnit reporters |
| 30 | - add the ability to query if code is currently being ran in a test - ```doctest::isRunningInTest()``` |
| 31 | - convolution support for the assertion macros (with a predicate) |
| 32 | - time stuff |
| 33 | - reporting running time of tests |
| 34 | - restricting duration of test cases |
| 35 | - killing a test that exceeds a time limit (will perhaps require threading or processes) |
| 36 | - adding contextual info to asserts (logging) - with an ```INFO```/```CONTEXT``` /```TRACEPOINT``` macro |
| 37 | - add ```ERROR```/```FAIL``` macros |
| 38 | - running tests a few times |
| 39 | - marking a test to run X times (should also multiply with the global test run times) |
| 40 | - test execution in separate processes - ```fork()``` for UNIX and [this](https://github.com/nemequ/munit/issues/2) for Windows |
| 41 | - ability to provide a temp folder that is cleared between each test case |
| 42 | - detect floating point exceptions |
| 43 | - ```Bitwise()``` class that has overloaded operators for comparison - to be used to check objects bitwise against each other |
| 44 | - integrate static analysis on the CI: **msvc**, **clang**, **cppcheck** |
| 45 | - get a build with **MinGW-w64** running on **appveyor** |
| 46 | |
| 47 | And here is a list of things that are being considered but not part of the roadmap yet: |
| 48 | |
| 49 | - matchers - should investigate what they are :D |
| 50 | - option to list files in which there are test cases who match the current filters |
| 51 | - handle ```wchar``` strings |
| 52 | - refactor the assertion macros - make proxy functions that do most of the things to minimize code bloat |
| 53 | - pool allocator for the ```String``` class - currently very unoptimized |
| 54 | - ability to specify ASC/DESC for the order option |
| 55 | - command line error handling/reporting |
| 56 | - utf8? not sure if this should be here |
| 57 | - print a warning when no assertion is encountered in a test case |
| 58 | - hierarchical test suites - using a stack for the pushed ones - should be easy |
| 59 | - put everything from the ```detail``` namespace also in a nested anonymous namespace to make them with internal linkage |
| 60 | - ability to re-run only newly compiled tests based on time stamps using ```__DATE__``` and ```__TIME__``` - stored in some file |
| 61 | |
| 62 | --------------- |
| 63 | |
| 64 | [Home](readme.html#reference) |
| 65 | |
| 66 | |
| 67 | </xmp> |
| 68 | <script src="strapdown.js/strapdown.js"></script> |
| 69 | </html> |