[PATCH] Five patches for std::experimental::filesystem

Jonathan Wakely jwakely@redhat.com
Thu Oct 27 13:35:00 GMT 2016


On 26/10/16 09:24 +0200, Christophe Lyon wrote:
>Hi Jonathan,
>
>On 25 October 2016 at 17:32, Jonathan Wakely <jwakely@redhat.com> wrote:
>> Two more fixes for the filesystem TS, and improved tests.
>>
>>   Handle negative times in filesystem::last_write_time
>>           * src/filesystem/ops.cc
>>        (last_write_time(const path&, file_time_type, error_code&)): Handle
>>        negative times correctly.
>>        * testsuite/experimental/filesystem/operations/last_write_time.cc:
>>        Test writing file times.
>>
>>    Fix error handling in copy_file and equivalent
>>           * src/filesystem/ops.cc (do_copy_file): Report an error if source
>> or
>>        destination is not a regular file (LWG 2712).
>>        (equivalent): Fix error handling and result when only one file
>> exists.
>>        * testsuite/experimental/filesystem/operations/copy.cc: Remove files
>>        created by tests. Test copying directories.
>>        * testsuite/experimental/filesystem/operations/copy_file.cc: Remove
>>        files created by tests.
>>        * testsuite/experimental/filesystem/operations/equivalent.cc: New.
>>        * testsuite/experimental/filesystem/operations/is_empty.cc: New.
>>        * testsuite/experimental/filesystem/operations/read_symlink.cc:
>> Remove
>>        file created by test.
>>        * testsuite/experimental/filesystem/operations/remove_all.cc: New.
>>        * testsuite/util/testsuite_fs.h (~scoped_file): Only try to remove
>>        file if path is non-empty, to support removal by other means.
>>
>> Tested x86_64-linux, committed to trunk.
>>
>>
>I can see failures in
>experimental/filesystem/operations/last_write_time.cc after your
>committed this patch:
>/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc:127:
>void test02(): Assertion 'last_write_time(f.path) == time' failed.
>on arm*linux* and aarch64*linux* targets.

That test will fail for targets where _GLIBCXX_USE_UTIMENSAT is not
defined, as they use utime() instead which only supports second
granularity.

This should solve it, by only checking that the file times are within
one second of the expected value.

Tested x86_64-linux, committed to trunk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 9716 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20161027/34a23de3/attachment.bin>


More information about the Gcc-patches mailing list