oss-fuzz/projects/ampproject/fuzz_patch.diff

57 lines
1.7 KiB
Diff
Raw Normal View History

diff --git a/validator/WORKSPACE b/validator/WORKSPACE
index 6c84b0df12..71b0c4f670 100644
--- a/validator/WORKSPACE
+++ b/validator/WORKSPACE
@@ -39,6 +39,13 @@ http_archive(
urls = ["https://github.com/google/re2/archive/d826d9fcb68c62996c1b7c0a45d604e22d814952.zip"],
)
+http_archive(
+ name = "com_google_fuzztest",
+ sha256 = "c75f224b34c3c62ee901381fb743f6326f7b91caae0ceb8fe62f3fd36f187627",
+ strip_prefix = "fuzztest-58b4e7065924f1a284952b84ea827ce35a87e4dc",
+ urls = ["https://github.com/google/fuzztest/archive/58b4e7065924f1a284952b84ea827ce35a87e4dc.zip"],
+)
+
# rules_cc defines rules for generating C++ code from Protocol Buffers.
http_archive(
name = "rules_cc",
diff --git a/validator/cpp/htmlparser/BUILD b/validator/cpp/htmlparser/BUILD
index 78de292015..84fe1cc250 100644
--- a/validator/cpp/htmlparser/BUILD
+++ b/validator/cpp/htmlparser/BUILD
@@ -372,6 +372,17 @@ cc_test(
],
)
+cc_test(
+ name = "parser_fuzz_test",
+ srcs = ["parser_fuzz_test.cc"],
+ deps = [
+ ":parser",
+ "@com_google_fuzztest//fuzztest",
+ "@com_google_fuzztest//fuzztest:fuzztest_gtest_main",
+ "@com_google_googletest//:gtest_main",
+ ],
+)
+
# Renders a node tree to html string.
cc_library(
name = "renderer",
diff --git a/validator/cpp/htmlparser/parser_fuzz_test.cc b/validator/cpp/htmlparser/parser_fuzz_test.cc
new file mode 100644
index 0000000000..2ad7194c22
--- /dev/null
+++ b/validator/cpp/htmlparser/parser_fuzz_test.cc
@@ -0,0 +1,10 @@
+#include "cpp/htmlparser/parser.h"
+
+#include "fuzztest/fuzztest.h"
+
+void FuzzParser(std::string raw_html) {
+ htmlparser::Parser parser(raw_html);
+ parser.Parse();
+}
+
+FUZZ_TEST(CC_FUZZING, FuzzParser);