1 #include <ccan/err/err.h>
2 #include <ccan/tap/tap.h>
11 #define BUFFER_MAX 1024
20 /* Test err() in child */
23 char buffer[BUFFER_MAX+1];
29 for (i = 0; i < BUFFER_MAX; i++) {
30 if (read(pfd[0], buffer + i, 1) == 0) {
32 ok1(strstr(buffer, "running err:"));
33 ok1(strstr(buffer, strerror(ENOENT)));
34 ok1(buffer[i-1] == '\n');
39 ok1(wait(&status) != -1);
40 ok1(WIFEXITED(status));
41 ok1(WEXITSTATUS(status) == 17);
44 dup2(pfd[1], STDERR_FILENO);
46 err(17, "running %s", "err");
50 /* Test errx() in child */
54 char buffer[BUFFER_MAX+1];
60 for (i = 0; i < BUFFER_MAX; i++) {
61 if (read(pfd[0], buffer + i, 1) == 0) {
63 ok1(strstr(buffer, "running errx\n"));
68 ok1(wait(&status) != -1);
69 ok1(WIFEXITED(status));
70 ok1(WEXITSTATUS(status) == 17);
73 dup2(pfd[1], STDERR_FILENO);
74 errx(17, "running %s", "errx");
79 /* Test warn() in child */
83 char buffer[BUFFER_MAX+1];
89 for (i = 0; i < BUFFER_MAX; i++) {
90 if (read(pfd[0], buffer + i, 1) == 0) {
92 ok1(strstr(buffer, "running warn:"));
93 ok1(strstr(buffer, strerror(ENOENT)));
94 ok1(buffer[i-1] == '\n');
99 ok1(wait(&status) != -1);
100 ok1(WIFEXITED(status));
101 ok1(WEXITSTATUS(status) == 17);
104 dup2(pfd[1], STDERR_FILENO);
106 warn("running %s", "warn");
110 /* Test warnx() in child */
114 char buffer[BUFFER_MAX+1];
120 for (i = 0; i < BUFFER_MAX; i++) {
121 if (read(pfd[0], buffer + i, 1) == 0) {
123 ok1(strstr(buffer, "running warnx\n"));
128 ok1(wait(&status) != -1);
129 ok1(WIFEXITED(status));
130 ok1(WEXITSTATUS(status) == 17);
133 dup2(pfd[1], STDERR_FILENO);
134 warnx("running %s", "warnx");
137 return exit_status();