save
[protos/libecoli.git] / lib / main.c
index 56bc9d9..4a48d1e 100644 (file)
@@ -31,7 +31,9 @@
 #include <getopt.h>
 #include <limits.h>
 #include <execinfo.h>
+#include <errno.h>
 
+#include <ecoli_init.h>
 #include <ecoli_log.h>
 #include <ecoli_test.h>
 #include <ecoli_malloc.h>
@@ -365,7 +367,10 @@ static int debug_log(int type, unsigned int level, void *opaque,
        if (level > (unsigned int)log_level)
                return 0;
 
-       return printf("%s", str);
+       if (printf("%s", str) < 0)
+               return -1;
+
+       return 0;
 }
 
 int main(int argc, char **argv)
@@ -381,14 +386,18 @@ int main(int argc, char **argv)
 
        srandom(seed);
 
-       if (0) ec_log_fct_register(debug_log, NULL);
-
        /* register a new malloc to track memleaks */
        TAILQ_INIT(&debug_alloc_hdr_list);
        if (ec_malloc_register(debug_malloc, debug_free, debug_realloc) < 0) {
                EC_LOG(EC_LOG_ERR, "cannot register new malloc\n");
-               return -1;
+               return 1;
+       }
+
+       if (ec_init() < 0) {
+               fprintf(stderr, "cannot init ecoli: %s\n", strerror(errno));
+               return 1;
        }
+       ec_log_fct_register(debug_log, NULL);
 
        ret = 0;
        if (argc <= 1) {
@@ -398,7 +407,6 @@ int main(int argc, char **argv)
                        ret |= ec_test_one(argv[i]);
        }
 
-       ec_malloc_unregister();
        leaks = debug_alloc_dump_leaks();
 
        if (alloc_fail_proba == 0 && ret != 0) {