mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 05:45:59 +03:00
Fix various minor bugs in the regression test suite
Now if a test fails it keep testing the others tests from the same family. The output was also improved.
This commit is contained in:
parent
42ce0475b2
commit
2a950a435b
@ -129,14 +129,17 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
}
|
||||
|
||||
if (modsec_rules->load(t->rules.c_str(), filename) < 0) {
|
||||
/* Parser error */
|
||||
if (t->parser_error.empty() == true) {
|
||||
/* Not expecting any error, thus return the error to the user. */
|
||||
std::cout << KRED << "failed!" << RESET << std::endl;
|
||||
testRes->reason << KRED << "parse failed." << RESET \
|
||||
<< std::endl;
|
||||
testRes->reason << modsec_rules->getParserError() \
|
||||
<< std::endl;
|
||||
testRes->passed = false;
|
||||
res->push_back(testRes);
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
Regex re(t->parser_error);
|
||||
@ -144,10 +147,16 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
std::string s = modsec_rules->getParserError();
|
||||
|
||||
if (regex_search(s, &match, re) && match.size() >= 1) {
|
||||
std::cout << KGRN << "passed!" << RESET << std::endl;
|
||||
/* Parser error was expected, thus, the test passed. */
|
||||
testRes->reason << KGRN << "passed!" << RESET << std::endl;
|
||||
testRes->passed = true;
|
||||
return;
|
||||
res->push_back(testRes);
|
||||
continue;
|
||||
} else {
|
||||
/* Parser error was expected, but with a different content */
|
||||
std::cout << KRED << "failed!" << RESET << std::endl;
|
||||
|
||||
testRes->reason << KRED << "failed!" << RESET << std::endl;
|
||||
testRes->reason << KWHT << "Expected a parser error." \
|
||||
<< RESET << std::endl;
|
||||
@ -156,17 +165,20 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
testRes->reason << KWHT << "Produced: " << RESET \
|
||||
<< s << std::endl;
|
||||
testRes->passed = false;
|
||||
return;
|
||||
res->push_back(testRes);
|
||||
continue;
|
||||
}
|
||||
|
||||
} else {
|
||||
/* Parser error was expected but never happened */
|
||||
if (t->parser_error.empty() == false) {
|
||||
std::cout << KRED << "failed!" << std::endl;
|
||||
std::cout << KRED << "failed!" << RESET << std::endl;
|
||||
std::cout << KWHT << "Expected a parser error." \
|
||||
<< RESET << std::endl;
|
||||
std::cout << KWHT << "Expected: " << RESET \
|
||||
<< t->parser_error << std::endl;
|
||||
testRes->passed = false;
|
||||
res->push_back(testRes);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@
|
||||
]
|
||||
},
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: action-id.json. Line: 4. Column: 31. id:-1"
|
||||
"parser_error": "Rules error. File: action-id.json. Line: 4. Column: 31. .*"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
@ -220,7 +220,7 @@
|
||||
]
|
||||
},
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: action-id.json. Line: 4. Column: 31. id:'1"
|
||||
"parser_error": "Rules error. File: action-id.json. Line: 4. Column: 31. .*"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version_min":300000,
|
||||
"title":"Include - bad rule",
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example3.txt. Line: 2. Column: 42. ops"
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example3.txt. Line: 2. Column: 42. invalid character .*"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
@ -19,7 +19,7 @@
|
||||
"version_min":300000,
|
||||
"title":"Include - missing file",
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: config-include-bad.json. Line: 4. Column: 47. Include test-cases/data/config_example-ops.txt: Not able to open file."
|
||||
"parser_error": "Rules error. File: config-include-bad.json. Line: 4. Column: 47. test-cases/data/config_example-ops.txt: Not able to open file."
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
@ -34,7 +34,7 @@
|
||||
"version_min":300000,
|
||||
"title":"Include - missing at include",
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example-ops-include.txt. Line: 1. Column: 53. Include test-cases/data/config_example-not-exist.txt: Not able to open file."
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example-ops-include.txt. Line: 1. Column: 53. test-cases/data/config_example-not-exist.txt: Not able to open file."
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
@ -49,7 +49,7 @@
|
||||
"version_min":300000,
|
||||
"title":"Include - bad operator inside include",
|
||||
"expected":{
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example-bad-op-include.txt. Line: 2. Column: 32."
|
||||
"parser_error": "Rules error. File: test-cases/data/config_example-bad-op-include.txt. Line: 2. Column: 67. .*"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
@ -64,7 +64,7 @@
|
||||
"version_min":300000,
|
||||
"title":"Include - duplicate id",
|
||||
"expected":{
|
||||
"parser_error": "Rule id: 40.000000 is duplicated"
|
||||
"parser_error": "Rule id: 40 is duplicated"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
|
@ -82,7 +82,7 @@
|
||||
]
|
||||
},
|
||||
"expected":{
|
||||
"parser_error":"Failed to open file: file-not-found.txt"
|
||||
"parser_error":"Rules error. File: operator-ipMatchFromFile.json. Line: 4. Column: 20. .*"
|
||||
},
|
||||
"rules":[
|
||||
"SecRuleEngine On",
|
||||
|
Loading…
x
Reference in New Issue
Block a user