Add tests to make sure that <string_view> provides std::size/data/empty in C++17 mode. This is LWG#3009, coming up for a vote in JAX - but we already do it, just don't have tests
llvm-svn: 323719
diff --git a/libcxx/test/std/iterators/iterator.container/data.pass.cpp b/libcxx/test/std/iterators/iterator.container/data.pass.cpp
index 09b7c01..12ca912 100644
--- a/libcxx/test/std/iterators/iterator.container/data.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.container/data.pass.cpp
@@ -23,6 +23,10 @@
#include "test_macros.h"
+#if TEST_STD_VER > 14
+#include <string_view>
+#endif
+
template<typename C>
void test_const_container( const C& c )
{
@@ -72,6 +76,12 @@
test_const_container ( a );
test_const_container ( il );
+#if TEST_STD_VER > 14
+ std::string_view sv{"ABC"};
+ test_container ( sv );
+ test_const_container ( sv );
+#endif
+
static constexpr int arrA [] { 1, 2, 3 };
test_const_array ( arrA );
}
diff --git a/libcxx/test/std/iterators/iterator.container/empty.pass.cpp b/libcxx/test/std/iterators/iterator.container/empty.pass.cpp
index cd000cc..f6fe235 100644
--- a/libcxx/test/std/iterators/iterator.container/empty.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.container/empty.pass.cpp
@@ -23,6 +23,10 @@
#include "test_macros.h"
+#if TEST_STD_VER > 14
+#include <string_view>
+#endif
+
template<typename C>
void test_const_container( const C& c )
{
@@ -74,6 +78,12 @@
test_const_container ( a );
test_const_container ( il );
+#if TEST_STD_VER > 14
+ std::string_view sv{"ABC"};
+ test_container ( sv );
+ test_const_container ( sv );
+#endif
+
static constexpr int arrA [] { 1, 2, 3 };
test_const_array ( arrA );
}
diff --git a/libcxx/test/std/iterators/iterator.container/size.pass.cpp b/libcxx/test/std/iterators/iterator.container/size.pass.cpp
index 7d443e6..6d3bc51 100644
--- a/libcxx/test/std/iterators/iterator.container/size.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.container/size.pass.cpp
@@ -22,6 +22,11 @@
#include "test_macros.h"
+#if TEST_STD_VER > 14
+#include <string_view>
+#endif
+
+
template<typename C>
void test_const_container( const C& c )
{
@@ -65,7 +70,6 @@
std::list<int> l; l.push_back(2);
std::array<int, 1> a; a[0] = 3;
std::initializer_list<int> il = { 4 };
-
test_container ( v );
test_container ( l );
test_container ( a );
@@ -76,6 +80,12 @@
test_const_container ( a );
test_const_container ( il );
+#if TEST_STD_VER > 14
+ std::string_view sv{"ABC"};
+ test_container ( sv );
+ test_const_container ( sv );
+#endif
+
static constexpr int arrA [] { 1, 2, 3 };
test_const_array ( arrA );
}
diff --git a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
index 7b23509..a179cfa 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
@@ -22,6 +22,10 @@
std::basic_string_view<CharT> sv ( s, len );
assert ( sv.length() == len );
assert ( sv.data() == s );
+#if TEST_STD_VER > 14
+// make sure we pick up std::data, too!
+ assert ( sv.data() == std::data(sv));
+#endif
}
int main () {
diff --git a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
index bb733c4..b21ba04 100644
--- a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
@@ -55,6 +55,11 @@
assert ( sv1.empty() == (len == 0));
assert ( sv1.size() == sv1.length());
assert ( sv1.max_size() > sv1.size());
+#if TEST_STD_VER > 14
+// make sure we pick up std::size, too!
+ assert ( sv1.size() == std::size(sv1));
+ assert ( sv1.empty() == std::empty(sv1));
+#endif
}
}