Eric Fiselier
ba0543b32b
[test] Fix Container::insert(value_type const&) tests
...
Patch from Joe Loser.
Several unit tests meaning to test the behavior of lvalue insertion incorrectly
pass rvalues. Fixes bug PR # 27394
Reviewed as https://reviews.llvm.org/D44411
llvm-svn: 329541
2018-04-08 21:57:35 +00:00
Billy Robert O'Neal III
ba40b0566f
Change (void) casts to TEST_IGNORE_NODISCARD, as requested by Eric. Reviewed as https://reviews.llvm.org/D40065
...
llvm-svn: 318804
2017-11-21 21:37:26 +00:00
Billy Robert O'Neal III
1c240a89ff
Tolerate even more [[nodiscard]] in the STL. Reviewed as https://reviews.llvm.org/D39080
...
llvm-svn: 318277
2017-11-15 07:45:07 +00:00
Marshall Clow
72c8fad427
First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only
...
llvm-svn: 318269
2017-11-15 05:51:26 +00:00
Marshall Clow
260ad71dfe
Still more missing tests - this time for the unordered containers
...
llvm-svn: 318268
2017-11-15 05:25:36 +00:00
Stephan T. Lavavej
d29b12ef7c
[libcxx] [test] Make files consistently end with newlines, NFC.
...
llvm-svn: 309465
2017-07-29 00:55:22 +00:00
Stephan T. Lavavej
4159db7698
[libcxx] [test] Untabify, NFC.
...
llvm-svn: 309464
2017-07-29 00:55:10 +00:00
Eric Fiselier
6a470bcb6d
Cleanup _LIBCPP_HAS_NO_<c++11-feature> in std::unordered_map and std::unordered_multimap
...
This completes the cleanup of the containers, at least within the tests.
llvm-svn: 300620
2017-04-18 22:50:56 +00:00
Eric Fiselier
f0f86ef96f
Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::unordered_set and std::unordered_multiset
...
llvm-svn: 300619
2017-04-18 22:37:32 +00:00
Eric Fiselier
81529ba9ab
Fix test failures due to bad test hasher
...
llvm-svn: 296568
2017-03-01 02:34:27 +00:00
Eric Fiselier
3c35491f02
Update all bug URL's to point to https://bugs.llvm.org/ ...
...
llvm-svn: 295434
2017-02-17 08:37:03 +00:00
Stephan T. Lavavej
50bd9576f0
[libcxx] [test] Fix Clang -Wunused-local-typedef, part 2/3.
...
These typedefs were completely unused.
Fixes D29136.
llvm-svn: 294155
2017-02-05 22:47:41 +00:00
Stephan T. Lavavej
03fe6e2da2
[libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3.
...
Guard typedefs and static_asserts with _LIBCPP_VERSION.
test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
Additionally deal with conditional compilation.
test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
Additionally deal with typedefs used by other typedefs.
Fixes D29135.
llvm-svn: 294154
2017-02-05 22:47:09 +00:00
Stephan T. Lavavej
a730ed3149
[libcxx] [test] Fix comment typos, strip trailing whitespace.
...
No functional change, no code review.
llvm-svn: 292434
2017-01-18 20:10:25 +00:00
Eric Fiselier
6a74f44873
fix warnings only produced by apple-clang
...
llvm-svn: 290474
2016-12-24 01:07:54 +00:00
Eric Fiselier
fd83822741
Fix unused parameters and variables
...
llvm-svn: 290459
2016-12-23 23:37:52 +00:00
Eric Fiselier
dc43d75ac0
Fix copy/paste errors introduced in r289358
...
llvm-svn: 289359
2016-12-11 04:00:26 +00:00
Eric Fiselier
1286bc577f
Fix undefined behavior in container swap tests.
...
These swap tests were swapping non-POCS non-equal allocators which
is undefined behavior. This patch changes the tests to use allocators
which compare equal. In order to test that the allocators were not
swapped I added an "id" field to test_allocator which does not
participate in equality but does propagate across copies/swaps.
This patch is based off of D26623 which was submitted by STL.
llvm-svn: 289358
2016-12-11 03:41:12 +00:00
Stephan T. Lavavej
7abade3769
[libcxx] [test] Fix MSVC warning C4244 "conversion from 'X' to 'Y', possible loss of data", part 3/7.
...
Add static_cast<short> when constructing pair<Whatever, short> from (Something, int).
Fixes D27540.
llvm-svn: 289107
2016-12-08 21:38:14 +00:00
Stephan T. Lavavej
fe4ca8c539
[libcxx] [test] D27266: Remove spurious semicolons.
...
llvm-svn: 288750
2016-12-06 01:14:06 +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
Roger Ferrer Ibanez
f2e50651f6
Protect std::{,unordered_}map tests under noexceptions
...
Skip tests that use exceptions
Differential Revision: https://reviews.llvm.org/D27093
llvm-svn: 288157
2016-11-29 16:37:48 +00:00
Stephan T. Lavavej
d72ece6462
[libcxx] [test] D27027: Strip trailing whitespace.
...
llvm-svn: 287829
2016-11-23 22:03:28 +00:00
Eric Fiselier
55b31b4e69
[libcxx] Fix max_size() across all containers
...
Summary: The `max_size()` method of containers should respect both the allocator's reported `max_size` and the range of the `difference_type`. This patch makes all containers choose the smallest of those two values.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26885
llvm-svn: 287729
2016-11-23 01:18:56 +00:00
Stephan T. Lavavej
6d279e8e98
[libcxx] [test] D26627: Fix ordering assumptions in unordered container tests.
...
llvm-svn: 286984
2016-11-15 17:00:38 +00:00
Stephan T. Lavavej
49188b1d3c
[libcxx] [test] D26624: Fix bucket_count() assumptions.
...
With a max_load_factor of 1.0, the only guarantee is that
bucket_count() >= size(). (Note: setting max_load_factor without
rehashing isn't supposed to affect this, because setting
max_load_factor is currently specified to be constant time.)
llvm-svn: 286982
2016-11-15 17:00:24 +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
Eric Fiselier
54613ab4d4
[libc++] Remove various C++03 feature test macros
...
Summary:
Libc++ still uses per-feature configuration macros when configuring for C++11. However libc++ requires a feature-complete C++11 compiler so there is no reason to check individual features. This patch starts the process of removing the feature specific macros and replacing their usage with `_LIBCPP_CXX03_LANG`.
This patch removes the __config macros:
* _LIBCPP_HAS_NO_TRAILING_RETURN
* _LIBCPP_HAS_NO_TEMPLATE_ALIASES
* _LIBCPP_HAS_NO_ADVANCED_SFINAE
* _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS
* _LIBCPP_HAS_NO_STATIC_ASSERT
As a drive I also changed our C++03 static_assert to use _Static_assert if available.
I plan to commit this without review if nobody voices an objection.
Reviewers: mclow.lists
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D24895
llvm-svn: 282347
2016-09-25 03:34:28 +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
141b2881d7
Mark bucket_count() assertions as non-portable. Patch from STL@microsoft.com
...
llvm-svn: 276593
2016-07-25 00:26:41 +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
307e4216b2
Mark bucket() assertions as non-portable. Patch from STL@microsoft.com
...
llvm-svn: 276584
2016-07-24 23:34:18 +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
e028cd8af8
Make bucket_count() greater-equal assertions portable. Patch from STL@microsoft.com
...
llvm-svn: 276580
2016-07-24 23:16:37 +00:00
Eric Fiselier
ee410aca06
Mark bucket_size() assertions as non-portible. Patch from STL@microsoft.com
...
llvm-svn: 276578
2016-07-24 23:13:36 +00:00
Marshall Clow
3b8669edbf
Fix static assert problem on gcc; remove XFAILs that I put in in r274250
...
llvm-svn: 274285
2016-06-30 22:05:45 +00:00
Eric Fiselier
19cf6b6c93
Fix C++03 build.
...
llvm-svn: 274274
2016-06-30 20:46:58 +00:00
Marshall Clow
bc4618647f
Temporarily XFAIL the incomplete type tests for GCC while I figure out why adding a static_assert in r274235 broken them
...
llvm-svn: 274250
2016-06-30 17:49:36 +00:00
Marshall Clow
497677449b
Implement LWG#2436: 'Comparators for associative containers should always be CopyConstructible'
...
llvm-svn: 274235
2016-06-30 15:11:53 +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
56f23a3f7f
Move remaining _LIBCPP_VERSION tests into test/libcxx
...
llvm-svn: 273367
2016-06-22 02:23: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
Marshall Clow
9df8f6c472
Found a couple bugs in the test suite. No functionality change.
...
llvm-svn: 272679
2016-06-14 15:25:46 +00:00
Marshall Clow
54238fd381
Make the comparison objects that we pass in for various tests look more like actual comparison objects. No functional change.
...
llvm-svn: 272288
2016-06-09 18:34:38 +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
Eric Fiselier
b530a2591b
Fix some non-standard parts of our test suite. Reported by STL
...
llvm-svn: 267131
2016-04-22 10:33:56 +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
Eric Fiselier
7a9f500fcb
Fix LWG issue 2345 - Add insert(value_type&&)
...
llvm-svn: 266585
2016-04-18 01:40:45 +00:00