runc/libcontainer/cgroups/fscommon/fscommon_test.go

40 lines
867 B
Go
Raw Normal View History

// +build linux
package fscommon
import (
"fmt"
"os"
"path/filepath"
"strconv"
"testing"
"time"
"github.com/opencontainers/runc/libcontainer/cgroups"
)
func TestWriteCgroupFileHandlesInterrupt(t *testing.T) {
if cgroups.IsCgroup2UnifiedMode() {
t.Skip("cgroup v2 is not supported")
}
memoryCgroupMount, err := cgroups.FindCgroupMountpoint("", "memory")
if err != nil {
t.Fatal(err)
}
cgroupName := fmt.Sprintf("test-eint-%d", time.Now().Nanosecond())
cgroupPath := filepath.Join(memoryCgroupMount, cgroupName)
if err := os.MkdirAll(cgroupPath, 0755); err != nil {
t.Fatal(err)
}
defer os.RemoveAll(cgroupPath)
for i := 0; i < 100000; i++ {
limit := 1024*1024 + i
if err := WriteFile(cgroupPath, "memory.limit_in_bytes", strconv.Itoa(limit)); err != nil {
t.Fatalf("Failed to write %d on attempt %d: %+v", limit, i, err)
}
}
}