summaryrefslogtreecommitdiff
path: root/test/std/strings/basic.string/string.access
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-01-02 19:18:58 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-01-02 19:18:58 +0000
commit53a420fba21cf1644972b34dcd811a43cdb8368d (patch)
tree66a19f6f8b65215772549a51d688492ab8addc0d /test/std/strings/basic.string/string.access
parentb50f1549701eb950921e5d6f2e55ba1a1dadbb43 (diff)
Notes
Diffstat (limited to 'test/std/strings/basic.string/string.access')
-rw-r--r--test/std/strings/basic.string/string.access/at.pass.cpp31
-rw-r--r--test/std/strings/basic.string/string.access/index.pass.cpp4
2 files changed, 27 insertions, 8 deletions
diff --git a/test/std/strings/basic.string/string.access/at.pass.cpp b/test/std/strings/basic.string/string.access/at.pass.cpp
index 8dc0c57cb7b4..891648930e3c 100644
--- a/test/std/strings/basic.string/string.access/at.pass.cpp
+++ b/test/std/strings/basic.string/string.access/at.pass.cpp
@@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//
-// XFAIL: libcpp-no-exceptions
// <string>
// const_reference at(size_type pos) const;
@@ -19,21 +18,41 @@
#include "min_allocator.h"
+#include "test_macros.h"
+
template <class S>
void
test(S s, typename S::size_type pos)
{
- try
+ const S& cs = s;
+ if (pos < s.size())
{
- const S& cs = s;
assert(s.at(pos) == s[pos]);
assert(cs.at(pos) == cs[pos]);
- assert(pos < cs.size());
}
- catch (std::out_of_range&)
+#ifndef TEST_HAS_NO_EXCEPTIONS
+ else
{
- assert(pos >= s.size());
+ try
+ {
+ s.at(pos);
+ assert(false);
+ }
+ catch (std::out_of_range&)
+ {
+ assert(pos >= s.size());
+ }
+ try
+ {
+ cs.at(pos);
+ assert(false);
+ }
+ catch (std::out_of_range&)
+ {
+ assert(pos >= s.size());
+ }
}
+#endif
}
int main()
diff --git a/test/std/strings/basic.string/string.access/index.pass.cpp b/test/std/strings/basic.string/string.access/index.pass.cpp
index b45a399320ba..f4053dff19e5 100644
--- a/test/std/strings/basic.string/string.access/index.pass.cpp
+++ b/test/std/strings/basic.string/string.access/index.pass.cpp
@@ -29,7 +29,7 @@ int main()
const S& cs = s;
for (S::size_type i = 0; i < cs.size(); ++i)
{
- assert(s[i] == '0' + i);
+ assert(s[i] == static_cast<char>('0' + i));
assert(cs[i] == s[i]);
}
assert(cs[cs.size()] == '\0');
@@ -43,7 +43,7 @@ int main()
const S& cs = s;
for (S::size_type i = 0; i < cs.size(); ++i)
{
- assert(s[i] == '0' + i);
+ assert(s[i] == static_cast<char>('0' + i));
assert(cs[i] == s[i]);
}
assert(cs[cs.size()] == '\0');