History log of /external/libcxx/test/support/test_workarounds.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c79549b70e66c251c15dd145c964edb70fa2e2b3 17-Jan-2018 Dan Albert <danalbert@google.com> Revert "Revert "Merge to upstream r304942.""

This reverts commit 38a0d5af7e5d13553fe623053e05dffc06403280.

Test: make checkbuild
Test: ./run_tests.py
Test: ./run_tests.py --bitness 64
/external/libcxx/test/support/test_workarounds.h
38a0d5af7e5d13553fe623053e05dffc06403280 11-Jan-2018 Dan Albert <danalbert@google.com> Revert "Merge to upstream r304942."

This reverts commit 83b1388ecd96b1cc641522ae3b6338898be32a17, reversing
changes made to f20819f925e1ca67fc187e5f08413624a5994efc.

Test: treehugger
Bug: None
/external/libcxx/test/support/test_workarounds.h
91d004da6c1c05f76d45cc933b64863488fa4c54 05-Jun-2017 Casey Carter <Casey@Carter.net> [test] Remove workaround for C1XX empty parameter pack bug

Was VSO#109062. This bug was filed *4 years ago*. I submitted a workaround to enable the scoped_allocator_adaptor tests to pass. Bug fixed a week and a half later. This was either a waste of my time, or I've discovered that libc++ has magical bugfix-inducing powers. My money's on the latter.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@304730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
a42191c839865d43f676f78fb5a9392e4d8d88d1 25-May-2017 Casey Carter <Casey@Carter.net> [test] Remove workaround for C1XX conversion-to-nullptr bug

VSO#391542 "Types can't be convertible to nullptr_t"

Also put internal bug numbers on the workarounds in test_workarounds.h for correlation.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@303889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
8b55cce1c8e50c69fe67100170967c791218f204 25-May-2017 Casey Carter <Casey@Carter.net> [test] Workaround C1XX bug in uses_allocator_types.hpp

VSO#109062 "Explicit template argument specification with empty template parameter pack expansion does not imply further empty pack expansion"

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@303888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
f0346a566395620123e35d48da4fee038eb188da 10-May-2017 Casey Carter <Casey@Carter.net> [test] support machinery changes for EDG & C1XX /Za

This change works around a couple of bugs:

1. EDG doesn't like explicit constexpr in a derived class. This program:

struct Base {};
struct Derived : Base {
constexpr Derived() = default;
};

triggers "error: defaulted default constructor cannot be constexpr."

2. C1XX with /Za has no idea which constructor needs to be valid for copy elision.

The change also conditionally disables parts of the msvc_stdlib_force_include.hpp header that conflict with external configuration when _LIBCXX_IN_DEVCRT is defined.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@302707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
d252306885d2873ec4cb5f1f36d7e8f3a4802f77 04-May-2017 Casey Carter <Casey@Carter.net> [test] variant: enable constexpr construction tests on MSVC STL

* Add a new macro _MSVC_STL_VER to detect when the MSVC STL is being tested
* Workaround C1XX __is_trivially_copyable bug

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@302158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
a4fd0c9d612bde45184460088d8c2e20510a74b4 16-Apr-2017 Eric Fiselier <eric@efcs.ca> Overhaul unique_ptr - Implement LWG 2801, 2905, 2520.

This patch overhauls both specializations of unique_ptr while implementing
the following LWG issues:

* LWG 2801 - This issue constrains unique_ptr's constructors when the deleter type
is not default constructible. Additionally it adds SFINAE conditions
to unique_ptr<T[]>::unique_ptr(Up).

* LWG 2905 - This issue reworks the unique_ptr(pointer, /* see below */ deleter)
constructors so that they correctly SFINAE when the deleter argument cannot
be used to construct the stored deleter.

* LWG 2520 - This issue fixes initializing unique_ptr<T[]> from nullptr.
Libc++ had previously implemented this issue, but the suggested resolution
still broke initialization from NULL. This patch re-works the
unique_ptr<T[]>(Up, deleter) overloads so that they accept NULL as well
as nullptr.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@300406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
81f58e5052d3f4631b7b3e5f37df9dd5b51cc926 15-Apr-2017 Eric Fiselier <eric@efcs.ca> Rewrite and cleanup unique_ptr tests.

This patch almost entirely rewrites the unique_ptr tests. There are a couple
of reasons for this:

A) Most of the *.fail.cpp tests were either incorrect or could be better written
as a *.pass.cpp test that uses <type_traits> to check if certain operations
are valid (Ex. Using static_assert(!std::is_copy_constructible_v<T>) instead
of writing a failure test).

B) [unique.ptr.runtime] has very poor test coverage. Many of the constructors
and assignment operators have to tests at all. The special members that have
tests have very few test cases and are typically way out of date.

C) The tests for [unique.ptr.single] and [unique.ptr.runtime] are largely
duplicates of each other. This means common requirements have two different
sets of tests in two different test files. This makes the tests harder to
maintain than if there was a single copy.

To address (A) this patch changes almost all of the *.fail.cpp tests into
.pass.cpp tests using type traits; Allowing the *.fail.cpp tests to be removed.

The address (B) and (C) the tests for [unique.ptr.single] and [unique.ptr.runtime]
have been combined into a single directory, allowing both specializations to share
common tests. Tests specific to the single/runtime specializations are given the
suffix "*.single.pass.cpp" or "*.runtime.pass.cpp".

Finally the unique.ptr test have been moved into the correct directory according
to the standard. Specifically they have been removed from "utilities/memory" into
"utilities/smartptr".

PS. This patch also adds newly written tests for upcoming unique_ptr changes/fixes.
However since these tests don't currently pass they are guarded by the macro
TEST_WORKAROUND_UPCOMING_UNIQUE_PTR_CHANGES. This allows other STL's to validate
the tests before libc++ implements the changes. The relevant libc++ changes should
land in the next week.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@300388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
03096267d63ffc62898be94f454171d93bf5f845 23-Mar-2017 Eric Fiselier <eric@efcs.ca> Address post-commit review comments regarding test_workarounds.h

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@298566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h
0da4cb892be645cf366eb7e3f267e647e5f77011 22-Mar-2017 Eric Fiselier <eric@efcs.ca> [libc++] Work around C1XX bug which breaks poisoned hash tests.

Summary: This is my attempt to work around the C1XX bug described to me by @BillyONeal.

Reviewers: BillyONeal, STL_MSFT, CaseyCarter

Reviewed By: BillyONeal

Subscribers: cfe-commits, BillyONeal

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@298554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/support/test_workarounds.h