@@ -42,3 +42,41 @@ function teardown() {
42
42
[[ " $output " == * " error running $hook hook #1:" * ]]
43
43
done
44
44
}
45
+
46
+ @test " runc run [hook with env]" {
47
+ update_config ' .process.args = ["/bin/true"]'
48
+ update_config ' .process.env = ["mm=nn"]'
49
+ # All hooks except Poststop.
50
+ for hook in prestart createRuntime createContainer startContainer poststart; do
51
+ echo " testing hook $hook "
52
+ # shellcheck disable=SC2016
53
+ update_config ' .hooks = {
54
+ "' $hook ' ": [{
55
+ "path": "/bin/sh",
56
+ "args": ["/bin/sh", "-c", "[ \"$mm\"==\"tt\" ] && echo yes, we got tt from the env mm && exit 1 || exit 0"],
57
+ "env": ["mm=tt"]
58
+ }]
59
+ }'
60
+ mm=nn runc run " test_hook-$hook "
61
+ [ " $status " -ne 0 ]
62
+ [[ " $output " == * " yes, we got tt from the env mm" * ]]
63
+ done
64
+ }
65
+
66
+ @test " runc run [hook without env does not inherit host env]" {
67
+ update_config ' .process.args = ["/bin/true"]'
68
+ update_config ' .process.env = ["mm=nn"]'
69
+ # All hooks except Poststop.
70
+ for hook in prestart createRuntime createContainer startContainer poststart; do
71
+ echo " testing hook $hook "
72
+ # shellcheck disable=SC2016
73
+ update_config ' .hooks = {
74
+ "' $hook ' ": [{
75
+ "path": "/bin/sh",
76
+ "args": ["/bin/sh", "-c", "[[ \"$mm\" == \"nn\" ]] && echo \"$mm\" && exit 1 || exit 0"]
77
+ }]
78
+ }'
79
+ mm=nn runc run " test_hook-$hook "
80
+ [ " $status " -eq 0 ]
81
+ done
82
+ }
0 commit comments