aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorAlexSm <alex@ydb.tech>2024-01-09 18:56:40 +0100
committerGitHub <noreply@github.com>2024-01-09 18:56:40 +0100
commite95f266d2a3e48e62015220588a4fd73d5d5a5cb (patch)
treea8a784b6931fe52ad5f511cfef85af14e5f63991 /util
parent50a65e3b48a82d5b51f272664da389f2e0b0c99a (diff)
downloadydb-e95f266d2a3e48e62015220588a4fd73d5d5a5cb.tar.gz
Library import 6 (#888)
Diffstat (limited to 'util')
-rw-r--r--util/string/strspn_ut.cpp73
-rw-r--r--util/string/ut/ya.make1
-rw-r--r--util/thread/pool.cpp2
3 files changed, 75 insertions, 1 deletions
diff --git a/util/string/strspn_ut.cpp b/util/string/strspn_ut.cpp
new file mode 100644
index 0000000000..975374cba4
--- /dev/null
+++ b/util/string/strspn_ut.cpp
@@ -0,0 +1,73 @@
+#include "strspn.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+Y_UNIT_TEST_SUITE(TStrSpnTest) {
+ Y_UNIT_TEST(FindFirstOf) {
+ const TString s("some text!");
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("mos").FindFirstOf(s.begin(), s.end()), s.begin());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("mos").FindFirstOf(s.c_str()), s.begin());
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("xt").FindFirstOf(s.begin(), s.end()), s.begin() + 5);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("xt").FindFirstOf(s.c_str()), s.begin() + 5);
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn(".?!").FindFirstOf(s.begin(), s.end()), s.end() - 1);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn(".?!").FindFirstOf(s.c_str()), s.end() - 1);
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(s.begin(), s.end()), s.end());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(s.c_str()), s.end());
+
+ // Must be const. If not, non-const begin() will clone the shared empty string
+ // and the next assertion will possibly use invalidated end iterator.
+ const TString empty;
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(empty.begin(), empty.end()), empty.end());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(empty.c_str()), empty.end());
+ }
+
+ Y_UNIT_TEST(FindFirstNotOf) {
+ const TString s("abacabaxyz");
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("123").FindFirstNotOf(s.begin(), s.end()), s.begin());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("123").FindFirstNotOf(s.c_str()), s.begin());
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(s.begin(), s.end()), s.begin() + 7);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(s.c_str()), s.begin() + 7);
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxy").FindFirstNotOf(s.begin(), s.end()), s.end() - 1);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxy").FindFirstNotOf(s.c_str()), s.end() - 1);
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxyz").FindFirstNotOf(s.begin(), s.end()), s.end());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxyz").FindFirstNotOf(s.c_str()), s.end());
+
+ const TString empty;
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(empty.begin(), empty.end()), empty.end());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(empty.c_str()), empty.end());
+ }
+
+ Y_UNIT_TEST(FindFirstOfReverse) {
+ TStringBuf s("some text");
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("xt").FindFirstOf(s.rbegin(), s.rend()), s.rbegin());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("mos").FindFirstOf(s.rbegin(), s.rend()), s.rend() - 3);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("s").FindFirstOf(s.rbegin(), s.rend()), s.rend() - 1);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(s.rbegin(), s.rend()), s.rend());
+
+ TStringBuf empty;
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstOf(empty.rbegin(), empty.rend()), empty.rend());
+ }
+
+ Y_UNIT_TEST(FindFirstNotOfReverse) {
+ TStringBuf s("_abacabaxyz");
+
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(s.rbegin(), s.rend()), s.rbegin());
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("xyz").FindFirstNotOf(s.rbegin(), s.rend()), s.rbegin() + 3);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxyz").FindFirstNotOf(s.rbegin(), s.rend()), s.rend() - 1);
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abcxyz_").FindFirstNotOf(s.rbegin(), s.rend()), s.rend());
+
+ TStringBuf empty;
+ UNIT_ASSERT_EQUAL(TCompactStrSpn("abc").FindFirstNotOf(empty.rbegin(), empty.rend()), empty.rend());
+ }
+}
diff --git a/util/string/ut/ya.make b/util/string/ut/ya.make
index 7243176bfe..d3377a40a1 100644
--- a/util/string/ut/ya.make
+++ b/util/string/ut/ya.make
@@ -11,6 +11,7 @@ SRCS(
string/printf_ut.cpp
string/split_ut.cpp
string/strip_ut.cpp
+ string/strspn_ut.cpp
string/subst_ut.cpp
string/type_ut.cpp
string/util_ut.cpp
diff --git a/util/thread/pool.cpp b/util/thread/pool.cpp
index e312b6df47..a0d11e49fd 100644
--- a/util/thread/pool.cpp
+++ b/util/thread/pool.cpp
@@ -431,7 +431,7 @@ public:
, Free_(0)
, IdleTime_(TDuration::Max())
{
- sprintf(Name_, "[mtp queue %ld]", ++MtpQueueCounter);
+ snprintf(Name_, sizeof(Name_), "[mtp queue %ld]", ++MtpQueueCounter);
}
inline ~TImpl() {