github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/runc/libcontainer/cgroups/fs/utils_test.go (about) 1 // +build linux 2 3 package fs 4 5 import ( 6 "io/ioutil" 7 "math" 8 "os" 9 "path/filepath" 10 "strconv" 11 "testing" 12 ) 13 14 const ( 15 cgroupFile = "cgroup.file" 16 floatValue = 2048.0 17 floatString = "2048" 18 ) 19 20 func TestGetCgroupParamsInt(t *testing.T) { 21 // Setup tempdir. 22 tempDir, err := ioutil.TempDir("", "cgroup_utils_test") 23 if err != nil { 24 t.Fatal(err) 25 } 26 defer os.RemoveAll(tempDir) 27 tempFile := filepath.Join(tempDir, cgroupFile) 28 29 // Success. 30 err = ioutil.WriteFile(tempFile, []byte(floatString), 0755) 31 if err != nil { 32 t.Fatal(err) 33 } 34 value, err := getCgroupParamUint(tempDir, cgroupFile) 35 if err != nil { 36 t.Fatal(err) 37 } else if value != floatValue { 38 t.Fatalf("Expected %d to equal %f", value, floatValue) 39 } 40 41 // Success with new line. 42 err = ioutil.WriteFile(tempFile, []byte(floatString+"\n"), 0755) 43 if err != nil { 44 t.Fatal(err) 45 } 46 value, err = getCgroupParamUint(tempDir, cgroupFile) 47 if err != nil { 48 t.Fatal(err) 49 } else if value != floatValue { 50 t.Fatalf("Expected %d to equal %f", value, floatValue) 51 } 52 53 // Success with negative values 54 err = ioutil.WriteFile(tempFile, []byte("-12345"), 0755) 55 if err != nil { 56 t.Fatal(err) 57 } 58 value, err = getCgroupParamUint(tempDir, cgroupFile) 59 if err != nil { 60 t.Fatal(err) 61 } else if value != 0 { 62 t.Fatalf("Expected %d to equal %d", value, 0) 63 } 64 65 // Success with negative values lesser than min int64 66 s := strconv.FormatFloat(math.MinInt64, 'f', -1, 64) 67 err = ioutil.WriteFile(tempFile, []byte(s), 0755) 68 if err != nil { 69 t.Fatal(err) 70 } 71 value, err = getCgroupParamUint(tempDir, cgroupFile) 72 if err != nil { 73 t.Fatal(err) 74 } else if value != 0 { 75 t.Fatalf("Expected %d to equal %d", value, 0) 76 } 77 78 // Not a float. 79 err = ioutil.WriteFile(tempFile, []byte("not-a-float"), 0755) 80 if err != nil { 81 t.Fatal(err) 82 } 83 _, err = getCgroupParamUint(tempDir, cgroupFile) 84 if err == nil { 85 t.Fatal("Expecting error, got none") 86 } 87 88 // Unknown file. 89 err = os.Remove(tempFile) 90 if err != nil { 91 t.Fatal(err) 92 } 93 _, err = getCgroupParamUint(tempDir, cgroupFile) 94 if err == nil { 95 t.Fatal("Expecting error, got none") 96 } 97 }