From 9c70af4f6fa3f049058e92104ff520745d945ee8 Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Thu, 14 Nov 2019 15:38:16 +0000 Subject: [PATCH] Add flag for verbose output --- CHANGELOG.md | 5 +++++ main.go | 6 +++++- pack.go | 3 ++- pew.go | 22 +++++++++++++++++----- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c31f88..eb066b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ ## [Unreleased] +### Added + +- Flag for Verbose output. Right now only qemu status messages is + implemented. + ### Fixed - Kpti settings was not affected for regular runs. diff --git a/main.go b/main.go index e3a889c..aaffc84 100644 --- a/main.go +++ b/main.go @@ -155,6 +155,9 @@ func main() { pewTagFlag := pewCommand.Flag("tag", "Log tagging") pewTag := pewTagFlag.String() + pewVerboseFlag := pewCommand.Flag("verbose", "Show more information") + pewVerbose := pewVerboseFlag.Bool() + kernelCommand := app.Command("kernel", "Manipulate kernels") kernelNoDownload := kernelCommand.Flag("no-download", "Do not download qemu image while kernel generation").Bool() @@ -303,7 +306,8 @@ func main() { case pewCommand.FullCommand(): err = pewHandler(kcfg, *path, *pewKernel, *pewBinary, *pewTest, *pewGuess, stop, *qemuTimeout, *dockerTimeout, - *pewMax, *pewRuns, *pewDist, *pewTag, *pewThreads, db) + *pewMax, *pewRuns, *pewDist, *pewTag, *pewThreads, + db, *pewVerbose) case kernelListCommand.FullCommand(): err = kernelListHandler(kcfg) case kernelAutogenCommand.FullCommand(): diff --git a/pack.go b/pack.go index 104e897..5df9b4a 100644 --- a/pack.go +++ b/pack.go @@ -51,7 +51,8 @@ func packHandler(db *sql.DB, path, registry string, stop time.Time, pewHandler(kcfg, workPath, "", "", "", false, stop, dockerTimeout, qemuTimeout, - kernelRuns, exploitRuns, pathDevNull, tag, threads, db) + kernelRuns, exploitRuns, pathDevNull, + tag, threads, db, false) } return diff --git a/pew.go b/pew.go index 0012073..eb59542 100644 --- a/pew.go +++ b/pew.go @@ -303,7 +303,7 @@ func copyTest(q *qemu.System, testPath string, ka config.Artifact) ( func whatever(swg *sizedwaitgroup.SizedWaitGroup, ka config.Artifact, ki config.KernelInfo, binaryPath, testPath string, qemuTimeout, dockerTimeout time.Duration, dist, tag string, - db *sql.DB) { + db *sql.DB, verbose bool) { defer swg.Done() @@ -337,6 +337,18 @@ func whatever(swg *sizedwaitgroup.SizedWaitGroup, ka config.Artifact, } defer q.Stop() + if verbose { + go func() { + for !q.Died { + time.Sleep(time.Minute) + log.Println(ka.Name, ki.DistroType, + ki.DistroRelease, ki.KernelRelease, + "still alive") + + } + }() + } + usr, err := user.Current() if err != nil { return @@ -395,7 +407,7 @@ func performCI(ka config.Artifact, kcfg config.KernelConfig, binaryPath, testPath string, stop time.Time, qemuTimeout, dockerTimeout time.Duration, max, runs int64, dist, tag string, threads int, - db *sql.DB) (err error) { + db *sql.DB, verbose bool) (err error) { found := false @@ -421,7 +433,7 @@ func performCI(ka config.Artifact, kcfg config.KernelConfig, binaryPath, swg.Add() go whatever(&swg, ka, kernel, binaryPath, testPath, qemuTimeout, dockerTimeout, - dist, tag, db) + dist, tag, db, verbose) } } } @@ -478,7 +490,7 @@ func pewHandler(kcfg config.KernelConfig, workPath, ovrrdKrnl, binary, test string, guess bool, stop time.Time, qemuTimeout, dockerTimeout time.Duration, max, runs int64, dist, tag string, threads int, - db *sql.DB) (err error) { + db *sql.DB, verbose bool) (err error) { ka, err := config.ReadArtifactConfig(workPath + "/.out-of-tree.toml") if err != nil { @@ -508,7 +520,7 @@ func pewHandler(kcfg config.KernelConfig, err = performCI(ka, kcfg, binary, test, stop, qemuTimeout, dockerTimeout, - max, runs, dist, tag, threads, db) + max, runs, dist, tag, threads, db, verbose) if err != nil { return }