onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 1 | #define DOCTEST_CONFIG_IMPLEMENT |
| 2 | #include "doctest.h" |
| 3 | |
Martin Moene | 2e66b61 | 2016-05-30 17:18:44 +0200 | [diff] [blame] | 4 | int program(); |
| 5 | |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 6 | int main(int argc, char** argv) { |
onqtam | 7d5c0d5 | 2016-06-02 17:50:59 +0300 | [diff] [blame] | 7 | doctest::Context context; // initialize |
| 8 | |
| 9 | // defaults |
| 10 | context.addFilter("test-case-exclude", "*math*"); // exclude test cases with "math" in the name |
| 11 | context.setOption("abort-after", 5); // stop test execution after 5 failed assertions |
| 12 | context.setOption("sort", "name"); // sort the test cases by their name |
| 13 | |
| 14 | context.applyCommandLine(argc, argv); |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 15 | |
| 16 | // overrides |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 17 | context.setOption("no-breaks", true); // don't break in the debugger when assertions fail |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 18 | |
Martin Moene | 2e66b61 | 2016-05-30 17:18:44 +0200 | [diff] [blame] | 19 | int res = context.run(); // run queries, or run tests unless --no-run is specified |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 20 | |
onqtam | 7ffa84e | 2016-05-30 18:42:20 +0300 | [diff] [blame] | 21 | if(context.shouldExit()) // important - query flags (and --exit) rely on the user doing this |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 22 | return res; // propagate the result of the tests |
| 23 | |
Martin Moene | 2e66b61 | 2016-05-30 17:18:44 +0200 | [diff] [blame] | 24 | int client_stuff_return_code = program(); |
onqtam | 4a65563 | 2016-05-26 14:20:52 +0300 | [diff] [blame] | 25 | // your program - if the testing framework is integrated in your production code |
| 26 | |
| 27 | return res + client_stuff_return_code; |
| 28 | } |
| 29 | |
| 30 | #include <string> |
| 31 | |
| 32 | TEST_CASE("[string] testing std::string") { |
| 33 | std::string a("omg"); |
| 34 | CHECK(a == "omg"); |
| 35 | } |
| 36 | |
| 37 | TEST_CASE("[math] basic stuff") { |
| 38 | CHECK(6 > 5); |
| 39 | CHECK(6 > 7); |
| 40 | } |
Martin Moene | 2e66b61 | 2016-05-30 17:18:44 +0200 | [diff] [blame] | 41 | |
| 42 | int program() { |
onqtam | 4fe9a87 | 2016-05-30 18:51:00 +0300 | [diff] [blame] | 43 | printf("Program code.\n"); |
Martin Moene | 2e66b61 | 2016-05-30 17:18:44 +0200 | [diff] [blame] | 44 | return EXIT_SUCCESS; |
| 45 | } |