"strings"
"time"
+ "git.arvados.org/arvados.git/sdk/go/arvados"
"golang.org/x/net/context"
. "gopkg.in/check.v1"
)
Stdout: nopWriteCloser{&s.stdout},
Stderr: nopWriteCloser{&s.stderr},
}
- err := s.executor.LoadImage(busyboxDockerImage(c))
+ err := s.executor.LoadImage("", busyboxDockerImage(c), arvados.Container{}, "", nil)
c.Assert(err, IsNil)
}
c.Check(s.stderr.String(), Equals, "")
}
+func (s *executorSuite) TestExitStatus(c *C) {
+ s.spec.Command = []string{"false"}
+ s.checkRun(c, 1)
+}
+
+func (s *executorSuite) TestSignalExitStatus(c *C) {
+ if _, isdocker := s.executor.(*dockerExecutor); isdocker {
+ // It's not quite this easy to make busybox kill
+ // itself in docker where it's pid 1.
+ c.Skip("kill -9 $$ doesn't work on busybox with pid=1 in docker")
+ return
+ }
+ s.spec.Command = []string{"sh", "-c", "kill -9 $$"}
+ s.checkRun(c, 0x80+9)
+}
+
func (s *executorSuite) TestExecStop(c *C) {
s.spec.Command = []string{"sh", "-c", "sleep 10; echo ok"}
err := s.executor.Create(s.spec)
// docker sets these by itself
case "LD_LIBRARY_PATH", "SINGULARITY_NAME", "PWD", "LANG", "SHLVL", "SINGULARITY_INIT", "SINGULARITY_CONTAINER":
// singularity sets these by itself (cf. https://sylabs.io/guides/3.5/user-guide/environment_and_metadata.html)
- case "PROMPT_COMMAND", "PS1", "SINGULARITY_APPNAME":
- // singularity also sets these by itself (as of v3.5.2)
+ case "SINGULARITY_APPNAME":
+ // singularity also sets this by itself (v3.5.2, but not v3.7.4)
+ case "PROMPT_COMMAND", "PS1", "SINGULARITY_BIND", "SINGULARITY_COMMAND", "SINGULARITY_ENVIRONMENT":
+ // singularity also sets these by itself (v3.7.4)
default:
got[kv[0]] = kv[1]
}