diff options
author | AlexSm <alex@ydb.tech> | 2024-01-09 18:56:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-09 18:56:40 +0100 |
commit | e95f266d2a3e48e62015220588a4fd73d5d5a5cb (patch) | |
tree | a8a784b6931fe52ad5f511cfef85af14e5f63991 /util | |
parent | 50a65e3b48a82d5b51f272664da389f2e0b0c99a (diff) | |
download | ydb-e95f266d2a3e48e62015220588a4fd73d5d5a5cb.tar.gz |
Library import 6 (#888)
Diffstat (limited to 'util')
-rw-r--r-- | util/string/strspn_ut.cpp | 73 | ||||
-rw-r--r-- | util/string/ut/ya.make | 1 | ||||
-rw-r--r-- | util/thread/pool.cpp | 2 |
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() { |