143 Commits

Author SHA1 Message Date
joaquintides
cd9a592f00
Fixed std::initializer_list assignment issues for open-addressing containers (#277)
* fixed #276

* used range insert, stylistic this->

* assigned non-empty std::initializer_lists
2024-09-02 18:56:13 +02:00
joaquintides
f734e399e3
Feature/concurrent node containers (#271)
* added concurrent node containers

* removed spurious typename

* added missing includes

* avoided unused param warning

* worked around Clang bug

* s/{}/() to work around GCC4.8 problems with aggregate initialization

* used /bigobj for cfoa/visit_tests.cpp

* suppressed localized maybe-uninitialized warnings

* fixed comments

* added /bigobj to cfoa/insert_tests.cpp

* instrumented double exact comparison to spot a spurious error

* fixed pedantic error

* refactored byte_span machinery

* compromised on sub-epsilon equality for doubles that should be identical

* documented boost::concurrent_node_(map|set)

* added concurrent_node_set

* added missing AlternativeType

* tested empty node insertion

* tested node_handle allocator management

* added nonassignable_allocator and node_handle_allocator_swap_tests

* fixed warning disabling

* silenced spurious GCC warning

* broadened scope of previous pragma

* broadened even more

* worked around spurious constexpr-related msvc-14.0 bug
https://godbolt.org/z/v78545Ebf

* added workaround back

* replaced previous workaround with built-in one

* added workaround back on top of built-in solution (which doesn't work 100% of the time)
2024-08-25 18:34:58 +02:00
joaquintides
1d1f0d306d
Feature/nonconst set visit (#265)
* Made some boost::concurrent_flat_set operations exclusive-locked

* unnamed unused args

* fixed PR number

* replaced homemade mechanism with boost::compat::latch
2024-07-16 19:50:08 +02:00
joaquintides
e3818afd45
test interprocess concurrency (#258)
* added cfoa_interprocess_concurrency_tests

* avoided C++14 digit separators

* stopped using exit codes to pass numerical info to parent

* Reorder includes to make msvc-14.0 happy

* made cumulative_stats interprocess concurrency safe

* disabled interprocess_concurrency_tests for Clang 3.5-8
(Boost.Process compile error)

* made test names shorter for the benefit of MINGW32

---------

Co-authored-by: Peter Dimov <pdimov@gmail.com>
2024-06-22 09:13:30 +02:00
joaquintides
6215406c02 added tests for stats feature 2024-05-01 18:15:14 +02:00
Braden Ganetsky
82ba55e4a4 Write test pmr_emplace_erase to check basic functionality with pmr allocators 2024-03-24 12:22:44 -05:00
joaquintides
15cfef6967
Fixed support for allocators with explicit copy constructors (#234)
* added tests for explicit allocators

* made explicit_alloc_ctor_tests work
by adhering to the principle that classes templated with Allocator should accept exactly Allocator objects

* removed TMP machinery older compilers choke about

* initialized variables

* updated release notes

* fixed PR number
2024-02-17 18:58:48 +01:00
Braden Ganetsky
1d25c1c053 Update copyright notices 2024-02-11 11:22:28 -06:00
Braden Ganetsky
260418e4ee Fix cfoa tests 2024-02-11 11:22:28 -06:00
Braden Ganetsky
bd5c9fc740 Add cfoa tests for emplace(k,v) 2024-02-11 11:22:27 -06:00
Braden Ganetsky
67c5cdb3a6
Optimize emplace() for exactly a value_type or init_type argument (#227)
* Add structs to count special member functions

* Add failing emplace tests, that will pass after making the optimization

* Optimize emplace() to not allocate when we already have a value_type or init_type

* Fix newly failing cfoa tests
2023-12-31 18:56:14 +01:00
joaquintides
75a94781d5
Fix/b2 5.0.0 (#228)
updated CI after b2 5.0.0 new requirements on the compiler used for self-build
2023-12-30 22:11:11 +01:00
joaquintides
76185abe80
extended workaround to GCC 4.9 2023-12-30 19:41:13 +01:00
joaquintides
8ee48fe909
Feature/bulk visit (#217) 2023-10-11 12:50:28 +02:00
Christian Mazakas
7aac692162 Replace all usages of boost::addressof with their std counterpart 2023-09-27 13:03:15 -07:00
joaquintides
6b65c8f230
fixed assignment bug with POCXA, fancy, unequal allocators (#214) 2023-09-26 20:08:13 +02:00
joaquintides
44582ecbb9 removed unused typedefs 2023-09-16 10:18:36 +02:00
joaquintides
d5d6a18298 removed unused utilities 2023-09-16 10:15:36 +02:00
joaquintides
88f8228079 tested concurrent_flat_set 2023-09-16 10:15:36 +02:00
joaquintides
31c3ce97de avoided sign-conversion warning 2023-09-16 10:15:36 +02:00
joaquintides
651f209e20 shut down VS warning 2023-09-16 10:15:36 +02:00
joaquintides
d9d4ff1676 removed unused typedef 2023-09-16 10:15:36 +02:00
joaquintides
2ce456768d completed concurrent_flat_set testing 2023-09-16 10:15:36 +02:00
joaquintides
65d4a9cafa fixed try_emplace tests after (value|init)_type_generator removal in helpers.hpp 2023-09-16 10:15:36 +02:00
joaquintides
8d2a5c25ea tested boost::concurrent_flat_set 2023-09-16 10:15:05 +02:00
Christian Mazakas
1dc1962b8c Update cfoa's assign tests to cover fancy and plain pointers for flat_map<-> concurrent interop 2023-09-15 09:50:33 -07:00
Christian Mazakas
4d6ebc7eb3 Update test fancy pointers to be Nullable, add rebind alias template 2023-08-30 09:56:28 -07:00
joaquintides
9d897faece added cfoa_serialization_tests 2023-08-17 10:21:54 +02:00
joaquintides
66222eee6a
Merge branch 'develop' into feature/detect_reentrancy 2023-08-12 09:54:22 +02:00
Christian Mazakas
4918bb6b7e Add tests for interop assignment 2023-08-11 12:35:44 -07:00
Christian Mazakas
ce076782fd Add tests for interop constructors 2023-08-11 12:35:44 -07:00
Christian Mazakas
a22c133c3d Add tests for visit_while 2023-07-26 10:14:11 -07:00
joaquintides
f919ce532a repositioned LCOV annotations 2023-07-26 16:50:25 +02:00
joaquintides
30187f7743 excluded code from coverage analysis 2023-07-26 12:47:31 +02:00
joaquintides
dd30162c9e simplified reentrancy check config 2023-07-25 09:18:53 +02:00
joaquintides
f965298154 added reentrancy checking 2023-07-24 18:29:30 +02:00
Peter Dimov
3fc18d56ac Remove latch_tests.cpp 2023-06-26 16:13:20 +03:00
Peter Dimov
6bcf457b46 Use boost::compat::latch 2023-06-26 10:32:52 +03:00
Peter Dimov
fcb3f0e82a Decrease iterations in rw_spinlock_test8 to avoid timeouts 2023-06-26 02:42:12 +03:00
Peter Dimov
1e4deb10a1 Add rw_spinlock tests 2023-06-25 19:03:02 +03:00
joaquintides
0440cd3183 widened previous workaround 2023-06-17 09:37:17 +02:00
Christian Mazakas
3a3148cc16 Add workaround for gcc-5.4 deficiencies in copy elision and new() construction 2023-06-16 14:16:26 -07:00
Christian Mazakas
ac5a99da31 Add max_size() impl 2023-06-15 22:15:57 -07:00
Christian Mazakas
c51c06492a Update iterator range insert to use emplace() vs insert() to avoid copies in certain cases 2023-06-15 22:15:57 -07:00
Christian Mazakas
f89a31849c Fix workaround for cfoa_fwd_tests 2023-06-06 08:27:55 -07:00
Christian Mazakas
ec945810eb Remove problematic test from clang-3.7 runner 2023-06-05 15:56:06 -07:00
Christian Mazakas
44c50cd2ea Resolve potential ambiguities during insertion by introducing a member function template 2023-06-01 14:19:14 -07:00
Christian Mazakas
e7c1e1a56e Clean up raii count checkers to avoid extraneous assertions 2023-06-01 14:18:54 -07:00
Christian Mazakas
51520de04b Add allocator using fancy pointers to insert_tests 2023-05-31 07:30:37 -07:00
Christian Mazakas
fdedb6c957 Add merge exceptions tests for cfoa 2023-05-30 09:19:50 -07:00