From aff16d3fed742e27093858a70f8bd5cbf6f0dedd Mon Sep 17 00:00:00 2001 From: Joey Jiaojg Date: Wed, 3 Mar 2021 00:22:57 +0800 Subject: pkg/cover, syz-manager: show coverage summary * pkg/cover, syz-manager: show coverage summary The funccover or cover page is not easy for statistic purpose. So add /cover?type=rawfiles to show coverage based on each file. And /cover?type=table page to show coverage for group of components. If driver_path_map.json exists, /cover?type=table can show component coverage. Format example: { "all": [ "/" ], "audio": [ "/techpack/audio/asoc", "/techpack/audio/dsp", "/techpack/audio/ipc", "/sound/core" ] } If driver_path_map.json not exist, it will show one line summary. * pkg/cover: use subsystem naming * syz-manager: use /subsystemcover and /filecover * pkg/cover: use subsystem from config * pkg/mgrconfig: add kernel_subsystem * pkg/cover, tools/syz-cover: fix make test * all: fix presumit errors * pkg/cover, syz-manager: fix subsystem --- pkg/cover/report_test.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'pkg/cover/report_test.go') diff --git a/pkg/cover/report_test.go b/pkg/cover/report_test.go index 63f1ff50a..0707eab64 100644 --- a/pkg/cover/report_test.go +++ b/pkg/cover/report_test.go @@ -180,7 +180,17 @@ func generateReport(t *testing.T, target *targets.Target, test Test) ([]byte, [] } defer os.RemoveAll(dir) bin := buildTestBinary(t, target, test, dir) - rg, err := MakeReportGenerator(target, "", dir, dir, dir) + subsystem := []Subsystem{ + { + Name: "sound", + Paths: []string{ + "sound", + "techpack/audio", + }, + }, + } + + rg, err := MakeReportGenerator(target, "", dir, dir, dir, subsystem) if err != nil { return nil, nil, err } @@ -216,10 +226,20 @@ func generateReport(t *testing.T, target *targets.Target, test Test) ([]byte, [] if err := rg.DoHTML(html, test.Progs); err != nil { return nil, nil, err } + htmlTable := new(bytes.Buffer) + if err := rg.DoHTMLTable(htmlTable, test.Progs); err != nil { + return nil, nil, err + } + _ = htmlTable csv := new(bytes.Buffer) if err := rg.DoCSV(csv, test.Progs); err != nil { return nil, nil, err } + csvFiles := new(bytes.Buffer) + if err := rg.DoCSVFiles(csvFiles, test.Progs); err != nil { + return nil, nil, err + } + _ = csvFiles return html.Bytes(), csv.Bytes(), nil } -- cgit mrf-deployment