Loading...
tests/pgm_allocator.c libmalloc-374.40.6 libmalloc-792.41.1
--- libmalloc/libmalloc-374.40.6/tests/pgm_allocator.c
+++ libmalloc/libmalloc-792.41.1/tests/pgm_allocator.c
@@ -12,7 +12,8 @@
 
 #include <darwintest.h>
 
-T_GLOBAL_META(T_META_RUN_CONCURRENTLY(TRUE), T_META_NAMESPACE("pgm"));
+T_GLOBAL_META(T_META_RUN_CONCURRENTLY(TRUE), T_META_NAMESPACE("pgm"),
+		T_META_TAG_VM_PREFERRED, T_META_TAG_NO_ALLOCATOR_OVERRIDE);
 
 // Use weird page size to expose implicit assumptions and help prevent issues
 // caused by different page sizes on macOS and iOS.
@@ -49,22 +50,23 @@
 	zone.max_allocations = 2; // is_full
 	zone.num_slots = 2; zone.rr_slot_index = 1; // choose_available_slot
 	zone.max_metadata = 4; zone.num_metadata = 2; // choose_metadata
-	expected_upper_bound = 2; rand_ret_value = false; // choose_offset_on_page
+	zone.left_align_pct = 10; // choose_offset_on_page
+	expected_upper_bound = 100; rand_ret_value = 10; // choose_offset_on_page
 	expected_trace_buffers[0] = metadata[2].trace_buffer; // capture_trace
 	expected_trace_sizes[0] = 216; collect_trace_ret_value = 88;
 	zone.begin = 640000; // page_addr
 	expected_read_write_page = 643072; // mark_read_write
 	T_EXPECT_EQ(allocate(&zone, 5, 16), 644080ul, "block allocated");
 	// Slot metadata
-	T_EXPECT_EQ(slots[1].state, ss_allocated, "slot.state");
-	T_EXPECT_EQ(slots[1].metadata, 2, "slot.metadata");
-	T_EXPECT_EQ(slots[1].size, (uint16_t)8, "slot.size"); // zone->min_alignment
+	T_EXPECT_EQ((unsigned int)(slots[1].state), ss_allocated, "slot.state");
+	T_EXPECT_EQ((unsigned int)(slots[1].metadata), 2, "slot.metadata");
+	T_EXPECT_EQ(slots[1].size, (uint16_t)16, "slot.size");
 	T_EXPECT_EQ(slots[1].offset, (uint16_t)1008, "slot.offset");
 	T_EXPECT_EQ(metadata[2].alloc.trace_size, (uint16_t)88, "metadata.alloc.trace_size");
 	// Zone state
 	T_EXPECT_EQ(zone.num_allocations, 1, "zone.num_allocations");
-	T_EXPECT_EQ(zone.size_in_use, 8ul, "zone.size_in_use");
-	T_EXPECT_EQ(zone.max_size_in_use, 8ul, "zone.max_size_in_use");
+	T_EXPECT_EQ(zone.size_in_use, 16ul, "zone.size_in_use");
+	T_EXPECT_EQ(zone.max_size_in_use, 16ul, "zone.max_size_in_use");
 
 	zone.max_size_in_use = 55;
 	expected_trace_buffers[1] = metadata[3].trace_buffer; expected_trace_sizes[1] = 216;
@@ -90,7 +92,7 @@
 	zone.num_slots = 1; // page_addr
 	deallocate(&zone, 641031);
 	// Slot metadata
-	T_EXPECT_EQ(slots[0].state, ss_freed, "slot.state");
+	T_EXPECT_EQ((unsigned int)(slots[0].state), ss_freed, "slot.state");
 	T_EXPECT_EQ(metadata[3].dealloc.trace_size, (uint16_t)88, "metadata.dealloc.trace_size");
 	// Zone state
 	T_EXPECT_EQ(zone.num_allocations, 1, "zone.num_allocations");
