#include <string.h>
#include <ctype.h>
-REGISTER_TEST(tests_pass_valgrind);
-REGISTER_TEST(tests_pass_valgrind_noleaks);
-
/* Note: we already test safe_mode in run_tests.c */
static const char *can_run_vg(struct manifest *m)
{
return NULL;
}
+static void do_leakcheck_vg(struct manifest *m,
+ unsigned int *timeleft,
+ struct score *score);
+
+static struct ccanlint tests_pass_valgrind_noleaks = {
+ .key = "tests_pass_valgrind_noleaks",
+ .name = "Module's run and api tests have no memory leaks",
+ .check = do_leakcheck_vg,
+ .takes_options = true,
+ .needs = "tests_pass_valgrind"
+};
+REGISTER_TEST(tests_pass_valgrind_noleaks);
+
+
/* Example output:
==2749== Conditional jump or move depends on uninitialised value(s)
==2749== at 0x4026C60: strnlen (mc_replace_strmem.c:263)
/* FIXME: Run examples, too! */
static void do_run_tests_vg(struct manifest *m,
- bool keep,
unsigned int *timeleft,
struct score *score)
{
continue;
}
- if (keep)
- talloc_set_destructor(i->valgrind_log, NULL);
-
output = grab_file(i, i->valgrind_log, NULL);
/* No valgrind errors? */
if (!output || output[0] == '\0') {
}
static void do_leakcheck_vg(struct manifest *m,
- bool keep,
unsigned int *timeleft,
struct score *score)
{
.takes_options = true,
.needs = "tests_pass"
};
-
-struct ccanlint tests_pass_valgrind_noleaks = {
- .key = "tests_pass_valgrind_noleaks",
- .name = "Module's run and api tests have no memory leaks",
- .check = do_leakcheck_vg,
- .takes_options = true,
- .needs = "tests_pass_valgrind"
-};
-
+REGISTER_TEST(tests_pass_valgrind);