summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tdlib/td/test/fuzz_url.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tdlib/td/test/fuzz_url.cpp')
-rw-r--r--protocols/Telegram/tdlib/td/test/fuzz_url.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/protocols/Telegram/tdlib/td/test/fuzz_url.cpp b/protocols/Telegram/tdlib/td/test/fuzz_url.cpp
new file mode 100644
index 0000000000..74047135c0
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/test/fuzz_url.cpp
@@ -0,0 +1,33 @@
+//
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+#include "td/telegram/MessageEntity.h"
+
+#include "td/utils/common.h"
+#include "td/utils/logging.h"
+#include "td/utils/Slice.h"
+
+#include <cstddef>
+#include <cstdint>
+
+static td::string get_utf_string(td::Slice from) {
+ td::string res;
+ td::string alph = " ab@./01#";
+ for (auto c : from) {
+ res += alph[td::uint8(c) % alph.size()];
+ }
+ LOG(ERROR) << res;
+ return res;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(std::uint8_t *data, std::size_t data_size) {
+ td::find_urls(get_utf_string(td::Slice(data, data_size)));
+ //td::find_hashtags(get_utf_string(td::Slice(data, data_size)));
+ //td::find_bot_commands(get_utf_string(td::Slice(data, data_size)));
+ //td::is_email_address(get_utf_string(td::Slice(data, data_size)));
+ //td::find_mentions(get_utf_string(td::Slice(data, data_size)));
+ return 0;
+}