@@ -17,9 +17,13 @@ limitations under the License.
1717package memory
1818
1919import (
20+ "regexp"
2021 "testing"
2122
23+ . "github.com/smartystreets/goconvey/convey"
2224 "github.com/stretchr/testify/assert"
25+
26+ "sigs.k8s.io/node-feature-discovery/pkg/utils/hostpath"
2327)
2428
2529func TestMemorySource (t * testing.T ) {
@@ -61,3 +65,54 @@ func TestGetNumberofLinesFromFile(t *testing.T) {
6165 assert .Equal (t , tc .expectedLines , actual , "lines should match" )
6266 }
6367}
68+
69+ func TestDetectHugePages (t * testing.T ) {
70+
71+ Convey ("With configured 1Gi huge pages size" , t , func () {
72+ hostpath .SysfsDir = "testdata/hugepages"
73+
74+ expectedHugePages := map [string ]string {
75+ "enabled" : "true" ,
76+ "hugepages-1Gi" : "true" ,
77+ }
78+ hugePages , err := detectHugePages ()
79+ assert .Nil (t , err )
80+ assert .Equal (t , hugePages , expectedHugePages )
81+ })
82+
83+ Convey ("With invalid directory structure" , t , func () {
84+ hostpath .SysfsDir = "invalid-dir"
85+
86+ expectedHugePages := map [string ]string {
87+ "enabled" : "false" ,
88+ }
89+ hugePages , err := detectHugePages ()
90+ assert .Nil (t , err )
91+ assert .Equal (t , hugePages , expectedHugePages )
92+ })
93+
94+ }
95+
96+ func TestGetHugePagesSize (t * testing.T ) {
97+
98+ re := regexp .MustCompile (`hugepages-(\d+)` )
99+
100+ Convey ("With configured total huge pages" , t , func () {
101+ hugePage , err := getHugePageSize ("testdata/hugepages/kernel/mm/hugepages" , "hugepages-1048576kB" , re )
102+ assert .Equal (t , "hugepages-1Gi" , hugePage )
103+ assert .Nil (t , err )
104+ })
105+
106+ Convey ("With not configured total huge pages" , t , func () {
107+ hugePage , err := getHugePageSize ("testdata/hugepages/kernel/mm/hugepages" , "hugepages-2048kB" , re )
108+ assert .Equal (t , "" , hugePage )
109+ assert .NotNil (t , err )
110+ })
111+
112+ Convey ("With invalid huge page directory" , t , func () {
113+ hugePage , err := getHugePageSize ("testdata/hugepages/kernel/mm/hugepages" , "hugepages-invalid" , re )
114+ assert .Equal (t , "" , hugePage )
115+ assert .NotNil (t , err )
116+ })
117+
118+ }
0 commit comments