Skip to content

Commit 247d3be

Browse files
committed
Fix harnesses
1 parent 71061d3 commit 247d3be

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

library/alloc/src/alloc.rs

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -456,42 +456,60 @@ mod verify {
456456
// fn alloc_impl(&self, layout: Layout, zeroed: bool) -> Result<NonNull<[u8]>, AllocError>
457457
#[kani::proof_for_contract(Global::alloc_impl)]
458458
pub fn check_alloc_impl() {
459-
let obj : Global = kani::any();
460-
let _ = obj.alloc_impl(kani::any());
459+
let _ = Global.alloc_impl(kani::any(), kani::any());
461460
}
462461

463462
// unsafe fn grow_impl(&self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, zeroed: bool) -> Result<NonNull<[u8]>, AllocError>
464463
#[kani::proof_for_contract(Global::grow_impl)]
465464
pub fn check_grow_impl() {
466-
let obj : Global = kani::any();
467-
let _ = obj.grow_impl(kani::any());
465+
let raw_ptr = kani::any::<usize>() as *mut u8;
466+
unsafe {
467+
let n = NonNull::new_unchecked(raw_ptr);
468+
let _ = Global.grow_impl(n, kani::any(), kani::any(), kani::any());
469+
}
468470
}
469471

470472
// unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
471473
#[kani::proof_for_contract(Allocator::deallocate)]
472474
pub fn check_deallocate() {
473-
let obj : Allocator = kani::any();
474-
let _ = obj.deallocate(kani::any());
475+
let obj : &dyn Allocator = &Global;
476+
let raw_ptr = kani::any::<usize>() as *mut u8;
477+
unsafe {
478+
let n = NonNull::new_unchecked(raw_ptr);
479+
let _ = obj.deallocate(n, kani::any());
480+
}
475481
}
476482

477483
// unsafe fn grow(&self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout) -> Result<NonNull<[u8]>, AllocError>
478484
#[kani::proof_for_contract(Allocator::grow)]
479485
pub fn check_grow() {
480-
let obj : Allocator = kani::any();
481-
let _ = obj.grow(kani::any());
486+
let obj : &dyn Allocator = &Global;
487+
let raw_ptr = kani::any::<usize>() as *mut u8;
488+
unsafe {
489+
let n = NonNull::new_unchecked(raw_ptr);
490+
let _ = obj.grow(n, kani::any(), kani::any());
491+
}
482492
}
483493

484494
// unsafe fn grow_zeroed(&self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout) -> Result<NonNull<[u8]>, AllocError>
485495
#[kani::proof_for_contract(Allocator::grow_zeroed)]
486496
pub fn check_grow_zeroed() {
487-
let obj : Allocator = kani::any();
488-
let _ = obj.grow_zeroed(kani::any());
497+
let obj : &dyn Allocator = &Global;
498+
let raw_ptr = kani::any::<usize>() as *mut u8;
499+
unsafe {
500+
let n = NonNull::new_unchecked(raw_ptr);
501+
let _ = obj.grow_zeroed(n, kani::any(), kani::any());
502+
}
489503
}
490504

491505
// unsafe fn shrink(&self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout) -> Result<NonNull<[u8]>, AllocError>
492506
#[kani::proof_for_contract(Allocator::shrink)]
493507
pub fn check_shrink() {
494-
let obj : Allocator = kani::any();
495-
let _ = obj.shrink(kani::any());
508+
let obj : &dyn Allocator = &Global;
509+
let raw_ptr = kani::any::<usize>() as *mut u8;
510+
unsafe {
511+
let n = NonNull::new_unchecked(raw_ptr);
512+
let _ = obj.shrink(n, kani::any(), kani::any());
513+
}
496514
}
497515
}

0 commit comments

Comments
 (0)