@@ -27,7 +27,9 @@ subroutine collect_filesystem(testsuite)
2727 new_unittest(" fs_list_dir_empty" , fs_list_dir_empty), &
2828 new_unittest(" fs_list_dir_one_file" , fs_list_dir_one_file), &
2929 new_unittest(" fs_list_dir_two_files" , fs_list_dir_two_files), &
30- new_unittest(" fs_list_dir_one_file_one_dir" , fs_list_dir_one_file_one_dir) &
30+ new_unittest(" fs_list_dir_one_file_one_dir" , fs_list_dir_one_file_one_dir), &
31+ new_unittest(" fs_rm_dir_empty" , fs_rm_dir_empty), &
32+ new_unittest(" fs_rm_dir_with_contents" , fs_rm_dir_with_contents) &
3133 ]
3234 end
3335
@@ -239,6 +241,37 @@ subroutine fs_list_dir_one_file_one_dir(error)
239241 call run(' rm -rf ' // temp_list_dir, iostat= stat)
240242 end
241243
244+ subroutine fs_rm_dir_empty (error )
245+ type (error_type), allocatable , intent (out ) :: error
246+
247+ character (* ), parameter :: filename = " empty_dir_to_remove"
248+
249+ call rm_dir(filename)
250+ call check(error, .not. exists(filename), " Directory should not exist." )
251+ call run(' mkdir ' // filename)
252+ call check(error, exists(filename), " Directory should exist." )
253+ call rm_dir(filename)
254+ call check(error, .not. exists(filename), " Directory should not exist." )
255+ end
256+
257+ subroutine fs_rm_dir_with_contents (error )
258+ type (error_type), allocatable , intent (out ) :: error
259+
260+ character (* ), parameter :: filename = " dir_with_contents_to_remove"
261+
262+ call rm_dir(filename)
263+ call check(error, .not. exists(filename), " Directory should not exist." )
264+ call run(' mkdir ' // filename)
265+ call check(error, exists(filename), " Directory should exist." )
266+ if (is_windows()) then
267+ call run(' mkdir ' // filename// ' \' // ' another_dir' )
268+ else
269+ call run(' mkdir ' // filename// ' /' // ' another_dir' )
270+ end if
271+ call rm_dir(filename)
272+ call check(error, .not. exists(filename), " Directory should not exist." )
273+ end
274+
242275 subroutine delete_file (filename )
243276 character (len=* ), intent (in ) :: filename
244277
@@ -247,7 +280,6 @@ subroutine delete_file(filename)
247280 open (newunit= io, file= filename)
248281 close (io, status= " delete" )
249282 end
250-
251283end
252284
253285program tester
0 commit comments