Commit Graph

366 Commits

Author SHA1 Message Date
alexX512
c9c26d4898 Fix review 2022-08-08 21:34:24 +00:00
alexX512
62f84b88eb Review fixes 2022-08-07 20:02:21 +00:00
alexX512
a057e1607a Fix remove operation, add evict ion i from cachef number of elements greater than max_elements_size 2022-08-07 19:59:39 +00:00
alexX512
9940b69bd7 Include fix in ICachePolicy.h 2022-08-07 19:59:38 +00:00
alexX512
6bf29cb610 Change class LRUCache to class CachBase. Check running CacheBase with default pcahce policy SLRU 2022-08-07 19:59:30 +00:00
alexX512
c606ccc75d Fix formatting problems 2022-08-07 19:16:40 +00:00
alexX512
1133e42367 Add CacheBase clas instead of LRUCache and SLRUCache fo simpler configuration oache policiesf 2022-08-07 19:16:40 +00:00
alexX512
a0d2da7261 Add tests for SLRU cache 2022-08-07 19:16:40 +00:00
kssenii
e5f4a619ed Merge master 2022-07-31 20:24:40 +03:00
Sergei Trifonov
edf6b02723
Merge pull request #37558 from ClickHouse/concurrency-control
add concurrency control for pipeline executors
2022-07-28 08:56:24 +02:00
HarryLeeIBM
d475086100 Fix wide integer unit test 2022-07-26 12:57:45 -07:00
Roman Vasin
b462366415 Merge branch 'master' of github.com:ClickHouse/ClickHouse into ADQM-485 2022-07-25 17:55:47 +00:00
Sergei Trifonov
d9d1381c3f Merge branch 'master' into concurrency-control 2022-07-25 14:16:46 +02:00
Azat Khuzhin
93f876b58a Add a test for LSan
(cherry picked from commit 51e7c41883)
v2: fix type check
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-25 01:21:40 +03:00
Roman Vasin
74d2bf8d95 Fix gTest for DateLUTTest 2022-07-22 07:49:02 +00:00
Alexey Milovidov
72dda35108
Revert "[RFC] Fix LSan by fixing getauxval()" 2022-07-21 04:34:04 +03:00
Azat Khuzhin
51e7c41883 Add a test for LSan
v2: fix type check
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-18 16:49:49 +03:00
kssenii
ca09c6c2c0 Fix some review comments, fix after merge 2022-07-16 23:30:54 +02:00
Roman Vasin
1d0818d9cf Set max year to 2299; Code cleanup; Make working 02245_make_datetime64 test 2022-07-15 10:33:52 +00:00
Roman Vasin
266039ea64 Correct gTests for DateLUT 2022-07-14 19:00:17 +00:00
Heena Bansal
76cbfedd2a
Merge branch 'master' into Issue_38498 2022-07-13 11:50:26 -04:00
mergify[bot]
48688da835
Merge branch 'master' into concurrency-control 2022-07-12 10:57:13 +00:00
HeenaBansal2009
d89ba2e5d9 Review Comments 2022-07-05 21:18:39 -07:00
HeenaBansal2009
608bfb8453 Fixed {..} regex parsing as shell does 2022-06-28 12:49:31 -07:00
Nikita Taranov
986ead7358 use old HashTableGrower with *WithStackMemory data structures 2022-06-27 20:34:18 +02:00
mergify[bot]
9688388be2
Merge branch 'master' into concurrency-control 2022-06-22 15:07:56 +00:00
Sergei Trifonov
dc59d208de unittest style/perf minor fixes 2022-06-21 18:38:51 +02:00
kssenii
500f49972b Extract diff from PR 36171 2022-06-15 16:40:18 +02:00
KinderRiven
5c27244eb3 fix unit_test 2022-06-09 21:50:09 +08:00
KinderRiven
de45f0a38c fix unit_test 2022-06-07 19:30:39 +08:00
KinderRiven
bfe5150154 better 2022-06-06 16:48:30 +08:00
KinderRiven
ae86f7ceaa fix 2022-06-06 00:00:59 +08:00
mergify[bot]
ba49c6bb46
Merge branch 'master' into memory-overcommit-improvement 2022-05-31 13:17:06 +00:00
Sergei Trifonov
1914f9fed7 fix typos 2022-05-31 08:17:09 +02:00
Sergei Trifonov
6bd874df48 add tests; fix bugs; make Allocation and ConcurrencyControl classes less tighly bounded 2022-05-30 17:43:25 +02:00
Dmitry Novik
60b9d81773 Remove global_memory_usage_overcommit_max_wait_microseconds 2022-05-27 16:30:29 +00:00
Dmitry Novik
e9187ec4b7 Overcommit: update defaults, exception message and add ProfileEvent 2022-05-23 14:35:09 +00:00
Robert Schulze
0f6715bd91
Follow-up to PR #37300: semicolon warnings
In PR #37300, Alexej asked why we the compiler does not warn about
unnecessary semicolons, e.g.

  f()
  {
  }; // <-- here

