aboutsummaryrefslogtreecommitdiffstats
path: root/util/string/fuzzing
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /util/string/fuzzing
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'util/string/fuzzing')
-rw-r--r--util/string/fuzzing/collapse/main.cpp12
-rw-r--r--util/string/fuzzing/collapse/ya.make13
-rw-r--r--util/string/fuzzing/escape_c/main.cpp11
-rw-r--r--util/string/fuzzing/escape_c/ya.make13
-rw-r--r--util/string/fuzzing/strtod/main.cpp9
-rw-r--r--util/string/fuzzing/strtod/ya.make13
-rw-r--r--util/string/fuzzing/ya.make11
7 files changed, 82 insertions, 0 deletions
diff --git a/util/string/fuzzing/collapse/main.cpp b/util/string/fuzzing/collapse/main.cpp
new file mode 100644
index 0000000000..e7b09f0f55
--- /dev/null
+++ b/util/string/fuzzing/collapse/main.cpp
@@ -0,0 +1,12 @@
+#include <util/string/strip.h>
+#include <util/charset/wide.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const ui8* data, size_t size) {
+ TUtf16String w((const wchar16*)data, size / 2);
+ Collapse(w);
+
+ TString s((const char*)data, size);
+ CollapseInPlace(s);
+
+ return 0; // Non-zero return values are reserved for future use.
+}
diff --git a/util/string/fuzzing/collapse/ya.make b/util/string/fuzzing/collapse/ya.make
new file mode 100644
index 0000000000..b8614f6411
--- /dev/null
+++ b/util/string/fuzzing/collapse/ya.make
@@ -0,0 +1,13 @@
+FUZZ()
+
+OWNER(
+ pg
+ g:util
+)
+SUBSCRIBER(g:util-subscribers)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/util/string/fuzzing/escape_c/main.cpp b/util/string/fuzzing/escape_c/main.cpp
new file mode 100644
index 0000000000..742126416a
--- /dev/null
+++ b/util/string/fuzzing/escape_c/main.cpp
@@ -0,0 +1,11 @@
+#include <util/generic/string.h>
+#include <util/string/escape.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const ui8* const data, const size_t size) {
+ const TString src(reinterpret_cast<const char*>(data), size);
+ const auto escaped = EscapeC(src);
+ const auto dst = UnescapeC(escaped);
+
+ Y_VERIFY(src == dst);
+ return 0;
+}
diff --git a/util/string/fuzzing/escape_c/ya.make b/util/string/fuzzing/escape_c/ya.make
new file mode 100644
index 0000000000..61e64ac9de
--- /dev/null
+++ b/util/string/fuzzing/escape_c/ya.make
@@ -0,0 +1,13 @@
+OWNER(
+ yazevnul
+ g:util
+)
+SUBSCRIBER(g:util-subscribers)
+
+FUZZ()
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/util/string/fuzzing/strtod/main.cpp b/util/string/fuzzing/strtod/main.cpp
new file mode 100644
index 0000000000..50ea2a6afc
--- /dev/null
+++ b/util/string/fuzzing/strtod/main.cpp
@@ -0,0 +1,9 @@
+#include <util/string/cast.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const ui8* data, size_t size) {
+ double res;
+
+ TryFromString<double>((const char*)data, size, res);
+
+ return 0; // Non-zero return values are reserved for future use.
+}
diff --git a/util/string/fuzzing/strtod/ya.make b/util/string/fuzzing/strtod/ya.make
new file mode 100644
index 0000000000..b8614f6411
--- /dev/null
+++ b/util/string/fuzzing/strtod/ya.make
@@ -0,0 +1,13 @@
+FUZZ()
+
+OWNER(
+ pg
+ g:util
+)
+SUBSCRIBER(g:util-subscribers)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/util/string/fuzzing/ya.make b/util/string/fuzzing/ya.make
new file mode 100644
index 0000000000..617e0f2b1d
--- /dev/null
+++ b/util/string/fuzzing/ya.make
@@ -0,0 +1,11 @@
+OWNER(
+ g:util
+ pg
+)
+SUBSCRIBER(g:util-subscribers)
+
+RECURSE(
+ collapse
+ escape_c
+ strtod
+)