From: Nicholas Nethercote Date: Mon, 16 Mar 2009 04:29:12 +0000 (+0000) Subject: Merge r9429 (map_unaligned porting) from the DARWIN branch. X-Git-Tag: svn/VALGRIND_3_5_0~846 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ce14b8f2fabe33053339c42efd4ebb84e3a18123;p=thirdparty%2Fvalgrind.git Merge r9429 (map_unaligned porting) from the DARWIN branch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9430 --- diff --git a/none/tests/map_unaligned.c b/none/tests/map_unaligned.c index 8e8a5e98a3..f3d47346e9 100644 --- a/none/tests/map_unaligned.c +++ b/none/tests/map_unaligned.c @@ -4,44 +4,35 @@ int main(int argc, char **argv) { - void *p1; - void *p2; + void *p1; + void *p2; - if ( ( p1 = mmap( 0, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED ) - { - perror( "mmap" ); + if ( ( p1 = mmap( 0, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED ) + { + perror( "aligned mmap failed" ); exit( 1 ); - } + } - if ( munmap( p1, 4096 ) != 0 ) - { - perror( "munmap" ); + if ( munmap( p1, 4096 ) != 0 ) + { + perror( "aligned munmap failed" ); exit( 1 ); - } - - if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED ) - { - perror( "mmap" ); - exit( 1 ); - } - - if ( munmap( p2, 4096 ) != 0 ) - { - perror( "munmap" ); - exit( 1 ); - } - - if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0 ) ) == MAP_FAILED ) - { - perror( "mmap" ); + } + + // This fails because MAP_FIXED is specified and p1+1 isn't page-aligned. + // (On Linux, just non-page-alignment is enough for failure, but on Darwin + // MAP_FIXED has to also be specified.) + if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0 ) ) == MAP_FAILED ) + { + perror( "unaligned mmap failed" ); exit( 1 ); - } + } - if ( munmap( p2, 4096 ) != 0 ) - { - perror( "munmap" ); + if ( munmap( p2, 4096 ) != 0 ) + { + perror( "unaligned munmap failed" ); exit( 1 ); - } + } - exit( 0 ); + exit( 0 ); } diff --git a/none/tests/map_unaligned.stderr.exp b/none/tests/map_unaligned.stderr.exp index bfd7867db4..4599826848 100644 --- a/none/tests/map_unaligned.stderr.exp +++ b/none/tests/map_unaligned.stderr.exp @@ -1,3 +1,3 @@ -mmap: Invalid argument +unaligned mmap failed: Invalid argument