@@ -110,7 +112,8 @@
 	slots[0] = (slot_t){ .state = ss_allocated, .metadata = 1, .size = 5 }; // lookup_size
 	zone.max_allocations = 2; // is_full
 	zone.num_slots = 2; // allocate
-	expected_upper_bound = 2; rand_ret_value = true; // allocate -> choose_offset_on_page
+	zone.left_align_pct = 10; // allocate -> choose_offset_on_page
+	expected_upper_bound = 100; rand_ret_value = 9; // allocate -> choose_offset_on_page
 	zone.max_metadata = 1; // allocate -> choose_metadata
 	expected_trace_buffers[0] = metadata[0].trace_buffer; // allocate -> capture_trace
 	expected_trace_sizes[0] = 216;
@@ -120,8 +123,8 @@
 	expected_trace_sizes[1] = 216;
 	expected_inaccessible_page = 641024; // allocate -> mark_inaccessible
 	T_EXPECT_EQ(reallocate(&zone, 641024, 10, TRUE), 643072ul, "block reallocated");
-	T_EXPECT_EQ(slots[0].state, ss_freed, "source slot");
-	T_EXPECT_EQ(slots[1].state, ss_allocated, "destination slot");
+	T_EXPECT_EQ((unsigned int)(slots[0].state), ss_freed, "source slot");
+	T_EXPECT_EQ((unsigned int)(slots[1].state), ss_allocated, "destination slot");
 }
 
 T_DECL(reallocate_unguarded_to_sampled, "reallocate: unguarded -> sampled")
@@ -129,7 +132,8 @@
 	expected_size_ptr = 1337; size_ret_value = 5; // wrapped_size
 	zone.max_allocations = 2; // is_full
 	zone.num_slots = 2; // allocate
-	expected_upper_bound = 2; rand_ret_value = true; // allocate -> choose_offset_on_page
+	zone.left_align_pct = 10; // allocate -> choose_offset_on_page
+	expected_upper_bound = 100; rand_ret_value = 9; // allocate -> choose_offset_on_page
 	zone.max_metadata = 1; // allocate -> choose_metadata
 	expected_trace_buffers[0] = metadata[0].trace_buffer; // allocate -> capture_trace
 	expected_trace_sizes[0] = 216;
@@ -138,7 +142,7 @@
 	expected_dest = 641024; expected_src = 1337; expected_size = 5; // memcpy
 	expected_free_ptr = 1337; // wrapped_free
 	T_EXPECT_EQ(reallocate(&zone, 1337, 10, TRUE), 641024ul, "block reallocated");
-	T_EXPECT_EQ(slots[0].state, ss_allocated, "destination slot");
+	T_EXPECT_EQ((unsigned int)(slots[0].state), ss_allocated, "destination slot");
 }
 
 T_DECL(reallocate_guarded_to_unsampled, "reallocate: guarded -> unsampled")
@@ -153,7 +157,7 @@
 	zone.num_slots = 2; // page_addr
 	expected_inaccessible_page = 641024; // allocate -> mark_inaccessible
 	T_EXPECT_EQ(reallocate(&zone, 641024, 10, FALSE), 1337ul, "block reallocated");
-	T_EXPECT_EQ(slots[0].state, ss_freed, "source slot");
+	T_EXPECT_EQ((unsigned int)(slots[0].state), ss_freed, "source slot");
 }
 
 T_DECL(reallocate_guarded_to_unsampled_zone_full, "reallocate: guarded -> unsampled (zone full)")
@@ -168,5 +172,5 @@
 	zone.num_slots = 2; // page_addr
 	expected_inaccessible_page = 641024; // allocate -> mark_inaccessible
 	T_EXPECT_EQ(reallocate(&zone, 641024, 10, TRUE), 1337ul, "block reallocated");
-	T_EXPECT_EQ(slots[0].state, ss_freed, "source slot");
+	T_EXPECT_EQ((unsigned int)(slots[0].state), ss_freed, "source slot");
 }