diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2388b8d..714fb4e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,3 +4,6 @@ set(SRC_DIR "../src") add_executable("parse_config" "${SRC_DIR}/config.c" "parse_config.c") add_test("parse_config" "parse_config") + +add_executable("check_config" "${SRC_DIR}/config.c" "check_config.c") +add_test("check_config" "check_config") diff --git a/tests/check_config.c b/tests/check_config.c new file mode 100644 index 0000000..3a9921e --- /dev/null +++ b/tests/check_config.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#include "../src/config.h" + +#define STEAL(attr) \ + stealed = config.attr, config.attr = NULL, config.error = NULL; \ + assert(check_config(&config) > 0); \ + assert(config.error != NULL); \ + config.attr = stealed + +int main(void) { + char *stealed = NULL; + oal_config_t config; + + memset(&config, 0x0, sizeof(oal_config_t)); + + assert(parse_config(&config, "test.conf") == 0); + + STEAL(bindpass); + STEAL(userfilter); + STEAL(basedn); + STEAL(bindurls); + + return 0; +}