Commit Graph

62 Commits

Author SHA1 Message Date
Dan Albert
b9e7f084bd Merge to upstream r297772.
Bug: None
Test: make checkbuild && ./run_tests.py
Change-Id: I9e755c76a760f218abd871008e3d48c8f044afd1
2017-03-14 15:12:59 -07:00
Saleem Abdulrasool
bd18417b4d test: use char32_t rather than wchar_t
wchar_t is not as portable as char32_t.  On Windows, wchar_t is
16-bytes and on Linux 32-bits.  The conversion to utf8 causes the
characters to exceed the limits on char16_t, resulting in tautological
comparisons.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294917 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-12 21:42:35 +00:00
Dan Albert
e520f0b308 Avoid implementation defined behavior in a test.
Summary:
num_put::put uses %p for pointer types, but the exact format of %p is
implementation defined behavior for the C library. Compare output to
snprintf for portability.

Reviewers: EricWF, mclow.lists

Reviewed By: EricWF

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D29197

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@293926 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-02 19:44:11 +00:00
Dan Albert
ff11c1afab Merge to upstream r293197.
Bug: http://b/34740564
Test: make checkbuild && ./run_tests.py  # Tested aosp_sailfish-eng
Change-Id: I33320f72d9170548010c023bd28f03578461b5ff
2017-01-27 11:24:04 -08:00
Stephan T. Lavavej
16e2ba19df [libcxx] [test] Fix comment typos, strip trailing whitespace.
No functional change, no code review.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@292434 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-18 20:10:25 +00:00
Eric Fiselier
8673c52ffe Get ctype_byname tests passing on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290746 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-30 09:28:58 +00:00
Eric Fiselier
e9784032ce fix warnings only produced by apple-clang
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290474 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-24 01:07:54 +00:00
Eric Fiselier
0e5ebbc77c Fix unused parameters and variables
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290459 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-23 23:37:52 +00:00
Eric Fiselier
a2cd270943 Enable the -Wsign-compare warning to better support MSVC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@289363 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-11 05:31:00 +00:00
Eric Fiselier
3e99c8b0af [libc++] Fix support for multibyte thousands_sep and decimal_point in moneypunct_byname and numpunct_byname.
Summary:
The underlying C locales provide the `thousands_sep` and `decimal_point` as strings, possible with more than one character. We currently don't handle this case even for `wchar_t`.

This patch properly converts the mbs -> wide character for `moneypunct_byname<wchar_t>`. For the `moneypunct_byname<char>` case we attempt to narrow the WC and if that fails we also attempt to translate it to some reasonable value. For example we translate U00A0 (non-breaking space) into U0020 (regular space). If none of these conversions succeed then we simply allow the base class to provide a fallback value.


Reviewers: mclow.lists, EricWF

Subscribers: vangyzen, george.burgess.iv, cfe-commits

Differential Revision: https://reviews.llvm.org/D24218

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@289347 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-11 00:20:59 +00:00
Stephan T. Lavavej
21208822a8 [libcxx] [test] D27022: Fix MSVC warning C4389 "signed/unsigned mismatch", part 9/12.
Add static_cast<std::size_t> to more comparisons. (Performed manually, unlike part 8/12.)

Also, include <cstddef> when it wasn't already being included.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@288746 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-06 01:13:14 +00:00
Roger Ferrer Ibanez
10ffcdf7d0 Protect locale tests under noexceptions
Skip tests that expect exceptions be thrown.

Differential Revision: https://reviews.llvm.org/D27096



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@288156 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-29 16:31:40 +00:00
Stephan T. Lavavej
39245fe351 [libcxx] [test] D27026: Fix copy-paste silliness; ULL can't ever be 32-bit.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@287828 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-23 22:02:59 +00:00
Stephan T. Lavavej
12f7f5d247 [libcxx] [test] D27019: Fix MSVC warning C4245 "conversion from 'X' to 'Y', signed/unsigned mismatch", part 6/12.
Add static_cast when initializing unsigned integers with negative numbers (in order to obtain big values).

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@287826 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-23 22:02:44 +00:00
Dan Albert
27eec08faf Remove an Android XFAIL.
Used to fail for all Linux. https://reviews.llvm.org/D8349 fixed it,
but we still have the XFAIL here.

