@@ -24,16 +24,16 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/pkg/userns"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
exec "golang.org/x/sys/execabs"
|
||||
"gotest.tools/v3/assert"
|
||||
is "gotest.tools/v3/assert/cmp"
|
||||
)
|
||||
|
||||
func TestSetPositiveOomScoreAdjustment(t *testing.T) {
|
||||
// Setting a *positive* OOM score adjust does not require privileged
|
||||
_, adjustment, err := adjustOom(123)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Equal(adjustment, 123))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, adjustment, 123)
|
||||
}
|
||||
|
||||
func TestSetNegativeOomScoreAdjustmentWhenPrivileged(t *testing.T) {
|
||||
@@ -43,8 +43,8 @@ func TestSetNegativeOomScoreAdjustmentWhenPrivileged(t *testing.T) {
|
||||
}
|
||||
|
||||
_, adjustment, err := adjustOom(-123)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Equal(adjustment, -123))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, adjustment, -123)
|
||||
}
|
||||
|
||||
func TestSetNegativeOomScoreAdjustmentWhenUnprivilegedHasNoEffect(t *testing.T) {
|
||||
@@ -54,31 +54,33 @@ func TestSetNegativeOomScoreAdjustmentWhenUnprivilegedHasNoEffect(t *testing.T)
|
||||
}
|
||||
|
||||
initial, adjustment, err := adjustOom(-123)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Equal(adjustment, initial))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, adjustment, initial)
|
||||
}
|
||||
|
||||
func TestSetOOMScoreBoundaries(t *testing.T) {
|
||||
err := SetOOMScore(0, OOMScoreAdjMax+1)
|
||||
assert.ErrorContains(t, err, fmt.Sprintf("value out of range (%d): OOM score must be between", OOMScoreAdjMax+1))
|
||||
require.NotNil(t, err)
|
||||
assert.Contains(t, err.Error(), fmt.Sprintf("value out of range (%d): OOM score must be between", OOMScoreAdjMax+1))
|
||||
|
||||
err = SetOOMScore(0, OOMScoreAdjMin-1)
|
||||
assert.ErrorContains(t, err, fmt.Sprintf("value out of range (%d): OOM score must be between", OOMScoreAdjMin-1))
|
||||
require.NotNil(t, err)
|
||||
assert.Contains(t, err.Error(), fmt.Sprintf("value out of range (%d): OOM score must be between", OOMScoreAdjMin-1))
|
||||
|
||||
_, adjustment, err := adjustOom(OOMScoreAdjMax)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Equal(adjustment, OOMScoreAdjMax))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, adjustment, OOMScoreAdjMax)
|
||||
|
||||
score, err := GetOOMScoreAdj(os.Getpid())
|
||||
assert.NilError(t, err)
|
||||
assert.NoError(t, err)
|
||||
if score == OOMScoreAdjMin {
|
||||
// We won't be able to set the score lower than the parent process. This
|
||||
// could also be tested if the parent process does not have a oom-score-adj
|
||||
// set, but GetOOMScoreAdj does not distinguish between "not set" and
|
||||
// "score is set, but zero".
|
||||
_, adjustment, err = adjustOom(OOMScoreAdjMin)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Equal(adjustment, OOMScoreAdjMin))
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, adjustment, OOMScoreAdjMin)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user