-#include <ccan/err/err.h>
+#include <ccan/err/err.c>
#include <ccan/tap/tap.h>
#include <unistd.h>
#include <string.h>
#define BUFFER_MAX 1024
-int main(void)
+int main(int argc, char *argv[])
{
int pfd[2];
+ const char *base;
- plan_tests(20);
- fflush(stdout);
+ (void)argc;
+ plan_tests(24);
+
+ err_set_progname(argv[0]);
+
+ /* In case it only prints out the basename of argv[0]. */
+ base = strrchr(argv[0], '/');
+ if (base)
+ base++;
+ else
+ base = argv[0];
/* Test err() in child */
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
+ fflush(stdout);
if (fork()) {
char buffer[BUFFER_MAX+1];
unsigned int i;
buffer[i] = '\0';
ok1(strstr(buffer, "running err:"));
ok1(strstr(buffer, strerror(ENOENT)));
+ ok1(strstr(buffer, base));
ok1(buffer[i-1] == '\n');
break;
}
}
/* Test errx() in child */
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
fflush(stdout);
if (fork()) {
char buffer[BUFFER_MAX+1];
if (read(pfd[0], buffer + i, 1) == 0) {
buffer[i] = '\0';
ok1(strstr(buffer, "running errx\n"));
+ ok1(strstr(buffer, base));
break;
}
}
/* Test warn() in child */
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
fflush(stdout);
if (fork()) {
char buffer[BUFFER_MAX+1];
buffer[i] = '\0';
ok1(strstr(buffer, "running warn:"));
ok1(strstr(buffer, strerror(ENOENT)));
+ ok1(strstr(buffer, base));
ok1(buffer[i-1] == '\n');
break;
}
}
/* Test warnx() in child */
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
fflush(stdout);
if (fork()) {
char buffer[BUFFER_MAX+1];
if (read(pfd[0], buffer + i, 1) == 0) {
buffer[i] = '\0';
ok1(strstr(buffer, "running warnx\n"));
+ ok1(strstr(buffer, base));
break;
}
}