aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/deprecated/accessors/accessors_ut.cpp
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 /library/cpp/deprecated/accessors/accessors_ut.cpp
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/deprecated/accessors/accessors_ut.cpp')
-rw-r--r--library/cpp/deprecated/accessors/accessors_ut.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/library/cpp/deprecated/accessors/accessors_ut.cpp b/library/cpp/deprecated/accessors/accessors_ut.cpp
new file mode 100644
index 0000000000..a9bdc9fcc4
--- /dev/null
+++ b/library/cpp/deprecated/accessors/accessors_ut.cpp
@@ -0,0 +1,92 @@
+#include "accessors.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <util/generic/buffer.h>
+#include <util/generic/vector.h>
+
+#include <array>
+
+class TAccessorsTest: public TTestBase {
+ UNIT_TEST_SUITE(TAccessorsTest);
+ UNIT_TEST(TestAccessors);
+ UNIT_TEST_SUITE_END();
+
+private:
+ template <typename T>
+ void TestRead(const T& t, const char* comm) {
+ const char* beg = (const char*)NAccessors::Begin(t);
+ const char* end = (const char*)NAccessors::End(t);
+ long sz = NAccessors::Size(t) * sizeof(typename TMemoryTraits<T>::TElementType);
+
+ UNIT_ASSERT_VALUES_EQUAL_C(end - beg, sz, comm);
+ }
+
+ template <typename T>
+ void TestWrite(const char* comm) {
+ typename TMemoryTraits<T>::TElementType val[4] = {'t', 'e', 's', 't'};
+ T t;
+ NAccessors::Init(t);
+ NAccessors::Reserve(t, 6);
+
+ size_t sz = NAccessors::Size(t);
+ UNIT_ASSERT_VALUES_EQUAL_C(0u, sz, comm);
+
+ NAccessors::Append(t, 'a');
+ sz = NAccessors::Size(t);
+ UNIT_ASSERT_VALUES_EQUAL_C(1u, sz, comm);
+
+ NAccessors::Append(t, val, val + 4);
+ sz = NAccessors::Size(t);
+ UNIT_ASSERT_VALUES_EQUAL_C(5u, sz, comm);
+
+ NAccessors::Clear(t);
+
+ sz = NAccessors::Size(t);
+ UNIT_ASSERT_VALUES_EQUAL_C(0u, sz, comm);
+ }
+
+ void TestAccessors() {
+ TestRead('a', "char");
+ TestRead(1, "int");
+
+ int t[4] = {0, 1, 2, 3};
+
+ TestRead(t, "int[4]");
+
+ TStringBuf sbuf = "test";
+
+ TestRead(sbuf, "TStringBuf");
+
+ TUtf16String wtr;
+ wtr.resize(10, 1024);
+
+ TestRead(wtr, "TUtf16String");
+
+ TBuffer buf;
+ buf.Resize(30);
+
+ TestRead(buf, "TBuffer");
+
+ TVector<ui64> vec(10, 100);
+
+ TestRead(vec, "TVector<ui64>");
+
+ TestWrite<TString>("TString");
+ TestWrite<TVector<char>>("TVector<char>");
+ TestWrite<TBuffer>("TBuffer");
+ TestWrite<TVector<ui64>>("TVector<ui64>");
+ TestWrite<TUtf16String>("TUtf16String");
+
+ std::array<TString, 10> sarr;
+ NAccessors::Init(sarr);
+ NAccessors::Clear(sarr);
+
+ std::array<char, 10> carr;
+ NAccessors::Init(carr);
+ NAccessors::Clear(carr);
+ TestRead(carr, "std::array<char, 10>");
+ }
+};
+
+UNIT_TEST_SUITE_REGISTRATION(TAccessorsTest)