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

Christophe Lyon christophe.lyon@linaro.org
Fri Nov 4 14:31:00 GMT 2016


On 2 November 2016 at 10:09, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> 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.
>

.... but experimental/filesystem/iterators/recursive_directory_iterator.cc
now fails at execution on "old" arm targets (when forcing -march=armv5t).

Christophe


> Thanks,
>
> Christophe
>
>
>>
>> Tested x86_64-linux, committed to trunk.



More information about the Gcc-patches mailing list