[libcxx] r273034 - Add Filesystem TS -- Complete

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 20 13:31:15 PDT 2016


Oh shoot, I definitely didn't take that into account. I'll put together a
fix.

/Eric



On Mon, Jun 20, 2016 at 2:27 PM, Artem Belevich <tra at google.com> wrote:

> Eric,
>
> Some tests appear to fail if the path to the tests' current directory has
> some symlinks in it.
> In my case source and build tree are in directory 'work' that's symlinked
> to from my home directory:
> /usr/local/home/tra/work -> /work/tra
>
> This causes multiple failures in libcxx tests. One example:
>
>
> projects/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp:121
> 121        TEST_CHECK(read_symlink(bad_sym_dest) == dne);
>
> dne:
>
> /usr/local/home/tra/work/llvm/build/gpu/debug/projects/libcxx/test/filesystem/Output/dynamic_env/test.529143/dne
> bad_sym_dest:
>
> /usr/local/home/tra/work/llvm/build/gpu/debug/projects/libcxx/test/filesystem/Output/dynamic_env/test.529143/bad_sym2
>
> These are the paths that traverse the 'work' symlink in my home directory.
> However, the symlink that we're reading contains physical path to the
> directory. While it does link to the right place, it's not the path the
> test expects.
>
> #readlink
> /usr/local/home/tra/work/llvm/build/gpu/debug/projects/libcxx/test/filesystem/Output/dynamic_env/test.529143/bad_sym2
>
> /work/tra/llvm/build/gpu/debug/projects/libcxx/test/filesystem/Output/dynamic_env/test.529143/dne
>
> I think we need to normalize paths before we compare them.
>
> --Artem
>
>
> On Sat, Jun 18, 2016 at 12:03 PM, Eric Fiselier via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> > I assume the correct way to fix this is to disable
>> -Wcovered-switch-default while compiling libcxx/src/experimental/
>> filesystem/operations.cpp
>>
>> Agreed. Disabled in r273092.
>>
>> Thanks for your patience with this latest change,
>>
>> /Eric
>>
>> On Sat, Jun 18, 2016 at 12:54 PM, Adrian Prantl <aprantl at apple.com>
>> wrote:
>>
>>> Hello Eric,
>>>
>>> this commit causes new warnings on our bots:
>>>
>>> clang/src/projects/libcxx/include/fstream:816:5: warning: default label
>>> in switch which covers all enumeration values [-Wcovered-switch-default]
>>>     default:
>>>
>>> The problem is with this defensive default statement in fstream:
>>>
>>>
>>>  template <class _CharT, class _Traits>
>>> 0792 typename basic_filebuf<_CharT, _Traits>::pos_type
>>> 0793 basic_filebuf<_CharT, _Traits>::seekoff(off_type __off,
>>> ios_base::seekdir __way,
>>> 0794                                         ios_base::openmode)
>>> 0795 {
>>> 0796 #ifndef _LIBCPP_NO_EXCEPTIONS
>>> 0797     if (!__cv_)
>>> 0798         throw bad_cast();
>>> 0799 #endif
>>> 0800     int __width = __cv_->encoding();
>>> 0801     if (__file_ == 0 || (__width <= 0 && __off != 0) || sync())
>>> 0802         return pos_type(off_type(-1));
>>> 0803     // __width > 0 || __off == 0
>>> 0804     int __whence;
>>> 0805     switch (__way)
>>> 0806     {
>>> 0807     case ios_base::beg:
>>> 0808         __whence = SEEK_SET;
>>> 0809         break;
>>> 0810     case ios_base::cur:
>>> 0811         __whence = SEEK_CUR;
>>> 0812         break;
>>> 0813     case ios_base::end:
>>> 0814         __whence = SEEK_END;
>>> 0815         break;
>>> 0816     default:
>>> 0817         return pos_type(off_type(-1));
>>> 0818     }
>>>
>>>
>>> I assume the correct way to fix this is to disable
>>> -Wcovered-switch-default while compiling
>>> libcxx/src/experimental/filesystem/operations.cpp
>>>
>>> Could you please investigate?
>>>
>>> thanks,
>>> Adrian
>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>>
>
>
> --
> --Artem Belevich
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160620/ecac22d4/attachment-0001.html>


More information about the cfe-commits mailing list