diff options
author | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-11-12 16:53:25 +0000 |
---|---|---|
committer | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-11-12 16:53:25 +0000 |
commit | 68565d28dbbdfa6d073328347815306dd96b37a6 (patch) | |
tree | 47ec4db1f1fdd0e9eebc99e80e964421556d7991 /pcrecpp_unittest.cc | |
parent | 9c74abda0f1247b4d108930b1a396161cf7a9cb6 (diff) | |
download | pcre-68565d28dbbdfa6d073328347815306dd96b37a6.tar.gz |
Apply Craig's patch, which makes it possible to "ignore" values in parens
when parsing an RE using the c++ wrapper.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@263 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcrecpp_unittest.cc')
-rw-r--r-- | pcrecpp_unittest.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pcrecpp_unittest.cc b/pcrecpp_unittest.cc index 463a11c..90351bf 100644 --- a/pcrecpp_unittest.cc +++ b/pcrecpp_unittest.cc @@ -857,6 +857,22 @@ int main(int argc, char** argv) { CHECK_EQ(s, string("ruby")); CHECK_EQ(i, 1234); + // Ignore non-void* NULL arg + CHECK(RE("he(.*)lo").FullMatch("hello", (char*)NULL)); + CHECK(RE("h(.*)o").FullMatch("hello", (string*)NULL)); + CHECK(RE("h(.*)o").FullMatch("hello", (StringPiece*)NULL)); + CHECK(RE("(.*)").FullMatch("1234", (int*)NULL)); + CHECK(RE("(.*)").FullMatch("1234567890123456", (long long*)NULL)); + CHECK(RE("(.*)").FullMatch("123.4567890123456", (double*)NULL)); + CHECK(RE("(.*)").FullMatch("123.4567890123456", (float*)NULL)); + + // Fail on non-void* NULL arg if the match doesn't parse for the given type. + CHECK(!RE("h(.*)lo").FullMatch("hello", &s, (char*)NULL)); + CHECK(!RE("(.*)").FullMatch("hello", (int*)NULL)); + CHECK(!RE("(.*)").FullMatch("1234567890123456", (int*)NULL)); + CHECK(!RE("(.*)").FullMatch("hello", (double*)NULL)); + CHECK(!RE("(.*)").FullMatch("hello", (float*)NULL)); + // Ignored arg CHECK(RE("(\\w+)(:)(\\d+)").FullMatch("ruby:1234", &s, (void*)NULL, &i)); CHECK_EQ(s, string("ruby")); |