vm: remove assert, map in of phys addr 0 is legit sometimes.
[minix.git] / test / test14.c
blobaa04dcf78478834dbfcd4d144370882e5115756e
1 /* Test 14. unlinking an open file. */
3 #include <sys/types.h>
4 #include <errno.h>
5 #include <fcntl.h>
6 #include <stdlib.h>
7 #include <unistd.h>
8 #include <stdio.h>
10 #define TRIALS 100
11 #define MAX_ERROR 4
13 char name[20] = {"TMP14."};
14 int errct;
15 int subtest = 1;
17 _PROTOTYPE(int main, (void));
18 _PROTOTYPE(void e, (int n));
19 _PROTOTYPE(void quit, (void));
21 int main()
23 int fd0, i, pid;
25 printf("Test 14 ");
26 fflush(stdout);
28 system("rm -rf DIR_14; mkdir DIR_14");
29 chdir("DIR_14");
31 pid = getpid();
32 sprintf(&name[6], "%x", pid);
34 for (i = 0; i < TRIALS; i++) {
35 if ( (fd0 = creat(name, 0777)) < 0) e(1);
36 if (write(fd0, name, 20) != 20) e(2);
37 if (unlink(name) != 0) e(3);
38 if (close(fd0) != 0) e(4);
41 fd0 = creat(name, 0777);
42 write(fd0, name, 20);
43 unlink(name);
44 quit();
45 return(-1); /* impossible */
48 void e(n)
49 int n;
51 int err_num = errno; /* save errno in case printf clobbers it */
53 printf("Subtest %d, error %d errno=%d ", subtest, n, errno);
54 errno = err_num; /* restore errno, just in case */
55 perror("");
56 if (errct++ > MAX_ERROR) {
57 printf("Too many errors; test aborted\n");
58 chdir("..");
59 system("rm -rf DIR*");
60 exit(1);
64 void quit()
67 chdir("..");
68 system("rm -rf DIR*");
70 if (errct == 0) {
71 printf("ok\n");
72 exit(0);
73 } else {
74 printf("%d errors\n", errct);
75 exit(1);