From e43993c6e58d070c987daf736ff1093a7353d7fe Mon Sep 17 00:00:00 2001 From: Bradley Landherr Date: Sun, 13 Sep 2020 03:31:00 +0000 Subject: [PATCH] adding TestFiles to artifact config, transfers extra test files to VM --- config/config.go | 8 ++++++++ debug.go | 9 +++++++++ pew.go | 9 +++++++++ 3 files changed, 26 insertions(+) diff --git a/config/config.go b/config/config.go index c7dbef4..86034b6 100644 --- a/config/config.go +++ b/config/config.go @@ -108,10 +108,18 @@ type PreloadModule struct { TimeoutAfterLoad Duration } +// Extra test files to copy over +type FileTransfer struct { + User string + Local string + Remote string +} + // Artifact is for .out-of-tree.toml type Artifact struct { Name string Type ArtifactType + TestFiles []FileTransfer SourcePath string SupportedKernels []KernelMask diff --git a/debug.go b/debug.go index af25865..c5e6107 100644 --- a/debug.go +++ b/debug.go @@ -201,6 +201,15 @@ func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string, return } + // Copy all test files to the remote machine + for _,f := range ka.TestFiles { + err = q.CopyFile(f.User,f.Local,f.Remote) + if err != nil { + log.Println("error copy err:", err, f.Local, f.Remote) + return + } + } + coloredRemoteFile := aurora.BgGreen(aurora.Black(remoteFile)) fmt.Printf("[*] build result copied to %s\n", coloredRemoteFile) diff --git a/pew.go b/pew.go index fffbe71..e0ed131 100644 --- a/pew.go +++ b/pew.go @@ -251,6 +251,15 @@ func copyArtifactAndTest(q *qemu.System, ka config.Artifact, } res.Run.Ok = true + // Copy all test files to the remote machine + for _,f := range ka.TestFiles { + err = q.CopyFile(f.User,f.Local,f.Remote) + if err != nil { + log.Println("error copy err:", err, f.Local, f.Remote) + return + } + } + res.Test.Output, err = testKernelModule(q, ka, remoteTest) if err != nil { log.Println(res.Test.Output, err)