Add test for prestart hook
Signed-off-by: Mrunal Patel <mrunalp@gmail.com> Conflicts: libcontainer/integration/exec_test.go
This commit is contained in:
parent
05567f2c94
commit
1dca365393
|
@ -932,3 +932,47 @@ func TestOomScoreAdj(t *testing.T) {
|
|||
t.Fatalf("Expected oom_score_adj %d; got %q", config.OomScoreAdj, outputOomScoreAdj)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrestartHook(t *testing.T) {
|
||||
if testing.Short() {
|
||||
return
|
||||
}
|
||||
root, err := newTestRoot()
|
||||
ok(t, err)
|
||||
defer os.RemoveAll(root)
|
||||
|
||||
rootfs, err := newRootfs()
|
||||
ok(t, err)
|
||||
defer remove(rootfs)
|
||||
|
||||
config := newTemplateConfig(rootfs)
|
||||
pwd, _ := os.Getwd()
|
||||
|
||||
hookPath := filepath.Join(pwd, "../../script", "hook.py")
|
||||
prestartCmd := configs.Command{Path: hookPath}
|
||||
config.Prestart = append(config.Prestart, prestartCmd)
|
||||
|
||||
container, err := factory.Create("test", config)
|
||||
ok(t, err)
|
||||
defer container.Destroy()
|
||||
|
||||
var stdout bytes.Buffer
|
||||
pconfig := libcontainer.Process{
|
||||
Args: []string{"sh", "-c", "ls /tmp.txt"},
|
||||
Env: standardEnvironment,
|
||||
Stdin: nil,
|
||||
Stdout: &stdout,
|
||||
}
|
||||
err = container.Start(&pconfig)
|
||||
ok(t, err)
|
||||
|
||||
// Wait for process
|
||||
waitProcess(&pconfig, t)
|
||||
|
||||
outputLs := string(stdout.Bytes())
|
||||
|
||||
// Check that the ls output has the expected file touched by the prestart hook
|
||||
if !strings.Contains(outputLs, "/tmp.txt") {
|
||||
t.Fatal("ls output doesn't have the expected file: ", outputLs)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env python
|
||||
import sys
|
||||
import json
|
||||
import os
|
||||
|
||||
def touch(filepath):
|
||||
if os.path.exists(filepath):
|
||||
os.utime(filepath, None)
|
||||
else:
|
||||
open(filepath, 'a').close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
rootfs = json.load(sys.stdin)["config"]["rootfs"]
|
||||
touch(os.path.join(rootfs, "tmp.txt"))
|
||||
|
Loading…
Reference in New Issue