ccanlint: don't fail just because we don't have positive tests.
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 2 Mar 2011 03:53:21 +0000 (14:23 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 2 Mar 2011 03:53:21 +0000 (14:23 +1030)
cast package has all negative tests, plus testable examples.

tools/ccanlint/tests/tests_coverage.c
tools/ccanlint/tests/tests_exist.c

index 67829e96918f8fe4e1509ac8830fd27a83e2b9cb..a8da103f045fed21280625a1bbf9c4c4e44814c8 100644 (file)
@@ -135,6 +135,7 @@ static void do_run_coverage_tests(struct manifest *m,
        char *covcmd;
        bool full_gcov = (verbose > 1);
        struct list_head *list;
+       bool ran_some = false;
 
        /* This tells gcov where we put those .gcno files. */
        outdir = talloc_dirname(score, m->info_file->compiled);
@@ -165,9 +166,17 @@ static void do_run_coverage_tests(struct manifest *m,
                                                 " failed: %s", cmdout);
                                return;
                        }
+                       ran_some = true;
                }
        }
 
+       /* No tests at all?  0 out of 0 for you... */
+       if (!ran_some) {
+               score->total = score->score = 0;
+               score->pass = true;
+               return;
+       }
+
        /* Now run gcov: we want output even if it succeeds. */
        if (!run_command(score, timeleft, &cmdout, "%s", covcmd)) {
                score->error = talloc_asprintf(score, "Running gcov: %s",
index 86f7ef27e816e902c406c2a92aec44dba26a20dc..061a905227da58af30f67bdf484bb2b5d186b445 100644 (file)
@@ -114,14 +114,11 @@ static void check_tests_exist(struct manifest *m,
 
        if (list_empty(&m->api_tests)
            && list_empty(&m->run_tests)
-           && list_empty(&m->compile_ok_tests)) {
-               if (list_empty(&m->compile_fail_tests)) {
-                       score->error = talloc_strdup(score,
+           && list_empty(&m->compile_ok_tests)
+           && list_empty(&m->compile_fail_tests)) {
+               score->error = talloc_strdup(score,
                                             "No tests in test directory");
-                       tests_exist.handle = handle_no_tests;
-               } else
-                       score->error = talloc_strdup(score,
-                                    "No positive tests in test directory");
+               tests_exist.handle = handle_no_tests;
                return;
        }
        score->pass = true;