| 452e64cc |
sum01 |
2018-04-26 21:25 |
1 |
#include "tester.hpp" |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
2 |
|
| 452e64cc |
sum01 |
2018-04-26 21:25 |
3 |
#include <cstdlib> |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
4 |
#include <iostream> |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
5 |
#include <stdexcept> |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
6 |
#include <string> |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
7 |
#include <vector> |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
8 |
|
| 452e64cc |
sum01 |
2018-04-26 21:25 |
9 |
// This should be passed either be char* or std::string for this to work |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
10 |
static void test_internal(const std::string& data) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
11 |
try { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
12 |
// Check that it actually got anything |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
13 |
if (data.empty()) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
14 |
throw std::logic_error("Got empty data"); |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
15 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
16 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
17 |
catch (const std::exception& e) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
18 |
// Take any standard exception & output its message |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
19 |
std::cerr << e.what() << std::endl; |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
20 |
std::exit(EXIT_FAILURE); |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
21 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
22 |
catch (...) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
23 |
// If any non-std exception is thrown, also fail |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
24 |
std::cerr << "Unknown exception!" << std::endl; |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
25 |
std::exit(EXIT_FAILURE); |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
26 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
27 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
28 |
|
| 452e64cc |
sum01 |
2018-04-26 21:25 |
29 |
// std::string is expected input |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
30 |
void run_test(const std::string& input) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
31 |
test_internal(input); |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
32 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
33 |
|
| 452e64cc |
sum01 |
2018-04-26 21:25 |
34 |
// A special overload for the two funcs that take a vector |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
35 |
void run_test(const std::vector<std::string>& vec) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
36 |
// Check each value for validity |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
37 |
for (const std::string& elem : vec) { |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
38 |
test_internal(elem); |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
39 |
} |
| 452e64cc |
sum01 |
2018-04-26 21:25 |
40 |
} |
|
|
1970-01-01 00:00 |
41 |
|