Skip to content

Commit

Permalink
Use polymorphic allocator only when available
Browse files Browse the repository at this point in the history
Summary:
Run the tests with polymorphic allocator only when it is available
Enable mac CI for thrift/lib/cpp2/protocol

Reviewed By: vitaut

Differential Revision: D69184855

fbshipit-source-id: af02a9ee54b9fe7625962d921dc962bd600294ea
  • Loading branch information
yoney authored and facebook-github-bot committed Feb 5, 2025
1 parent 35e4744 commit 2d8e9fd
Showing 1 changed file with 29 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,20 +201,22 @@ TEST(DeserializeKnownLengthMapTest, EmplaceHintConstuctCountVec) {
/* destroyed */ 0}));
}

TEST(DeserializeKnownLengthMapTest, EmplaceHintConstuctCountVecAlloc) {
using Map =
folly::pmr::F14FastMap<TrackedKey, std::pmr::vector<TrackedValue>>;
TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCount) {
using Allocator = std::allocator<std::pair<const TrackedKey, TrackedValue>>;
using Map = MinimalMap<
TrackedKey,
TrackedValue,
TransparentTrackedKeyHash,
TransparentTrackedKeyEqual,
Allocator>;

static_assert(!detail::pm::sorted_unique_constructible_v<Map>);
static_assert(detail::pm::map_emplace_hint_is_invocable_v<Map>);
static_assert(detail::alloc_should_propagate_map<Map>);
static_assert(!detail::pm::map_emplace_hint_is_invocable_v<Map>);
static_assert(!detail::alloc_should_propagate_map<Map>);

Map map;
detail::pm::deserialize_known_length_map(
map,
1,
deserializeTrackedKey,
deserializeVecOfTrackedValues<std::pmr::vector<TrackedValue>>);
map, 1, deserializeTrackedKey, deserializeTrackedValue);

EXPECT_EQ(map.size(), 1);
EXPECT_EQ(
Expand All @@ -241,11 +243,12 @@ TEST(DeserializeKnownLengthMapTest, EmplaceHintConstuctCountVecAlloc) {
/* destroyed */ 0}));
}

TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCount) {
using Allocator = std::allocator<std::pair<const TrackedKey, TrackedValue>>;
TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCountVec) {
using Vec = std::vector<TrackedValue>;
using Allocator = std::allocator<std::pair<const TrackedKey, Vec>>;
using Map = MinimalMap<
TrackedKey,
TrackedValue,
Vec,
TransparentTrackedKeyHash,
TransparentTrackedKeyEqual,
Allocator>;
Expand All @@ -256,7 +259,7 @@ TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCount) {

Map map;
detail::pm::deserialize_known_length_map(
map, 1, deserializeTrackedKey, deserializeTrackedValue);
map, 1, deserializeTrackedKey, deserializeVecOfTrackedValues<Vec>);

EXPECT_EQ(map.size(), 1);
EXPECT_EQ(
Expand All @@ -283,24 +286,22 @@ TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCount) {
/* destroyed */ 0}));
}

TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCountVec) {
using Vec = std::vector<TrackedValue>;
using Allocator = std::allocator<std::pair<const TrackedKey, Vec>>;
using Map = MinimalMap<
TrackedKey,
Vec,
TransparentTrackedKeyHash,
TransparentTrackedKeyEqual,
Allocator>;
#if FOLLY_HAS_MEMORY_RESOURCE

TEST(DeserializeKnownLengthMapTest, EmplaceHintConstuctCountVecAlloc) {
using Map =
folly::pmr::F14FastMap<TrackedKey, std::pmr::vector<TrackedValue>>;

static_assert(!detail::pm::sorted_unique_constructible_v<Map>);
static_assert(!detail::pm::map_emplace_hint_is_invocable_v<Map>);
static_assert(!detail::alloc_should_propagate_map<Map>);
static_assert(detail::pm::map_emplace_hint_is_invocable_v<Map>);
static_assert(detail::alloc_should_propagate_map<Map>);

Map map;
detail::pm::deserialize_known_length_map(
map, 1, deserializeTrackedKey, deserializeVecOfTrackedValues<Vec>);

map,
1,
deserializeTrackedKey,
deserializeVecOfTrackedValues<std::pmr::vector<TrackedValue>>);
EXPECT_EQ(map.size(), 1);
EXPECT_EQ(
TrackedKey::counts(),
Expand Down Expand Up @@ -369,3 +370,5 @@ TEST(DeserializeKnownLengthMapTest, EmplaceConstuctCountVecAlloc) {
/* defaultConstruct */ 1,
/* destroyed */ 0}));
}

#endif

0 comments on commit 2d8e9fd

Please sign in to comment.