Index: /trunk/src/cutest_sh_unix.c
===================================================================
--- /trunk/src/cutest_sh_unix.c	(revision 24)
+++ /trunk/src/cutest_sh_unix.c	(revision 24)
@@ -0,0 +1,46 @@
+
+#include "config_xor.h"
+
+#include <string.h>
+#include "CuTest.h"
+#include "samhain.h"
+#include "sh_unix.h"
+
+void Test_sh_unix_lookup_page (CuTest *tc) {
+
+  int pagesize = sh_unix_pagesize();
+  
+  unsigned int base;
+  int          num_pages;
+
+  CuAssert (tc, "pagesize > 0", (pagesize > 0));
+
+  /* base = sh_unix_lookup_page(in_addr, len, *num_pages); */
+
+  base = sh_unix_lookup_page(0, pagesize, &num_pages);
+  CuAssert (tc, "base == 0", (base == 0));
+  CuAssertIntEquals (tc, num_pages, 1);
+
+  base = sh_unix_lookup_page(0, pagesize+1, &num_pages);
+  CuAssert (tc, "base == 0", (base == 0));
+  CuAssertIntEquals (tc, num_pages, 2);
+
+  base = sh_unix_lookup_page((void*)pagesize, pagesize, &num_pages);
+  CuAssert (tc, "base == 0", (base == (unsigned int)pagesize));
+  CuAssertIntEquals (tc, num_pages, 1);
+
+  base = sh_unix_lookup_page((void*)pagesize, pagesize+1, &num_pages);
+  CuAssert (tc, "base == 0", (base == (unsigned int)pagesize));
+  CuAssertIntEquals (tc, num_pages, 2);
+
+  base = sh_unix_lookup_page((void*)(pagesize-1), pagesize+1, &num_pages);
+  CuAssert (tc, "base == 0", (base == 0));
+  CuAssertIntEquals (tc, num_pages, 2);
+
+  base = sh_unix_lookup_page((void*)(pagesize-1), pagesize+2, &num_pages);
+  CuAssert (tc, "base == 0", (base == 0));
+  CuAssertIntEquals (tc, num_pages, 3);
+
+}
+
+  
