[PATCH] D16948: [libcxx] Filesystem TS -- Complete

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Mon May 30 22:55:56 PDT 2016


EricWF updated this revision to Diff 59013.
EricWF marked 5 inline comments as done.
EricWF added a comment.

Address @majnemers review comments:

- Use `readdir` instead of `readdir_r`.
- Remove or clean up poor comments.
- reshuffle `last_write_time` implementation
- detect overflows in `space` calls.


http://reviews.llvm.org/D16948

Files:
  CMakeLists.txt
  include/experimental/__config
  include/experimental/filesystem
  include/iomanip
  src/experimental/directory_iterator.cpp
  src/experimental/operations.cpp
  src/experimental/path.cpp
  test/CMakeLists.txt
  test/libcxx/experimental/filesystem/class.path/path.req/is_pathable.pass.cpp
  test/libcxx/test/config.py
  test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/afile3
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/file5
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/file4
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/file1
  test/std/experimental/filesystem/Inputs/static_test_env/dir1/file2
  test/std/experimental/filesystem/Inputs/static_test_env/empty_file
  test/std/experimental/filesystem/Inputs/static_test_env/non_empty_file
  test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_dir
  test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_empty_file
  test/std/experimental/filesystem/class.directory_entry/directory_entry.cons.pass.cpp
  test/std/experimental/filesystem/class.directory_entry/directory_entry.mods.pass.cpp
  test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
  test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/path.pass.cpp
  test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/status.pass.cpp
  test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
  test/std/experimental/filesystem/class.directory_iterator/types.pass.cpp
  test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp
  test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp
  test/std/experimental/filesystem/class.file_status/file_status.obs.pass.cpp
  test/std/experimental/filesystem/class.filesystem_error/filesystem_error.members.pass.cpp
  test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.assign/copy.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.assign/move.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.compare.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.construct/copy.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.construct/default.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.construct/move.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.construct/source.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/make_preferred.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/remove_filename.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_extension.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_filename.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.modifiers/swap.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.native.obs/named_overloads.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.native.obs/string_alloc.pass.cpp
  test/std/experimental/filesystem/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/append_op.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/path.factory.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/path.io.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/path.io.unicode_bug.pass.cpp
  test/std/experimental/filesystem/class.path/path.nonmember/swap.pass.cpp
  test/std/experimental/filesystem/class.path/synop.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
  test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
  test/std/experimental/filesystem/fs.enum/check_bitmask_types.hpp
  test/std/experimental/filesystem/fs.enum/enum.copy_options.pass.cpp
  test/std/experimental/filesystem/fs.enum/enum.directory_options.pass.cpp
  test/std/experimental/filesystem/fs.enum/enum.file_type.pass.cpp
  test/std/experimental/filesystem/fs.enum/enum.perms.pass.cpp
  test/std/experimental/filesystem/fs.error.report/tested_elsewhere.pass.cpp
  test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.space/space.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.system_complete/system_complete.pass.cpp
  test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
  test/std/experimental/filesystem/fs.req.macros/feature_macro.pass.cpp
  test/std/experimental/filesystem/fs.req.namespace/namespace.pass.cpp
  test/std/utilities/meta/meta.rel/is_nothrow_callable.pass.cpp
  test/support/count_new.hpp
  test/support/filesystem_dynamic_test_helper.py
  test/support/filesystem_test_helper.hpp
  test/support/min_allocator.h
  test/support/rapid-cxx-test.hpp
  test/support/test_macros.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16948.59013.patch
Type: text/x-patch
Size: 511636 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160531/d80f939b/attachment-0001.bin>


More information about the cfe-commits mailing list