summaryrefslogtreecommitdiffstats
path: root/libcxx/test
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test')
-rw-r--r--libcxx/test/std/containers/sequences/array/front_back.pass.cpp24
-rw-r--r--libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp32
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/back.pass.cpp4
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/front.pass.cpp4
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/index.pass.cpp8
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp5
8 files changed, 68 insertions, 19 deletions
diff --git a/libcxx/test/std/containers/sequences/array/front_back.pass.cpp b/libcxx/test/std/containers/sequences/array/front_back.pass.cpp
index 1a714369ffc..5e0cb08ede0 100644
--- a/libcxx/test/std/containers/sequences/array/front_back.pass.cpp
+++ b/libcxx/test/std/containers/sequences/array/front_back.pass.cpp
@@ -68,10 +68,14 @@ int main(int, char**)
typedef std::array<T, 0> C;
C c = {};
C const& cc = c;
- static_assert((std::is_same<decltype(c.front()), T &>::value), "");
- static_assert((std::is_same<decltype(cc.front()), const T &>::value), "");
- static_assert((std::is_same<decltype(c.back()), T &>::value), "");
- static_assert((std::is_same<decltype(cc.back()), const T &>::value), "");
+ ASSERT_SAME_TYPE(decltype( c.back()), typename C::reference);
+ ASSERT_SAME_TYPE(decltype(cc.back()), typename C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ LIBCPP_ASSERT_NOEXCEPT( cc.back());
+ ASSERT_SAME_TYPE(decltype( c.front()), typename C::reference);
+ ASSERT_SAME_TYPE(decltype(cc.front()), typename C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ LIBCPP_ASSERT_NOEXCEPT( cc.front());
if (c.size() > (0)) { // always false
TEST_IGNORE_NODISCARD c.front();
TEST_IGNORE_NODISCARD c.back();
@@ -84,10 +88,14 @@ int main(int, char**)
typedef std::array<const T, 0> C;
C c = {{}};
C const& cc = c;
- static_assert((std::is_same<decltype(c.front()), const T &>::value), "");
- static_assert((std::is_same<decltype(cc.front()), const T &>::value), "");
- static_assert((std::is_same<decltype(c.back()), const T &>::value), "");
- static_assert((std::is_same<decltype(cc.back()), const T &>::value), "");
+ ASSERT_SAME_TYPE(decltype( c.back()), typename C::reference);
+ ASSERT_SAME_TYPE(decltype(cc.back()), typename C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ LIBCPP_ASSERT_NOEXCEPT( cc.back());
+ ASSERT_SAME_TYPE(decltype( c.front()), typename C::reference);
+ ASSERT_SAME_TYPE(decltype(cc.front()), typename C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ LIBCPP_ASSERT_NOEXCEPT( cc.front());
if (c.size() > (0)) {
TEST_IGNORE_NODISCARD c.front();
TEST_IGNORE_NODISCARD c.back();
diff --git a/libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp b/libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp
index c7d9006d2c1..583dba28a24 100644
--- a/libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp
+++ b/libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp
@@ -54,8 +54,12 @@ int main(int, char**)
{
typedef std::deque<int> C;
C c = make<std::deque<int> >(10);
- LIBCPP_ASSERT_NOEXCEPT(c[0]);
- ASSERT_SAME_TYPE(C::reference, decltype(c[0]));
+ ASSERT_SAME_TYPE(decltype(c[0]), C::reference);
+ LIBCPP_ASSERT_NOEXCEPT( c[0]);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ ASSERT_SAME_TYPE(decltype(c.front()), C::reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ ASSERT_SAME_TYPE(decltype(c.back()), C::reference);
for (int i = 0; i < 10; ++i)
assert(c[i] == i);
for (int i = 0; i < 10; ++i)
@@ -66,8 +70,12 @@ int main(int, char**)
{
typedef std::deque<int> C;
const C c = make<std::deque<int> >(10);
- LIBCPP_ASSERT_NOEXCEPT(c[0]);
- ASSERT_SAME_TYPE(C::const_reference, decltype(c[0]));
+ ASSERT_SAME_TYPE(decltype(c[0]), C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c[0]);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ ASSERT_SAME_TYPE(decltype(c.front()), C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ ASSERT_SAME_TYPE(decltype(c.back()), C::const_reference);
for (int i = 0; i < 10; ++i)
assert(c[i] == i);
for (int i = 0; i < 10; ++i)
@@ -79,8 +87,12 @@ int main(int, char**)
{
typedef std::deque<int, min_allocator<int>> C;
C c = make<std::deque<int, min_allocator<int>> >(10);
- LIBCPP_ASSERT_NOEXCEPT(c[0]);
- ASSERT_SAME_TYPE(C::reference, decltype(c[0]));
+ ASSERT_SAME_TYPE(decltype(c[0]), C::reference);
+ LIBCPP_ASSERT_NOEXCEPT( c[0]);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ ASSERT_SAME_TYPE(decltype(c.front()), C::reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ ASSERT_SAME_TYPE(decltype(c.back()), C::reference);
for (int i = 0; i < 10; ++i)
assert(c[i] == i);
for (int i = 0; i < 10; ++i)
@@ -91,8 +103,12 @@ int main(int, char**)
{
typedef std::deque<int, min_allocator<int>> C;
const C c = make<std::deque<int, min_allocator<int>> >(10);
- LIBCPP_ASSERT_NOEXCEPT(c[0]);
- ASSERT_SAME_TYPE(C::const_reference, decltype(c[0]));
+ ASSERT_SAME_TYPE(decltype(c[0]), C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c[0]);
+ LIBCPP_ASSERT_NOEXCEPT( c.front());
+ ASSERT_SAME_TYPE(decltype(c.front()), C::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( c.back());
+ ASSERT_SAME_TYPE(decltype(c.back()), C::const_reference);
for (int i = 0; i < 10; ++i)
assert(c[i] == i);
for (int i = 0; i < 10; ++i)
diff --git a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
index 3831da0845c..dd2a59a7615 100644
--- a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
@@ -25,6 +25,10 @@ void
test(S s)
{
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s.back()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.back()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s.back());
+ LIBCPP_ASSERT_NOEXCEPT( cs.back());
assert(&cs.back() == &cs[cs.size()-1]);
assert(&s.back() == &s[cs.size()-1]);
s.back() = typename S::value_type('z');
diff --git a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
index d51a12f0a77..b666c9c6870 100644
--- a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
@@ -25,6 +25,10 @@ void
test(S s)
{
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s.front()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.front()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s.front());
+ LIBCPP_ASSERT_NOEXCEPT( cs.front());
assert(&cs.front() == &cs[0]);
assert(&s.front() == &s[0]);
s.front() = typename S::value_type('z');
diff --git a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
index 3a1224ca301..ec02fa4c32b 100644
--- a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
@@ -26,6 +26,10 @@ int main(int, char**)
typedef std::string S;
S s("0123456789");
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s[0]), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs[0]), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s[0]);
+ LIBCPP_ASSERT_NOEXCEPT( cs[0]);
for (S::size_type i = 0; i < cs.size(); ++i)
{
assert(s[i] == static_cast<char>('0' + i));
@@ -40,6 +44,10 @@ int main(int, char**)
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
S s("0123456789");
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s[0]), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs[0]), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s[0]);
+ LIBCPP_ASSERT_NOEXCEPT( cs[0]);
for (S::size_type i = 0; i < cs.size(); ++i)
{
assert(s[i] == static_cast<char>('0' + i));
diff --git a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
index 4505f1cf981..76487b16157 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
bool test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv.back()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv.back());
assert ( sv.length() == len );
assert ( sv.back() == s[len-1] );
return &sv.back() == s + len - 1;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
index 554ed1bab12..eb7138950a7 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
bool test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv.front()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv.front());
assert ( sv.length() == len );
assert ( sv.front() == s[0] );
return &sv.front() == s;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
index 33992de7c05..05b704c642a 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
void test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv[0]), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv[0]);
assert ( sv.length() == len );
for ( size_t i = 0; i < len; ++i ) {
assert ( sv[i] == s[i] );
OpenPOWER on IntegriCloud