Skip to content

Commit d66f0c7

Browse files
lkarstenFelipe Zimmerle
authored andcommitted
Add support for disabled test cases.
This commit adds support for skipping test cases that have enabled=0 in their JSON body. A separate counter is kept and reported in the final non-automake output, detailing disabled as a separate field. Ref: #1513
1 parent ab14b7c commit d66f0c7

File tree

2 files changed

+32
-17
lines changed

2 files changed

+32
-17
lines changed

test/regression/regression.cc

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,14 @@ void perform_unit_test(ModSecurityTest<RegressionTest> *test,
9494
ModSecurityTestResults<RegressionTestResult> *res, int *count) {
9595

9696
for (RegressionTest *t : *tests) {
97-
if (t->enabled == 0) {
98-
continue;
99-
}
100-
10197
CustomDebugLog *debug_log = new CustomDebugLog();
10298
modsecurity::ModSecurity *modsec = NULL;
10399
modsecurity::Rules *modsec_rules = NULL;
104100
modsecurity::Transaction *modsec_transaction = NULL;
105101
ModSecurityTestResults<RegressionTest> r;
106102
std::stringstream serverLog;
107103
RegressionTestResult *testRes = new RegressionTestResult();
104+
108105
testRes->test = t;
109106
r.status = 200;
110107
(*count)++;
@@ -125,6 +122,19 @@ void perform_unit_test(ModSecurityTest<RegressionTest> *test,
125122
std::cout << std::setw(70) << std::left << t->name;
126123
}
127124

125+
if (t->enabled == 0) {
126+
if (test->m_automake_output) {
127+
std::cout << ":test-result: disabled" << filename \
128+
<< ":" << t->name << std::endl;
129+
} else {
130+
std::cout << KCYN << "disabled" << RESET << std::endl;
131+
}
132+
res->push_back(testRes);
133+
testRes->disabled = true;
134+
testRes->reason << "JSON disabled";
135+
continue;
136+
}
137+
128138
modsec = new modsecurity::ModSecurity();
129139
modsec->setConnectorInformation("ModSecurity-regression v0.0.1-alpha" \
130140
" (ModSecurity regression test utility)");
@@ -473,17 +483,22 @@ int main(int argc, char **argv) {
473483

474484
int passed = 0;
475485
int failed = 0;
486+
int disabled = 0;
476487
int skipped = 0;
488+
477489
for (RegressionTestResult *r : res) {
478490
if (r->skipped == true) {
479491
skipped++;
480492
}
481-
if (r->passed == true && r->skipped == false) {
493+
if (r->disabled == true) {
494+
disabled++;
495+
}
496+
if (r->passed == true) {
482497
passed++;
483-
} else if (r->skipped == false) {
484-
if (test.m_automake_output) {
485-
// m_automake_output
486-
} else {
498+
}
499+
500+
if (!r->passed && !r->skipped && !r->disabled) {
501+
if (!test.m_automake_output) {
487502
std::cout << KRED << "Test failed." << RESET << KWHT \
488503
<< " From: " \
489504
<< RESET << r->test->filename << "." << std::endl;
@@ -502,18 +517,16 @@ int main(int argc, char **argv) {
502517
std::cout << "Ran a total of: " << std::to_string(failed + passed) \
503518
<< " regression tests - ";
504519
if (failed == 0) {
505-
std::cout << KGRN << "All tests passed." << RESET;
520+
std::cout << KGRN << "All tests passed. " << RESET;
506521
} else {
507-
std::cout << KRED << failed << " failed." << RESET;
522+
std::cout << KRED << failed << " failed. " << RESET;
508523
}
509524

510-
if (skipped > 0) {
511-
std::cout << KCYN << " " << std::to_string(skipped) << " ";
512-
std::cout << "skipped tests." << RESET << std::endl;
513-
} else {
514-
std::cout << std::endl;
515-
}
525+
std::cout << KCYN << std::to_string(skipped) << " ";
526+
std::cout << "skipped test(s). " << std::to_string(disabled) << " ";
527+
std::cout << "disabled test(s)." << RESET << std::endl;
516528
}
529+
517530
for (std::pair<std::string, std::vector<RegressionTest *> *> a : test) {
518531
std::vector<RegressionTest *> *vec = a.second;
519532
for (int i = 0; i < vec->size(); i++) {

test/regression/regression_test.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,12 @@ class RegressionTestResult {
8383
RegressionTestResult() :
8484
passed(false),
8585
skipped(false),
86+
disabled(false),
8687
test(NULL) { }
8788

8889
bool passed;
8990
bool skipped;
91+
bool disabled;
9092
RegressionTest *test;
9193
std::stringstream reason;
9294
};

0 commit comments

Comments
 (0)