Browse Source

ccanlint: don't fail just because we don't have positive tests.

cast package has all negative tests, plus testable examples.
Rusty Russell 15 years ago
parent
commit
37c06f735f
2 changed files with 13 additions and 7 deletions
  1. 9 0
      tools/ccanlint/tests/tests_coverage.c
  2. 4 7
      tools/ccanlint/tests/tests_exist.c

+ 9 - 0
tools/ccanlint/tests/tests_coverage.c

@@ -135,6 +135,7 @@ static void do_run_coverage_tests(struct manifest *m,
 	char *covcmd;
 	char *covcmd;
 	bool full_gcov = (verbose > 1);
 	bool full_gcov = (verbose > 1);
 	struct list_head *list;
 	struct list_head *list;
+	bool ran_some = false;
 
 
 	/* This tells gcov where we put those .gcno files. */
 	/* This tells gcov where we put those .gcno files. */
 	outdir = talloc_dirname(score, m->info_file->compiled);
 	outdir = talloc_dirname(score, m->info_file->compiled);
@@ -165,9 +166,17 @@ static void do_run_coverage_tests(struct manifest *m,
 						 " failed: %s", cmdout);
 						 " failed: %s", cmdout);
 				return;
 				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. */
 	/* Now run gcov: we want output even if it succeeds. */
 	if (!run_command(score, timeleft, &cmdout, "%s", covcmd)) {
 	if (!run_command(score, timeleft, &cmdout, "%s", covcmd)) {
 		score->error = talloc_asprintf(score, "Running gcov: %s",
 		score->error = talloc_asprintf(score, "Running gcov: %s",

+ 4 - 7
tools/ccanlint/tests/tests_exist.c

@@ -114,14 +114,11 @@ static void check_tests_exist(struct manifest *m,
 
 
 	if (list_empty(&m->api_tests)
 	if (list_empty(&m->api_tests)
 	    && list_empty(&m->run_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");
 					     "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;
 		return;
 	}
 	}
 	score->pass = true;
 	score->pass = true;