7f6cd9f3ae2248e6307075a46f9f03d05b2eac64
[pintos-anon] / src / tests / filesys / base / syn-remove.c
1 /* Verifies that a deleted file may still be written to and read
2    from. */
3
4 #include <random.h>
5 #include <string.h>
6 #include <syscall.h>
7 #include "tests/lib.h"
8 #include "tests/main.h"
9
10 char buf1[1234];
11 char buf2[1234];
12
13 void
14 test_main (void) 
15 {
16   const char *filename = "deleteme";
17   int fd;
18   
19   CHECK (create (filename, sizeof buf1), "create \"%s\"", filename);
20   CHECK ((fd = open (filename)) > 1, "open \"%s\"", filename);
21   CHECK (remove (filename), "remove \"%s\"", filename);
22   random_bytes (buf1, sizeof buf1);
23   CHECK (write (fd, buf1, sizeof buf1) > 0, "write \"%s\"", filename);
24   msg ("seek \"%s\" to 0", filename);
25   seek (fd, 0);
26   CHECK (read (fd, buf2, sizeof buf2) > 0, "read \"%s\"", filename);
27   compare_bytes (buf2, buf1, sizeof buf1, 0, filename);
28   msg ("close \"%s\"", filename);
29   close (fd);
30 }