diff options
Diffstat (limited to 'server/src/configurationparser.cc')
-rw-r--r-- | server/src/configurationparser.cc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/server/src/configurationparser.cc b/server/src/configurationparser.cc index 1c89655..a3e7532 100644 --- a/server/src/configurationparser.cc +++ b/server/src/configurationparser.cc @@ -128,3 +128,65 @@ void ConfigurationParser::reload() } catch( ... ) { } } + +#ifdef TEST_CONFIGURATIONPARSER + +#define CONFFILE "/tmp/configurationparser.conf" + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <string.h> +#include <stdio.h> +#include <memory.h> + +static char conf[] = +"a = 1;\n" +"b = \"hello\";\n" +"c = true;\n" +; + +static char confbad[] = +"a = 1;\n" +"b = \"hello\"\n" +"c = true;\n" +; + +int main() +{ + FILE *fp = fopen(CONFFILE, "w"); + if(!fp) { + printf("Could not write to %s\n", CONFFILE); + return 1; + } + fprintf(fp, conf); + fclose(fp); + try { + ConfigurationParser parser(CONFFILE); + } catch(Exception &e) { + printf("%s\n", e.what()); + return 1; + } + + fp = fopen(CONFFILE, "w"); + if(!fp) { + printf("Could not write to %s\n", CONFFILE); + return 1; + } + fprintf(fp, confbad); + fclose(fp); + try { + ConfigurationParser parser(CONFFILE); + } catch(Exception &e) { + printf("%s\n", e.what()); + goto on; + } + return 1; + on: + + unlink(CONFFILE); + + return 0; +} + +#endif/*TEST_CONFIGURATIONPARSER*/ |