xref: /aosp_15_r20/external/ltp/lib/tests/tst_safe_macros.c (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker #include "test.h"
2*49cdfc7eSAndroid Build Coastguard Worker #include "safe_macros.h"
3*49cdfc7eSAndroid Build Coastguard Worker 
4*49cdfc7eSAndroid Build Coastguard Worker char *TCID = "test_safe_macros";
5*49cdfc7eSAndroid Build Coastguard Worker int TST_TOTAL = 1;
6*49cdfc7eSAndroid Build Coastguard Worker 
7*49cdfc7eSAndroid Build Coastguard Worker int fd = -1;
8*49cdfc7eSAndroid Build Coastguard Worker 
cleanup(void)9*49cdfc7eSAndroid Build Coastguard Worker void cleanup(void)
10*49cdfc7eSAndroid Build Coastguard Worker {
11*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_CLOSE(NULL, fd);
12*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_UNLINK(NULL, __FILE__ "~");
13*49cdfc7eSAndroid Build Coastguard Worker 	tst_resm(TINFO, "got here");
14*49cdfc7eSAndroid Build Coastguard Worker }
15*49cdfc7eSAndroid Build Coastguard Worker 
main(int argc LTP_ATTRIBUTE_UNUSED,char ** argv)16*49cdfc7eSAndroid Build Coastguard Worker int main(int argc LTP_ATTRIBUTE_UNUSED, char **argv)
17*49cdfc7eSAndroid Build Coastguard Worker {
18*49cdfc7eSAndroid Build Coastguard Worker 	char buf[10];
19*49cdfc7eSAndroid Build Coastguard Worker 	int fds[2];
20*49cdfc7eSAndroid Build Coastguard Worker 
21*49cdfc7eSAndroid Build Coastguard Worker 	buf[9] = '\0';
22*49cdfc7eSAndroid Build Coastguard Worker 
23*49cdfc7eSAndroid Build Coastguard Worker 	if (system("cp " __FILE__ " " __FILE__ "~")) {
24*49cdfc7eSAndroid Build Coastguard Worker 		fprintf(stderr, "error: could not cp file\n");
25*49cdfc7eSAndroid Build Coastguard Worker 		return 1;
26*49cdfc7eSAndroid Build Coastguard Worker 	}
27*49cdfc7eSAndroid Build Coastguard Worker 	printf("%s\n", SAFE_BASENAME(NULL, *argv));
28*49cdfc7eSAndroid Build Coastguard Worker 	printf("%s\n", SAFE_DIRNAME(NULL, *argv));
29*49cdfc7eSAndroid Build Coastguard Worker 	fd = SAFE_OPEN(cleanup, __FILE__ "~", O_RDWR);
30*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_READ(cleanup, 0, fd, buf, 9);
31*49cdfc7eSAndroid Build Coastguard Worker 	printf("buf: %s\n", buf);
32*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_READ(cleanup, 1, fd, buf, 9);
33*49cdfc7eSAndroid Build Coastguard Worker 	printf("buf: %s\n", buf);
34*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_WRITE(cleanup, SAFE_WRITE_ANY, -1, buf, 9);
35*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_WRITE(NULL, SAFE_WRITE_ANY, fd, buf, 9);
36*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_WRITE(NULL, SAFE_WRITE_ALL, fd, buf, 9);
37*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_PIPE(NULL, fds);
38*49cdfc7eSAndroid Build Coastguard Worker 
39*49cdfc7eSAndroid Build Coastguard Worker 	return 0;
40*49cdfc7eSAndroid Build Coastguard Worker }
41