Test: ./run-tests.py
Bug: None
Change-Id: I41a8188199fbd4dbbc1a0574808002a191d8d273
2016-11-18 16:40:09 -08:00
Stephan T. Lavavej
45e692539c [libcxx] [test] D26314: Fix MSVC warning C4189 "local variable is initialized but not referenced".
test/std/depr/depr.c.headers/inttypes_h.pass.cpp
test/std/input.output/file.streams/c.files/cinttypes.pass.cpp
test/std/input.output/iostream.forward/iosfwd.pass.cpp
Add test() to avoid a bunch of void-casts, although we still need a few.

test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
skippingws was unused (it's unclear to me whether this was mistakenly copy-pasted from round_trip() below).

test/std/localization/locale.categories/category.collate/locale.collate/types.pass.cpp
test/std/localization/locale.categories/category.ctype/facet.ctype.special/types.pass.cpp
test/std/localization/locale.categories/category.ctype/locale.codecvt/types_char.pass.cpp
test/std/localization/locale.categories/category.ctype/locale.codecvt/types_wchar_t.pass.cpp
test/std/localization/locale.categories/category.ctype/locale.ctype/types.pass.cpp
test/std/localization/locale.categories/facet.numpunct/locale.numpunct/types.pass.cpp
test/std/localization/locales/locale.global.templates/use_facet.pass.cpp
When retrieving facets, the references are unused.

test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
"std::ios_base::iostate err = ios.goodbit;" was completely unused here.

test/std/localization/locale.categories/category.time/locale.time.get/time_base.pass.cpp
test/std/numerics/c.math/ctgmath.pass.cpp
test/std/numerics/rand/rand.device/entropy.pass.cpp
test/std/numerics/rand/rand.device/eval.pass.cpp
test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
test/std/thread/futures/futures.promise/dtor.pass.cpp
test/std/thread/futures/futures.task/futures.task.members/dtor.pass.cpp
test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp
These variables are verifying types but are otherwise unused.

test/std/strings/basic.string/string.capacity/reserve.pass.cpp
old_cap was unused (it's unclear to me whether it was intended to be used).

test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eq.pass.cpp
test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
These tests contained unused characters.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@286847 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-14 17:35:14 +00:00
Stephan T. Lavavej
e619862dbf [libcxx] [test] Replace _LIBCPP_STD_VER with TEST_STD_VER.
This replaces every occurrence of _LIBCPP_STD_VER in the tests with
TEST_STD_VER. Additionally, for every affected
file, #include "test_macros.h" is being added explicitly if it wasn't
already there.

https://reviews.llvm.org/D26294

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@286007 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-04 20:26:59 +00:00
Eric Fiselier
226cd0674e Apply curr_symbol.pass.cpp test fix to missed test case
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280612 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-04 04:09:25 +00:00
Eric Fiselier
4bc5e1f444 Fix bad locale test data when using the newest glibc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280608 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-04 00:48:54 +00:00
Eric Fiselier
066feb8249 Remove locale tests that depend on enviroment variables.
Constructing a std::locale object from an empty string selects the language
from the current environment variables. If the environment variables name
a locale that doesn't exist, or isn't installed, then the construction of
facets using that locale may throw.

This patch removes tests that use 'std::locale l("")'.

The optimal solution would be to manually set the environment variables
in the test. Unfortunately there is no portable way to do this.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275772 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 06:15:55 +00:00
Eric Fiselier
f5750d5c05 Add checkpoint diagnostics to help diagnose buildbot failures.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275754 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 03:00:09 +00:00
Eric Fiselier
7a317cec51 Fix C++03 build
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273832 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 23:18:23 +00:00
Eric Fiselier
e7aabbb6c6 Fix PR28079 - std::wstring_convert move constructor broken.
The move constructor for wstring_convert accidentally copied the state member
into the converted count member in the move constructor. This patch fixes
the typo.

While working on this I discovered that wstring_convert doesn't actually
provide a move constructor according to the standard and therefore this
constructor is a libc++ extension. I'll look further into whether libc++ should
provide this constructor at all. Neither libstdc++ or MSVC's STL provide it.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273831 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 22:56:26 +00:00
Eric Fiselier
a8c717009e Use L"cat" L"dog" when concatenating string literals. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273821 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 19:53:46 +00:00
Eric Fiselier
770c6885af Make locale constructors tests use count_new.hpp
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273375 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 04:34:24 +00:00
Eric Fiselier
22bff1afcc Move remaining _LIBCPP_VERSION tests into test/libcxx
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273367 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 02:23:22 +00:00
Eric Fiselier
3c0e3eb9d2 Use static_assert instead of runtime assert in std::money_base tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273360 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 01:40:46 +00:00
Eric Fiselier
63a0af7a79 Remove locale tests that depend on LC_ALL. These are non-portable.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273359 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 01:33:38 +00:00
Eric Fiselier
fe6d50fcaa Implement LWG issue 1169. num_get not fully compatible with strto*
Use strtof and strtod for floats and doubles respectively instead of
always using strtold. The other parts of the change are already implemented
in libc++.

This patch also has a drive by fix to wbuffer_convert::underflow() which
prevents it from calling memmove(buff, null, 0).


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273106 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-19 06:58:22 +00:00
Dan Austin
ee226c05af Revert "Revert "Update aosp/master libcxx rebase to r263688""
This reverts commit 1d4a1edbc7.

Change-Id: I2909937fe582f2c5552bc86e7f4d2d5cff0de0aa
2016-06-08 22:25:43 +00:00
Eric Fiselier
84acb1ec3f Remove trailing whitespace in test suite. Approved by Marshall Clow.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271435 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-01 21:35:39 +00:00
Dan Albert
1d4a1edbc7 Revert "Update aosp/master libcxx rebase to r263688"
The world is burning.

This reverts commit c004fd909c, reversing
changes made to 1418e4163d.
2016-05-25 22:36:09 -07:00
Dan Austin
c004fd909c Update aosp/master libcxx rebase to r263688
Change-Id: Ic3f4fb33a091ff4b7366ab9e6ca8ee99589c5c9f
2016-05-25 09:17:06 -07:00
Eric Fiselier
a9ea11398d Void cast runtime-unused variables. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268284 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-02 19:15:48 +00:00
Eric Fiselier
1e5a4a4a71 Fix or move various non-standard tests.
This patch does the following:

* Remove <__config> includes from some container tests.
* Guards uses of std::launch::any in async tests because it's an extension.
* Move "test/std/extensions" to "test/libcxx/extensions"
* Moves various non-standard tests including those in "sequences/vector",
  "std/localization" and "utilities/meta".


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267981 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 04:07:45 +00:00
Jonas Hahnfeld
3614681995 [libcxx] Remove localization tests for Russian month names
Commit f49839299a085505eb673544744b61d2d9cdd1db in glibc-2.14 changed the
locales to the currently required format. However, they were again changed in
commit 55bdd2866f23b28422d969060b3518909a12b100 which has been released in 2.17.

That leads to the current situation where Debian and e.g. CentOS 6 have the
pre-2.14 locales, for example Ubuntu 14.04 has pre-2.17 and CentOS 7 on the
other hand has the newest locales in glibc-2.17.

Differential Revision: http://reviews.llvm.org/D18187

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@263554 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-15 15:55:58 +00:00
Daniel Sanders
0b8b88adef [libcxx] Additional 'REQUIRE' directives for tests that require en_US.UTF-8.
Summary:
These are the tests that didn't fail in the release candidate because they were
covered by another 'REQUIRES' directive.

Reviewers: mclow.lists, hans, bcraig, EricWF

Subscribers: EricWF, dim, cfe-commits

Differential Revision: http://reviews.llvm.org/D16408

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258920 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 10:45:07 +00:00
Daniel Sanders
cd17b3b156 [libcxx] Add appropriate 'REQUIRE' directives to tests that require en_US.UTF-8.
Reviewers: mclow.lists, hans

Subscribers: bcraig, cfe-commits

Differential Revision: http://reviews.llvm.org/D16406

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258403 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-21 15:35:15 +00:00
Eric Fiselier
e3bf91abf6 Mark slow ASAN/MSAN tests as XFAIL for now.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258195 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-19 21:51:07 +00:00
Marshall Clow
e5e9bff62a Add a bunch of missing includes in the test suite to make it more portable. Fixes bugs #26120 and #26121. Thanks to Jonathan Wakely for the reports and the patches.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@257474 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-12 14:51:04 +00:00
Ahmed Bougacha
94fae86652 [libcxx] Set LC_ALL rather than LC_COLLATE to override collation.
r251131 replaced LANG with LC_COLLATE. But LC_ALL has precedence
over both, so the test still fails when LC_ALL=C.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@257018 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-07 02:36:09 +00:00
Asiri Rathnayake
94d9b1c5b2 [libcxx] Fixup a few fumbles in the initial no-exceptions XFAILs list.
The initial buildbot run found a few missing bits in the initial XFAIL list
for the no-exceptions libc++ variant. These discrepancies are as follows:

[1] Following two tests need XFAILs on the no-exceptions library variant.
My local runs had these two disabled for other reasons (unsupported):

  - localization/locales/locale/locale.cons/char_pointer.pass.cpp
  - numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp

[2] These three does not need XFAILs, they were failing on my local runs for
other reasons:

  - depr/depr.c.headers/uchar_h.pass.cpp
  - input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
  - .../category.collate/locale.collate.byname/transform.pass.cpp

(these are failing on my box for the default build as well)

The current patch fixes both the cases above. Additionally, I've run the
following scan to make sure I've covered all the cases:

> grep ' catch \| try \| throw ' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \
  uniq > 1.txt
> grep 'libcpp-no-exceptions' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \
  uniq > 2.txt
> diff 1.txt 2.txt

This showed up a few extra interesting cases:

[3] These two tests do not use try/catch/throw statements, but they fail at
runtime. Need to be investigated, I've left the XFAILs in.

  - std/thread/futures/futures.shared_future/dtor.pass.cpp
  - std/thread/futures/futures.unique_future/dtor.pass.cpp

[4] These tests use a macro named TEST_HAS_NO_EXCEPTIONS to conditionally
exclude try/catch/throw statements when running without exceptions. I'm not
entirely sure why this was needed (AFAIK, we didn't have a no-exceptions
library build before). The macro's defintion is quite similar to that of
_LIBCPP_NO_EXCEPTIONS. I will investigate if this can be reused for my test
fixes or if it should be replaced with _LIBCPP_NO_EXCEPTIONS.

  - std/experimental/any/*

Change-Id: I9ad1e0edd78f305406eaa0ab148b1ab693f7e26a

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252870 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 10:41:57 +00:00
Asiri Rathnayake
cc2e93cff0 Make it possible to build a no-exceptions variant of libcxx.
Fixes a small omission in libcxx that prevents libcxx being built when
-DLIBCXX_ENABLE_EXCEPTIONS=0 is specified.

This patch adds XFAILS to all those tests that are currently failing
on the new -fno-exceptions library variant. Follow-up patches will
update the tests (progressively) to cope with the new library variant.

Change-Id: I4b801bd8d8e4fe7193df9e55f39f1f393a8ba81a

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252598 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 11:41:22 +00:00
Tim Northover
25037cf729 Set LC_COLLATE rather than LANG to override collation.
On a system with LC_COLLATE=C, this takes precedence over a non-C LANG
the test tries to impose and the test fails.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251131 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-23 17:56:08 +00:00
Dan Albert
4b1aaf93e2 Update for new libc++ revision.
Add src/any.cpp for std::experimental::any.
Update test executor for extra return value.
Make the adb code more tolerant of surprise failures.

Mark local.time.put.members.put2 as XFAIL for Android. I think this
might just be needed because it is no longer marked XFAIL for linux.
Should definitely dig in to what is broken here though.

Change-Id: I044e1a8bd3830dadb80fcb964abba39d3ee40702
2015-10-20 10:24:21 -07:00
Dan Albert
3dc47e2154 Merge to upstream r244462.
Change-Id: I97e4a2e1d843ad20a9225a31bacc7b1a6e9d8f4f
2015-10-20 10:24:11 -07:00
Marshall Clow
c2d317f1a2 Change initialization of mbstate_t objects in tests from '= {0}' to '= {}', which does the same thing, w/o having clang and gcc warn with -Wall.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@247695 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-15 14:46:03 +00:00
Eric Fiselier
3dfc10d4b1 Remove XFAIL in test. The bug causing it has been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246022 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-26 07:03:43 +00:00
Eric Fiselier
6d51f6c58c Mark test as XFAIL with MSAN until D12311 gets committed
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245922 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-25 04:35:55 +00:00
Eric Fiselier
3d46eb0f6d Fix a typo: abreviated -> abbreviated - Patch from Kai Zhao
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245538 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-20 05:20:29 +00:00