12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package reexec // import "github.com/docker/docker/pkg/reexec"
- import (
- "os"
- "os/exec"
- "testing"
- "gotest.tools/v3/assert"
- )
- func init() {
- Register("reexec", func() {
- panic("Return Error")
- })
- Init()
- }
- func TestRegister(t *testing.T) {
- defer func() {
- if r := recover(); r != nil {
- assert.Equal(t, `reexec func already registered under name "reexec"`, r)
- }
- }()
- Register("reexec", func() {})
- }
- func TestCommand(t *testing.T) {
- cmd := Command("reexec")
- w, err := cmd.StdinPipe()
- assert.NilError(t, err, "Error on pipe creation: %v", err)
- defer w.Close()
- err = cmd.Start()
- assert.NilError(t, err, "Error on re-exec cmd: %v", err)
- err = cmd.Wait()
- assert.Error(t, err, "exit status 2")
- }
- func TestNaiveSelf(t *testing.T) {
- if os.Getenv("TEST_CHECK") == "1" {
- os.Exit(2)
- }
- cmd := exec.Command(naiveSelf(), "-test.run=TestNaiveSelf")
- cmd.Env = append(os.Environ(), "TEST_CHECK=1")
- err := cmd.Start()
- assert.NilError(t, err, "Unable to start command")
- err = cmd.Wait()
- assert.Error(t, err, "exit status 2")
- os.Args[0] = "mkdir"
- assert.Check(t, naiveSelf() != os.Args[0])
- }
|