#include <dirent.h>
#include <unistd.h>
#include <limits.h>
+#include <stdlib.h>
/**
* Get a tty color escape character for stderr
* Load all available test suites, or optionally only selected ones.
*/
static array_t *load_suites(test_configuration_t configs[],
- test_runner_init_t init)
+ test_runner_init_t init, char *cfg)
{
array_t *suites;
bool old = FALSE;
int i;
- library_init(NULL, "test-runner");
+ library_init(cfg, "test-runner");
test_setup_handler();
/**
* Test initialization, initializes libstrongswan for the next run
*/
-static bool pre_test(test_runner_init_t init)
+static bool pre_test(test_runner_init_t init, char *cfg)
{
level_t level = LEVEL_SILENT;
char *verbosity;
- library_init(NULL, "test-runner");
+ library_init(cfg, "test-runner");
/* use non-blocking RNG to generate keys fast */
lib->settings->set_default_str(lib->settings,
/**
* Run a single test case with fixtures
*/
-static bool run_case(test_case_t *tcase, test_runner_init_t init)
+static bool run_case(test_case_t *tcase, test_runner_init_t init, char *cfg)
{
enumerator_t *enumerator;
test_function_t *tfun;
for (i = tfun->start; i < tfun->end; i++)
{
- if (pre_test(init))
+ if (pre_test(init, cfg))
{
bool ok = FALSE;
int leaks = 0;
/**
* Run a single test suite
*/
-static bool run_suite(test_suite_t *suite, test_runner_init_t init)
+static bool run_suite(test_suite_t *suite, test_runner_init_t init, char *cfg)
{
enumerator_t *enumerator;
test_case_t *tcase;
enumerator = array_create_enumerator(suite->tcases);
while (enumerator->enumerate(enumerator, &tcase))
{
- if (run_case(tcase, init))
+ if (run_case(tcase, init, cfg))
{
passed++;
}
test_suite_t *suite;
enumerator_t *enumerator;
int passed = 0, result;
+ char *cfg;
/* redirect all output to stderr (to redirect make's stdout to /dev/null) */
dup2(2, 1);
- suites = load_suites(configs, init);
+ cfg = getenv("TESTS_STRONGSWAN_CONF");
+
+ suites = load_suites(configs, init, cfg);
if (!suites)
{
return EXIT_FAILURE;
enumerator = array_create_enumerator(suites);
while (enumerator->enumerate(enumerator, &suite))
{
- if (run_suite(suite, init))
+ if (run_suite(suite, init, cfg))
{
passed++;
}