-
-
Notifications
You must be signed in to change notification settings - Fork 0
Fix CPPCheck-identified issues of type performance::passedByValue #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
⚡ Static analysis result ⚡ 🔴 cppcheck found 23 issues! Click here to see details.TestCPP/include/internal/TestCPPAssertions.h Lines 304 to 309 in efd470f
!Line: 304 - style: The scope of the variable 'nullAssertionMessage' can be reduced. [variableScope]
TestCPP/include/internal/TestCPPAssertions.h Lines 324 to 329 in efd470f
!Line: 324 - style: The scope of the variable 'notNullAssertionMessage' can be reduced. [variableScope]
TestCPP/include/internal/TestCPPTestCase.h Lines 199 to 204 in efd470f
!Line: 199 - performance: inconclusive: Technically the member function 'TestCPP::TestCase::clearStdoutCapture' can be static (but you may consider moving to unnamed namespace). [functionStatic]
!Line: 461 - note: Technically the member function 'TestCPP::TestCase::clearStdoutCapture' can be static (but you may consider moving to unnamed namespace).
!Line: 199 - note: Technically the member function 'TestCPP::TestCase::clearStdoutCapture' can be static (but you may consider moving to unnamed namespace). TestCPP/include/internal/TestCPPTestCase.h Lines 207 to 212 in efd470f
!Line: 207 - performance: inconclusive: Technically the member function 'TestCPP::TestCase::clearLogCapture' can be static (but you may consider moving to unnamed namespace). [functionStatic]
!Line: 467 - note: Technically the member function 'TestCPP::TestCase::clearLogCapture' can be static (but you may consider moving to unnamed namespace).
!Line: 207 - note: Technically the member function 'TestCPP::TestCase::clearLogCapture' can be static (but you may consider moving to unnamed namespace). TestCPP/include/internal/TestCPPTestCase.h Lines 215 to 220 in efd470f
!Line: 215 - performance: inconclusive: Technically the member function 'TestCPP::TestCase::clearStderrCapture' can be static (but you may consider moving to unnamed namespace). [functionStatic]
!Line: 473 - note: Technically the member function 'TestCPP::TestCase::clearStderrCapture' can be static (but you may consider moving to unnamed namespace).
!Line: 215 - note: Technically the member function 'TestCPP::TestCase::clearStderrCapture' can be static (but you may consider moving to unnamed namespace). TestCPP/include/internal/TestCPPTestCase.h Lines 292 to 297 in efd470f
!Line: 292 - style: inconclusive: Technically the member function 'TestCPP::TestCase::logFailure' can be const. [functionConst]
!Line: 292 - note: Technically the member function 'TestCPP::TestCase::logFailure' can be const.
!Line: 292 - note: Technically the member function 'TestCPP::TestCase::logFailure' can be const. TestCPP/src/TestCPPTestCase.cpp Lines 171 to 176 in efd470f
!Line: 171 - error: Exception thrown in function declared not to throw exceptions. [throwInNoexceptFunction]
TestCPP/src/TestCPPTestCase.cpp Lines 262 to 267 in efd470f
!Line: 262 - error: Exception thrown in function declared not to throw exceptions. [throwInNoexceptFunction]
TestCPP/src/TestCPPTestCase.cpp Lines 114 to 119 in efd470f
!Line: 114 - style: inconclusive: Function 'TestCase' argument 1 names different: declaration 'testName' definition 'name'. [funcArgNamesDifferent]
!Line: 132 - note: Function 'TestCase' argument 1 names different: declaration 'testName' definition 'name'.
!Line: 114 - note: Function 'TestCase' argument 1 names different: declaration 'testName' definition 'name'. TestCPP/src/TestCPPTestCase.cpp Lines 115 to 120 in efd470f
!Line: 115 - style: inconclusive: Function 'TestCase' argument 2 names different: declaration 'test' definition 'testFn'. [funcArgNamesDifferent]
!Line: 133 - note: Function 'TestCase' argument 2 names different: declaration 'test' definition 'testFn'.
!Line: 115 - note: Function 'TestCase' argument 2 names different: declaration 'test' definition 'testFn'. TestCPP/src/TestCPPTestCase.cpp Lines 116 to 121 in efd470f
!Line: 116 - style: inconclusive: Function 'TestCase' argument 3 names different: declaration 'testPassedMessage' definition 'msg'. [funcArgNamesDifferent]
!Line: 134 - note: Function 'TestCase' argument 3 names different: declaration 'testPassedMessage' definition 'msg'.
!Line: 116 - note: Function 'TestCase' argument 3 names different: declaration 'testPassedMessage' definition 'msg'. TestCPP/src/TestCPPTestCase.cpp Lines 304 to 309 in efd470f
!Line: 304 - style: inconclusive: Function 'logTestFailure' argument 1 names different: declaration 'failureMessage' definition 'reason'. [funcArgNamesDifferent]
!Line: 299 - note: Function 'logTestFailure' argument 1 names different: declaration 'failureMessage' definition 'reason'.
!Line: 304 - note: Function 'logTestFailure' argument 1 names different: declaration 'failureMessage' definition 'reason'. TestCPP/src/TestCPPTestCase.cpp Lines 371 to 376 in efd470f
!Line: 371 - style: inconclusive: Function 'setNotifyPassed' argument 1 names different: declaration 'shouldNotify' definition 'notify'. [funcArgNamesDifferent]
!Line: 180 - note: Function 'setNotifyPassed' argument 1 names different: declaration 'shouldNotify' definition 'notify'.
!Line: 371 - note: Function 'setNotifyPassed' argument 1 names different: declaration 'shouldNotify' definition 'notify'. TestCPP/src/TestCPPTestCase.cpp Lines 145 to 150 in efd470f
!Line: 145 - style: Parameter 'o' can be declared as reference to const [constParameterReference]
TestCPP/src/TestCPPTestCase.cpp Lines 234 to 239 in efd470f
!Line: 234 - style: Parameter 'rhs' can be declared as reference to const [constParameterReference]
TestCPP/src/TestCPPTestCase.cpp Lines 292 to 297 in efd470f
!Line: 292 - style: Parameter 'reason' can be declared as reference to const [constParameterReference]
TestCPP/include/internal/TestCPPTestSuite.h Lines 80 to 85 in efd470f
!Line: 80 - warning: Member variable 'TestSuite::lastRunSucceeded' is not initialized in the constructor. [uninitMemberVar]
TestCPP/include/internal/TestCPPTestSuite.h Lines 80 to 85 in efd470f
!Line: 80 - warning: Member variable 'TestSuite::lastRunSuccessCount' is not initialized in the constructor. [uninitMemberVar]
TestCPP/include/internal/TestCPPTestSuite.h Lines 80 to 85 in efd470f
!Line: 80 - warning: Member variable 'TestSuite::lastRunFailCount' is not initialized in the constructor. [uninitMemberVar]
TestCPP/include/internal/TestCPPTestSuite.h Lines 80 to 85 in efd470f
!Line: 80 - warning: Member variable 'TestSuite::totalRuntime' is not initialized in the constructor. [uninitMemberVar]
TestCPP/include/internal/TestCPPTestSuite.h Lines 117 to 122 in efd470f
!Line: 117 - performance: inconclusive: Technically the member function 'TestCPP::TestSuite::addTests' can be static (but you may consider moving to unnamed namespace). [functionStatic]
TestCPP/include/internal/TestCPPTestSuite.h Lines 153 to 158 in efd470f
!Line: 153 - style: inconclusive: Technically the member function 'TestCPP::TestSuite::getLastRunFailCount' can be const. [functionConst]
!Line: 73 - note: Technically the member function 'TestCPP::TestSuite::getLastRunFailCount' can be const.
!Line: 153 - note: Technically the member function 'TestCPP::TestSuite::getLastRunFailCount' can be const. TestCPP/include/internal/TestCPPUtil.h Lines 81 to 86 in efd470f
!Line: 81 - style: inconclusive: Technically the member function 'TestCPP::TestObjName::getName' can be const. [functionConst]
!Line: 59 - note: Technically the member function 'TestCPP::TestObjName::getName' can be const.
!Line: 81 - note: Technically the member function 'TestCPP::TestObjName::getName' can be const. 🔴 clang-tidy found 146 issues! Click here to see details.TestCPP/include/internal/TestCPPCommon.h Lines 88 to 93 in efd470f
!Line: 88 - error: variable name 'SP' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 73 to 78 in efd470f
!Line: 73 - error: single-argument constructors must be marked explicit to avoid unintentional implicit conversions [hicpp-explicit-conversions,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 81 to 86 in efd470f
!Line: 81 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 89 to 94 in efd470f
!Line: 89 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 90 to 95 in efd470f
!Line: 90 - error: parameter name 's' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 106 to 111 in efd470f
!Line: 106 - error: constructor does not initialize these fields: data [cppcoreguidelines-pro-type-member-init,hicpp-member-init,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 107 to 112 in efd470f
!Line: 107 - error: do not declare C-style arrays, use std::array<> instead [cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 109 to 114 in efd470f
!Line: 109 - error: constructor does not initialize these fields: data [cppcoreguidelines-pro-type-member-init,hicpp-member-init,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 109 to 114 in efd470f
!Line: 109 - error: constructors that are callable with a single argument must be marked explicit to avoid unintentional implicit conversions [hicpp-explicit-conversions,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 109 to 114 in efd470f
!Line: 109 - error: parameter name 'ts' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 110 to 115 in efd470f
!Line: 110 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 110 to 115 in efd470f
!Line: 110 - error: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 136 to 141 in efd470f
!Line: 136 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 144 to 148 in efd470f
!Line: 144 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
Lines 51 to 56 in efd470f
!Line: 51 - error: implicit conversion 'const char *' -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
Lines 59 to 64 in efd470f
!Line: 59 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
Lines 63 to 68 in efd470f
!Line: 63 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
Lines 64 to 69 in efd470f
!Line: 64 - error: parameter name 's' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
Lines 78 to 83 in efd470f
!Line: 78 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
Lines 83 to 88 in efd470f
!Line: 83 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
Lines 89 to 94 in efd470f
!Line: 89 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPExceptions.cpp Lines 28 to 33 in efd470f
!Line: 28 - error: included header iostream is not used directly [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPExceptions.cpp Lines 37 to 42 in efd470f
!Line: 37 - error: no header providing "std::string" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPExceptions.cpp Lines 38 to 43 in efd470f
!Line: 38 - error: no header providing "std::runtime_error" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPExceptions.cpp Lines 66 to 71 in efd470f
!Line: 66 - error: std::move of the const variable 'msg' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 49 - note: consider changing the 1st parameter of 'TestCPPException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPExceptions.cpp Lines 66 to 71 in efd470f
!Line: 66 - error: no header providing "std::move" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 84 to 89 in efd470f
!Line: 84 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 85 to 90 in efd470f
!Line: 85 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/include/internal/TestCPPAssertions.h Lines 110 to 115 in efd470f
!Line: 110 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 111 to 116 in efd470f
!Line: 111 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/include/internal/TestCPPAssertions.h Lines 131 to 136 in efd470f
!Line: 131 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 132 to 137 in efd470f
!Line: 132 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/include/internal/TestCPPAssertions.h Lines 152 to 157 in efd470f
!Line: 152 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 153 to 158 in efd470f
!Line: 153 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/include/internal/TestCPPAssertions.h Lines 243 to 248 in efd470f
!Line: 243 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 243 to 248 in efd470f
!Line: 243 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 252 to 257 in efd470f
!Line: 252 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 253 to 258 in efd470f
!Line: 253 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 265 to 270 in efd470f
!Line: 265 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 265 to 270 in efd470f
!Line: 265 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 282 to 287 in efd470f
!Line: 282 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 282 to 287 in efd470f
!Line: 282 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 299 to 304 in efd470f
!Line: 299 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 299 to 304 in efd470f
!Line: 299 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 319 to 324 in efd470f
!Line: 319 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 319 to 324 in efd470f
!Line: 319 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 389 to 394 in efd470f
!Line: 389 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPAssertions.h Lines 395 to 400 in efd470f
!Line: 395 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 30 to 35 in efd470f
!Line: 30 - error: no header providing "std::clog" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 31 to 36 in efd470f
!Line: 31 - error: no header providing "std::current_exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 33 to 38 in efd470f
!Line: 33 - error: no header providing "std::exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 34 to 39 in efd470f
!Line: 34 - error: no header providing "std::__exception_ptr::exception_ptr" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 36 to 41 in efd470f
!Line: 36 - error: no header providing "std::rethrow_exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 37 to 42 in efd470f
!Line: 37 - error: no header providing "std::string" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 38 to 43 in efd470f
!Line: 38 - error: no header providing "std::stringstream" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 43 to 48 in efd470f
!Line: 43 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 43 to 48 in efd470f
!Line: 43 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 48 to 53 in efd470f
!Line: 48 - error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 48 to 53 in efd470f
!Line: 48 - error: no header providing "strcmp" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 48 to 53 in efd470f
!Line: 48 - error: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 60 to 65 in efd470f
!Line: 60 - error: return type 'const string' (aka 'const basic_string<char>') is 'const'-qualified at the top level, which may reduce code readability without improving const correctness [readability-const-return-type,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 60 to 65 in efd470f
!Line: 60 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 65 to 70 in efd470f
!Line: 65 - error: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 83 to 88 in efd470f
!Line: 83 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 83 to 88 in efd470f
!Line: 83 - error: implicit conversion 'size_type' (aka 'unsigned long') -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 84 to 89 in efd470f
!Line: 84 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 84 to 89 in efd470f
!Line: 84 - error: no header providing "std::move" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 96 to 101 in efd470f
!Line: 96 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 96 to 101 in efd470f
!Line: 96 - error: implicit conversion 'size_type' (aka 'unsigned long') -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 97 to 102 in efd470f
!Line: 97 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 102 to 107 in efd470f
!Line: 102 - error: the parameter 'shouldThrow' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 110 to 115 in efd470f
!Line: 110 - error: variable 'eptr' of type 'exception_ptr' can be declared 'const' [misc-const-correctness,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 119 to 124 in efd470f
!Line: 119 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 123 to 128 in efd470f
!Line: 123 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 133 to 138 in efd470f
!Line: 133 - error: std::move of the const variable 'failureMessage' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 137 to 142 in efd470f
!Line: 137 - error: the parameter 'shouldNotThrow' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 145 to 150 in efd470f
!Line: 145 - error: std::move of the const variable 'failureMessage' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 164 to 169 in efd470f
!Line: 164 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 164 to 169 in efd470f
!Line: 164 - error: implicit conversion 'size_type' (aka 'unsigned long') -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 165 to 170 in efd470f
!Line: 165 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 185 to 190 in efd470f
!Line: 185 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 185 to 190 in efd470f
!Line: 185 - error: implicit conversion 'size_type' (aka 'unsigned long') -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 186 to 191 in efd470f
!Line: 186 - error: std::move of the const variable 'err' has no effect or make the variable non-const [hicpp-move-const-arg,performance-move-const-arg,-warnings-as-errors]
!Line: 98 - note: consider changing the 1st parameter of 'TestFailedException' from 'const string &&' (aka 'const basic_string<char> &&') to 'const string &' TestCPP/src/TestCPPAssertions.cpp Lines 191 to 194 in efd470f
!Line: 191 - error: the parameter 'failureMessage' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]
TestCPP/src/TestCPPAssertions.cpp Lines 192 to 194 in efd470f
!Line: 192 - error: no header providing "std::move" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 92 to 97 in efd470f
!Line: 92 - error: enum 'TestCaseOutCompareOptions' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 146 to 151 in efd470f
!Line: 146 - error: parameter name 'o' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 153 to 158 in efd470f
!Line: 153 - error: parameter name 'o' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 160 to 165 in efd470f
!Line: 160 - error: operator=() should take 'TestCase const&', 'TestCase&&' or 'TestCase' [cppcoreguidelines-c-copy-assignment-signature,misc-unconventional-assign-operator,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 160 to 165 in efd470f
!Line: 160 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 169 to 174 in efd470f
!Line: 169 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 224 to 229 in efd470f
!Line: 224 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 233 to 238 in efd470f
!Line: 233 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 243 to 248 in efd470f
!Line: 243 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 249 to 254 in efd470f
!Line: 249 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 256 to 261 in efd470f
!Line: 256 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 315 to 320 in efd470f
!Line: 315 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 345 to 350 in efd470f
!Line: 345 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 80 to 85 in efd470f
!Line: 80 - error: constructor does not initialize these fields: lastRunSucceeded, lastRunSuccessCount, lastRunFailCount, totalRuntime [cppcoreguidelines-pro-type-member-init,hicpp-member-init,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 81 to 86 in efd470f
!Line: 81 - error: all parameters should be named in a function [hicpp-named-parameter,readability-named-parameter,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 83 to 88 in efd470f
!Line: 83 - error: 'testSuitePassedMessage' should be initialized in a member initializer of the constructor [cppcoreguidelines-prefer-member-initializer,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 93 to 98 in efd470f
!Line: 93 - error: constructor does not initialize these fields: lastRunSucceeded, lastRunSuccessCount, lastRunFailCount, totalRuntime [cppcoreguidelines-pro-type-member-init,hicpp-member-init,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 93 to 98 in efd470f
!Line: 93 - error: constructors that are callable with a single argument must be marked explicit to avoid unintentional implicit conversions [hicpp-explicit-conversions,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 94 to 99 in efd470f
!Line: 94 - error: 'testSuitePassedMessage' should be initialized in a member initializer of the constructor [cppcoreguidelines-prefer-member-initializer,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 117 to 122 in efd470f
!Line: 117 - error: function 'addTests' has inline specifier but is implicitly inlined [readability-redundant-inline-specifier,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 117 to 122 in efd470f
!Line: 117 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestSuite.h Lines 153 to 158 in efd470f
!Line: 153 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 36 to 41 in efd470f
!Line: 36 - error: no header providing "std::cerr" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 37 to 42 in efd470f
!Line: 37 - error: no header providing "std::clog" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 38 to 43 in efd470f
!Line: 38 - error: using decl 'cout' is unused [misc-unused-using-decls,-warnings-as-errors]
!Line: 38 - note: remove the using TestCPP/src/TestCPPTestSuite.cpp Lines 40 to 45 in efd470f
!Line: 40 - error: no header providing "std::exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 41 to 46 in efd470f
!Line: 41 - error: no header providing "std::fixed" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 43 to 48 in efd470f
!Line: 43 - error: using decl 'invalid_argument' is unused [misc-unused-using-decls,-warnings-as-errors]
!Line: 43 - note: remove the using TestCPP/src/TestCPPTestSuite.cpp Lines 44 to 49 in efd470f
!Line: 44 - error: no header providing "std::ostream" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 45 to 50 in efd470f
!Line: 45 - error: no header providing "std::rethrow_exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 45 to 50 in efd470f
!Line: 45 - error: using decl 'rethrow_exception' is unused [misc-unused-using-decls,-warnings-as-errors]
!Line: 45 - note: remove the using TestCPP/src/TestCPPTestSuite.cpp Lines 46 to 51 in efd470f
!Line: 46 - error: no header providing "std::runtime_error" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 46 to 51 in efd470f
!Line: 46 - error: using decl 'runtime_error' is unused [misc-unused-using-decls,-warnings-as-errors]
!Line: 46 - note: remove the using TestCPP/src/TestCPPTestSuite.cpp Lines 48 to 53 in efd470f
!Line: 48 - error: no header providing "std::string" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 69 to 74 in efd470f
!Line: 69 - error: no header providing "TestCPP::TestObjName" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 70 to 75 in efd470f
!Line: 70 - error: no header providing "std::move" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 73 to 78 in efd470f
!Line: 73 - error: use a trailing return type for this function [modernize-use-trailing-return-type,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 73 to 78 in efd470f
!Line: 73 - error: method 'getLastRunFailCount' can be made const [readability-make-member-function-const,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 78 to 83 in efd470f
!Line: 78 - error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 79 to 84 in efd470f
!Line: 79 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 88 to 93 in efd470f
!Line: 88 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 91 to 96 in efd470f
!Line: 91 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 92 to 97 in efd470f
!Line: 92 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 101 to 106 in efd470f
!Line: 101 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 105 to 110 in efd470f
!Line: 105 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 122 to 127 in efd470f
!Line: 122 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 128 to 133 in efd470f
!Line: 128 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 131 to 136 in efd470f
!Line: 131 - error: variable 'suiteRuntimeElapsed' of type 'double' can be declared 'const' [misc-const-correctness,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 142 to 147 in efd470f
!Line: 142 - error: do not use 'endl' with streams; use '\n' instead [performance-avoid-endl,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 151 to 156 in efd470f
!Line: 151 - error: rvalue reference parameter 'test' is never moved from inside the function body [cppcoreguidelines-rvalue-reference-param-not-moved,-warnings-as-errors]
TestCPP/src/TestCPPTestSuite.cpp Lines 164 to 169 in efd470f
!Line: 164 - error: rvalue reference parameter 'test' is never moved from inside the function body [cppcoreguidelines-rvalue-reference-param-not-moved,-warnings-as-errors]
TestCPP/include/internal/TestCPPTestCase.h Lines 131 to 136 in efd470f
!Line: 131 - error: function 'TestCPP::TestCase::TestCase' has a definition with different parameter names [readability-inconsistent-declaration-parameter-name,-warnings-as-errors]
!Line: 114 - note: the definition seen here
!Line: 131 - note: differing parameters are named here: ('testPassedMessage'), in definition: ('msg') TestCPP/include/internal/TestCPPTestCase.h Lines 299 to 304 in efd470f
!Line: 299 - error: function 'TestCPP::TestCase::logTestFailure' has a definition with different parameter names [readability-inconsistent-declaration-parameter-name,-warnings-as-errors]
!Line: 304 - note: the definition seen here
!Line: 299 - note: differing parameters are named here: ('failureMessage'), in definition: ('reason') TestCPP/include/internal/TestCPPTestCase.h Lines 345 to 350 in efd470f
!Line: 345 - error: the parameter 'func' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]
TestCPP/include/internal/TestCPPUtil.h Lines 109 to 114 in efd470f
!Line: 109 - error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,hicpp-no-array-decay,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 45 to 50 in efd470f
!Line: 45 - error: no header providing "std::cerr" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 46 to 51 in efd470f
!Line: 46 - error: no header providing "std::clog" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 47 to 52 in efd470f
!Line: 47 - error: no header providing "std::cout" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 49 to 54 in efd470f
!Line: 49 - error: no header providing "std::exception" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 50 to 55 in efd470f
!Line: 50 - error: no header providing "std::fixed" is directly included [misc-include-cleaner,-warnings-as-errors]
TestCPP/src/TestCPPTestCase.cpp Lines 52 to 57 in efd470f
!Line: 52 - error: using decl 'invalid_argument' is unused [misc-unused-using-decls,-warnings-as-errors]
!Line: 52 - note: remove the using !Maximum character count per GitHub comment has been reached! Not all warnings/errors has been parsed! |
…erformance-passedbyvalue
Codecov ReportAttention: Patch coverage is
✅ All tests successful. No failed tests found.
Additional details and impacted files@@ Coverage Diff @@
## main #27 +/- ##
==========================================
+ Coverage 75.17% 84.69% +9.51%
==========================================
Files 10 10
Lines 423 477 +54
Branches 47 60 +13
==========================================
+ Hits 318 404 +86
+ Misses 101 66 -35
- Partials 4 7 +3 ☔ View full report in Codecov by Sentry. |
There were a number of areas affected by the performance::passedByValue issue, these also show up repeatedly in clang-tidy, so this should resolve some of those issues as well. Closes #8. All the tests pass. There was an instance of a using statement that should have been wrapped in the adjacent conditional preprocessor directive, this has been corrected. This should resolve at least one instance of the clang-tidy warning misc-unused-using-decls as reported in #45.
Added tests for the following functions: * checkStdout * checkStderr This is to increase patch coverage for #27. Formatted some lines.
Fixed the order of GH Actions workflows. Added flawfinder and infer to the list of static analysis tools. Added that debug and release are also taken into consideration for presets. Updated the vcpkg and conan sections to more acurately reflect status. Split the Features section into Current and Planned. Added a long list of new assertions I plan on adding to the library.
The CMake build now includes all required sections for TestCPP_Exceptions_test, which is the addition of the Exceptions test suite to the build. Now a TestCPP_Exceptions_test executable is created and linked in. Added a test suite for TestCPPExceptions. This included adding the following files: - test/include/Exceptions/ExceptionsTests.h - Test declarations - test/include/Exceptions/ExceptionsSuite.h - Creation of test suite - test/src/Exceptions/ExceptionsTests.cpp - Implementation of tests - test/src/TestCPPExceptionsMain.cpp - Implementation of suite runner The only things that really needed to happen here were: - Test constructor variants - Make sure the constructors don't throw when given sane output Additional behavior to check: - What does it do with negative testing? If everything is good with CI after I push this I'll add some negative testing. In Assertions, assertEquals did not work correctly with C Strings. I added a template specialization that fixes this... I have a feeling this is going to need to happen in other cases as well, though I don't yet know what.
Most of the assertions have a common failure logging pattern, which should be consolidated into a common function call path. Devise a return value system that will work for all test failures that log details of the test failure, where they share a common output format. This is all of them except fail, assertThrows, and assertNoThrows. Basically if there is content in the error string, it will throw the failure exception causing the test to fail. Finish fixing #94 by implementing the template specialization for const char* for assertNotEquals.
Use C++11 way of creating literal empty strings.
Stop suppressing MSVC warning 4514, because those functions being removed via optimization (why they are being removed by the optimizer in Debug builds, I do not know, that should not have been happening) should not be removed. For some reason it seems like the warning-disable flag for this specific warning was not being applied anyways, even though it should have been the way the CMake build was implemented; the flag is not longer in the CMake build. Those template specializations need to be there; they may not be referenced by a library function, but it's a static function that will be accessed by library consumers, it's not intended to be used by the library itself. I had to create extern instantiations to make sure the compiler kept the template specialization defined in the cpp file. With the template specialization implementations being in the header file, they were being removed by the optimizer even with optimizations disabled in the debug build, which was super weird. This appears to only be an issue with MSVC, which is also a little weird. For #27 this should address all the issues but there's more coverage that needs to be improved to make the patch coverage acceptable. Other fixes: - checkNull, checkNotNull, checkEquals, checkNotEquals, and logTestFailure now return values (copies) instead of references, and everything has been refactored to reflect this. - Moved definitions of the template specializations of assertEquals, assertNotEquals, checkEquals, and checkNotEquals to the cpp file. - Explicit template specializations that are only declarations are supposed to be in the global scope, according to research about some warnings I saw from clang, so they are moved out of the TestCPP namespace into the global scope. It appears this is the applicable section of the C++11 standard: - 14.7.3 clause 8 seems the most applicable - 14.7.3 clause 2 is referenced on the below post and seems to be a part of why this is the way it is as well: - https://forums.oracle.com/ords/apexds/post/explicit-specialization-is-not-allowed-in-the-current-scope-8848 - C++11 standard Reference: - https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf
Increase patch coverage where it was lacking for #27, #94, and #8. Added new tests so all assertions are now covered, and added negative testing for all assertions. Restructure Assertions test files so there's a paradigm for adding new assertion categories. Updated CMake build to take this into account.
I have confirmed the issues on the list I'm removing here are fixed per the cppcheck run local and on the PR CI run. Added additional clang-tidy warnings: clang-diagnostics-*.
Added tests for the following functions: * checkStdout * checkStderr This is to increase patch coverage for #27. Formatted some lines.
Stop suppressing MSVC warning 4514, because those functions being removed via optimization (why they are being removed by the optimizer in Debug builds, I do not know, that should not have been happening) should not be removed. For some reason it seems like the warning-disable flag for this specific warning was not being applied anyways, even though it should have been the way the CMake build was implemented; the flag is not longer in the CMake build. Those template specializations need to be there; they may not be referenced by a library function, but it's a static function that will be accessed by library consumers, it's not intended to be used by the library itself. I had to create extern instantiations to make sure the compiler kept the template specialization defined in the cpp file. With the template specialization implementations being in the header file, they were being removed by the optimizer even with optimizations disabled in the debug build, which was super weird. This appears to only be an issue with MSVC, which is also a little weird. For #27 this should address all the issues but there's more coverage that needs to be improved to make the patch coverage acceptable. Other fixes: - checkNull, checkNotNull, checkEquals, checkNotEquals, and logTestFailure now return values (copies) instead of references, and everything has been refactored to reflect this. - Moved definitions of the template specializations of assertEquals, assertNotEquals, checkEquals, and checkNotEquals to the cpp file. - Explicit template specializations that are only declarations are supposed to be in the global scope, according to research about some warnings I saw from clang, so they are moved out of the TestCPP namespace into the global scope. It appears this is the applicable section of the C++11 standard: - 14.7.3 clause 8 seems the most applicable - 14.7.3 clause 2 is referenced on the below post and seems to be a part of why this is the way it is as well: - https://forums.oracle.com/ords/apexds/post/explicit-specialization-is-not-allowed-in-the-current-scope-8848 - C++11 standard Reference: - https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf
Increase patch coverage where it was lacking for #27, #94, and #8. Added new tests so all assertions are now covered, and added negative testing for all assertions. Restructure Assertions test files so there's a paradigm for adding new assertion categories. Updated CMake build to take this into account.
new branch to handle #8 since the other branch got super far behind main.