Add a basic test for prefix accel.

Change-Id: I6c8ac6d6d111c354303e02db0b948d65a07b00cc
Reviewed-on: https://code-review.googlesource.com/c/re2/+/56770
Reviewed-by: Paul Wankadia <junyer@google.com>
diff --git a/re2/testing/required_prefix_test.cc b/re2/testing/required_prefix_test.cc
index 67b94b6..2468ec2 100644
--- a/re2/testing/required_prefix_test.cc
+++ b/re2/testing/required_prefix_test.cc
@@ -6,6 +6,7 @@
 
 #include "util/test.h"
 #include "util/logging.h"
+#include "re2/prog.h"
 #include "re2/regexp.h"
 
 namespace re2 {
@@ -122,4 +123,23 @@
   }
 }
 
+TEST(PrefixAccel, BasicTest) {
+  Regexp* re = Regexp::Parse("abc\\d+", Regexp::LikePerl, NULL);
+  ASSERT_TRUE(re != NULL);
+  Prog* prog = re->CompileToProg(0);
+  ASSERT_TRUE(prog != NULL);
+  for (int i = 0; i < 100; i++) {
+    std::string text(i, 'a');
+    const char* p = reinterpret_cast<const char*>(
+        prog->PrefixAccel(text.data(), text.size()));
+    EXPECT_TRUE(p == NULL);
+    text.append("abc");
+    p = reinterpret_cast<const char*>(
+        prog->PrefixAccel(text.data(), text.size()));
+    EXPECT_EQ(i, p-text.data());
+  }
+  delete prog;
+  re->Decref();
+}
+
 }  // namespace re2