summaryrefslogtreecommitdiff
path: root/src/mongo/base/string_data_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/base/string_data_test.cpp')
-rw-r--r--src/mongo/base/string_data_test.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/base/string_data_test.cpp b/src/mongo/base/string_data_test.cpp
index c8ca72ca76c..bbd40011002 100644
--- a/src/mongo/base/string_data_test.cpp
+++ b/src/mongo/base/string_data_test.cpp
@@ -123,6 +123,22 @@ namespace {
ASSERT_EQUALS( string("foo").find( "" ), StringData("foo").find( "" ) );
}
+ TEST(Rfind, Char1) {
+ ASSERT_EQUALS( string::npos, StringData( "foo" ).rfind( 'a' ) );
+
+ ASSERT_EQUALS( 0U, StringData( "foo" ).rfind( 'f' ) );
+ ASSERT_EQUALS( 0U, StringData( "foo" ).rfind( 'f', 3 ) );
+ ASSERT_EQUALS( 0U, StringData( "foo" ).rfind( 'f', 2 ) );
+ ASSERT_EQUALS( 0U, StringData( "foo" ).rfind( 'f', 1 ) );
+ ASSERT_EQUALS( string::npos, StringData( "foo", 0 ).rfind( 'f' ) );
+
+ ASSERT_EQUALS( 2U, StringData( "foo" ).rfind( 'o' ) );
+ ASSERT_EQUALS( 2U, StringData( "foo", 3 ).rfind( 'o' ) );
+ ASSERT_EQUALS( 1U, StringData( "foo", 2 ).rfind( 'o' ) );
+ ASSERT_EQUALS( string::npos, StringData( "foo", 1 ).rfind( 'o' ) );
+ ASSERT_EQUALS( string::npos, StringData( "foo", 0 ).rfind( 'o' ) );
+ }
+
// this is to verify we match std::string
void SUBSTR_TEST_HELP(StringData big, StringData small, size_t start, size_t len) {
ASSERT_EQUALS(small.toString(), big.toString().substr(start, len));