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