The answer is surprising: In C++98, above syntax was disallowed but by
most compilers accepted it regardless. C++>11 introduced "empty
declarations" which made the syntax legal.

The previous behavior can be restored using flag
-Wc++98-compat-extra-semi. This finds many useless semicolons which were
removed in this change. Unfortunately, there are also false positives
which would require #pragma-s and HAS_* logic (--> check_flags.cmake) to
suppress. In the end, -Wc++98-compat-extra-semi comes with extra effort
for little benefit. Therefore, this change only fixes some semicolons
but does not enable the flag.
2022-05-20 15:06:34 +02:00
kssenii
0db83d7002 Merge master 2022-05-07 11:52:25 +02:00
kssenii
23d9230acd Do not throw logical error for detached file segment 2022-05-06 12:48:16 +02:00
mergify[bot]
9ce436733f
Merge branch 'master' into fix-current-size-count-in-cache 2022-05-05 17:33:56 +00:00
kssenii
0117fd40a6 Review fixes 2022-05-05 17:39:36 +02:00
kssenii
e604677c85 Better 2022-05-04 22:52:01 +02:00
Dmitry Novik
9087ab0e11 Use free_continue_and_alloc_3_test 2022-05-04 00:41:15 +00:00
Dmitry Novik
455742ec7a Make unit tests stable 2022-05-03 13:20:57 +00:00
Dmitry Novik
2ed5a4013a
Revert "Revert "Memory overcommit: continue query execution if memory is available"" 2022-05-03 00:45:13 +02:00
alesapin
f0b7af0aa2
Revert "Memory overcommit: continue query execution if memory is available" 2022-05-03 00:36:50 +02:00
Dmitry Novik
71b6f89166
Merge pull request #35637 from ClickHouse/memory-overcommit-free
Memory overcommit: continue query execution if memory is available
2022-05-02 19:00:18 +02:00
Amos Bird
4a5e4274f0
base should not depend on Common 2022-04-29 10:26:35 +08:00
mergify[bot]
7571387a6e
Merge branch 'master' into memory-overcommit-free 2022-04-26 10:15:18 +00:00
alesapin
1fffa56f63 Merge branch 'master' into memory-overcommit-free 2022-04-25 20:21:08 +02:00
mergify[bot]
d2ac9b2223
Merge branch 'master' into to_start_of_five_minutes 2022-04-25 17:36:38 +00:00
taiyang-li
3751c69aaa fix code style 2022-04-22 15:38:19 +08:00
taiyang-li
6bcf24ae36 add test for range generator 2022-04-22 12:33:16 +08:00
Memo
39aadf0975 replaced toStartOfFiveMinute to toStartOfFiveMinutes 2022-04-22 10:49:59 +08:00
mergify[bot]
d5b2355944
Merge branch 'master' into memory-overcommit-free 2022-04-12 16:00:12 +00:00
Dmitry Novik
d9d2bf310d Fix test 2022-04-12 15:58:34 +00:00
Dmitry Novik
188e1a87bd Check if enough memory is actually freed within timeout 2022-04-12 12:52:35 +00:00
Dmitry Novik
9c20a492c8 Add unit tests 2022-04-12 09:46:26 +00:00
alesapin
8ec802bc62
Merge pull request #35475 from kssenii/remote-fs-cache-improvements
Allow to write remote fs cache on all write operations. Add `system.remote_filesystem_cache` table. Add `drop remote filesystem cache (<path>)` query. Add `system.remote_data_paths` table.
2022-04-08 12:06:26 +02:00
Alexey Milovidov
d9e5ca2119
Merge pull request #34394 from holadepo/last_day
Add toLastDayOfMonth function
2022-04-04 07:02:08 +03:00
kssenii
6c8e073a61 Merge master 2022-04-01 16:48:29 +02:00
alesapin
f2c6387a8d
Merge pull request #35381 from kssenii/remote-filesystem-cache-fixes
Cache fixes for high concurrency on corner cases
2022-04-01 10:48:31 +02:00
kssenii
ce9131f905 Fix unit test 2022-03-29 19:57:55 +02:00
kssenii
141c290344 Fix build 2022-03-25 18:31:15 +01:00
taiyang-li
8dbf1c60e7 merge master and fix conflict 2022-03-23 11:36:50 +08:00
kssenii
e5c870add2 Fix bug, fix unit tests 2022-03-21 20:00:52 +01:00
Robert Schulze
85ce4a9bea
Use C++14 aliases for some type traits 2022-03-11 15:54:29 +01:00
Kseniia Sumarokova
818459b9f0
Merge pull request #33717 from kssenii/local-cache-for-remote-fs
Local cache for remote filesystem
2022-03-11 07:23:10 +01:00
Nikita Mikhaylov
909a7309ca
Delete nodes with attributes remove or replace if they didn't merge (#35141) 2022-03-10 23:40:55 +01:00
alexey-milovidov
40dd7da309
Update gtest_DateLUTImpl.cpp 2022-03-10 22:29:56 +03:00
Miel Donkers
4a95e6d602
Parsing YAML config to XML leads to incorrect structures (#35135) 2022-03-10 13:09:48 +01:00
kssenii
6571c7faa0 Clean up code 2022-03-09 10:36:52 +01:00
taiyang-li
b4174b0bef merge master and fix conflicts 2022-03-08 11:39:25 +08:00
kssenii
d5952109fb Merge master 2022-03-02 18:15:25 +01:00
kssenii
2ce4d34964 Fix checks 2022-03-02 14:17:19 +01:00
HaiBo Li
2ea18b3085
Fix the bug that the toDatetime function overflows (#32898)
* Fixed overflow bug of the function toDatetime/toDate/toDate32/parseDateTimeBestEffort
2022-03-02 10:06:38 +03:00
kssenii
009e71e273 Fix tests 2022-02-21 11:43:03 +01:00
kssenii
6b60f7c57f Add limit for file segment size and split it if exceeds the limit 2022-02-19 18:59:22 +01:00
kssenii
acf9a092a9 Review fixes 2022-02-18 19:09:54 +01:00
Habibullah Oladepo
57ff05b6e6 Add new function toLastDayOfMonth 2022-02-08 23:48:44 +01:00
taiyang-li
b6132d490f merge master and solve conflict 2022-02-08 15:24:59 +08:00
kssenii
2e58733750 Merge master 2022-02-07 15:23:10 +01:00
Azat Khuzhin
d0d71180dd Add fmt::runtime in gtest_log
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-01 14:44:47 +03:00
kssenii
218a633fec Some fixes, more assertions and logging 2022-01-31 10:51:34 +03:00
lgbo-ustc
5f1969c6c5 fixed code styles 2022-01-29 09:46:00 +08:00
lgbo-ustc
7a3324b29a add expire() in PoolBase 2022-01-28 14:03:34 +08:00
kssenii
c91b86e220 Better 2022-01-26 21:56:08 +03:00
kssenii
898139acae Fix tests 2022-01-24 12:32:39 +03:00
taiyang-li
73def8b483 merge master and solve conflict 2022-01-24 11:01:43 +08:00
kssenii
cf49f41f75 Better 2022-01-23 19:51:18 +03:00
kssenii
690db142b9 Better 2022-01-23 02:12:33 +03:00
Kseniia Sumarokova
2c43e4eb57
Merge branch 'master' into local-cache-for-remote-fs 2022-01-22 22:53:55 +03:00
kssenii
1858f69f5a Make space reservation incremental 2022-01-21 18:39:34 +03:00
Maksim Kita
844eb4ccdc RangeHashedDictionary handle invalid intervals 2022-01-20 11:16:18 +00:00
kssenii
a566099759 Local cache for remote filesystem 2022-01-19 00:42:11 +03:00
Maksim Kita
60bcf88228 Added IntervalTree documentation 2022-01-18 13:20:43 +00:00
Maksim Kita
f311960b00 Added tests 2022-01-17 14:22:01 +00:00
taiyang-li
6567cd7abc fix all the stateless test 2022-01-13 15:27:41 +08:00
taiyang-li
6751c8552a merge master and resolve conflict 2022-01-11 15:21:56 +08:00
taiyang-li
d31871d253 commit again 2022-01-11 15:17:00 +08:00
msaf1980
780a1b2abe graphite: split tagged/plain rollup rules (for merges perfomance) 2022-01-10 16:34:16 +05:00
alexey-milovidov
6941b072f4
Merge pull request #33330 from cmsxbc/support-self-closing-tag-for-cluster-secure
support `<secure/>` in cluster configuration.
2021-12-31 14:36:19 +03:00
SuperDJY
4322fd4bdb
avoid underscore in gtest name 2021-12-31 10:19:03 +08:00
Kseniia Sumarokova
a703bcb0c5
Merge pull request #33098 from bigo-sg/lrucache
Add alternative LRUCache version
2021-12-30 23:10:28 +03:00
cmsxbc
c28fcd5a2f
support <secure/> for cluster 2021-12-30 23:51:05 +08:00
lgbo-ustc
e6528ca0ef fix a bug in LRUCache::remove() 2021-12-30 20:38:58 +08:00
lgbo-ustc
e8c9079bb8 rename test cases 2021-12-30 14:34:08 +08:00
lgbo-ustc
38605d6be3 rename test cases 2021-12-30 12:20:14 +08:00
lgbo-ustc
88383b6715 some change 2021-12-30 10:08:33 +08:00
lgbo-ustc
6b6a82f3b9 add MappedHolder to get cache values 2021-12-29 18:18:38 +08:00
lgbo-ustc
5a3b215f24 fixed code style 2021-12-29 16:00:57 +08:00
lgbo-ustc
0d474069b5 add a new test case 2021-12-29 15:38:58 +08:00
lgbo-ustc
5f85f77266 add a new test case 2021-12-29 15:34:20 +08:00
lgbo-ustc
59cbd76880 Add LRUResourceCache
1. add LRUResourceCache for managing resource cache in lru policy
2. rollback LRUCache to the original version
3. add remove() in LRUCache
4. add unit tests for LRUResourceCache and LRUCache
2021-12-29 15:25:33 +08:00
Alexey Milovidov
29d28c531f Move code around to avoid dlsym on Musl 2021-12-24 12:25:27 +03:00
Mikhail f. Shiryaev
03927f5fc6
Revert "graphite: split tagged/plain rollup rules (for merges perfomance)"
This reverts commit 303552f515.
2021-12-08 15:49:21 +01:00
msaf1980
303552f515
graphite: split tagged/plain rollup rules (for merges perfomance) 2021-12-06 16:49:08 +01:00
alesapin
b91b90d639 Fix test local address 2021-11-09 16:02:17 +03:00
Azat Khuzhin
3a6f876abc gtest_getMultipleValuesFromConfig: switch <yandex> to <clickhouse> 2021-10-26 08:53:00 +03:00
Mike Kot
585e6d53ff fix 2021-10-02 22:55:26 +02:00
Mike Kot
65e6e211b4 Merge remote-tracking branch 'upstream/master' into improvement/fn-traits 2021-10-02 21:37:50 +02:00
Mike Kot
5d38930a3c Fixing gcc build due to a bug in compiler 2021-10-02 14:27:52 +02:00
Alexey Milovidov
fe6b7c77c7 Rename "common" to "base" 2021-10-02 10:13:14 +03:00
Mike Kot
5e560ff9d7 fix 2021-10-01 16:55:01 +02:00
alexey-milovidov
ea13a8b562
Merge pull request #28659 from myrrc/improvement/tostring_to_magic_enum
Improving CH type system with concepts
2021-09-12 15:26:29 +03:00
Mike Kot
1f6fb3f6ea Fix gtest, add Decimal aliases, Typelist solution for bin arithm 2021-09-12 14:26:07 +02:00
alesapin
327bd44f23 Fix gtest 2021-09-04 15:46:41 +03:00
alesapin
65ff5fd052 Rewrite test 2021-09-03 17:57:29 +03:00
alesapin
497c225203 Test log level for CI 2021-09-03 13:07:40 +03:00
Maksim Kita
6ccdde4a88 Updated TableFunctionExecutable 2021-08-25 22:30:22 +03:00
Alexey Milovidov
60dccce818 Remove trailing zeros from Decimal serialization #15794 2021-08-15 08:29:31 +03:00
Azat Khuzhin
b5a2fad993 More generic VersionNumber 2021-06-14 10:38:26 +03:00
Azat Khuzhin
1b5ca07ff4 Convert VersionNumber::fromString() to constructor 2021-06-14 10:38:26 +03:00
Azat Khuzhin
ba05bf3977 Use LOGICAL_ERROR instead of introducing BAD_VERSION
But note, that tests with EXPECT_EXIT() does not work with --gtest_filter:

a) only this test is included into unit_tests_dbms

   $ src/unit_tests_dbms --gtest_filter=VersionNumber*
   Running main() from ../contrib/googletest/googletest/src/gtest_main.cc
   Note: Google Test filter = VersionNumber*
   [==========] Running 2 tests from 1 test suite.
   [----------] Global test environment set-up.
   [----------] 2 tests from VersionNumber
   [ RUN      ] VersionNumber.VersionNumber
   [       OK ] VersionNumber.VersionNumber (0 ms)
   [ RUN      ] VersionNumber.fromString
   Segmentation fault (core dumped)

   (gdb) bt
   0  0x00007fffda323d22 in raise () from /usr/lib/libc.so.6
   1  0x00007fffda30d862 in abort () from /usr/lib/libc.so.6
   2  0x00007fffdbe686f5 in DB::handle_error_code (msg=..., code=49, remote=false, trace=...) at Exception.cpp:49
   3  0x00007fffdbe68846 in DB::Exception::Exception (this=0x7fffd5c5a240, msg=..., code=49, remote_=false) at Exception.cpp:60
   4  0x00007fffe26b2cb3 in DB::Exception::Exception<unsigned long> (this=0x7fffd5c5a240, code=49, fmt=..., args=@0x7fffffffc7e8: 4) at Exception.h:40
   5  0x00007fffdbf4d201 in DB::VersionNumber::VersionNumber (this=0x7fffffffcc20, vec=...) at VersionNumber.cpp:17
   6  0x00007fffdbf4d650 in DB::VersionNumber::fromString (version=..., strict=true) at VersionNumber.cpp:57
   7  0x00005555555db53d in VersionNumber_fromString_Test::TestBody (this=0x7fffd5c12330) at gtest_version_number.cpp:24

b) regular build

   $ src/unit_tests_dbms --gtest_filter=VersionNumber*
   Running main() from ../contrib/googletest/googletest/src/gtest_main.cc
   Note: Google Test filter = VersionNumber*
   [==========] Running 2 tests from 1 test suite.
   [----------] Global test environment set-up.
   [----------] 2 tests from VersionNumber
   [ RUN      ] VersionNumber.VersionNumber
   [       OK ] VersionNumber.VersionNumber (0 ms)
   [ RUN      ] VersionNumber.fromString
   [       OK ] VersionNumber.fromString (495 ms)
   [----------] 2 tests from VersionNumber (495 ms total)

   [----------] Global test environment tear-down
   Segmentation fault (core dumped)

   (gdb) bt
   0  testing::TestInfo::should_run (this=0xe0) at gtest.h:760
   1  0x00007ffff7f6edd5 in testing::TestSuite::ShouldRunTest (test_info=0xe0) at gtest.h:1009
   2  0x00007ffff7f6ebb2 in testing::internal::CountIf<std::__1::vector<testing::TestInfo*, std::__1::allocator<testing::TestInfo*> >, bool (*)(testing::TestInfo const*)> (c=..., predicate=0x7ffff7f6edc0 <testing::TestSuite::ShouldRunTest(testing::TestInfo const*)>)
      at gtest-internal-inl.h:294
   3  0x00007ffff7f41ae5 in testing::TestSuite::test_to_run_count (this=0x7fffd5028500) at gtest.cc:2919
   4  0x00007ffff7f41719 in testing::internal::SumOverTestSuiteList (case_list=..., method=(int (testing::TestSuite::*)(const testing::TestSuite * const)) 0x7ffff7f41ac0 <testing::TestSuite::test_to_run_count() const>) at gtest.cc:377
   5  0x00007ffff7f41ab9 in testing::internal::UnitTestImpl::test_to_run_count (this=0x7fffd5d5c000) at gtest.cc:1012
   6  0x00007ffff7f4b59d in testing::UnitTest::test_to_run_count (this=0x7ffff7fbcb80 <testing::UnitTest::GetInstance()::instance>) at gtest.cc:5059
   7  0x00007ffff7f4c4ed in testing::internal::PrettyUnitTestResultPrinter::OnTestIterationEnd (this=0x7fffd5ca4a68, unit_test=...) at gtest.cc:3589
   8  0x00007ffff7f4daf9 in testing::internal::TestEventRepeater::OnTestIterationEnd (this=0x7fffd5c83770, unit_test=..., iteration=0) at gtest.cc:3852
   9  0x00007ffff7f57570 in testing::internal::UnitTestImpl::RunAllTests (this=0x7fffd5d5c000) at gtest.cc:5737
   10 0x00007ffff7fa3a84 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x7fffd5d5c000,
      method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x7ffff7f56f20 <testing::internal::UnitTestImpl::RunAllTests()>, location=0x7ffff7f11d9b "auxiliary test code (environments or event listeners)") at gtest.cc:2589
   11 0x00007ffff7f71788 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x7fffd5d5c000,
      method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x7ffff7f56f20 <testing::internal::UnitTestImpl::RunAllTests()>, location=0x7ffff7f11d9b "auxiliary test code (environments or event listeners)") at gtest.cc:2625
   12 0x00007ffff7f56ea3 in testing::UnitTest::Run (this=0x7ffff7fbcb80 <testing::UnitTest::GetInstance()::instance>) at gtest.cc:5291
