diff options
author | Alex Auvolat <alex.auvolat@ens.fr> | 2015-03-02 23:12:55 +0100 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ens.fr> | 2015-03-02 23:12:55 +0100 |
commit | 0d47724c5f6201fdc7679327ad4a132c708b8042 (patch) | |
tree | f77f59ce6ab19fb84171429d27b43ea256434d54 /src/tests/ktests/region2/test.c | |
parent | 3a0f4dd13912a3661b969c9fc516947a0113d872 (diff) | |
download | kogata-0d47724c5f6201fdc7679327ad4a132c708b8042.tar.gz kogata-0d47724c5f6201fdc7679327ad4a132c708b8042.zip |
Fix tests
Diffstat (limited to 'src/tests/ktests/region2/test.c')
-rw-r--r-- | src/tests/ktests/region2/test.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/tests/ktests/region2/test.c b/src/tests/ktests/region2/test.c index 24908b0..232bd12 100644 --- a/src/tests/ktests/region2/test.c +++ b/src/tests/ktests/region2/test.c @@ -1,10 +1,19 @@ +void pf_allocate_on_demand(pagedir_t *pd, struct region_info *r, void* addr) { + ASSERT(pd_get_frame(addr) == 0); // if error is of another type (RO, protected), we don't do anyting + + uint32_t f = frame_alloc(1); + if (f == 0) PANIC("Out Of Memory"); + bool map_ok = pd_map_page(addr, f, 1); + if (!map_ok) PANIC("Could not map frame (OOM)"); +} + void test_region_2() { BEGIN_TEST("region-test-2"); // allocate a big region and try to write into it const size_t n = 200; - void* p0 = region_alloc(n * PAGE_SIZE, "Test big region", default_allocator_pf_handler); + void* p0 = region_alloc(n * PAGE_SIZE, "Test big region", pf_allocate_on_demand); for (size_t i = 0; i < n; i++) { uint32_t *x = (uint32_t*)(p0 + i * PAGE_SIZE); x[0] = 12; |