diff options
author | nigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-02-24 21:41:42 +0000 |
---|---|---|
committer | nigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-02-24 21:41:42 +0000 |
commit | 876a1a775acdc16384b603754a67010ca8e80cda (patch) | |
tree | e9b25e0bf3c35e0455cdffef8f42cb72ca3c31f3 /pcre_scanner_unittest.cc | |
parent | 78d9c9e331dc39ca5131981dd347b7b3aeca459f (diff) | |
download | pcre-876a1a775acdc16384b603754a67010ca8e80cda.tar.gz |
Load pcre-7.0 into code/trunk.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@93 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcre_scanner_unittest.cc')
-rw-r--r-- | pcre_scanner_unittest.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/pcre_scanner_unittest.cc b/pcre_scanner_unittest.cc index 756823c..d939fed 100644 --- a/pcre_scanner_unittest.cc +++ b/pcre_scanner_unittest.cc @@ -33,10 +33,13 @@ // functionality. #include <stdio.h> +#include <string> #include <vector> #include <pcre_stringpiece.h> #include <pcre_scanner.h> +#define FLAGS_unittest_stack_size 49152 + // Dies with a fatal error if the two values are not equal. #define CHECK_EQ(a, b) do { \ if ( (a) != (b) ) { \ @@ -116,8 +119,31 @@ static void TestScanner() { comments.resize(0); } +static void TestBigComment() { + string input; + for (int i = 0; i < 1024; ++i) { + char buf[1024]; + snprintf(buf, sizeof(buf), " # Comment %d\n", i); + input += buf; + } + input += "name = value;\n"; + + Scanner s(input.c_str()); + s.SetSkipExpression("\\s+|#.*\n"); + + string name; + string value; + s.Consume("(\\w+) = (\\w+);", &name, &value); + CHECK_EQ(name, "name"); + CHECK_EQ(value, "value"); +} + +// TODO: also test scanner and big-comment in a thread with a +// small stack size + int main(int argc, char** argv) { TestScanner(); + TestBigComment(); // Done printf("OK\n"); |