mirror of
https://github.com/pevans/erc-c.git
synced 2024-12-21 08:30:55 +00:00
Add tests to prove read/write mappers are used
This commit is contained in:
parent
7da3c2ec20
commit
060b7000de
@ -93,3 +93,40 @@ Test(vm_segment, write_map)
|
|||||||
|
|
||||||
cr_assert_eq(segment->write_table[123], (vm_segment_write_fn)456);
|
cr_assert_eq(segment->write_table[123], (vm_segment_write_fn)456);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static vm_8bit
|
||||||
|
read_fn(vm_segment *segment, size_t addr)
|
||||||
|
{
|
||||||
|
return 222;
|
||||||
|
}
|
||||||
|
|
||||||
|
Test(vm_segment, use_read_map)
|
||||||
|
{
|
||||||
|
size_t addr = 123;
|
||||||
|
|
||||||
|
vm_segment_set(segment, addr, 111);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr), 111);
|
||||||
|
vm_segment_read_map(segment, addr, read_fn);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr), 222);
|
||||||
|
vm_segment_read_map(segment, addr, NULL);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr), 111);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
write_fn(vm_segment *segment, size_t addr, vm_8bit value)
|
||||||
|
{
|
||||||
|
segment->memory[addr+1] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
Test(vm_segment, use_write_map)
|
||||||
|
{
|
||||||
|
size_t addr = 123;
|
||||||
|
|
||||||
|
vm_segment_set(segment, addr, 111);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr), 111);
|
||||||
|
cr_assert_neq(vm_segment_get(segment, addr + 1), 111);
|
||||||
|
vm_segment_write_map(segment, addr, write_fn);
|
||||||
|
vm_segment_set(segment, addr, 111);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr), 111);
|
||||||
|
cr_assert_eq(vm_segment_get(segment, addr + 1), 111);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user