summaryrefslogtreecommitdiffstats
path: root/src/tests/vm/mmap-twice.c
blob: d277a37272fa61bfce5b60f72d50909612084be1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Maps the same file into memory twice and verifies that the
   same data is readable in both. */

#include <string.h>
#include <syscall.h>
#include "tests/vm/sample.inc"
#include "tests/lib.h"
#include "tests/main.h"

void
test_main (void)
{
  char *actual[2] = {(char *) 0x10000000, (char *) 0x20000000};
  size_t i;
  int handle[2];

  for (i = 0; i < 2; i++) 
    {
      CHECK ((handle[i] = open ("sample.txt")) > 1,
             "open \"sample.txt\" #%zu", i);
      CHECK (mmap (handle[i], actual[i]) != MAP_FAILED,
             "mmap \"sample.txt\" #%zu at %p", i, (void *) actual[i]);
    }

  for (i = 0; i < 2; i++)
    CHECK (!memcmp (actual[i], sample, strlen (sample)),
           "compare mmap'd file %zu against data", i);
}