@@ -17,9 +17,13 @@ limitations under the License.
17
17
package memory
18
18
19
19
import (
20
+ "regexp"
20
21
"testing"
21
22
23
+ . "github.com/smartystreets/goconvey/convey"
22
24
"github.com/stretchr/testify/assert"
25
+
26
+ "sigs.k8s.io/node-feature-discovery/pkg/utils/hostpath"
23
27
)
24
28
25
29
func TestMemorySource (t * testing.T ) {
@@ -61,3 +65,54 @@ func TestGetNumberofLinesFromFile(t *testing.T) {
61
65
assert .Equal (t , tc .expectedLines , actual , "lines should match" )
62
66
}
63
67
}
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