Revised Virt_mem_mmap handling overlapping mappings efficiently.
[virt-mem.git] / lib / test_mmap.ml
diff --git a/lib/test_mmap.ml b/lib/test_mmap.ml
new file mode 100644 (file)
index 0000000..dae44da
--- /dev/null
@@ -0,0 +1,26 @@
+(* Test program for Virt_mem_mmap module.  Not for general consumption. *)
+
+open Printf
+open Virt_mem_mmap
+
+let () =
+  let mem = create () in
+  let data = String.make 0x1000 '\001' in
+  let mem = add_string mem data 0x800L in
+  let data = String.make 0x1000 '\002' in
+  let mem = add_string mem data 0x1000L in
+  let data = String.make 0x1800 '\003' in
+  let mem = add_string mem data 0L in
+
+  List.iter (
+    fun addr ->
+      try
+       printf "byte @ %Lx = %d\n" addr (get_byte mem addr)
+      with Invalid_argument "get_byte" ->
+       printf "byte @ %Lx = HOLE\n" addr
+  ) [ 0L; 0x1L;
+      0x7ffL; 0x800L; 0x801L;
+      0xfffL; 0x1000L; 0x1001L;
+      0x17ffL; 0x1800L; 0x1801L;
+      0x1fffL; 0x2000L; 0x2001L ]
+