@@ -57,21 +57,20 @@ func ksmTestPrepare() error {
5757 if err != nil {
5858 return err
5959 }
60+ defer ksmTestRun .Close ()
6061
6162 ksmTestPagesToScan , err := os .Create (filepath .Join (defaultKSMRoot , ksmPagesToScan ))
6263 if err != nil {
6364 return err
6465 }
66+ defer ksmTestPagesToScan .Close ()
6567
6668 ksmTestSleepMillisec , err := os .Create (filepath .Join (defaultKSMRoot , ksmSleepMillisec ))
6769 if err != nil {
6870 return err
6971 }
7072
71- defer ksmTestRun .Close ()
72- defer ksmTestPagesToScan .Close ()
7373 defer ksmTestSleepMillisec .Close ()
74-
7574 return nil
7675}
7776
@@ -131,13 +130,26 @@ func initKSM(root string, t *testing.T) *ksm {
131130 return k
132131}
133132
133+ func closeKSMFds (k * ksm ) {
134+ if k .run .file != nil {
135+ _ = k .run .close ()
136+ }
137+ if k .sleepInterval .file != nil {
138+ _ = k .sleepInterval .close ()
139+ }
140+ if k .pagesToScan .file != nil {
141+ _ = k .pagesToScan .close ()
142+ }
143+ }
144+
134145func TestKSMAvailabilityDummy (t * testing.T ) {
135146 _ , err := newKSM ("foo" )
136147 assert .NotNil (t , err )
137148}
138149
139150func TestKSMAvailability (t * testing.T ) {
140151 k := initKSM (defaultKSMRoot , t )
152+ defer closeKSMFds (k )
141153
142154 err := k .isAvailable ()
143155 assert .Nil (t , err )
@@ -209,6 +221,7 @@ func TestKSMInit(t *testing.T) {
209221 assert .Nil (t , err )
210222
211223 k := initKSM (defaultKSMRoot , t )
224+ defer closeKSMFds (k )
212225
213226 assert .Equal (t , k .initialPagesToScan , scan )
214227 assert .Equal (t , k .initialSleepInterval , interval )
@@ -250,6 +263,7 @@ func TestKSMRestore(t *testing.T) {
250263 assert .Nil (t , err )
251264
252265 k := initKSM (defaultKSMRoot , t )
266+ defer closeKSMFds (k )
253267
254268 // Write dummy values and read them back
255269 var newInterval = "foo"
@@ -299,6 +313,7 @@ func TestKSMRestore(t *testing.T) {
299313
300314func TestKSMKick (t * testing.T ) {
301315 k := initKSM (defaultKSMRoot , t )
316+ defer closeKSMFds (k )
302317
303318 timer := time .NewTimer (time .Second )
304319 k .throttling = true
@@ -334,6 +349,7 @@ func TestKSMTune(t *testing.T) {
334349 assert .Nil (t , err )
335350
336351 k := initKSM (defaultKSMRoot , t )
352+ defer closeKSMFds (k )
337353
338354 for _ , v := range ksmSettings {
339355 err = k .tune (v )
@@ -474,6 +490,7 @@ func testThrottle(k *ksm, t *testing.T) {
474490
475491func TestKSMThrottle (t * testing.T ) {
476492 k := initKSM (defaultKSMRoot , t )
493+ defer closeKSMFds (k )
477494
478495 // Let's make the throttling down faster, for quicker tests purpose.
479496 ksmAggressiveInterval = 500 * time .Millisecond
0 commit comments