aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-08-16 12:04:08 +0200
committerTaras Madan <tarasmadan@google.com>2024-08-16 11:35:48 +0000
commitd0becdea21af55ab122b2e8d5d498c6fa9ab3564 (patch)
treeaea3b8fee86ed3e1410eb375ba813838f5b0c58d
parentc3a6603be2cc031a8f2fa69e757e04a4ce647080 (diff)
tools/syz-cover: filter by source commit
-rw-r--r--pkg/cover/file.go9
-rw-r--r--pkg/covermerger/bq_csv_reader.go10
-rw-r--r--tools/syz-cover/syz-cover.go8
-rw-r--r--tools/syz-covermerger/syz_covermerger.go1
4 files changed, 18 insertions, 10 deletions
diff --git a/pkg/cover/file.go b/pkg/cover/file.go
index e95392ad7..524963aaf 100644
--- a/pkg/cover/file.go
+++ b/pkg/cover/file.go
@@ -30,18 +30,18 @@ func DefaultTextRenderConfig() *CoverageRenderConfig {
}
}
-func RendFileCoverage(c context.Context, ns, repo, commit, filePath string,
+func RendFileCoverage(c context.Context, ns, repo, forCommit, sourceCommit, filePath string,
fromDate, toDate civil.Date, renderConfig *CoverageRenderConfig) (string, error) {
- fileContent, err := covermerger.GetFileVersion(filePath, repo, commit)
+ fileContent, err := covermerger.GetFileVersion(filePath, repo, forCommit)
if err != nil {
return "", fmt.Errorf("failed to GetFileVersion for file %s, commit %s from repo %s: %w",
- filePath, commit, repo, err)
+ filePath, forCommit, repo, err)
}
config := &covermerger.Config{
Jobs: 1,
Base: covermerger.RepoBranchCommit{
Repo: repo,
- Commit: commit,
+ Commit: forCommit,
},
FileVersProvider: covermerger.MakeWebGit(),
StoreDetails: true,
@@ -51,6 +51,7 @@ func RendFileCoverage(c context.Context, ns, repo, commit, filePath string,
if err := dbReader.InitNsRecords(c,
ns,
filePath,
+ sourceCommit,
fromDate,
toDate,
); err != nil {
diff --git a/pkg/covermerger/bq_csv_reader.go b/pkg/covermerger/bq_csv_reader.go
index 42a1fd4ec..f429f6f4e 100644
--- a/pkg/covermerger/bq_csv_reader.go
+++ b/pkg/covermerger/bq_csv_reader.go
@@ -37,7 +37,7 @@ func MakeBQCSVReader() *bqCSVReader {
return &bqCSVReader{}
}
-func (r *bqCSVReader) InitNsRecords(ctx context.Context, ns, filePath string, from, to civil.Date) error {
+func (r *bqCSVReader) InitNsRecords(ctx context.Context, ns, filePath, commit string, from, to civil.Date) error {
if !isAllowedFilePath(filePath) {
return fmt.Errorf("wrong file path '%s'", filePath)
}
@@ -52,6 +52,10 @@ func (r *bqCSVReader) InitNsRecords(ctx context.Context, ns, filePath string, fr
if err := client.EnableStorageReadClient(ctx); err != nil {
return fmt.Errorf("failed to client.EnableStorageReadClient: %w", err)
}
+ selectCommit := ""
+ if commit != "" {
+ selectCommit = fmt.Sprintf("AND\n\t\t\t\t\tkernel_commit = \"%s\"", commit)
+ }
q := client.Query(fmt.Sprintf(`
EXPORT DATA
OPTIONS (
@@ -68,11 +72,11 @@ func (r *bqCSVReader) InitNsRecords(ctx context.Context, ns, filePath string, fr
TIMESTAMP_TRUNC(timestamp, DAY) >= "%s" AND
TIMESTAMP_TRUNC(timestamp, DAY) <= "%s" AND
version = 1 AND
- starts_with(file_path, "%s")
+ starts_with(file_path, "%s") %s
GROUP BY file_path, kernel_commit, kernel_repo, kernel_branch, sl
ORDER BY file_path
);
- `, gsURI, ns, from.String(), to.String(), filePath))
+ `, gsURI, ns, from.String(), to.String(), filePath, selectCommit))
job, err := q.Run(ctx)
if err != nil {
return fmt.Errorf("err during bigquery.Run: %w", err)
diff --git a/tools/syz-cover/syz-cover.go b/tools/syz-cover/syz-cover.go
index c1f11a92f..8e4f79076 100644
--- a/tools/syz-cover/syz-cover.go
+++ b/tools/syz-cover/syz-cover.go
@@ -59,9 +59,10 @@ var (
flagForFile = flag.String("for-file", "", "[optional]show file coverage")
flagRepo = flag.String("repo", "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git",
"[optional] repo to be used by -for-file")
- flagCommit = flag.String("commit", "latest", "[optional] commit to be used by -for-file")
- flagNamespace = flag.String("namespace", "upstream", "[optional] used by -for-file")
- flagDebug = flag.Bool("debug", false, "[optional] enables detailed output")
+ flagCommit = flag.String("commit", "latest", "[optional] commit to be used by -for-file")
+ flagNamespace = flag.String("namespace", "upstream", "[optional] used by -for-file")
+ flagDebug = flag.Bool("debug", false, "[optional] enables detailed output")
+ flagSourceCommit = flag.String("source-commit", "", "[optional] filter input commit")
)
func parseDates() (civil.Date, civil.Date) {
@@ -106,6 +107,7 @@ func toolFileCover() {
*flagNamespace,
*flagRepo,
*flagCommit,
+ *flagSourceCommit,
*flagForFile,
dateFrom,
dateTo,
diff --git a/tools/syz-covermerger/syz_covermerger.go b/tools/syz-covermerger/syz_covermerger.go
index b152b3dee..cead1e16e 100644
--- a/tools/syz-covermerger/syz_covermerger.go
+++ b/tools/syz-covermerger/syz_covermerger.go
@@ -67,6 +67,7 @@ func main() {
if err = dbReader.InitNsRecords(context.Background(),
*flagNamespace,
"",
+ "",
dateFrom,
dateTo,
); err != nil {