ccanlint: Add -k option to keep results.
[ccan] / tools / ccanlint / compulsory_tests / run_tests.c
index 763b54a3e66924e38a8611680992cccec6101c58..9f1f4a4a21723f21a1bf96408e83c6e4f8ad305d 100644 (file)
@@ -27,7 +27,9 @@ struct run_tests_result {
        const char *output;
 };
 
        const char *output;
 };
 
-static void *do_run_tests(struct manifest *m)
+static void *do_run_tests(struct manifest *m,
+                         bool keep,
+                         unsigned int *timeleft)
 {
        struct list_head *list = talloc(m, struct list_head);
        struct run_tests_result *res;
 {
        struct list_head *list = talloc(m, struct list_head);
        struct run_tests_result *res;
@@ -47,8 +49,7 @@ static void *do_run_tests(struct manifest *m)
 
        list_for_each(&m->run_tests, i, list) {
                run_tests.total_score++;
 
        list_for_each(&m->run_tests, i, list) {
                run_tests.total_score++;
-               /* FIXME: timeout here */
-               cmdout = run_command(m, i->compiled);
+               cmdout = run_command(m, timeleft, i->compiled);
                if (cmdout) {
                        res = talloc(list, struct run_tests_result);
                        res->file = i;
                if (cmdout) {
                        res = talloc(list, struct run_tests_result);
                        res->file = i;
@@ -59,8 +60,7 @@ static void *do_run_tests(struct manifest *m)
 
        list_for_each(&m->api_tests, i, list) {
                run_tests.total_score++;
 
        list_for_each(&m->api_tests, i, list) {
                run_tests.total_score++;
-               /* FIXME: timeout here */
-               cmdout = run_command(m, i->compiled);
+               cmdout = run_command(m, timeleft, i->compiled);
                if (cmdout) {
                        res = talloc(list, struct run_tests_result);
                        res->file = i;
                if (cmdout) {
                        res = talloc(list, struct run_tests_result);
                        res->file = i;
@@ -104,6 +104,9 @@ static const char *describe_run_tests(struct manifest *m,
        return descrip;
 }
 
        return descrip;
 }
 
+/* Gcc's warn_unused_result is fascist bullshit. */
+#define doesnt_matter()
+
 static void run_under_debugger(struct manifest *m, void *check_result)
 {
        char *command;
 static void run_under_debugger(struct manifest *m, void *check_result)
 {
        char *command;
@@ -116,11 +119,13 @@ static void run_under_debugger(struct manifest *m, void *check_result)
        first = list_top(list, struct run_tests_result, list);
        command = talloc_asprintf(m, "gdb -ex 'break tap.c:136' -ex 'run' %s",
                                  first->file->compiled);
        first = list_top(list, struct run_tests_result, list);
        command = talloc_asprintf(m, "gdb -ex 'break tap.c:136' -ex 'run' %s",
                                  first->file->compiled);
-       system(command);
+       if (system(command))
+               doesnt_matter();
 }
 
 struct ccanlint run_tests = {
 }
 
 struct ccanlint run_tests = {
-       .name = "run and api tests run successfully",
+       .key = "run",
+       .name = "Module's run and api tests pass",
        .score = score_run_tests,
        .check = do_run_tests,
        .describe = describe_run_tests,
        .score = score_run_tests,
        .check = do_run_tests,
        .describe = describe_run_tests,