mirror of https://github.com/databricks/cli.git
Add NoLog option on testcli.Runner (#2183)
## Changes Setting Verbose=false on testcli.Runner disables all logging related to running process (stdout, stderr, error, args). I'm using this in #2184 where I'm using testcli runner to run acceptance tests and seeing all output is not useful. ## Tests Manually inspecting test output in #2184
This commit is contained in:
parent
26f527ef64
commit
64fc1c8fe7
|
@ -39,6 +39,8 @@ type Runner struct {
|
|||
StderrLines <-chan string
|
||||
|
||||
errch <-chan error
|
||||
|
||||
Verbose bool
|
||||
}
|
||||
|
||||
func consumeLines(ctx context.Context, wg *sync.WaitGroup, r io.Reader) <-chan string {
|
||||
|
@ -139,8 +141,10 @@ func (r *Runner) RunBackground() {
|
|||
go func() {
|
||||
err := root.Execute(ctx, cli)
|
||||
if err != nil {
|
||||
if r.Verbose {
|
||||
r.Logf("Error running command: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Close pipes to signal EOF.
|
||||
stdoutW.Close()
|
||||
|
@ -154,17 +158,21 @@ func (r *Runner) RunBackground() {
|
|||
// Make a copy of the buffer such that it remains "unread".
|
||||
scanner := bufio.NewScanner(bytes.NewBuffer(r.stdout.Bytes()))
|
||||
for scanner.Scan() {
|
||||
if r.Verbose {
|
||||
r.Logf("[databricks stdout]: %s", scanner.Text())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if r.stderr.Len() > 0 {
|
||||
// Make a copy of the buffer such that it remains "unread".
|
||||
scanner := bufio.NewScanner(bytes.NewBuffer(r.stderr.Bytes()))
|
||||
for scanner.Scan() {
|
||||
if r.Verbose {
|
||||
r.Logf("[databricks stderr]: %s", scanner.Text())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make caller aware of error.
|
||||
errch <- err
|
||||
|
@ -196,28 +204,36 @@ func (r *Runner) Run() (bytes.Buffer, bytes.Buffer, error) {
|
|||
cli.SetErr(&stderr)
|
||||
cli.SetArgs(r.args)
|
||||
|
||||
if r.Verbose {
|
||||
r.Logf(" args: %s", strings.Join(r.args, ", "))
|
||||
}
|
||||
|
||||
err := root.Execute(ctx, cli)
|
||||
if err != nil {
|
||||
if r.Verbose {
|
||||
r.Logf(" error: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if stdout.Len() > 0 {
|
||||
// Make a copy of the buffer such that it remains "unread".
|
||||
scanner := bufio.NewScanner(bytes.NewBuffer(stdout.Bytes()))
|
||||
for scanner.Scan() {
|
||||
if r.Verbose {
|
||||
r.Logf("stdout: %s", scanner.Text())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if stderr.Len() > 0 {
|
||||
// Make a copy of the buffer such that it remains "unread".
|
||||
scanner := bufio.NewScanner(bytes.NewBuffer(stderr.Bytes()))
|
||||
for scanner.Scan() {
|
||||
if r.Verbose {
|
||||
r.Logf("stderr: %s", scanner.Text())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return stdout, stderr, err
|
||||
}
|
||||
|
@ -277,6 +293,7 @@ func NewRunner(t testutil.TestingT, ctx context.Context, args ...string) *Runner
|
|||
|
||||
ctx: ctx,
|
||||
args: args,
|
||||
Verbose: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue