@@ -13,7 +13,6 @@ import (
1313 "os"
1414 "path"
1515 "path/filepath"
16- "strconv"
1716 "sync"
1817 "testing"
1918
@@ -327,46 +326,62 @@ func TestFileManagerService_validateAndFixPermissions(t *testing.T) {
327326 ctx := context .Background ()
328327 fileManagerService := NewFileManagerService (nil , types .AgentConfig (), & sync.RWMutex {})
329328
330- tempDir := t .TempDir ()
331- execFile := helpers .CreateFileWithErrorCheck (t , tempDir , "exec.conf" )
332- defer helpers .RemoveFileWithErrorCheck (t , execFile .Name ())
333-
334- normalFile := helpers .CreateFileWithErrorCheck (t , tempDir , "normal.conf" )
335- defer helpers .RemoveFileWithErrorCheck (t , normalFile .Name ())
336-
337- err := os .Chmod (execFile .Name (), 0o700 )
338- require .NoError (t , err )
339- err = os .Chmod (normalFile .Name (), 0o620 )
340- require .NoError (t , err )
341-
342- fileList := []* mpi.File {
329+ tests := []struct {
330+ name string
331+ errorMsg string
332+ files []* mpi.File
333+ expectError bool
334+ }{
343335 {
344- FileMeta : & mpi.FileMeta {
345- Name : execFile .Name (),
346- Permissions : "0700" ,
336+ name : "Test 1: File list with valid permissions" ,
337+ expectError : false ,
338+ files : []* mpi.File {
339+ {
340+ FileMeta : & mpi.FileMeta {
341+ Name : "exec.conf" ,
342+ Permissions : "0700" ,
343+ },
344+ },
345+ {
346+ FileMeta : & mpi.FileMeta {
347+ Name : "normal.conf" ,
348+ Permissions : "0620" ,
349+ },
350+ },
347351 },
348352 },
349353 {
350- FileMeta : & mpi.FileMeta {
351- Name : normalFile .Name (),
352- Permissions : "0620" ,
354+ name : "Test 2: File list with invalid permissions" ,
355+ expectError : true ,
356+ errorMsg : "failed to reset permissions" ,
357+ files : []* mpi.File {
358+ {
359+ FileMeta : & mpi.FileMeta {
360+ Name : "malformed.conf" ,
361+ Permissions : "07000" ,
362+ },
363+ },
364+ {
365+ FileMeta : & mpi.FileMeta {
366+ Name : "invalid.conf" ,
367+ Permissions : "abcde" ,
368+ },
369+ },
353370 },
354371 },
355372 }
356373
357- err = fileManagerService .validateAndFixPermissions (ctx , fileList )
358-
359- require .Error (t , err )
360- assert .Contains (t , err .Error (), "reset execute permissions for files" )
361- assert .Contains (t , err .Error (), execFile .Name ())
362-
363- info , err := os .Stat (execFile .Name ())
364- require .NoError (t , err )
365- assert .Equal (t , os .FileMode (0o600 ), info .Mode ().Perm ())
366-
367- info , err = os .Stat (normalFile .Name ())
368- require .NoError (t , err )
369- assert .Equal (t , os .FileMode (0o620 ), info .Mode ().Perm ())
374+ for _ , test := range tests {
375+ t .Run (test .name , func (t * testing.T ) {
376+ err := fileManagerService .validateAndFixPermissions (ctx , test .files )
377+ if test .expectError {
378+ require .Error (t , err )
379+ assert .Contains (t , err .Error (), test .errorMsg )
380+ } else {
381+ require .NoError (t , err )
382+ }
383+ })
384+ }
370385}
371386
372387func TestFileManagerService_checkFilePermissions (t * testing.T ) {
@@ -379,22 +394,28 @@ func TestFileManagerService_checkFilePermissions(t *testing.T) {
379394 expectError bool
380395 }{
381396 {
382- name : "File with read and write permissions for owner" ,
397+ name : "Test 1: File with read and write permissions for owner" ,
383398 permissions : "0600" ,
384399 expectError : false ,
385400 },
386401 {
387- name : "File with read/write and execute permissions for owner" ,
402+ name : "Test 2: File with read/write and execute permissions for owner" ,
388403 permissions : "0700" ,
389404 expectError : true ,
390405 errorMsg : "has execute permissions" ,
391406 },
392407 {
393- name : "File with malformed permissions" ,
408+ name : "Test 3: File with malformed permissions" ,
394409 permissions : "abcde" ,
395410 expectError : true ,
396411 errorMsg : "has malformed permissions" ,
397412 },
413+ {
414+ name : "Test 4: File with invalid permissions" ,
415+ permissions : "000070" ,
416+ expectError : true ,
417+ errorMsg : "has malformed permissions" ,
418+ },
398419 }
399420
400421 for _ , test := range tests {
@@ -420,7 +441,6 @@ func TestFileManagerService_checkFilePermissions(t *testing.T) {
420441
421442func TestFileManagerService_resetFilePermissions (t * testing.T ) {
422443 fileManagerService := NewFileManagerService (nil , types .AgentConfig (), & sync.RWMutex {})
423- tempDir := t .TempDir ()
424444
425445 tests := []struct {
426446 name string
@@ -430,13 +450,13 @@ func TestFileManagerService_resetFilePermissions(t *testing.T) {
430450 expectError bool
431451 }{
432452 {
433- name : "File with execute permissions for owner and others" ,
453+ name : "Test 1: File with execute permissions for owner and others" ,
434454 permissions : "0703" ,
435455 expectError : false ,
436456 expectPermissions : "0602" ,
437457 },
438458 {
439- name : "File with malformed permissions" ,
459+ name : "Test 2: File with malformed permissions" ,
440460 permissions : "abcde" ,
441461 expectError : true ,
442462 expectPermissions : "0600" ,
@@ -446,30 +466,21 @@ func TestFileManagerService_resetFilePermissions(t *testing.T) {
446466
447467 for _ , test := range tests {
448468 t .Run (test .name , func (t * testing.T ) {
449- tempFile := helpers .CreateFileWithErrorCheck (t , tempDir , "test.conf" )
450- defer helpers .RemoveFileWithErrorCheck (t , tempFile .Name ())
451-
452469 file := & mpi.File {
453470 FileMeta : & mpi.FileMeta {
454- Name : tempFile . Name () ,
471+ Name : "test.conf" ,
455472 Permissions : test .permissions ,
456473 },
457474 }
458475
459- parseErr := fileManagerService .resetFilePermissions (file )
460-
461- info , err := os .Stat (tempFile .Name ())
462- require .NoError (t , err )
463-
464- actual := "0" + strconv .FormatUint (uint64 (info .Mode ().Perm ()), 8 )
476+ parseErr := fileManagerService .resetFilePermissions (t .Context (), file )
465477
466478 if test .expectError {
467479 require .Error (t , parseErr )
468- assert .Equal (t , test .expectPermissions , actual )
469480 assert .Contains (t , parseErr .Error (), test .errorMsg )
470481 } else {
471482 require .NoError (t , parseErr )
472- assert .Equal (t , test .expectPermissions , actual )
483+ assert .Equal (t , test .expectPermissions , file . GetFileMeta (). GetPermissions () )
473484 }
474485 })
475486 }
0 commit comments