From 3f883df7635727da9360ca458c357ebe6a6b7589 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Wed, 22 Jul 2015 14:44:50 -0300 Subject: [PATCH] regression: Sorts test cases by file, making easy to read --- test/common/modsecurity_test.cc | 8 +++---- test/regression/regression.cc | 38 +++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/test/common/modsecurity_test.cc b/test/common/modsecurity_test.cc index ff7b1b84..0272dfae 100644 --- a/test/common/modsecurity_test.cc +++ b/test/common/modsecurity_test.cc @@ -73,15 +73,15 @@ bool ModSecurityTest::load_test_json(std::string file) { T *u = T::from_yajl_node(obj); u->filename = file; - u->name = u->filename + ":" + u->name; - if (this->count(u->name) == 0) { + if (this->count(u->filename + ":" + u->name) == 0) { std::vector *vector = new std::vector; vector->push_back(u); - std::pair *> a(u->name, vector); + std::pair *> a(u->filename + ":" + + u->name, vector); this->insert(a); } else { - std::vector *vec = this->at(u->name); + std::vector *vec = this->at(u->filename + ":" + u->name); vec->push_back(u); } } diff --git a/test/regression/regression.cc b/test/regression/regression.cc index d372b70a..a102f11f 100644 --- a/test/regression/regression.cc +++ b/test/regression/regression.cc @@ -18,6 +18,7 @@ #include #include #include +#include #include "modsecurity/modsecurity.h" #include "modsecurity/rules.h" @@ -58,7 +59,7 @@ void actions(ModSecurityTestResults *r, void perform_unit_test(std::vector *tests, - ModSecurityTestResults *res) { + ModSecurityTestResults *res, int *count) { ModSecurity::ModSecurity *modsec; ModSecurity::Rules *modsec_rules; ModSecurity::Assay *modsec_assay; @@ -68,6 +69,7 @@ void perform_unit_test(std::vector *tests, for (RegressionTest *t : *tests) { ModSecurityTestResults r; r.status = 200; + (*count)++; modsec = new ModSecurity::ModSecurity(); modsec->setConnectorInformation("ModSecurity-regression v0.0.1-alpha" \ @@ -144,7 +146,18 @@ end: CustomDebugLog *d = reinterpret_cast (modsec_rules->debug_log); - std::cout << "- " << t->name << " ..."; + size_t offset = t->filename.find_last_of("/\\"); + std::string filename(""); + if (offset != std::string::npos) { + filename = std::string(t->filename, offset + 1, + t->filename.length() - offset - 1); + } else { + filename = t->filename; + } + std::cout << std::setw(3) << std::right << + std::to_string(*count) << " "; + std::cout << std::setw(50) << std::left << filename; + std::cout << std::setw(60) << std::left << t->name; if (!d->contains(t->debug_log)) { std::cout << "Debug log was not matching the expected results."; @@ -185,11 +198,28 @@ int main(int argc, char **argv) { std::ofstream test_log; test_log.open("regression_test_log.txt"); + std::cout << std::setw(4) << std::right << "# "; + std::cout << std::setw(50) << std::left << "File Name"; + std::cout << std::setw(60) << std::left << "Test Name"; + std::cout << std::setw(10) << std::left << "Passed?"; + std::cout << std::endl; + std::cout << std::setw(4) << std::right << "--- "; + std::cout << std::setw(50) << std::left << "---------"; + std::cout << std::setw(60) << std::left << "---------"; + std::cout << std::setw(10) << std::left << "-------"; + std::cout << std::endl; + int counter = 0; + + std::list keyList; for (std::pair *> a : test) { - std::vector *tests = a.second; + keyList.push_back(a.first); + } + keyList.sort(); + for (std::string a : keyList) { + std::vector *tests = test[a]; ModSecurityTestResults res; - perform_unit_test(tests, &res); + perform_unit_test(tests, &res, &counter); test_log << res.log_raw_debug_log; }