summaryrefslogtreecommitdiffstats
path: root/src/tests/filesys/base/syn-remove.c
blob: c9ba1109e316c23f1c73211a760c30d770735dd3 (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
29
30
/* Verifies that a deleted file may still be written to and read
   from. */

#include <random.h>
#include <string.h>
#include <syscall.h>
#include "tests/lib.h"
#include "tests/main.h"

char buf1[1234];
char buf2[1234];

void
test_main (void) 
{
  const char *file_name = "deleteme";
  int fd;
  
  CHECK (create (file_name, sizeof buf1), "create \"%s\"", file_name);
  CHECK ((fd = open (file_name)) > 1, "open \"%s\"", file_name);
  CHECK (remove (file_name), "remove \"%s\"", file_name);
  random_bytes (buf1, sizeof buf1);
  CHECK (write (fd, buf1, sizeof buf1) > 0, "write \"%s\"", file_name);
  msg ("seek \"%s\" to 0", file_name);
  seek (fd, 0);
  CHECK (read (fd, buf2, sizeof buf2) > 0, "read \"%s\"", file_name);
  compare_bytes (buf2, buf1, sizeof buf1, 0, file_name);
  msg ("close \"%s\"", file_name);
  close (fd);
}