Commit Graph

2632 Commits

Author SHA1 Message Date
Eric Fiselier
68db6cdf1b Cleanup non-standard tests as reported by STL@microsoft.com. NFC.
This patch addresses the following issues in the test suite:

1. Move "std::bad_array_length" test from std/ to libcxx/ test directory
   since the feature is not a part of the standard.

2. Rename "futures.tas" test directory to "futures.task" since that is the
   correct stable name.

3. Move tests for "packaged_task<T>::result_type" from std/ to libcxx/
   test directory since the typedef is a libc++ extension.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271430 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-01 21:05:53 +00:00
Eric Fiselier
8a8c114479 Mark LWG issue 2520 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271249 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 04:27:57 +00:00
Eric Fiselier
57c164f2a2 Add tests that got missed in r271247.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271248 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:51:34 +00:00
Eric Fiselier
7883d02159 Mark LWG issue 2537 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271241 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:11:20 +00:00
Eric Fiselier
7d1c44c360 Mark LWG issue #2585 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271240 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:03:07 +00:00
Eric Fiselier
979137793e Mark LWG issue 2565 as complete. Update the tests to check it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271238 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 00:23:31 +00:00
Eric Fiselier
efa8e8868c Make string_view work with -fno-exceptions and get tests passing.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271237 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-30 23:53:19 +00:00
Eric Fiselier
2aad5d548c Fix bug in test allocator that incorrectly computed the allocation size
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271195 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-30 01:31:04 +00:00
Asiri Rathnayake
a3eac518e6 [libcxx] Improve tests to use the UNSUPPORTED lit directive
Quite a few libcxx tests seem to follow the format:
 #if _LIBCPP_STD_VER > X
   // Do test.
 #else
   // Empty test.
 #endif
We should instead use the UNSUPPORTED lit directive to exclude the test on
earlier C++ standards. This gives us a more accurate number of test passes
for those standards and avoids unnecessary conflicts with other lit
directives on the same tests.

Reviewers: bcraig, ericwf, mclow.lists

Differential revision: http://reviews.llvm.org/D20730

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271108 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-28 08:57:35 +00:00
Eric Fiselier
dcb35ad8ae Add missing include to test_iterators.h
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271074 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-27 23:43:29 +00:00
Eric Fiselier
1f21fcd10a Guard testing of tuple extensions to make tests portable
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271065 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-27 22:41:45 +00:00
Eric Fiselier
7515c69b11 Tolerate incorrect return type for 'isinf' and 'isnan' in tests.
Summary:
GLIBC recently removed the incorrect `int isinf(double)` and `int isnan(double)` overloads in C++11 and greater. This causes previously `XFAIL: linux`  tests to start passing.

Since there is no longer a way to 'XFAIL' the tests I choose to simply tolerate this bug.

See https://sourceware.org/bugzilla/show_bug.cgi?id=19439


Reviewers: rsmith, mclow.lists, EricWF

Subscribers: jroelofs, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271060 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-27 22:19:53 +00:00
Eric Fiselier
a3388c6bb2 Test hijacking ADL for operator& in the stream iterator constructors.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269838 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-17 21:01:20 +00:00
Eric Fiselier
995f64c4ae Add test for r269789
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269812 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-17 19:52:32 +00:00
Marshall Clow
7f271a0b77 Add some checking so that the TEST_HAS_XXX macros match up with the _LIBCPP_NO_HAS_XXX macros. No functional change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269773 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-17 14:58:09 +00:00
Marshall Clow
2c15439dd3 Implement P0030R1: Introduce a 3-Argument Overload to std::hypot
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269772 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-17 14:52:19 +00:00
Eric Fiselier
3cc263dda1 Remove C++11 feature macros in tests. Use TEST_STD_VER instead.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269669 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 17:05:14 +00:00
Marshall Clow
5d98497d0b Add a test for uniqueptr having either NULL and nullptr
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269665 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 16:57:15 +00:00
Marshall Clow
aee206a3a1 Apply D20014 - fix a missing return in a test. Fixes PR#27720
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269298 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-12 14:31:35 +00:00
Eric Fiselier
4e69be0423 Generate code coverage for experimental libraries
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268887 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-08 23:08:50 +00:00
Eric Fiselier
4db388b579 Change allocator<T>::allocate to throw length_error, not bad_alloc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268842 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-07 03:12:24 +00:00
Eric Fiselier
dba23b499b Add experimental container alias templates for PMRs
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268841 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-07 03:09:55 +00:00
Eric Fiselier
257fd699fd Add <experimental/memory_resource>
Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268829 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-07 01:04:55 +00:00
Eric Fiselier
70487694ba Tweak --param=no_default_flags=true to still add -Ilibcxx/test/support
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268801 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 21:35:06 +00:00
Eric Fiselier
8a7462d163 Removing some trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268543 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-04 20:29:19 +00:00
Eric Fiselier
7da079cc12 Make check-libcxx dependant on libc++experimental if present.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268451 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 21:58:07 +00:00
Eric Fiselier
5e4698c9a6 Create new library 'libc++experimental.a' for packaging TS symbols.
Summary:
Out-of-line symbols for <experimental/...> headers are not ABI or API stable and cannot live in the 'libc++.dylib'. Currently they have nowhere to live. I would like to add a new library target `libc++experimental.a` to fix this. 

