1
0
Форк 0

Implements reliablity threshold for exit code

timestamps
dump_stack() 2019-08-30 00:33:43 +00:00
джерело 5bad772125
коміт 365c9d0e95
Підписано: dump_stack
Ідентифікатор GPG ключа: BE44DA8C062D87DC
2 змінених файлів з 17 додано та 3 видалено

@ -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)
}
}

15
pew.go

@ -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)))
}