]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/tests/wildfire_test.c
Add test running our wildfire sample code
[citadel.git] / libcitadel / tests / wildfire_test.c
diff --git a/libcitadel/tests/wildfire_test.c b/libcitadel/tests/wildfire_test.c
new file mode 100644 (file)
index 0000000..e77c263
--- /dev/null
@@ -0,0 +1,111 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <errno.h>
+
+#include <fcntl.h>
+
+#include <unistd.h>
+#include <stddef.h>
+
+
+#include "../lib/libcitadel.h"
+
+static void CreateWildfireSampleMessage(StrBuf *OutBuf)
+{
+       JsonValue *Error;
+               
+       StrBuf *Buf;
+       StrBuf *Header;
+       StrBuf *Json;
+       int n = 1;
+
+       Header = NewStrBuf();
+       Json = NewStrBuf();
+
+       Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+       Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__,  HKEY("Warn message"), eWARN);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+       Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Error message"), eERROR);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+       Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+       Error = WildFireMessagePlain(HKEY(__FILE__), __LINE__, HKEY("Info message"), eINFO);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+
+       Buf = NewStrBufPlain(HKEY("test error message"));
+       Error = WildFireException(HKEY(__FILE__), __LINE__, Buf, 1);
+       SerializeJson(Json, Error, 1);
+       WildFireSerializePayload(Json, Header, &n, NULL);
+       StrBufAppendBuf(OutBuf, Header, 0);
+
+       FlushStrBuf(Json);
+       FlushStrBuf(Header);
+
+}
+
+int main(int argc, char* argv[])
+{
+       StrBuf *WFBuf;
+       StrBuf *OutBuf;
+       StrBuf *Info;
+       int nWildfireHeaders;
+
+       StartLibCitadel(8);
+       printf("%s == %d?\n", libcitadel_version_string(), libcitadel_version_number());
+       
+       
+       WildFireInitBacktrace(argv[0], 0);
+
+       WFBuf = NewStrBuf();
+       OutBuf = NewStrBuf();
+       Info = NewStrBufPlain(HKEY("this is just a test message"));
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       SerializeJson(WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1);
+       
+       WildFireSerializePayload(WFBuf, OutBuf, &nWildfireHeaders, NULL);
+
+       CreateWildfireSampleMessage(OutBuf);
+       printf("%s\n\n", ChrPtr(OutBuf));
+
+       FreeStrBuf(&WFBuf);
+       FreeStrBuf(&OutBuf);
+       FreeStrBuf(&Info);
+       ShutDownLibCitadel();
+       return 0;
+}