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