mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 12:14:48 +00:00
virtcontainers: simplify tests
Simplify tests in utils_test.go by table-driven tests. Fixes: #2281 Signed-off-by: Yujia Qiao <rapiz3142@gmail.com>
This commit is contained in:
parent
cfd539dc6c
commit
a99fcc3af1
@ -384,6 +384,51 @@ func TestToBytes(t *testing.T) {
|
|||||||
assert.Equal(expected, result)
|
assert.Equal(expected, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestWaitLocalProcess(t *testing.T) {
|
||||||
|
cfg := []struct {
|
||||||
|
command string
|
||||||
|
args []string
|
||||||
|
timeout uint
|
||||||
|
signal syscall.Signal
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
"true",
|
||||||
|
[]string{},
|
||||||
|
waitLocalProcessTimeoutSecs,
|
||||||
|
syscall.SIGKILL,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sleep",
|
||||||
|
[]string{"999"},
|
||||||
|
waitLocalProcessTimeoutSecs,
|
||||||
|
syscall.SIGKILL,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sleep",
|
||||||
|
[]string{"999"},
|
||||||
|
1,
|
||||||
|
syscall.SIGKILL,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
logger := logrus.WithField("foo", "bar")
|
||||||
|
|
||||||
|
for _, opts := range cfg {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
cmd := exec.Command(opts.command, opts.args...)
|
||||||
|
err := cmd.Start()
|
||||||
|
assert.NoError(err)
|
||||||
|
|
||||||
|
pid := cmd.Process.Pid
|
||||||
|
|
||||||
|
err = WaitLocalProcess(pid, opts.timeout, opts.signal, logger)
|
||||||
|
assert.NoError(err)
|
||||||
|
|
||||||
|
_ = cmd.Wait()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestWaitLocalProcessInvalidSignal(t *testing.T) {
|
func TestWaitLocalProcessInvalidSignal(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
@ -424,58 +469,3 @@ func TestWaitLocalProcessInvalidPid(t *testing.T) {
|
|||||||
assert.Error(err, msg)
|
assert.Error(err, msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWaitLocalProcessBrief(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
cmd := exec.Command("true")
|
|
||||||
err := cmd.Start()
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
pid := cmd.Process.Pid
|
|
||||||
|
|
||||||
logger := logrus.WithField("foo", "bar")
|
|
||||||
|
|
||||||
err = WaitLocalProcess(pid, waitLocalProcessTimeoutSecs, syscall.SIGKILL, logger)
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
_ = cmd.Wait()
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestWaitLocalProcessLongRunningPreKill(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
cmd := exec.Command("sleep", "999")
|
|
||||||
err := cmd.Start()
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
pid := cmd.Process.Pid
|
|
||||||
|
|
||||||
logger := logrus.WithField("foo", "bar")
|
|
||||||
|
|
||||||
err = WaitLocalProcess(pid, waitLocalProcessTimeoutSecs, syscall.SIGKILL, logger)
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
_ = cmd.Wait()
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestWaitLocalProcessLongRunning(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
cmd := exec.Command("sleep", "999")
|
|
||||||
err := cmd.Start()
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
pid := cmd.Process.Pid
|
|
||||||
|
|
||||||
logger := logrus.WithField("foo", "bar")
|
|
||||||
|
|
||||||
// Don't wait for long as the process isn't actually trying to stop,
|
|
||||||
// so it will have to timeout and then be killed.
|
|
||||||
const timeoutSecs = 1
|
|
||||||
|
|
||||||
err = WaitLocalProcess(pid, timeoutSecs, syscall.Signal(0), logger)
|
|
||||||
assert.NoError(err)
|
|
||||||
|
|
||||||
_ = cmd.Wait()
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user