mirror of
https://github.com/golang/go
synced 2024-11-12 08:20:22 -07:00
os: add ExitCode method to ProcessState
This commit is contained in:
parent
48c79734ff
commit
0b5262df5d
@ -168,6 +168,49 @@ func TestExitStatus(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestExitCode(t *testing.T) {
|
||||
// Test that exit code are returned correctly
|
||||
cmd := helperCommand(t, "exit", "42")
|
||||
cmd.Run()
|
||||
want := 42
|
||||
got := cmd.ProcessState.ExitCode()
|
||||
if want != got {
|
||||
t.Errorf("ExitCode got %d, want %d", got, want)
|
||||
}
|
||||
|
||||
cmd = helperCommand(t, "/no-exist-executable")
|
||||
cmd.Run()
|
||||
want = 2
|
||||
got = cmd.ProcessState.ExitCode()
|
||||
if want != got {
|
||||
t.Errorf("ExitCode got %d, want %d", got, want)
|
||||
}
|
||||
|
||||
cmd = helperCommand(t, "exit", "255")
|
||||
cmd.Run()
|
||||
want = 255
|
||||
got = cmd.ProcessState.ExitCode()
|
||||
if want != got {
|
||||
t.Errorf("ExitCode got %d, want %d", got, want)
|
||||
}
|
||||
|
||||
cmd = helperCommand(t, "cat")
|
||||
cmd.Run()
|
||||
want = 0
|
||||
got = cmd.ProcessState.ExitCode()
|
||||
if want != got {
|
||||
t.Errorf("ExitCode got %d, want %d", got, want)
|
||||
}
|
||||
|
||||
// Test when command does not call Run().
|
||||
cmd = helperCommand(t, "cat")
|
||||
want = -1
|
||||
got = cmd.ProcessState.ExitCode()
|
||||
if want != got {
|
||||
t.Errorf("ExitCode got %d, want %d", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPipes(t *testing.T) {
|
||||
check := func(what string, err error) {
|
||||
if err != nil {
|
||||
|
@ -136,3 +136,13 @@ func (p *ProcessState) String() string {
|
||||
}
|
||||
return "exit status: " + p.status.Msg
|
||||
}
|
||||
|
||||
// ExitCode returns the exit code of the exited process, or -1
|
||||
// if the process hasn't exited or was terminated by a signal.
|
||||
func (p *ProcessState) ExitCode() int {
|
||||
// return -1 if the process hasn't started.
|
||||
if p == nil {
|
||||
return -1
|
||||
}
|
||||
return p.status.ExitStatus()
|
||||
}
|
||||
|
@ -106,3 +106,13 @@ func (p *ProcessState) String() string {
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// ExitCode returns the exit code of the exited process, or -1
|
||||
// if the process hasn't exited or was terminated by a signal.
|
||||
func (p *ProcessState) ExitCode() int {
|
||||
// return -1 if the process hasn't started.
|
||||
if p == nil {
|
||||
return -1
|
||||
}
|
||||
return p.status.ExitStatus()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user