Skip to content

Commit

Permalink
Fix issue in nda_mem test
Browse files Browse the repository at this point in the history
  • Loading branch information
Thoemi09 authored Sep 27, 2024
1 parent 8590b00 commit bc64cd8
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions test/c++/nda_mem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -301,14 +301,20 @@ TEST(NDA, MemoryMultiBucketAllocator) {
bucket2[0] = allo.allocate_zero(chunksize);
EXPECT_EQ(allo.buckets().size(), 2);
EXPECT_TRUE(allo.owns(bucket2[0]));
EXPECT_TRUE(allo.buckets()[1].owns(bucket2[0]));
// The new bucket may be first inside allo.buckets(),
// as it respects memory ordering. Let's get the indeces
std::size_t first_bucket_idx = allo.buckets()[1].owns(bucket1[0]);
std::size_t second_bucket_idx = allo.buckets()[1].owns(bucket2[0]);
EXPECT_TRUE(allo.buckets()[first_bucket_idx].is_full());
EXPECT_FALSE(allo.buckets()[first_bucket_idx].owns(bucket2[0]));
EXPECT_TRUE(allo.buckets()[second_bucket_idx].owns(bucket2[0]));

// deallocate and reallocate in the 1st bucket
allo.deallocate(bucket1[20]);
EXPECT_FALSE(allo.buckets()[0].is_full());
EXPECT_FALSE(allo.buckets()[first_bucket_idx].is_full());
auto mb_realloc = allo.allocate_zero(chunksize);
EXPECT_TRUE(allo.buckets()[0].owns(mb_realloc));
EXPECT_TRUE(allo.buckets()[0].is_full());
EXPECT_TRUE(allo.buckets()[first_bucket_idx].owns(mb_realloc));
EXPECT_TRUE(allo.buckets()[first_bucket_idx].is_full());

// erase 2nd bucket
allo.deallocate(bucket2[0]);
Expand Down

0 comments on commit bc64cd8

Please sign in to comment.