You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2018/07/14 21:26:59 UTC
[trafficserver] branch master updated: Test: Convert test_Regex.cc
to Catch.
This is an automated email from the ASF dual-hosted git repository.
amc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new a9157d5 Test: Convert test_Regex.cc to Catch.
a9157d5 is described below
commit a9157d575af35a5e79a53a27b740cae667ffb32c
Author: Alan M. Carroll <am...@apache.org>
AuthorDate: Fri Jul 13 22:01:36 2018 -0500
Test: Convert test_Regex.cc to Catch.
---
CMakeLists.txt | 2 +-
lib/ts/Makefile.am | 2 +-
lib/ts/{ => unit-tests}/test_Regex.cc | 35 ++++++++++++++++-------------------
3 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2ae9ce3..e3f6b47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1137,7 +1137,6 @@ add_library(libtsutil SHARED
lib/ts/test_Map.cc
lib/ts/test_PriorityQueue.cc
lib/ts/test_Ptr.cc
- lib/ts/test_Regex.cc
lib/ts/test_Vec.cc
lib/ts/test_X509HostnameValidator.cc
lib/ts/TestBox.h
@@ -1168,6 +1167,7 @@ add_executable(test_tslib
lib/ts/unit-tests/test_MemArena.cc
lib/ts/unit-tests/test_MemSpan.cc
lib/ts/unit-tests/test_MT_hashtable.cc
+ lib/ts/unit-tests/test_Regex.cc
lib/ts/unit-tests/test_Scalar.cc
lib/ts/unit-tests/test_scoped_resource.cc
lib/ts/unit-tests/test_TextView.cc
diff --git a/lib/ts/Makefile.am b/lib/ts/Makefile.am
index 4b9d0be..dd30801 100644
--- a/lib/ts/Makefile.am
+++ b/lib/ts/Makefile.am
@@ -256,7 +256,6 @@ test_tsutil_SOURCES = \
test_History.cc \
test_PriorityQueue.cc \
test_Ptr.cc \
- test_Regex.cc \
tests.cc
test_tslib_CPPFLAGS = $(AM_CPPFLAGS)\
@@ -278,6 +277,7 @@ test_tslib_SOURCES = \
unit-tests/test_MemSpan.cc \
unit-tests/test_MemArena.cc \
unit-tests/test_MT_hashtable.cc \
+ unit-tests/test_Regex.cc \
unit-tests/test_Scalar.cc \
unit-tests/test_scoped_resource.cc \
unit-tests/test_TextView.cc
diff --git a/lib/ts/test_Regex.cc b/lib/ts/unit-tests/test_Regex.cc
similarity index 53%
rename from lib/ts/test_Regex.cc
rename to lib/ts/unit-tests/test_Regex.cc
index c5b279b..a4bacfa 100644
--- a/lib/ts/test_Regex.cc
+++ b/lib/ts/unit-tests/test_Regex.cc
@@ -1,4 +1,5 @@
-/*
+/**
+ @file Test for Regex.cc
@section license License
@@ -19,39 +20,35 @@
limitations under the License.
*/
+#include <array>
+#include <string_view>
+
#include "ts/ink_assert.h"
#include "ts/ink_defs.h"
#include "ts/Regex.h"
-#include "ts/TestBox.h"
+#include "catch.hpp"
typedef struct {
- char subject[100];
+ std::string_view subject;
bool match;
} subject_match_t;
typedef struct {
- char regex[100];
- subject_match_t tests[4];
+ std::string_view regex;
+ std::array<subject_match_t, 4> tests;
} test_t;
-static const test_t test_data[] = {
- {"^foo", {{"foo", true}, {"bar", false}, {"foobar", true}, {"foobarbaz", true}}},
- {"foo$", {{"foo", true}, {"bar", false}, {"foobar", false}, {"foobarbaz", false}}},
-};
+std::array<test_t, 2> test_data{{{{"^foo"}, {{{{"foo"}, true}, {{"bar"}, false}, {{"foobar"}, true}, {{"foobarbaz"}, true}}}},
+ {{"foo$"}, {{{{"foo"}, true}, {{"bar"}, false}, {{"foobar"}, false}, {{"foobarbaz"}, false}}}}}};
-REGRESSION_TEST(Regex_basic)(RegressionTest *t, int /* atype ATS_UNUSED */, int *pstatus)
+TEST_CASE("Regex", "[libts][Regex]")
{
- TestBox box(t, pstatus, REGRESSION_TEST_PASSED);
-
- for (unsigned int i = 0; i < countof(test_data); i++) {
+ for (auto &item : test_data) {
Regex r;
+ r.compile(item.regex.data());
- rprintf(t, "Regex: %s\n", test_data[i].regex);
- r.compile(test_data[i].regex);
-
- for (unsigned int j = 0; j < countof(test_data[i].tests); j++) {
- box.check(r.exec(test_data[i].tests[j].subject) == test_data[i].tests[j].match, "Subject: %s Result: %s\n",
- test_data[i].tests[j].subject, test_data[i].tests[j].match ? "true" : "false");
+ for (auto &test : item.tests) {
+ REQUIRE(r.exec(test.subject.data()) == test.match);
}
}
}