101 lines
2.7 KiB
Plaintext
101 lines
2.7 KiB
Plaintext
# $NetBSD: tests,v 1.9 2005/03/15 18:27:23 bouyer Exp $
|
|
|
|
#fill up an extent, should coalesce into one allocation
|
|
extent test1 0 0x4f
|
|
alloc_region 0x00 0x10
|
|
alloc_region 0x20 0x10
|
|
alloc_region 0x40 0x10
|
|
alloc_region 0x10 0x10
|
|
alloc_subregion 0 0x4f 0x10
|
|
print
|
|
|
|
#check whether subregion is obeyed (PR kern/7539)
|
|
extent test2 0 0x2f EX_NOCOALESCE
|
|
alloc_region 0x00 0x10
|
|
alloc_subregion 0x20 0x30 0x10
|
|
print
|
|
|
|
#check overlap into subregion (fixed in 1.25)
|
|
extent test3 0 0x3f EX_NOCOALESCE
|
|
alloc_region 0x00 0x20
|
|
alloc_region 0x30 0x10
|
|
alloc_subregion 0x10 0x3f 0x10
|
|
print
|
|
|
|
#check overflow in boundary check, before an allocated region (fixed in 1.32)
|
|
extent test4 0xf0000000 0xffffffff
|
|
alloc_region 0xf1000000 0x1
|
|
boundary 0x20000000
|
|
alloc_subregion 0xf0000000 0xffffffff 0x1
|
|
print
|
|
|
|
#check overflow in boundary check, before the subregion end (fixed in 1.32)
|
|
extent test5 0xf0000000 0xffffffff
|
|
boundary 0x20000000
|
|
alloc_subregion 0xf0000000 0xffffffff 0x1
|
|
print
|
|
|
|
#check allocation beyond last boundary line (to be fixed)
|
|
# last two allocations should succeed without boundary "fixups"
|
|
extent test6 0 11
|
|
boundary 8
|
|
alloc_subregion 0 11 8
|
|
alloc_subregion 0 11 2
|
|
alloc_subregion 0 11 2
|
|
print
|
|
|
|
#check allocation beyond last boundary line (to be fixed)
|
|
# last allocation should be bumped to the next boundary and exactly fit
|
|
# the remaining space
|
|
extent test7 0 11
|
|
boundary 8
|
|
alloc_subregion 0 11 7
|
|
alloc_subregion 0 11 4
|
|
print
|
|
|
|
#don't allocate a region pasts the end of subregion (i.e., the second
|
|
#alloc_subregion should fail). subr_extent.c prior to rev. 1.43 allocates
|
|
#region starts from 0x10.
|
|
extent test8 0 0x4f EX_NOCOALESCE
|
|
alloc_region 0x30 0x10
|
|
alloc_subregion 0 0xf 0x10
|
|
alloc_subregion 0 0xf 0x10
|
|
print
|
|
|
|
#When allocating a region with a boundary constraint, check that we properly
|
|
#detect overlaps once the candidate region has been aligned.
|
|
#subr_extent.c prior 1.45 could corrupt the extent map in this situation
|
|
extent test9 0 0x4f
|
|
boundary 0
|
|
alloc_subregion 0 0x10 4
|
|
alloc_subregion 0xd 0x20 2
|
|
boundary 8
|
|
alloc_subregion 0 0x4f 8
|
|
print
|
|
|
|
#check that free works
|
|
extent test10 0xc0002000 0xffffe000 EX_BOUNDZERO
|
|
boundary 0x10000
|
|
align 0x10000
|
|
alloc_subregion 0xc0002000 0xffffe000 0x2000
|
|
alloc_subregion 0xc0002000 0xffffe000 0x2000
|
|
print
|
|
free 0xc0020000 0x2000
|
|
print
|
|
alloc_subregion 0xc0002000 0xffffe000 0x10000
|
|
print
|
|
#If we have something like that in the EX_NOCOALESCE case:
|
|
#extent `test11' (0x10 - 0x20), flags = 0x2
|
|
# 0x10 - 0x13
|
|
# 0x1e - 0x1f
|
|
# 0x20 - 0x20
|
|
#then a new extent of size 1 could be allocated at 0x20.
|
|
# fixed in 1.51
|
|
extent test11 0x10 0x20 EX_NOCOALESCE
|
|
alloc_subregion 0x10 0x13 0x4
|
|
alloc_subregion 0x1e 0x1f 0x2
|
|
alloc_subregion 0x20 0x20 0x1
|
|
alloc_subregion 0x20 0x20 0x1
|
|
alloc_subregion 0x10 0x20 0x1
|
|
print
|