Stephan T. Lavavej
d4b83e6dfd
[libcxx] [test] D27269: Fix MSVC x64 warning C4267 "conversion from 'size_t' to 'int' [or 'unsigned int'], possible loss of data", part 3/4.
...
test/std/containers/sequences/vector.bool/copy.pass.cpp
test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp
test/std/containers/sequences/vector/vector.cons/copy.pass.cpp
test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp
Change "unsigned s = x.size();" to "typename C::size_type s = x.size();"
because that's what it returns.
test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
Include <cstddef>, then change "unsigned n = T::length(s);"
to "std::size_t n = T::length(s);" because that's what char_traits returns.
test/std/strings/basic.string/string.cons/substr.pass.cpp
Change unsigned to typename S::size_type because that's what str.size() returns.
test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp
This was needlessly truncating std::size_t to unsigned.
It's being used to compare and initialize std::size_t.
llvm-svn: 288753
2016-12-06 01:14:51 +00:00
Stephan T. Lavavej
68a694b800
[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.
llvm-svn: 288746
2016-12-06 01:13:14 +00:00
Stephan T. Lavavej
fbfb2ab63e
[libcxx] [test] D27021: Fix MSVC warning C4389 "signed/unsigned mismatch", part 8/12.
...
Add static_cast<std::size_t> when comparing distance() to size().
These replacements were performed programmatically with regex_replace():
const vector<pair<regex, string>> reg_fmt = {
{ regex(R"(assert\((\w+)\.size\(\) == std::distance\((\w+, \w+)\)\))"),
"assert($1.size() == static_cast<std::size_t>(std::distance($2)))" },
{ regex(R"(assert\(distance\((\w+\.begin\(\), \w+\.end\(\))\) == (\w+)\.size\(\)\))"),
"assert(static_cast<std::size_t>(distance($1)) == $2.size())" },
{ regex(R"(assert\(std::distance\((\w+\.\w*begin\(\), \w+\.\w*end\(\))\) == (\w+)\.size\(\)\))"),
"assert(static_cast<std::size_t>(std::distance($1)) == $2.size())" },
};
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 288745
2016-12-06 01:12:34 +00:00
Stephan T. Lavavej
73876facd5
[libcxx] [test] D27016: Fix MSVC warning C4018 "signed/unsigned mismatch", part 4/12.
...
Change "int j;" indices to "std::size_t j;".
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287824
2016-11-23 22:02:27 +00:00
Stephan T. Lavavej
e898b484f6
[libcxx] [test] D27013: Fix MSVC warning C4018 "signed/unsigned mismatch", part 1/12.
...
Change loop indices from int to std::size_t.
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287820
2016-11-23 22:01:19 +00:00
Stephan T. Lavavej
0f901c7ec4
[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
llvm-svn: 286007
2016-11-04 20:26:59 +00:00
Marshall Clow
2a10c960fa
Support allocators with explicit conversion constructors. Fixes bug #29000
...
llvm-svn: 278904
2016-08-17 05:58:40 +00:00
Eric Fiselier
93b8e51ebb
Make dtor_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
...
llvm-svn: 276595
2016-07-25 00:50:32 +00:00
Eric Fiselier
249b03effb
Make move_assign_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
...
llvm-svn: 276591
2016-07-25 00:18:12 +00:00
Eric Fiselier
2cd516e049
Make swap_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com.
...
See D21820 for more information (https://reviews.llvm.org/D21820 ).
llvm-svn: 276590
2016-07-25 00:15:29 +00:00
Eric Fiselier
f950b85122
Make move_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
...
llvm-svn: 276581
2016-07-24 23:19:51 +00:00
Eric Fiselier
0e411641a3
Implement P0084r2. Changing emplace return types.
...
llvm-svn: 276230
2016-07-21 03:20:17 +00:00
Eric Fiselier
3b0184321f
Fix unary_function inheritance assumption. Patch from STL@microsoft.com
...
llvm-svn: 274205
2016-06-30 04:28:12 +00:00
Eric Fiselier
a9fb19d3a5
Make default_noexcept.pass.cpp container tests more portable. Patch from STL@microsoft.com
...
llvm-svn: 273823
2016-06-26 20:21:22 +00:00
Eric Fiselier
f2f2a6395f
Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER.
...
This is a huge cleanup that helps make the libc++ test suite more portable.
Patch from STL@microsoft.com . Thanks STL!
llvm-svn: 272716
2016-06-14 21:31:42 +00:00
Eric Fiselier
f81cfbab12
Fix vector<bool> tests that were using ints. Patch from STL@microsoft.com
...
llvm-svn: 272620
2016-06-14 02:53:04 +00:00
Eric Fiselier
d04c685168
Remove trailing whitespace in test suite. Approved by Marshall Clow.
...
llvm-svn: 271435
2016-06-01 21:35:39 +00:00
Asiri Rathnayake
6edc12c886
[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
llvm-svn: 271108
2016-05-28 08:57:35 +00:00
Eric Fiselier
1f4231f8cf
Guard libc++ specific c.__invariants() tests in LIBCPP_ASSERT macros
...
llvm-svn: 267947
2016-04-28 22:28:23 +00:00
Eric Fiselier
d513ad88d5
Complete LWG issue #2016 . Allocators must be nothrow swappable
...
llvm-svn: 267085
2016-04-22 00:15:18 +00:00
Marshall Clow
f90ec0e82e
Added a noexcept test
...
llvm-svn: 265674
2016-04-07 14:24:16 +00:00
Marshall Clow
0ab4205705
Fix bug #27260 - add missing swap(reference, reference) to vector<bool>.
...
llvm-svn: 265672
2016-04-07 14:20:31 +00:00
Marshall Clow
1b868e19c3
Add some more tests for the containers type requirements
...
llvm-svn: 263029
2016-03-09 17:19:07 +00:00
Marshall Clow
8d113d430f
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.
...
llvm-svn: 257474
2016-01-12 14:51:04 +00:00
Marshall Clow
1378a5aec3
implement more of N4258 - Cleaning up noexcept in the standard library. Specifically add new noexcept stuff to vector and string's move-assignment operations
...
llvm-svn: 245330
2015-08-18 18:57:00 +00:00
Marshall Clow
71ff7c3f0f
Move bits from N4258. Mark vector's move-constructor unconditionally noexcept in C++1z
...
llvm-svn: 242148
2015-07-14 14:46:32 +00:00
Marshall Clow
e3fbe1433b
Implement the first part of N4258: 'Cleaning up noexcept in the Library'. This patch deals with swapping containers, and implements a more strict noexcept specification (a conforming extension) than the standard mandates.
...
llvm-svn: 242056
2015-07-13 20:04:56 +00:00
Marshall Clow
979550f221
While applying N4258, I forgot about LWG#2455, which modified the modifications. Correct those - h/t: Howard
...
llvm-svn: 239004
2015-06-04 02:05:41 +00:00
Marshall Clow
a8ae392718
More N4258 changes. This time vector's constructors
...
llvm-svn: 238990
2015-06-04 00:10:20 +00:00
Marshall Clow
d95510ebba
libc++ implements its' hash objects as deriving from std::unary_function, and the tests test for that. STL @ MS pointed out that the standard doesn't requie these objects to derive from unary_function, and so the tests should not require that either. Change the tests to check for the embedded typedefs - which ARE required. No change to the library.
...
llvm-svn: 225403
2015-01-07 21:53:23 +00:00
Eric Fiselier
5a83710e37
Move test into test/std subdirectory.
...
llvm-svn: 224658
2014-12-20 01:40:03 +00:00