4a6fe28b54934bead656146e2571f64f4530be5b |
|
28-Feb-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
More fix for libc++ testing 1. weaken all long double math in math_support.c for armeabi-v7a-hard which link with -lm_hard from API19 already contains all 2. Define Emplaceable(const Emplaceable&) and MoveOnly(const MoveOnly&) for gcc4.8 3. Fixed test pointer.pass.cpp because for reason not well-understood %p on null produces "0" in libc++ 4. Define -UNDEBUG because some test use assert() which tunrs into nothing if NDEBUG is defined (eg. in ndk-build system for release build) 5. Avoid duplicate testing by skipping test path with EQ. Note that previous commit 1b97ee35bafeb02b7c1feabc3a99b6d004637ddc creates symlink for tests whose path containing '=' 6. Sort the *.cpp.list and directory to make test report consistent across run 7. Re-try up to 10 times if run fails due to "Text file busy". This significantly reduce false-alarm when running on emulator Change-Id: Ia6964442095f2e7457a02c524115ad3db0887c4d
|
29d9f88ef5a33cd65b4b9977aed628bc195facf3 |
|
24-Feb-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
Misc fixes in libc++ for gcc4.8 1. Simplified __gxx__cxx_access_control_sfinae and __gxx__cxx_rtti otherwise g++ complains no operand after '!' if _LIBCPP_HAS_NO_TRAILING_RETURN isn't defined, for example 2. Make public "MoveOnly(const MoveOnly&);" and "Emplaceable(const Emplaceable&);" in tests headers for gcc4.8 which complains both are private for 16 tests in containers/associative/*map* and containers/unord/unord.*map/ 3. Fixed float_h_pass.cpp about missing FLT_EVAL_METHOD and DECIMAL_DIG, where gcc does define but with leading and trailing "__". 4. Fixed stdbool_h.pass.cpp about pre-defined bool/true/false After this CL, testing result for gcc4.8 is comparable to clang3.4 except in the following area: 1. 42 fails in atomics/ because gcc4.8 doesn't support _Atomic 2. 4 fails on "no matching function for call to 'Deleter::Deleter(Deleter)'" utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.pass.cpp utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer02.pass.cpp utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default02.pass.cpp utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer02.pass.cpp .../include/c++/4.8/type_traits:845:87: error: no matching function for call to 'Deleter::Deleter(Deleter)' sizeof(__is_convertible_imp::__test<_T2>(__is_convertible_imp::__source<_T1>())) == 1 3. 3 fails on "use of deleted function" thread/futures/futures.async/async.pass.cpp utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp utilities/utility/pairs/pairs.spec/make_pair.pass.cpp .../include/c++/4.8/type_traits:845:87: error: use of deleted function 'constexpr std::__1::unique_ptr<int>::unique_ptr(const std::__1::unique_ptr<int>&)' sizeof(__is_convertible_imp::__test<_T2>(__is_convertible_imp::__source<_T1>())) == 1 4. 16 fails on static_assert() for various reasons thread/futures/futures.overview/launch.pass.cpp utilities/meta/meta.rel/is_convertible.pass.cpp utilities/meta/meta.trans/meta.trans.other/underlying_type.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivialially_copyable.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp utilities/meta/meta.unary/meta.unary.prop/is_trivial.pass.cpp utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp 5. 4 fails with -O2 (-O0 works; clang3.4 works fine in both -O2 and -O0) containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp I/DEBUG ( 51): Abort message: 'insert_after_range.pass.cpp:37: int main(): assertion "distance(c.begin(), c.end()) == 3" failed' containers/sequences/list/list.ops/merge_comp.pass.cpp I/DEBUG ( 51): Abort message: 'merge_comp.pass.cpp:29: int main(): assertion "c1 == std::list<int>(a3, a3+sizeof(a3)/sizeof(a3[0]))" failed' containers/sequences/list/list.ops/merge.pass.cpp I/DEBUG ( 51): Abort message: 'merge.pass.cpp:28: int main(): assertion "c1 == std::list<int>(a3, a3+sizeof(a3)/sizeof(a3[0]))" failed' iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp I/DEBUG ( 51): Abort message: 'lv_value.pass.cpp:28: void test(C) [with C = std::__1::list<Copyable>]: assertion "c.front() == v" failed' Change-Id: Iae14f979580bf236fc58de09b57a560a1d159205
|
5de42e6621b3d0131472c3f8838b7f0ccf3e8963 |
|
22-Oct-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Update libc++ to upstream revision r201101 To catch fixes since last update (r186119) which fails clang3.4 on containers/associative/map/map.modifiers/emplace_hint.pass.cpp with error reads: .../tuple:320:11: error: rvalue reference to type 'double' cannot bind to lvalue of type 'double' : value(__t.get()) ^ ~~~~~~~~~ .../tuple:444:8: note: in instantiation of member function 'std::__1::__tuple_leaf<1, double &&, false>::__tuple_leaf' requested here struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...> ^ emplace_hint.pass.cpp:69:42: note: in instantiation of function template specialization 'std::__1::forward_as_tuple<int, double>' requested here std::forward_as_tuple(2, 3.5)); ^ Now clang3.4 test results are same as clang3.3 ### clang3.4 armeabi-v7a ... Target: armv5te-none-linux-androideabi Thread model: posix with -std=c++11 -O0 -g -march=armv7-a -mthumb -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Wl,--fix-cortex-a8 -I/usr/local/google/home/andrewhsieh/mydroid/ndk/sources/cxx-stl/llvm-libc++/libcxx/test/support -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS ... number of tests failed : 123 number of tests passed : 4522 + ---- total number of tests : 4645 ### clang3.4 x86 ... using clang version 3.4 (https://bitbucket.org/loganchien/clang c34bb12af3af42f671296cdb978b34b931062d2a) (https://bitbucket.org/loganchien/llvm d09f2eff406d17c86d51db7660bd374cf092e6ed) Target: i686-none-linux-android Thread model: posix with -std=c++11 -O0 -g -I/usr/local/google/home/andrewhsieh/mydroid/ndk/sources/cxx-stl/llvm-libc++/libcxx/test/support -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS ... number of tests failed : 125 number of tests passed : 4520 + ---- total number of tests : 4645 ### clang3.4 mips ... Target: mipsel-none-linux-android Thread model: posix with -std=c++11 -O0 -g -I/usr/local/google/home/andrewhsieh/mydroid/ndk/sources/cxx-stl/llvm-libc++/libcxx/test/support -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS ... number of tests failed : 122 number of tests passed : 4523 + ---- total number of tests : 4645 Change-Id: I3a0aa734b9f07abf15774bfe1d687d9de5e3a4a9
|
a8bf9de8057ad254cc642f33bd7d0a48dc1ae55c |
|
02-May-2013 |
David 'Digit' Turner <digit@android.com> |
Update libc++ sources to @180916 This patches updates the llvm libc++ in the following way: 1/ Move all llvm-specific sources from .../llvm-libc++/ to .../llvm-libc++/libcxx/ 2/ Move .../android/README to .../README.NDK and update it with upstream/patch information. 3/ Add .../patches.android containing the list of Android-specific patches used to generate the content of libcxx/ after checking out the upstream version of the sources. 4/ Move .../android/llvm/libc++/Android.mk to .../Android.mk 5/ Move .../include/support/android/ to .../android/support/include/ and .../src/support/android/ to .../android/support/src/ It's likely that this will go into another helper static library at some point, since it provides missing C library functions that could benefit other programs. This move makes updating the support code easier since it doesn't require changing the content of patches.android/ each time. Apart from that, there is no drastic change here in features / bugs, the test program still links but the library probably doesn't do much and will crash easily. Change-Id: I953cc528ba3d0199b5947ef3dbdcbfedfb25f3e8
|