00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <wibble/sys/mmap.h>
00021
00022 #ifdef POSIX
00023 #include <wibble/test.h>
00024 #include <string.h>
00025
00026 using namespace std;
00027 using namespace wibble::sys;
00028
00029 struct TestMMap {
00030 Test simple() {
00031 MMap map;
00032 assert_eq(map.filename, string());
00033 assert_eq(map.fd, -1);
00034 assert_eq(map.size, 0u);
00035 assert_eq(map.buf, (const char*)0);
00036
00037 map.map("/bin/ls");
00038 assert_eq(map.filename, "/bin/ls");
00039 assert(map.fd != -1);
00040 assert(map.size != 0u);
00041 assert(map.buf != (const char*)0);
00042 assert_eq(map.buf[1], 'E');
00043 assert_eq(map.buf[2], 'L');
00044 assert_eq(map.buf[3], 'F');
00045
00046 MMap map1 = map;
00047 assert_eq(map.filename, string());
00048 assert_eq(map.fd, -1);
00049 assert_eq(map.size, 0u);
00050 assert_eq(map.buf, (const char*)0);
00051
00052 assert_eq(map1.filename, "/bin/ls");
00053 assert(map1.fd != -1);
00054 assert(map1.size != 0u);
00055 assert(map1.buf != (const char*)0);
00056 assert_eq(map1.buf[1], 'E');
00057 assert_eq(map1.buf[2], 'L');
00058 assert_eq(map1.buf[3], 'F');
00059
00060 map1.unmap();
00061 assert_eq(map1.filename, string());
00062 assert_eq(map1.fd, -1);
00063 assert_eq(map1.size, 0u);
00064 assert_eq(map1.buf, (const char*)0);
00065 }
00066 };
00067 #endif
00068