xemu/tests/cris/check_mmap1.c
ths dd43edf4e1 CRIS testsuite, based on the SIM testsuite, by Edgar E. Iglesias.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3365 c046a42c-6fe2-441c-8c8c-71466251a162
2007-10-08 13:32:20 +00:00

49 lines
834 B
C

/*
#notarget: cris*-*-elf
*/
#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
int main (int argc, char *argv[])
{
int fd = open (argv[0], O_RDONLY);
struct stat sb;
int size;
void *a;
const char *str = "a string you'll only find in the program";
if (fd == -1)
{
perror ("open");
abort ();
}
if (fstat (fd, &sb) < 0)
{
perror ("fstat");
abort ();
}
size = sb.st_size;
/* We want to test mmapping a size that isn't exactly a page. */
if ((size & 8191) == 0)
size--;
a = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
if (memmem (a, size, str, strlen (str) + 1) == NULL)
abort ();
printf ("pass\n");
exit (0);
}