summaryrefslogtreecommitdiff
path: root/pcre_scanner_unittest.cc
diff options
context:
space:
mode:
authornigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-02-24 21:41:42 +0000
committernigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-02-24 21:41:42 +0000
commit876a1a775acdc16384b603754a67010ca8e80cda (patch)
treee9b25e0bf3c35e0455cdffef8f42cb72ca3c31f3 /pcre_scanner_unittest.cc
parent78d9c9e331dc39ca5131981dd347b7b3aeca459f (diff)
downloadpcre-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.cc26
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");