mirror of
https://github.com/opencontainers/runc.git
synced 2026-04-22 23:17:17 +08:00
e6048715e4
gofumpt (mvdan.cc/gofumpt) is a fork of gofmt with stricter rules. Brought to you by git ls-files \*.go | grep -v ^vendor/ | xargs gofumpt -s -w Looking at the diff, all these changes make sense. Also, replace gofmt with gofumpt in golangci.yml. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
43 lines
973 B
Go
43 lines
973 B
Go
// +build linux
|
|
|
|
package fscommon
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestWriteCgroupFileHandlesInterrupt(t *testing.T) {
|
|
const (
|
|
memoryCgroupMount = "/sys/fs/cgroup/memory"
|
|
memoryLimit = "memory.limit_in_bytes"
|
|
)
|
|
if _, err := os.Stat(memoryCgroupMount); err != nil {
|
|
// most probably cgroupv2
|
|
t.Skip(err)
|
|
}
|
|
|
|
cgroupName := fmt.Sprintf("test-eint-%d", time.Now().Nanosecond())
|
|
cgroupPath := filepath.Join(memoryCgroupMount, cgroupName)
|
|
if err := os.MkdirAll(cgroupPath, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(cgroupPath)
|
|
|
|
if _, err := os.Stat(filepath.Join(cgroupPath, memoryLimit)); err != nil {
|
|
// either cgroupv2, or memory controller is not available
|
|
t.Skip(err)
|
|
}
|
|
|
|
for i := 0; i < 100000; i++ {
|
|
limit := 1024*1024 + i
|
|
if err := WriteFile(cgroupPath, memoryLimit, strconv.Itoa(limit)); err != nil {
|
|
t.Fatalf("Failed to write %d on attempt %d: %+v", limit, i, err)
|
|
}
|
|
}
|
|
}
|