xref: /dflybsd-src/test/testcases/posixipc/file_test/file_test.c (revision 0bba68feaae2960c1f2b5feb6978a8918f571707)
1*0bba68feSAntonio Huete Jimenez #include <common.h>
2*0bba68feSAntonio Huete Jimenez 
3*0bba68feSAntonio Huete Jimenez int
main(void)4*0bba68feSAntonio Huete Jimenez main(void) {
5*0bba68feSAntonio Huete Jimenez 	struct stat sb;
6*0bba68feSAntonio Huete Jimenez 	sem_t *id;
7*0bba68feSAntonio Huete Jimenez 	int error;
8*0bba68feSAntonio Huete Jimenez 
9*0bba68feSAntonio Huete Jimenez 	id = sem_open(TEST_PATH, O_CREAT, 0777, 0);
10*0bba68feSAntonio Huete Jimenez 	if (id == SEM_FAILED) {
11*0bba68feSAntonio Huete Jimenez 		perror("sem_open");
12*0bba68feSAntonio Huete Jimenez 		return 1;
13*0bba68feSAntonio Huete Jimenez 	}
14*0bba68feSAntonio Huete Jimenez 
15*0bba68feSAntonio Huete Jimenez 	error = stat("/var/run/sem", &sb);
16*0bba68feSAntonio Huete Jimenez 	if (error) {
17*0bba68feSAntonio Huete Jimenez 		perror("stat");
18*0bba68feSAntonio Huete Jimenez 		return 1;
19*0bba68feSAntonio Huete Jimenez 	}
20*0bba68feSAntonio Huete Jimenez 	if ((sb.st_mode & ALLPERMS) != (S_IRWXU|S_IRWXG|S_IRWXO|S_ISTXT)) {
21*0bba68feSAntonio Huete Jimenez 		fprintf(stderr, "semaphore dir has incorrect mode: 0%o\n",
22*0bba68feSAntonio Huete Jimenez 			 (sb.st_mode & ALLPERMS));
23*0bba68feSAntonio Huete Jimenez 		return 1;
24*0bba68feSAntonio Huete Jimenez 	}
25*0bba68feSAntonio Huete Jimenez 
26*0bba68feSAntonio Huete Jimenez 	sem_close(id);
27*0bba68feSAntonio Huete Jimenez 	return 0;
28*0bba68feSAntonio Huete Jimenez }
29