Browse Source

Implements reliablity threshold for exit code

tags/v1.1.0
dump_stack() 10 months ago
parent
commit
365c9d0e95
Signed by: Mikhail Klementev <blame@dumpstack.io> GPG Key ID: BE44DA8C062D87DC
2 changed files with 17 additions and 3 deletions
  1. 4
    1
      main.go
  2. 13
    2
      pew.go

+ 4
- 1
main.go View File

@@ -120,6 +120,9 @@ func main() {
dockerRegistryFlag := app.Flag("docker-registry", "Registry for docker")
dockerRegistry := dockerRegistryFlag.Default(conf.Docker.Registry).String()

thresholdFlag := app.Flag("threshold", "Reliablity threshold for exit code")
threshold := thresholdFlag.Default("1.00").Float64()

pewCommand := app.Command("pew", "Build, run and test module/exploit")

pewMax := pewCommand.Flag("max", "Test no more than X kernels").
@@ -332,7 +335,7 @@ func main() {
log.Fatalln(err)
}

if somethingFailed {
if successRate(state) < *threshold {
os.Exit(1)
}
}

+ 13
- 2
pew.go View File

@@ -26,7 +26,17 @@ import (
"code.dumpstack.io/tools/out-of-tree/qemu"
)

var somethingFailed = false
type runstate struct {
Overall, Success float64
}

var (
state runstate
)

func successRate(state runstate) float64 {
return state.Success / state.Overall
}

const pathDevNull = "/dev/null"

@@ -134,11 +144,12 @@ func testKernelExploit(q *qemu.System, ka config.Artifact,
}

func genOkFail(name string, ok bool) (aurv aurora.Value) {
state.Overall += 1
if ok {
state.Success += 1
s := " " + name + " SUCCESS "
aurv = aurora.BgGreen(aurora.Black(s))
} else {
somethingFailed = true
s := " " + name + " FAILURE "
aurv = aurora.BgRed(aurora.Gray(aurora.Bold(s)))
}

Loading…
Cancel
Save