1
0

Add missing flags, refactor

This commit is contained in:
2023-01-31 09:05:43 +00:00
parent abd8e69186
commit ce7794ce84
3 changed files with 81 additions and 91 deletions

102
pew.go
View File

@@ -34,13 +34,16 @@ type PewCmd struct {
Binary string `help:"use binary, do not build"`
Test string `help:"override path for test"`
Dist string `help:"build result path" default:"/dev/null"`
Threads int `help:"threads"`
Threads int `help:"threads" default:"1"`
Tag string `help:"log tagging"`
Verbose bool `help:"show more information"`
Timeout time.Duration `help:"timeout after tool will not spawn new tests"`
QemuTimeout time.Duration `help:"timeout for qemu"`
DockerTimeout time.Duration `help:"timeout for docker"`
}
func (cmd *PewCmd) Run(g *Globals) (err error) {
func (cmd PewCmd) Run(g *Globals) (err error) {
kcfg, err := config.ReadKernelConfig(g.Config.Kernels)
if err != nil {
log.Println(err)
@@ -57,13 +60,51 @@ func (cmd *PewCmd) Run(g *Globals) (err error) {
}
defer db.Close()
return pewHandler(
kcfg, g.WorkDir, cmd.Kernel, cmd.Binary, cmd.Test,
cmd.Guess, stop, g.Config.Qemu.Timeout.Duration,
g.Config.Docker.Timeout.Duration,
cmd.Max, cmd.Runs, cmd.Dist, cmd.Tag, cmd.Threads,
db, cmd.Verbose,
)
ka, err := config.ReadArtifactConfig(g.WorkDir + "/.out-of-tree.toml")
if err != nil {
return
}
if ka.SourcePath == "" {
ka.SourcePath = g.WorkDir
}
if cmd.Kernel != "" {
var km config.KernelMask
km, err = kernelMask(cmd.Kernel)
if err != nil {
return
}
ka.SupportedKernels = []config.KernelMask{km}
}
if cmd.Guess {
ka.SupportedKernels, err = genAllKernels()
if err != nil {
return
}
}
qemuTimeout := g.Config.Qemu.Timeout.Duration
if cmd.QemuTimeout != 0 {
qemuTimeout = cmd.QemuTimeout
}
dockerTimeout := g.Config.Docker.Timeout.Duration
if cmd.DockerTimeout != 0 {
dockerTimeout = cmd.DockerTimeout
}
err = performCI(ka, kcfg, cmd.Binary, cmd.Test, stop,
qemuTimeout, dockerTimeout,
cmd.Max, cmd.Runs, cmd.Dist, cmd.Tag,
cmd.Threads, db, cmd.Verbose)
if err != nil {
return
}
return
}
type runstate struct {
@@ -543,46 +584,3 @@ func genAllKernels() (sk []config.KernelMask, err error) {
}
return
}
// TODO: Now too many parameters, move all of them to some structure
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, verbose bool) (err error) {
ka, err := config.ReadArtifactConfig(workPath + "/.out-of-tree.toml")
if err != nil {
return
}
if ka.SourcePath == "" {
ka.SourcePath = workPath
}
if ovrrdKrnl != "" {
var km config.KernelMask
km, err = kernelMask(ovrrdKrnl)
if err != nil {
return
}
ka.SupportedKernels = []config.KernelMask{km}
}
if guess {
ka.SupportedKernels, err = genAllKernels()
if err != nil {
return
}
}
err = performCI(ka, kcfg, binary, test,
stop, qemuTimeout, dockerTimeout,
max, runs, dist, tag, threads, db, verbose)
if err != nil {
return
}
return
}