Previously I had suggested different libraries for different TS's (`libc++filesystem.a`, 'libc++LFTS.a`, ect). I no longer think this is the right approach.
Instead `c++experimental` will hold *all* TS implementations as a single monolithic library. I see two main benefits to this:

1. Users only have to know about and manually link one library.
2. It makes it easy to implement TS's with one or two out-of-line symbols. (Ex. PMRs)

`c++experimental` provides NO ABI compatibility. Symbols can freely be added/removed/changed without concern for ABI stability.
I will add documentation for this after landing this patch (but before adding anything to it).

`c++experimental` only builds as a static library. By default CMake will build/test this library but will *NOT* install it.

This patch adds the CMake and LIT logic needed to build/test the new library. Once this lands I plan on using it to implement parts of `<experimental/memory_resource>`.



Reviewers: mclow.lists

Subscribers: cfe-commits, theraven, krememek, dexonsmith, bcraig, beanz, danalbert

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268443 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 21:30:18 +00:00
Eric Fiselier
6aec0206da Fix PR27538. Remove __is_convertible specializations for array and function types.
This patch fixes a bunch of bugs in the fallback implementation of
is_convertible, which is used by GCC. Removing the "__is_convertible"
specializations for array/function types we fallback on the SFINAE test,
which is more correct.

See https://llvm.org/bugs/show_bug.cgi?id=27538


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268359 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 04:26:02 +00:00
Eric Fiselier
219406e77f [libcxx] [test] Replace non-Standard "atomic_flag f(false);" with Standard "atomic_flag f;"
Summary:
Replace non-Standard "atomic_flag f(false);" with Standard "atomic_flag f;" in clear tests.
Although the  value of 'f' is unspecified it shouldn't matter because these tests always call `f.test_and_set()` without checking the result, so the initial state shouldn't matter.

The test init03.pass.cpp is explicitly testing this non-Standard extension; It has been moved into the `test/libcxx` directory.

Reviewers: mclow.lists, STL_MSFT

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268355 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 02:12:26 +00:00
Eric Fiselier
0cf277c710 Don't use std::__clz in 'test/support/hexfloat.h'.
std::__clz is a libc++ specific function so it can't be used in the test suite.
This patch implements a dumb "count leading zeros" implementation within
hexfloat itself.

This patch also fixes UB since the output of `__builtin_clz(0)` is undefined
according to the GCC docs.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268354 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 02:04:26 +00:00
Eric Fiselier
3ed38a96f8 Guard use of <unistd.h> in test.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268346 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 00:36:57 +00:00
Eric Fiselier
feb3898d4a Cleanup warnings and remove use of __builtin_va_list in depr.c.headers
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268294 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-02 20:08:16 +00:00
Eric Fiselier
46c05119b5 Initialize local doubles to NaN. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268285 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-02 19:20:16 +00: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
61a220ae5b Replace one more occurrence of non-standard std:launch::any. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268153 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-30 02:30:18 +00:00
Eric Fiselier
59af3f895f Fix PR21428 for long. Buffer was one byte too small in octal formatting case. Rename previously added test
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@268009 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 07:23:20 +00:00
Eric Fiselier
bc8538fde6 Move extern C include test into test/libcxx
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267983 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 04:19:48 +00:00
Eric Fiselier
a7a9004024 Fix test failures by adding missing include
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267982 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 04:18:13 +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
Eric Fiselier
96becae308 Move INVOKE tests into test/libcxx sub-tree.
Testing the concrete implementation of INVOKE means calling the implementation
specific names `__invoke` and `__invoke_constexpr`. For this reason the test
are non-standard. For this reason it's best if the tests live outside of the
`test/std` directory.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267973 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 01:52:57 +00:00
Eric Fiselier
7aa3806b8c Fix possible test breakage for MinGW
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267968 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 01:22:16 +00:00
Eric Fiselier
59f8126f68 Fix get_temp_file_name() to compile on Windows. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267963 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:51:24 +00:00
Eric Fiselier
138574cae9 Remove more names of unreferenced parameters. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267962 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:47:16 +00:00
Eric Fiselier
b6e757ed1d Add a return value for nasty_mutex::operator&. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267961 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:45:46 +00:00
Eric Fiselier
2d1a7f1400 Add <string> include for streaming operators. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267959 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:39:40 +00:00
Eric Fiselier
6531a09dc7 Add proper include for unique_ptr. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267958 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:37:56 +00:00
Eric Fiselier
375e2f669c Guard libc++ specific c.__invariants() tests in LIBCPP_ASSERT macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267947 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 22:28:23 +00:00
Eric Fiselier
bda804ea25 Remove names of unreferenced parameters. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267852 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 03:17:56 +00:00
Eric Fiselier
849c551745 Add braces, move braces, and rename variables to avoid shadowing. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267844 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 02:45:11 +00:00
Eric Fiselier
ce24f965f1 Provide member function definitions to avoid warnings. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267843 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 02:18:48 +00:00