|
6 | 6 | "os" |
7 | 7 | "path/filepath" |
8 | 8 | "strings" |
9 | | - "syscall" |
10 | 9 | "testing" |
11 | 10 |
|
12 | 11 | "github.com/arm/remoteproc-runtime/e2e/limavm" |
@@ -152,59 +151,82 @@ func testID(t testing.TB) string { |
152 | 151 | } |
153 | 152 |
|
154 | 153 | func TestRuntimeKillProcessByPid(t *testing.T) { |
| 154 | + limavm.Require(t) |
| 155 | + |
155 | 156 | rootDir := t.TempDir() |
| 157 | + |
| 158 | + runtimeBin, err := repo.BuildRuntimeBin(t.TempDir(), rootDir, limavm.BinBuildEnv) |
| 159 | + require.NoError(t, err) |
| 160 | + |
| 161 | + vm, err := limavm.NewDebian(rootDir) |
| 162 | + require.NoError(t, err) |
| 163 | + defer vm.Cleanup() |
| 164 | + |
| 165 | + installedRuntime, err := vm.InstallBin(runtimeBin) |
| 166 | + require.NoError(t, err) |
| 167 | + |
156 | 168 | sim := remoteproc.NewSimulator(rootDir).WithName("nice-processor") |
157 | 169 | if err := sim.Start(); err != nil { |
158 | 170 | t.Fatalf("failed to run simulator: %s", err) |
159 | 171 | } |
160 | 172 | defer func() { _ = sim.Stop() }() |
161 | | - bin, err := repo.BuildRuntimeBin(t.TempDir(), rootDir, nil) |
162 | | - require.NoError(t, err) |
163 | 173 |
|
164 | 174 | const containerName = "test-container" |
165 | 175 |
|
166 | | - bundlePath := t.TempDir() |
| 176 | + bundlePath := filepath.Join(rootDir, "bundle") |
167 | 177 | require.NoError(t, generateBundle(bundlePath, "nice-processor")) |
168 | | - _, err = invokeRuntime(bin, "create", "--bundle", bundlePath, containerName) |
169 | | - require.NoError(t, err) |
| 178 | + _, stderr, err := installedRuntime.Run("create", "--bundle", bundlePath, containerName) |
| 179 | + require.NoError(t, err, "stderr: %s", stderr) |
170 | 180 |
|
171 | | - pid, err := getContainerPid(bin, containerName) |
| 181 | + pid, err := getContainerPid(installedRuntime, containerName) |
172 | 182 | require.NoError(t, err) |
173 | 183 | require.Greater(t, pid, 0) |
174 | 184 |
|
175 | | - _, err = invokeRuntime(bin, "start", containerName) |
176 | | - require.NoError(t, err) |
| 185 | + _, stderr, err = installedRuntime.Run("start", containerName) |
| 186 | + require.NoError(t, err, "stderr: %s", stderr) |
177 | 187 | remoteproc.RequireState(t, sim.DeviceDir(), "running") |
178 | 188 |
|
179 | | - require.NoError(t, sendSignal(pid, syscall.SIGTERM)) |
| 189 | + _, stderr, err = vm.RunCommand("kill", "-TERM", fmt.Sprintf("%d", pid)) |
| 190 | + require.NoError(t, err, "stderr: %s", stderr) |
180 | 191 | remoteproc.AssertState(t, sim.DeviceDir(), "offline") |
181 | 192 | } |
182 | 193 |
|
183 | 194 | func TestRuntimeWriteProcessPid(t *testing.T) { |
| 195 | + limavm.Require(t) |
| 196 | + |
184 | 197 | rootDir := t.TempDir() |
185 | 198 | remoteprocName := "oh-what-a-device" |
| 199 | + |
| 200 | + runtimeBin, err := repo.BuildRuntimeBin(t.TempDir(), rootDir, limavm.BinBuildEnv) |
| 201 | + require.NoError(t, err) |
| 202 | + |
| 203 | + vm, err := limavm.NewDebian(rootDir) |
| 204 | + require.NoError(t, err) |
| 205 | + defer vm.Cleanup() |
| 206 | + |
| 207 | + installedRuntime, err := vm.InstallBin(runtimeBin) |
| 208 | + require.NoError(t, err) |
| 209 | + |
186 | 210 | sim := remoteproc.NewSimulator(rootDir).WithName(remoteprocName) |
187 | 211 | if err := sim.Start(); err != nil { |
188 | 212 | t.Fatalf("failed to run simulator: %s", err) |
189 | 213 | } |
190 | 214 | defer func() { _ = sim.Stop() }() |
191 | | - bin, err := repo.BuildRuntimeBin(t.TempDir(), rootDir, nil) |
192 | | - require.NoError(t, err) |
193 | 215 |
|
194 | 216 | const containerName = "test-container" |
195 | 217 |
|
196 | | - bundlePath := t.TempDir() |
197 | | - pidFilePath := filepath.Join(t.TempDir(), "pidfile.txt") |
| 218 | + bundlePath := filepath.Join(rootDir, "bundle") |
| 219 | + pidFilePath := filepath.Join(rootDir, "pidfile.txt") |
198 | 220 | require.NoError(t, generateBundle(bundlePath, remoteprocName)) |
199 | | - _, err = invokeRuntime( |
200 | | - bin, "create", |
| 221 | + _, stderr, err := installedRuntime.Run( |
| 222 | + "create", |
201 | 223 | "--bundle", bundlePath, |
202 | 224 | "--pid-file", pidFilePath, |
203 | 225 | containerName, |
204 | 226 | ) |
205 | | - require.NoError(t, err) |
| 227 | + require.NoError(t, err, "stderr: %s", stderr) |
206 | 228 |
|
207 | | - pid, err := getContainerPid(bin, containerName) |
| 229 | + pid, err := getContainerPid(installedRuntime, containerName) |
208 | 230 | require.NoError(t, err) |
209 | 231 | require.Greater(t, pid, 0) |
210 | 232 |
|
@@ -282,7 +304,7 @@ func TestRuntimeProxyKeepsHostNamespaceWhenRootInLimaVM(t *testing.T) { |
282 | 304 | require.NoError(t, err) |
283 | 305 | t.Cleanup(vm.Cleanup) |
284 | 306 |
|
285 | | - installedRuntime, err := vm.InstallBin(runtimeBin) |
| 307 | + _, err = vm.InstallBin(runtimeBin) |
286 | 308 | require.NoError(t, err) |
287 | 309 |
|
288 | 310 | sim := remoteproc.NewSimulator(rootDir).WithName(remoteprocName) |
|
0 commit comments