2021-06-14 10:38:26 +03:00
Azat Khuzhin
c08daa3ca5 Detect linux version at runtime (for worked nested epoll)
The #22109 adds the check but at compilation time, which is pointless,
move the check into runtime.

Remember nested epoll is required for
async_socket_for_remote/use_hedged_requests, otherwise remote queries
may stuck.
2021-06-14 10:38:26 +03:00
Nikolai Kochetov
c2aaa29a17 Fix build. 2021-05-31 19:07:45 +03:00
Alexey Milovidov
d32819f068 Mark false positives for PVS-Studio 2021-05-24 06:59:12 +03:00
alexey-milovidov
7ae047a721
Update gtest_local_address.cpp 2021-05-21 08:22:08 +03:00
Alexey Milovidov
87a7133659 Add a test and fix the code 2021-05-21 08:19:08 +03:00
Maksim Kita
bbd53196e7 PODArray insert in the middle tests 2021-05-20 13:24:50 +03:00
alexey-milovidov
57348632dc
Merge pull request #24196 from Algunenano/gcc11_compat
Gcc11 compatibility
2021-05-19 22:20:22 +03:00
alesapin
2b62ce9044 Add smoke test for local address 2021-05-18 11:35:51 +03:00
Raúl Marín
c312121ced gtest_sensitive_data_masker: Adapt error output after re2 update 2021-05-17 19:38:23 +02:00
Alexey Milovidov
f4db7b63b4 Fix error 2021-05-09 23:13:19 +03:00
Alexey Milovidov
e9c7aa5ab5 Remove some code 2021-05-08 17:12:26 +03:00
Alexey Milovidov
ca18f8bef1 Fix division of big integers; add a test 2021-05-08 00:47:23 +03:00
Alexey Milovidov
7443e660ea Remove unused headers 2021-05-07 20:13:00 +03:00
Alexey Milovidov
9db3cd57bb Supposedly fix error with shifts; add a test 2021-05-07 20:12:14 +03:00
Alexey Milovidov
df0d6a8d24 Fix error; add a test 2021-05-07 01:37:23 +03:00