34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package rlimit
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/cilium/ebpf/internal"
|
|
"github.com/cilium/ebpf/internal/unix"
|
|
|
|
qt "github.com/frankban/quicktest"
|
|
)
|
|
|
|
func TestRemoveMemlock(t *testing.T) {
|
|
var before unix.Rlimit
|
|
qt.Assert(t, unix.Prlimit(0, unix.RLIMIT_MEMLOCK, nil, &before), qt.IsNil)
|
|
|
|
err := RemoveMemlock()
|
|
qt.Assert(t, err, qt.IsNil)
|
|
|
|
var after unix.Rlimit
|
|
qt.Assert(t, unix.Prlimit(0, unix.RLIMIT_MEMLOCK, nil, &after), qt.IsNil)
|
|
|
|
// We can't use testutils here due to an import cycle.
|
|
version, err := internal.KernelVersion()
|
|
qt.Assert(t, err, qt.IsNil)
|
|
|
|
if version.Less(unsupportedMemcgAccounting.MinimumVersion) {
|
|
qt.Assert(t, after.Cur, qt.Equals, uint64(unix.RLIM_INFINITY), qt.Commentf("cur should be INFINITY"))
|
|
qt.Assert(t, after.Max, qt.Equals, uint64(unix.RLIM_INFINITY), qt.Commentf("max should be INFINITY"))
|
|
} else {
|
|
qt.Assert(t, after.Cur, qt.Equals, before.Cur, qt.Commentf("cur should be unchanged"))
|
|
qt.Assert(t, after.Max, qt.Equals, before.Max, qt.Commentf("max should be unchanged"))
|
|
}
|
|
}
|