> On Feb 21, 2020, at 3:54 PM, Vedant Kumar via lldb-commits 
> <lldb-commits@lists.llvm.org> wrote:
> 
> 
> Author: Vedant Kumar
> Date: 2020-02-21T15:54:38-08:00
> New Revision: 8a0f0e2656abf76b771037c6543caf9a31744120
> 
> URL: 
> https://github.com/llvm/llvm-project/commit/8a0f0e2656abf76b771037c6543caf9a31744120
> DIFF: 
> https://github.com/llvm/llvm-project/commit/8a0f0e2656abf76b771037c6543caf9a31744120.diff
> 
> LOG: [lldb/test] Tweak libcxx string test on Apple+ARM devices
> 
> On Apple platforms, is __arm__ isn't defined and we're not on Intel, we use an
> alternate std::string layout. I.e., the libcxx string test fails on phones
> because the hand-crafted "garbage" string structs are actually valid strings.
> 
> See:
> 
> ```
>  // _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for
>  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility.
>  #if (defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) &&     
>   \
>       (!defined(__arm__) || __ARM_ARCH_7K__ >= 2)) ||                         
>   \
>      defined(_LIBCPP_ALTERNATE_STRING_LAYOUT)
>  #define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
>  #endif
> ```
> 
> Disable inspection of the garbage structs on Apple+ARM devices.
> 
> Added: 
> 
> 
> Modified: 
>    
> lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
> 
> Removed: 
> 
> 

Thank you for the commit message. We (me in particular) historically have been 
bad at this but this is an example of something great for archeology.

> 
> ################################################################################
> diff  --git 
> a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
>  
> b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
> index 3753067113b1..c6f95d7e8593 100644
> --- 
> a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
> +++ 
> b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
> @@ -116,7 +116,9 @@ def cleanup():
>                 '%s::allocator<unsigned char> >) uchar = "aaaaa"'%(ns,ns,ns),
>         ])
> 
> -        if is_64_bit:
> +        # The test assumes that std::string is in its cap-size-data layout.
> +        is_alternate_layout = ('arm' in self.getArchitecture()) and 
> self.platformIsDarwin()
> +        if is_64_bit and not is_alternate_layout:
>             self.expect("frame variable garbage1", substrs=['garbage1 = 
> Summary Unavailable'])
>             self.expect("frame variable garbage2", substrs=['garbage2 = 
> Summary Unavailable'])
>             self.expect("frame variable garbage3", substrs=['garbage3 = 
> Summary Unavailable'])
> 
> 
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits@lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to