1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
#ifndef SELFTEST_C
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include "iobuf.h"
#include "msg.h"
#include "path.h"
#include "str.h"
const char program[] = "selftest";
const int msg_show_pid = 0;
void NL(void) { obuf_putc(&outbuf, LF); obuf_flush(&outbuf); }
void debugstr(const str* s)
{
obuf_puts(&outbuf, "len=");
obuf_putu(&outbuf, s->len);
obuf_puts(&outbuf, " size=");
obuf_putu(&outbuf, s->size);
if (s->s == 0)
obuf_puts(&outbuf, " s is NULL");
else {
obuf_puts(&outbuf, " s=");
obuf_putstr(&outbuf, s);
}
NL();
}
int debugstrfn(int result, const str* s)
{
obuf_puts(&outbuf, "result=");
obuf_puti(&outbuf, result);
obuf_putc(&outbuf, ' ');
debugstr(s);
return result;
}
int debugfn(int result)
{
obuf_puts(&outbuf, "result=");
obuf_puti(&outbuf, result);
NL();
return result;
}
int debugsys(int result)
{
obuf_puts(&outbuf, "result=");
obuf_puti(&outbuf, result);
NL();
if (result == -1) {
obuf_puts(&outbuf, strerror(errno));
NL();
}
return result;
}
void makefile(str* fn, const char* content)
{
long len = strlen(content);
int fd = path_mktemp("./selftest.tmpfile", fn);
if (fd < 0) die1(1, "Could not create temporary file");
if (write(fd, content, len) != len || close(fd) != 0) {
unlink(fn->s);
die1(1, "Could not write temporary file");
}
}
#define MAIN void selftest(void)
extern MAIN;
int main(void)
{
selftest();
obuf_flush(&outbuf);
obuf_flush(&errbuf);
return 0;
}
#endif
|