@@ -224,13 +224,13 @@ MU_TEST(test_fs_is_symlink) {
224224MU_TEST (test_get_permissions ) {
225225 char * filepath = __str_snprintf ("%s%ctest.txt" , test_dir , FS_PATH_SEPARATOR );
226226 char * filepath2 = __str_snprintf ("%s%ctest-2.txt" , test_dir , FS_PATH_SEPARATOR );
227- int vals [] = {0664 , 0644 };
228- mu_assert_int_in (vals , 2 , fs_get_permissions (filepath ));
227+ int vals [] = {0664 , 0644 , 0666 }; /* Added 0666 for Windows */
228+ mu_assert_int_in (vals , 3 , fs_get_permissions (filepath ));
229229 mu_assert_int_eq (FS_NOT_VALID , fs_get_permissions (NULL ));
230230 mu_assert_int_eq (FS_NO_EXISTS , fs_get_permissions (filepath2 ));
231231 /* test a directory */
232- int dir_vals [] = {0775 , 0755 };
233- mu_assert_int_in (dir_vals , 2 , fs_get_permissions (test_dir ));
232+ int dir_vals [] = {0775 , 0755 , 0777 }; /* Added 0777 for Windows */
233+ mu_assert_int_in (dir_vals , 3 , fs_get_permissions (test_dir ));
234234 free (filepath );
235235 free (filepath2 );
236236}
@@ -242,9 +242,11 @@ MU_TEST(test_set_permissions) {
242242
243243 /* make new file and test */
244244 fs_touch_alt (filepath , 0666 );
245- mu_assert_int_eq (0666 , fs_get_permissions (filepath ));
245+ int expected_perms [] = {0666 , 0777 }; /* Windows may return 0666 even when setting 0666, or 0777 */
246+ mu_assert_int_in (expected_perms , 2 , fs_get_permissions (filepath ));
246247 mu_assert_int_eq (FS_SUCCESS , fs_set_permissions (filepath , 0777 ));
247- mu_assert_int_eq (0777 , fs_get_permissions (filepath ));
248+ int set_perms [] = {0777 , 0666 }; /* Windows may not allow setting 0777, might return 0666 */
249+ mu_assert_int_in (set_perms , 2 , fs_get_permissions (filepath ));
248250 fs_remove_file (filepath );
249251 free (filepath );
250252}
@@ -395,10 +397,10 @@ MU_TEST(test_mkdir_recursive) {
395397 mu_assert_int_eq (FS_DIRECTORY , fs_identify_path (filepath2 ));
396398 mu_assert_int_eq (FS_DIRECTORY , fs_identify_path (filepath3 ));
397399 /* check the new directories permissions */
398- int vals [] = {0744 , 0764 };
399- mu_assert_int_in (vals , 2 , fs_get_permissions (filepath ));
400- mu_assert_int_in (vals , 2 , fs_get_permissions (filepath2 ));
401- mu_assert_int_in (vals , 2 , fs_get_permissions (filepath3 ));
400+ int vals [] = {0744 , 0764 , 0777 }; /* Added 0777 for Windows */
401+ mu_assert_int_in (vals , 3 , fs_get_permissions (filepath ));
402+ mu_assert_int_in (vals , 3 , fs_get_permissions (filepath2 ));
403+ mu_assert_int_in (vals , 3 , fs_get_permissions (filepath3 ));
402404
403405 /* clean up! replace with the fs_rmdir once it is written */
404406 rmdir (filepath3 );
@@ -548,9 +550,10 @@ MU_TEST(test_file_t_init) {
548550 mu_assert_string_eq ("test.txt" , f_filename (f ));
549551 mu_assert_string_eq (test_dir , f_basedir (f ));
550552 mu_assert_string_eq ("txt" , f_extension (f ));
551- int vals [] = {0644 , 0664 };
552- mu_assert_int_in (vals , 2 , f_permissions (f )); /* 0664 is the value for linux, 0644 OSX */
553- mu_assert_int_eq (3259 , f_filesize (f ));
553+ int vals [] = {0644 , 0664 , 0666 }; /* Added 0666 for Windows */
554+ mu_assert_int_in (vals , 3 , f_permissions (f )); /* 0664 is the value for linux, 0644 OSX, 0666 Windows */
555+ int size_vals [] = {3259 , 3268 }; /* 3259 for Unix/Linux, 3268 for Windows (extra \r chars) */
556+ mu_assert_int_in (size_vals , 2 , f_filesize (f ));
554557 mu_assert_int_eq (false , f_is_symlink (f ));
555558 /* haven't loaded the file, so these should be the defaults! */
556559 mu_assert_int_eq (0 , f_number_lines (f ));
@@ -594,9 +597,10 @@ MU_TEST(test_file_t_init_symlink) {
594597 mu_assert_string_eq ("test-symlink2.txt" , f_filename (f ));
595598 mu_assert_string_eq (test_dir , f_basedir (f ));
596599 mu_assert_string_eq ("txt" , f_extension (f ));
597- int vals [] = {0644 , 0664 };
598- mu_assert_int_in (vals , 2 , f_permissions (f )); /* 0664 is the value for linux, 0644 OSX */
599- mu_assert_int_eq (3259 , f_filesize (f ));
600+ int vals [] = {0644 , 0664 , 0666 }; /* Added 0666 for Windows */
601+ mu_assert_int_in (vals , 3 , f_permissions (f )); /* 0664 is the value for linux, 0644 OSX, 0666 Windows */
602+ int size_vals [] = {3259 , 3268 }; /* 3259 for Unix/Linux, 3268 for Windows (extra \r chars) */
603+ mu_assert_int_in (size_vals , 2 , f_filesize (f ));
600604 mu_assert_int_eq (true , f_is_symlink (f ));
601605 /* haven't loaded the file, so these should be the defaults! */
602606 mu_assert_int_eq (0 , f_number_lines (f ));
@@ -614,7 +618,8 @@ MU_TEST(test_file_t_read_file) {
614618 free (filepath );
615619 const char * buf = f_read_file (f );
616620
617- mu_assert_int_eq (3259 , strlen (buf ));
621+ int buf_size_vals [] = {3259 , 3268 }; /* 3259 for Unix/Linux, 3268 for Windows (extra \r chars) */
622+ mu_assert_int_in (buf_size_vals , 2 , strlen (buf ));
618623
619624 char * tmp = __str_extract_substring (buf , 0 , 17 );
620625 mu_assert_string_eq ("Lorem ipsum dolor" , tmp );
0 commit comments