summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/strings
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/strings')
-rw-r--r--libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp17
5 files changed, 31 insertions, 6 deletions
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
index 48862b4ec9d..085e72c1112 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
@@ -22,6 +22,10 @@ int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
template<typename CharT>
void test1 ( std::basic_string_view<CharT> sv1,
size_t pos1, size_t n1, const CharT *s, int expected ) {
+#ifdef TEST_HAS_NO_EXCEPTIONS
+ if (pos1 <= sv1.size())
+ assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
+#else
try {
assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
assert(pos1 <= sv1.size());
@@ -29,6 +33,7 @@ void test1 ( std::basic_string_view<CharT> sv1,
catch (const std::out_of_range&) {
assert(pos1 > sv1.size());
}
+#endif
}
template<typename CharT>
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
index 389b775d93c..2bef7fdbac1 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
@@ -22,6 +22,10 @@ int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
template<typename CharT>
void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
std::basic_string_view<CharT> sv2, int expected ) {
+#ifdef TEST_HAS_NO_EXCEPTIONS
+ if (pos1 <= sv1.size())
+ assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected));
+#else
try {
assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected));
assert(pos1 <= sv1.size());
@@ -29,6 +33,7 @@ void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
catch (const std::out_of_range&) {
assert(pos1 > sv1.size());
}
+#endif
}
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
index f169261bfff..8256c997b11 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
@@ -23,6 +23,10 @@ int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
template<typename CharT>
void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
const CharT *s2, size_t n2, int expected ) {
+#ifdef TEST_HAS_NO_EXCEPTIONS
+ if (pos1 <= sv1.size())
+ assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
+#else
try {
assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
assert(pos1 <= sv1.size());
@@ -30,6 +34,7 @@ void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
catch (const std::out_of_range&) {
assert(pos1 > sv1.size());
}
+#endif
}
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
index 4c351ebfbe2..5b47486192c 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
@@ -24,6 +24,10 @@ template<typename CharT>
void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
std::basic_string_view<CharT> sv2, size_t pos2, size_t n2,
int expected ) {
+#ifdef TEST_HAS_NO_EXCEPTIONS
+ if (pos1 <= sv1.size() && pos2 <= sv2.size())
+ assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
+#else
try {
assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
assert(pos1 <= sv1.size() && pos2 <= sv2.size());
@@ -31,6 +35,7 @@ void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1,
catch (const std::out_of_range&) {
assert(pos1 > sv1.size() || pos2 > sv2.size());
}
+#endif
}
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
index afba3a64486..88a093ad8b9 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
@@ -22,16 +22,21 @@
template<typename CharT>
void test1(std::basic_string_view<CharT> sv, size_t n, size_t pos) {
- try {
- std::basic_string_view<CharT> sv1 = sv.substr(pos, n);
+#ifdef TEST_HAS_NO_EXCEPTIONS
+ if (pos <= sv.size())
+ assert (sign( sv1.compare(pos1, n1, sv2)) == sign(expected));
+#else
+ try {
+ std::basic_string_view<CharT> sv1 = sv.substr(pos, n);
const size_t rlen = std::min(n, sv.size() - pos);
assert (sv1.size() == rlen);
for (size_t i = 0; i <= rlen; ++i)
assert(sv[pos+i] == sv1[i]);
- }
- catch (const std::out_of_range&) {
- assert(pos > sv.size());
- }
+ }
+ catch (const std::out_of_range&) {
+ assert(pos > sv.size());
+ }
+#endif
}
OpenPOWER on IntegriCloud