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

Christophe Lyon christophe.lyon@linaro.org
Wed Nov 2 09:09:00 GMT 2016


On 27 October 2016 at 15:34, Jonathan Wakely <jwakely@redhat.com> wrote:
> 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.
>

Hi Jonathan,
Indeed your patch fixes the problem I reported.
Sorry for the delay, I was on holidays.

Thanks,

Christophe


>
> Tested x86_64-linux, committed to trunk.



More information about the Gcc-patches mailing list