зеркало из https://github.com/mislav/hub.git
Don’t shell out commands in Go tests
The changes in 0ed14758b7
mess up `go test`’s exit code since it executes test commands with exec(3) - `go test` always return 0. We need to stop shelling out commands in tests.
This commit is contained in:
Родитель
283782497b
Коммит
0270835a07
|
@ -39,10 +39,14 @@ func newExecError(err error) ExecError {
|
|||
|
||||
type Runner struct {
|
||||
commands map[string]*Command
|
||||
execute func(cmds []*cmd.Cmd) error
|
||||
}
|
||||
|
||||
func NewRunner() *Runner {
|
||||
return &Runner{commands: make(map[string]*Command)}
|
||||
return &Runner{
|
||||
commands: make(map[string]*Command),
|
||||
execute: executeCommands,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Runner) All() map[string]*Command {
|
||||
|
@ -93,7 +97,7 @@ func (r *Runner) Call(cmd *Command, args *Args) ExecError {
|
|||
if args.Noop {
|
||||
printCommands(cmds)
|
||||
} else {
|
||||
err = executeCommands(cmds)
|
||||
err = r.execute(cmds)
|
||||
}
|
||||
|
||||
return newExecError(err)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/github/hub/Godeps/_workspace/src/github.com/bmizerany/assert"
|
||||
"github.com/github/hub/cmd"
|
||||
)
|
||||
|
||||
func TestRunner_splitAliasCmd(t *testing.T) {
|
||||
|
@ -19,7 +20,10 @@ func TestRunner_splitAliasCmd(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestRunnerUseCommands(t *testing.T) {
|
||||
r := NewRunner()
|
||||
r := &Runner{
|
||||
commands: make(map[string]*Command),
|
||||
execute: func(cmds []*cmd.Cmd) error { return nil },
|
||||
}
|
||||
c := &Command{Usage: "foo"}
|
||||
r.Use(c)
|
||||
|
||||
|
@ -33,7 +37,10 @@ func TestRunnerCallCommands(t *testing.T) {
|
|||
args.Replace("git", "version", "")
|
||||
}
|
||||
|
||||
r := NewRunner()
|
||||
r := &Runner{
|
||||
commands: make(map[string]*Command),
|
||||
execute: func(cmds []*cmd.Cmd) error { return nil },
|
||||
}
|
||||
c := &Command{Usage: "foo", Run: f}
|
||||
r.Use(c)
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче