Add examples/tests for "pkg/execpipe" (100% coverage!)
This commit is contained in:
parent
b7dd34a9b2
commit
818247f8b4
|
|
@ -0,0 +1,26 @@
|
|||
package execpipe_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"strings"
|
||||
|
||||
"github.com/docker-library/go-dockerlibrary/pkg/execpipe"
|
||||
)
|
||||
|
||||
func Example() {
|
||||
pipe, err := execpipe.RunCommand("go", "version")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer pipe.Close()
|
||||
|
||||
var buf bytes.Buffer
|
||||
io.Copy(&buf, pipe)
|
||||
|
||||
fmt.Println(strings.SplitN(buf.String(), " version ", 2)[0])
|
||||
|
||||
// Output:
|
||||
// go
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package execpipe_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"testing"
|
||||
|
||||
"github.com/docker-library/go-dockerlibrary/pkg/execpipe"
|
||||
)
|
||||
|
||||
func TestStdoutPipeError(t *testing.T) {
|
||||
cmd := exec.Command("nothing", "really", "matters", "in", "the", "end")
|
||||
|
||||
// set "Stdout" so that "cmd.StdoutPipe" fails
|
||||
// https://golang.org/src/os/exec/exec.go?s=16834:16883#L587
|
||||
cmd.Stdout = os.Stdout
|
||||
|
||||
_, err := execpipe.Run(cmd)
|
||||
if err == nil {
|
||||
t.Errorf("Expected execpipe.Run to fail -- it did not")
|
||||
}
|
||||
}
|
||||
|
||||
func TestStartError(t *testing.T) {
|
||||
// craft a definitely-invalid command so that "cmd.Start" fails
|
||||
// https://golang.org/src/os/exec/exec.go?s=8739:8766#L303
|
||||
_, err := execpipe.RunCommand("nothing-really-matters-in-the-end--bogus-command")
|
||||
if err == nil {
|
||||
t.Errorf("Expected execpipe.RunCommand to fail -- it did not")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue