github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/runc/libcontainer/cgroups/fs/freezer_test.go (about)

     1  // +build linux
     2  
     3  package fs
     4  
     5  import (
     6  	"testing"
     7  
     8  	"github.com/opencontainers/runc/libcontainer/configs"
     9  )
    10  
    11  func TestFreezerSetState(t *testing.T) {
    12  	helper := NewCgroupTestUtil("freezer", t)
    13  	defer helper.cleanup()
    14  
    15  	helper.writeFileContents(map[string]string{
    16  		"freezer.state": string(configs.Frozen),
    17  	})
    18  
    19  	helper.CgroupData.config.Resources.Freezer = configs.Thawed
    20  	freezer := &FreezerGroup{}
    21  	if err := freezer.Set(helper.CgroupPath, helper.CgroupData.config); err != nil {
    22  		t.Fatal(err)
    23  	}
    24  
    25  	value, err := getCgroupParamString(helper.CgroupPath, "freezer.state")
    26  	if err != nil {
    27  		t.Fatalf("Failed to parse freezer.state - %s", err)
    28  	}
    29  	if value != string(configs.Thawed) {
    30  		t.Fatal("Got the wrong value, set freezer.state failed.")
    31  	}
    32  }
    33  
    34  func TestFreezerSetInvalidState(t *testing.T) {
    35  	helper := NewCgroupTestUtil("freezer", t)
    36  	defer helper.cleanup()
    37  
    38  	const (
    39  		invalidArg configs.FreezerState = "Invalid"
    40  	)
    41  
    42  	helper.CgroupData.config.Resources.Freezer = invalidArg
    43  	freezer := &FreezerGroup{}
    44  	if err := freezer.Set(helper.CgroupPath, helper.CgroupData.config); err == nil {
    45  		t.Fatal("Failed to return invalid argument error")
    46  	}
    47  }