]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/compulsory_tests/run_tests.c
ccanlint: with -vv, give details on attempts to compile examples.
[ccan] / tools / ccanlint / compulsory_tests / run_tests.c
index 16a07aee1cca555647bd2e0731ecee11f31c5eb2..e2ab9226964e4287ca4ba61289e56292f1f6b515 100644 (file)
@@ -27,28 +27,20 @@ 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 ccan_file *i;
        char *cmdout;
 {
        struct list_head *list = talloc(m, struct list_head);
        struct run_tests_result *res;
        struct ccan_file *i;
        char *cmdout;
-       char *olddir;
-
-       /* We run tests in the module directory, so any paths
-        * referenced can all be module-local. */
-       olddir = talloc_getcwd(m);
-       if (!olddir)
-               err(1, "Could not save cwd");
-       if (chdir(m->dir) != 0)
-               err(1, "Could not chdir to %s", m->dir);
 
        list_head_init(list);
 
        list_for_each(&m->run_tests, i, list) {
                run_tests.total_score++;
 
        list_head_init(list);
 
        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 +51,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;
@@ -74,9 +65,6 @@ static void *do_run_tests(struct manifest *m)
                list = NULL;
        }
 
                list = NULL;
        }
 
-       if (chdir(olddir) != 0)
-               err(1, "Could not chdir to %s", olddir);
-
        return list;
 }
 
        return list;
 }
 
@@ -124,7 +112,8 @@ static void run_under_debugger(struct manifest *m, void *check_result)
 }
 
 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,