From bde81f6f54f0b2fa4440884eeffa7db36b70f837 Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Mon, 12 Aug 2024 16:15:13 +0200 Subject: tools/syz-bq.sh: rewrite logic in golang --- tools/syz-bq.sh | 29 ----------------------------- tools/syz-covermerger/syz_covermerger.go | 31 ++++++++++++++++++++++++------- 2 files changed, 24 insertions(+), 36 deletions(-) (limited to 'tools') diff --git a/tools/syz-bq.sh b/tools/syz-bq.sh index f15de82cf..7d070a3b7 100755 --- a/tools/syz-bq.sh +++ b/tools/syz-bq.sh @@ -95,35 +95,6 @@ else echo $total_rows rows are available for processing fi -sessionID=$(cat /proc/sys/kernel/random/uuid) -gsURI=$(echo gs://syzbot-temp/bq-exports/${sessionID}/*.csv.gz) -echo fetching data from bigquery -query=$( echo -n ' -EXPORT DATA - OPTIONS ( - uri = "'$gsURI'", - format = "CSV", - overwrite = true, - header = true, - compression = "GZIP") -AS ( - SELECT - kernel_repo, kernel_branch, kernel_commit, file_path, sl, SUM(hit_count) as hit_count - FROM syzkaller.syzbot_coverage.`'$namespace'` - WHERE - TIMESTAMP_TRUNC(timestamp, DAY) >= "'$from_date'" AND - TIMESTAMP_TRUNC(timestamp, DAY) <= "'$to_date'" AND - version = 1 - GROUP BY file_path, kernel_commit, kernel_repo, kernel_branch, sl - ORDER BY file_path -); -') - -bq query --format=csv --use_legacy_sql=false "$query" -sessionDir="$workdir/sessions/$sessionID" -mkdir -p $sessionDir -gsutil -m cp $gsURI $sessionDir -cat $sessionDir/*.csv.gz | gunzip | \ go run ./tools/syz-covermerger/ -workdir $workdir \ -repo $repo \ -branch $branch \ diff --git a/tools/syz-covermerger/syz_covermerger.go b/tools/syz-covermerger/syz_covermerger.go index d3b9de2ae..05bd9f4d2 100644 --- a/tools/syz-covermerger/syz_covermerger.go +++ b/tools/syz-covermerger/syz_covermerger.go @@ -4,10 +4,10 @@ package main import ( + "context" "flag" "fmt" "log" - "os" "runtime" "sort" @@ -57,15 +57,32 @@ func main() { }, FileVersProvider: makeProvider(), } - mergeResult, err := covermerger.MergeCSVData(config, os.Stdin) - if err != nil { - panic(err) - } - printMergeResult(mergeResult) - var dateTo civil.Date + var dateFrom, dateTo civil.Date + var err error if dateTo, err = civil.ParseDate(*flagDateTo); err != nil { panic(fmt.Sprintf("failed to parse time_to: %s", err.Error())) } + dateFrom = dateTo.AddDays(-int(*flagDuration)) + dbReader := covermerger.MakeBQCSVReader() + if err = dbReader.InitNsRecords(context.Background(), + *flagNamespace, + "", + dateFrom, + dateTo, + ); err != nil { + panic(fmt.Sprintf("failed to dbReader.InitNsRecords: %v", err.Error())) + } + defer dbReader.Close() + csvReader, errReader := dbReader.Reader() + if errReader != nil { + panic(fmt.Sprintf("failed to dbReader.Reader: %v", errReader.Error())) + } + mergeResult, errMerge := covermerger.MergeCSVData(config, csvReader) + if errMerge != nil { + panic(errMerge) + } + printMergeResult(mergeResult) + coverage, _, _ := mergeResultsToCoverage(mergeResult) if *flagToDashAPI != "" { if err := saveCoverage(*flagToDashAPI, *flagDashboardClientName, &dashapi.MergedCoverage{ -- cgit mrf-deployment