From 0c3e8daf503e011f0ef3e2a1c6d8b6ffd946acab Mon Sep 17 00:00:00 2001 From: Dean Deng Date: Fri, 16 Apr 2021 17:52:12 -0700 Subject: Allow runsc to generate coverage reports. Add a coverage-report flag that will cause the sandbox to generate a coverage report (with suffix .cov) in the debug log directory upon exiting. For the report to be generated, runsc must have been built with the following Bazel flags: `--collect_code_coverage --instrumentation_filter=...`. With coverage reports, we should be able to aggregate results across all tests to surface code coverage statistics for the project as a whole. The report is simply a text file with each line representing a covered block as `file:start_line.start_col,end_line.end_col`. Note that this is similar to the format of coverage reports generated with `go test -coverprofile`, although we omit the count and number of statements, which are not useful for us. Some simple ways of getting coverage reports: bazel test --collect_code_coverage \ --instrumentation_filter=//pkg/... bazel build //runsc --collect_code_coverage \ --instrumentation_filter=//pkg/... runsc -coverage-report=dir/ do ... PiperOrigin-RevId: 368952911 --- test/runner/runner.go | 1 + 1 file changed, 1 insertion(+) (limited to 'test') diff --git a/test/runner/runner.go b/test/runner/runner.go index a8a134fe2..d314a5036 100644 --- a/test/runner/runner.go +++ b/test/runner/runner.go @@ -252,6 +252,7 @@ func runRunsc(spec *specs.Spec) error { debugLogDir += "/" log.Infof("runsc logs: %s", debugLogDir) args = append(args, "-debug-log", debugLogDir) + args = append(args, "-coverage-report", debugLogDir) // Default -log sends messages to stderr which makes reading the test log // difficult. Instead, drop them when debug log is enabled given it's a -- cgit v1.2.3