Simplified lifetime management of tests

- Addresses Sonarcloud issues:
  - Rewrite the code so that you no longer need this "delete".
  - Make the type of this variable a reference-to-const.
This commit is contained in:
Eduardo Arias
2024-09-10 14:32:38 -03:00
parent b7b2d9a40d
commit 75d31a4d1e
4 changed files with 13 additions and 34 deletions

View File

@@ -111,13 +111,14 @@ void actions(ModSecurityTestResults<RegressionTest> *r,
}
void perform_unit_test(ModSecurityTest<RegressionTest> *test,
std::vector<RegressionTest *> *tests,
ModSecurityTestResults<RegressionTestResult> *res, int *count) {
for (RegressionTest *t : *tests) {
std::vector<std::unique_ptr<RegressionTest>> &tests,
ModSecurityTestResults<RegressionTestResult> *res, int *count)
{
for (auto &t : tests) {
ModSecurityTestResults<RegressionTest> r;
RegressionTestResult *testRes = new RegressionTestResult();
testRes->test = t;
testRes->test = t.get();
r.status = 200;
(*count)++;
@@ -468,9 +469,9 @@ int main(int argc, char **argv)
ModSecurityTestResults<RegressionTestResult> res;
for (const std::string &a : keyList) {
test_number++;
if ((test.m_test_number == 0)
if ((test.m_test_number == 0)
|| (test_number == test.m_test_number)) {
std::vector<RegressionTest *> *tests = test[a];
auto &tests = test[a];
perform_unit_test(&test, tests, &res, &counter);
}
}
@@ -523,14 +524,6 @@ int main(int argc, char **argv)
std::cout << "disabled test(s)." << RESET << std::endl;
}
for (auto a : test) {
std::vector<RegressionTest *> *vec = a.second;
for (int i = 0; i < vec->size(); i++) {
delete vec->at(i);
}
delete vec;
}
return failed;
#endif
}