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