Riyyi
a5d5d2ea6d
Util: Fix nullptr derefencing
...
In order to compare strings, the STL has to dereference the data
pointer. So check if its not a nullptr first.
3 years ago
Riyyi
7759821b13
Util: Fix string_view substring selection
...
Unlike std::basic_string::data() and string literals, data() may return
a pointer to a buffer that is not null-terminated. Therefore it is
typically a mistake to pass data() to a routine that takes just a const
CharT* and expects a null-terminated string.
The bug was calling string_view .data() after calling substr() that ends
before the null terminator, as it will just return the entire
string_view.
3 years ago
Riyyi
a217475d42
Util: Avoid assigning variable by passing to the initialization list
...
When an object of a class is created, the constructors of all member
variables are called consecutively in the order the variables are
declared, even if you don't explicitly write them to the initialization
list.
3 years ago
Riyyi
8ce4643518
Test: Add optional argument test cases
3 years ago
Riyyi
b6bfcbdc33
Util: Support for optional arguments in ArgParser
3 years ago
Riyyi
ca95ef1cf1
Util: Add simple validation to ArgParser number conversions
3 years ago
Riyyi
6efa314c38
Util: Move ArgParser private function implementations to the bottom
3 years ago
Riyyi
4e30b58305
Util: Switch ArgParser option/argument creation to list initialization
3 years ago
Riyyi
0fffa86ba0
Util: Deduplicate ArgParser accept value lambdas
3 years ago
Riyyi
9cecb8602f
Util: Add more ArgParser argument types
3 years ago
Riyyi
9796bc9e86
Test: Add argument test cases
3 years ago
Riyyi
67fd31a746
Util: Add argument parsing to ArgParser
3 years ago
Riyyi
952ba588f7
Test: Check non existent arguments
3 years ago
Riyyi
dc4fcc10ce
Util+Test: Implement exit on first error in main ArgParser loop
3 years ago
Riyyi
f021cf0e15
Util: Fix parsing for exit on first error setting
3 years ago
Riyyi
3f1ced53f6
Util: Rename variable to plural
3 years ago
Riyyi
1c887bbaf7
Test: Print expect macros to stderr
...
Also now properly reporting test case failure.
3 years ago
Riyyi
f92b75a463
Util+Test: Add setting to stop parsing on first non-option
3 years ago
Riyyi
a70d67f8fa
Util: Don't try to parse a '--' parameter
3 years ago
Riyyi
072d805344
Util+Test: Add more ArgParser option types
3 years ago
Riyyi
98dec3e51a
Util: Handle accepting values return state in ArgParser
3 years ago
Riyyi
1366bf14b1
Util+Test: Change size_type to size_t
...
The specialized size_type type is just an alias for size_t.
3 years ago
Riyyi
68cdd625b4
Util+Test: Add parsing of multi-value options
3 years ago
Riyyi
a5c422a2cc
Util+Test: Add support for '--' to enable non-option mode
3 years ago
Riyyi
04482fb10d
Util: Return the result of the option parsing
3 years ago
Riyyi
e813ab0f73
Test: Add test cases for string options
3 years ago
Riyyi
d423fec3c5
Test: Add "not equal" macro
3 years ago
Riyyi
a932079f21
Test: Improve suite print formatting
3 years ago
Riyyi
2b2bd7ff78
Util: Add fancyprint function
3 years ago
Riyyi
f6ce86dba7
Util: Fix typo in timer
3 years ago
Riyyi
93b5ac609e
Test: Capitalize function type
3 years ago
Riyyi
422224bf1c
Test: Implement timer
3 years ago
Riyyi
86aeae3c8e
Util: Add timer class
3 years ago
Riyyi
17bceeb619
Test: Add ArgParser tests
3 years ago
Riyyi
4df96a6c75
Test: Implement simple TestSuite/TestCase
3 years ago
Riyyi
eaec2c0e7a
Util: Add singleton class
3 years ago
Riyyi
8a1fb689bd
Initial commit
3 years ago