Skip to content

Commit

Permalink
stream testing output
Browse files Browse the repository at this point in the history
  • Loading branch information
verdverm committed Oct 17, 2020
1 parent 82a1860 commit e912d9a
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 10 deletions.
43 changes: 39 additions & 4 deletions lib/test/exec.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package test

import (
"bytes"
"fmt"
"io"
"os"
"os/exec"
"strings"
)
Expand Down Expand Up @@ -42,9 +45,25 @@ func RunBash(T *Tester, verbose int) (err error) {
}
}

// Setup io streams
cmd.Stdin = os.Stdin

var outBuf, errBuf bytes.Buffer
cmd.Stdout = io.MultiWriter(os.Stdout, &outBuf)
cmd.Stderr = io.MultiWriter(os.Stderr, &errBuf)

// Run and save output
out, err := cmd.CombinedOutput()
T.Output = string(out)
err = cmd.Start()
if err != nil {
return err
}

err = cmd.Wait()
if err != nil {
return err
}

T.Output = outBuf.String() + errBuf.String()

return err
}
Expand Down Expand Up @@ -81,9 +100,25 @@ func RunExec(T *Tester, verbose int) (err error) {
}
}

// Setup io streams
cmd.Stdin = os.Stdin

var outBuf, errBuf bytes.Buffer
cmd.Stdout = io.MultiWriter(os.Stdout, &outBuf)
cmd.Stderr = io.MultiWriter(os.Stderr, &errBuf)

// Run and save output
out, err := cmd.CombinedOutput()
T.Output = string(out)
err = cmd.Start()
if err != nil {
return err
}

err = cmd.Wait()
if err != nil {
return err
}

T.Output = outBuf.String() + errBuf.String()

return err
}
22 changes: 20 additions & 2 deletions lib/test/from.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,26 @@ import (

func RunTestFromArgsFlags(args []string, cmdflags flags.TestFlagpole) (error) {

verbose := flags.RootPflags.Verbose
cueFiles, extraArgs := args, []string{}

// split args at "--"
pos := -1
for i, arg := range args {
if arg == "--" {
pos = i
break
}
}
if pos >= 0 {
cueFiles, extraArgs = args[0:pos], args[pos+1:]
if len(extraArgs) > 0 {
fmt.Println("using extra args:", extraArgs)
}
}

// Loadup our Cue files
crt, err := cuetils.CueRuntimeFromEntrypointsAndFlags(args)
crt, err := cuetils.CueRuntimeFromEntrypointsAndFlags(cueFiles)
if err != nil {
return err
}
Expand Down Expand Up @@ -38,7 +56,7 @@ func RunTestFromArgsFlags(args []string, cmdflags flags.TestFlagpole) (error) {
}

// Run all of our suites
_, err = RunSuites(suites, -1)
_, err = RunSuites(suites, verbose)

// Print our final tests and stats
fmt.Printf("\n\n\n======= FINAL RESULTS ======\n")
Expand Down
1 change: 1 addition & 0 deletions lib/test/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
)

func RunSuites(suites []Suite, verbose int) (TS Stats, err error) {
fmt.Println("RunSuites")

// set start time
TS.Start = time.Now()
Expand Down
6 changes: 2 additions & 4 deletions script/hack.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,8 @@ func Hack(args []string) error {

fs := osfs.New(cwd)

llvl := "warn"
if flags.RootPflags.Verbose != "" {
llvl = flags.RootPflags.Verbose
}
llvls := []string{"error","warn","info","debug"}
llvl := llvls[flags.RootPflags.Verbose]

config := &ast.Config{
LogLevel: llvl,
Expand Down
2 changes: 2 additions & 0 deletions test.cue
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import "strings"

sysenv: bool | *false
env?: [string]: string
args?: [...string]
verbose?: bool | int

dir: string
...
Expand Down

0 comments on commit e912d9a

Please sign in to comment.