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