afbcac12a4260e6450d004863da7f36598adcdb7
[citadel.git] / libcitadel / tests / wildfire_test.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #include <sys/types.h>
6 #include <sys/stat.h>
7 #include <dirent.h>
8 #include <errno.h>
9
10 #include <fcntl.h>
11
12 #include <unistd.h>
13 #include <stddef.h>
14
15
16 #include "../lib/libcitadel.h"
17
18 static void CreateWildfireSampleMessage(StrBuf *OutBuf)
19 {
20         JsonValue *Error;
21                 
22         StrBuf *Buf;
23         StrBuf *Header;
24         StrBuf *Json;
25         int n = 1;
26
27         Header = NewStrBuf();
28         Json = NewStrBuf();
29
30         Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
31         SerializeJson(Json, Error, 1);
32         WildFireSerializePayload(Json, Header, &n, NULL);
33         StrBufAppendBuf(OutBuf, Header, 0);
34         FlushStrBuf(Json);
35         FlushStrBuf(Header);
36
37         Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__,  HKEY("Warn message"), eWARN);
38         SerializeJson(Json, Error, 1);
39         WildFireSerializePayload(Json, Header, &n, NULL);
40         StrBufAppendBuf(OutBuf, Header, 0);
41         FlushStrBuf(Json);
42         FlushStrBuf(Header);
43
44         Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Error message"), eERROR);
45         SerializeJson(Json, Error, 1);
46         WildFireSerializePayload(Json, Header, &n, NULL);
47         StrBufAppendBuf(OutBuf, Header, 0);
48         FlushStrBuf(Json);
49         FlushStrBuf(Header);
50
51         Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
52         SerializeJson(Json, Error, 1);
53         WildFireSerializePayload(Json, Header, &n, NULL);
54         StrBufAppendBuf(OutBuf, Header, 0);
55         FlushStrBuf(Json);
56         FlushStrBuf(Header);
57
58         Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
59         SerializeJson(Json, Error, 1);
60         WildFireSerializePayload(Json, Header, &n, NULL);
61         StrBufAppendBuf(OutBuf, Header, 0);
62         FlushStrBuf(Json);
63         FlushStrBuf(Header);
64
65
66         Buf = NewStrBufPlain(HKEY("test error message"));
67         Error = WildFireException(HKEY(__FILE__), __LINE__, Buf, 1);
68         SerializeJson(Json, Error, 1);
69         WildFireSerializePayload(Json, Header, &n, NULL);
70         StrBufAppendBuf(OutBuf, Header, 0);
71
72         FreeStrBuf(&Buf);
73         FreeStrBuf(&Json);
74         FreeStrBuf(&Header);
75
76 }
77
78 int main(int argc, char* argv[])
79 {
80         StrBuf *WFBuf;
81         StrBuf *OutBuf;
82         StrBuf *Info;
83         int nWildfireHeaders = 0;
84
85         StartLibCitadel(8);
86         printf("%s == %d?\n", libcitadel_version_string(), libcitadel_version_number());
87        
88         
89         WildFireInitBacktrace(argv[0], 0);
90
91         WFBuf = NewStrBuf();
92         OutBuf = NewStrBuf();
93         Info = NewStrBufPlain(HKEY("this is just a test message"));
94         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
95         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
96         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
97         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
98         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
99         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
100         SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
101         
102         WildFireSerializePayload(WFBuf, OutBuf, &nWildfireHeaders, NULL);
103
104         CreateWildfireSampleMessage(OutBuf);
105         printf("%s\n\n", ChrPtr(OutBuf));
106
107         FreeStrBuf(&WFBuf);
108         FreeStrBuf(&OutBuf);
109         FreeStrBuf(&Info);
110         ShutDownLibCitadel();
111         return 0;
112 }