Completed reimplementation of faster Virt_mem_mmap.
[virt-mem.git] / lib / test_mmap.ml
index dae44da..731be09 100644 (file)
@@ -11,6 +11,14 @@ let () =
   let mem = add_string mem data 0x1000L in
   let data = String.make 0x1800 '\003' in
   let mem = add_string mem data 0L in
+  let data = String.make 0x800 '\004' in
+  let mem = add_string mem data 0x1000L in
+  let data = String.make 0x800 '\005' in
+  let mem = add_string mem data 0x2800L in
+  let data = String.make 1 '\006' in
+  let mem = add_string mem data 0L in
+  let data = "hello, world!\000" in
+  let mem = add_string mem data 0x20L in
 
   List.iter (
     fun addr ->
@@ -22,5 +30,18 @@ let () =
       0x7ffL; 0x800L; 0x801L;
       0xfffL; 0x1000L; 0x1001L;
       0x17ffL; 0x1800L; 0x1801L;
-      0x1fffL; 0x2000L; 0x2001L ]
+      0x1fffL; 0x2000L; 0x2001L;
+      0x27ffL; 0x2800L; 0x2801L;
+      0x2fffL; 0x3000L; 0x3001L ];
+
+  List.iter (
+    fun addr ->
+      try
+       printf "three bytes @ %Lx = %S\n" addr (get_bytes mem addr 3)
+      with
+       Invalid_argument "get_bytes" ->
+         printf "three bytes @ %Lx found a HOLE\n" addr
+  ) [ 0L; 0x1L; 0x7ffL; 0xfffL; 0x17ffL; 0x1fffL; 0x27ffL; 0x2800L;
+      0x2ffdL; 0x2fffL ];
 
+  printf "string @ 0x20 = %S\n" (get_string mem 0x20L)