[Title] Add logging
[sdk/emulator/qemu.git] / tests / cris / check_mmap2.c
1 /*
2 #notarget: cris*-*-elf
3 */
4
5 #define _GNU_SOURCE
6 #include <string.h>
7 #include <stdlib.h>
8 #include <stdio.h>
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <fcntl.h>
12 #include <unistd.h>
13 #include <sys/mman.h>
14
15 int main (int argc, char *argv[])
16 {
17   int fd = open (argv[0], O_RDONLY);
18   struct stat sb;
19   int size;
20   void *a;
21   const char *str = "a string you'll only find in the program";
22
23   if (fd == -1)
24     {
25       perror ("open");
26       abort ();
27     }
28
29   if (fstat (fd, &sb) < 0)
30     {
31       perror ("fstat");
32       abort ();
33     }
34
35   size = sb.st_size;
36
37   /* We want to test mmapping a size that isn't exactly a page.  */
38   if ((size & 8191) == 0)
39     size--;
40
41   a = mmap (NULL, size, PROT_READ, MAP_SHARED, fd, 0);
42
43   if (memmem (a, size, str, strlen (str) + 1) == NULL)
44     abort ();
45
46   printf ("pass\n");
47   exit (0);
48 }