Tidy up the generated parsing code.
[virt-mem.git] / lib / test_mmap.ml
1 (* Test program for Virt_mem_mmap module.  Not for general consumption. *)
2
3 open Printf
4 open Virt_mem_mmap
5
6 let () =
7   let mem = create () in
8   let data = String.make 0x1000 '\001' in
9   let mem = add_string mem data 0x800L in
10   let data = String.make 0x1000 '\002' in
11   let mem = add_string mem data 0x1000L in
12   let data = String.make 0x1800 '\003' in
13   let mem = add_string mem data 0L in
14   let data = String.make 0x800 '\004' in
15   let mem = add_string mem data 0x1000L in
16   let data = String.make 0x800 '\005' in
17   let mem = add_string mem data 0x2800L in
18   let data = String.make 1 '\006' in
19   let mem = add_string mem data 0L in
20   let data = "hello, world!\000" in
21   let mem = add_string mem data 0x20L in
22
23   List.iter (
24     fun addr ->
25       try
26         printf "byte @ %Lx = %d\n" addr (get_byte mem addr)
27       with Invalid_argument "get_byte" ->
28         printf "byte @ %Lx = HOLE\n" addr
29   ) [ 0L; 0x1L;
30       0x7ffL; 0x800L; 0x801L;
31       0xfffL; 0x1000L; 0x1001L;
32       0x17ffL; 0x1800L; 0x1801L;
33       0x1fffL; 0x2000L; 0x2001L;
34       0x27ffL; 0x2800L; 0x2801L;
35       0x2fffL; 0x3000L; 0x3001L ];
36
37   List.iter (
38     fun addr ->
39       try
40         printf "three bytes @ %Lx = %S\n" addr (get_bytes mem addr 3)
41       with
42         Invalid_argument "get_bytes" ->
43           printf "three bytes @ %Lx found a HOLE\n" addr
44   ) [ 0L; 0x1L; 0x7ffL; 0xfffL; 0x17ffL; 0x1fffL; 0x27ffL; 0x2800L;
45       0x2ffdL; 0x2fffL ];
46
47   printf "string @ 0x20 = %S\n" (get_string mem 0x20L)