diff options
author | Kenny Root <kroot@google.com> | 2010-08-05 16:21:23 -0700 |
---|---|---|
committer | Alex Ray <aray@google.com> | 2013-07-30 13:56:54 -0700 |
commit | 23b4a0936f1ee11e587b7be9dc3bcae5b55d31cf (patch) | |
tree | b79f05aebf10cfd278113b15d3b27911d0b106b2 /libs | |
parent | 3da482eec2a6d893f80eb56c1670b0bc59b13c30 (diff) | |
download | system_core-23b4a0936f1ee11e587b7be9dc3bcae5b55d31cf.zip system_core-23b4a0936f1ee11e587b7be9dc3bcae5b55d31cf.tar.gz system_core-23b4a0936f1ee11e587b7be9dc3bcae5b55d31cf.tar.bz2 |
Fix String8::operator+
The LHS was ignored when using:
String8 + String8
String8 + (const char*)
Add unit tests for above.
Bug: 2898473
Change-Id: Ic8fe7be668b665c36aaaa3fc3c3ffdfff0fbba25
Diffstat (limited to 'libs')
-rw-r--r-- | libs/utils/tests/Android.mk | 5 | ||||
-rw-r--r-- | libs/utils/tests/String8_test.cpp | 75 |
2 files changed, 78 insertions, 2 deletions
diff --git a/libs/utils/tests/Android.mk b/libs/utils/tests/Android.mk index b9f206a..725de9c 100644 --- a/libs/utils/tests/Android.mk +++ b/libs/utils/tests/Android.mk @@ -7,7 +7,8 @@ ifneq ($(TARGET_SIMULATOR),true) # Build the unit tests. test_src_files := \ ObbFile_test.cpp \ - PollLoop_test.cpp + PollLoop_test.cpp \ + String8_test.cpp shared_libraries := \ libz \ @@ -41,4 +42,4 @@ $(foreach file,$(test_src_files), \ $(eval include $(BUILD_EXECUTABLE)) \ ) -endif
\ No newline at end of file +endif diff --git a/libs/utils/tests/String8_test.cpp b/libs/utils/tests/String8_test.cpp new file mode 100644 index 0000000..c42c68d --- /dev/null +++ b/libs/utils/tests/String8_test.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "String8_test" +#include <utils/Log.h> +#include <utils/String8.h> + +#include <gtest/gtest.h> + +namespace android { + +class String8Test : public testing::Test { +protected: + virtual void SetUp() { + } + + virtual void TearDown() { + } +}; + +TEST_F(String8Test, Cstr) { + String8 tmp("Hello, world!"); + + EXPECT_STREQ(tmp.string(), "Hello, world!"); +} + +TEST_F(String8Test, OperatorPlus) { + String8 src1("Hello, "); + + // Test adding String8 + const char* + const char* ccsrc2 = "world!"; + String8 dst1 = src1 + ccsrc2; + EXPECT_STREQ(dst1.string(), "Hello, world!"); + EXPECT_STREQ(src1.string(), "Hello, "); + EXPECT_STREQ(ccsrc2, "world!"); + + // Test adding String8 + String8 + String8 ssrc2("world!"); + String8 dst2 = src1 + ssrc2; + EXPECT_STREQ(dst2.string(), "Hello, world!"); + EXPECT_STREQ(src1.string(), "Hello, "); + EXPECT_STREQ(ssrc2.string(), "world!"); +} + +TEST_F(String8Test, OperatorPlusEquals) { + String8 src1("My voice"); + + // Testing String8 += String8 + String8 src2(" is my passport."); + src1 += src2; + EXPECT_STREQ(src1.string(), "My voice is my passport."); + EXPECT_STREQ(src2.string(), " is my passport."); + + // Adding const char* to the previous string. + const char* src3 = " Verify me."; + src1 += src3; + EXPECT_STREQ(src1.string(), "My voice is my passport. Verify me."); + EXPECT_STREQ(src2.string(), " is my passport."); + EXPECT_STREQ(src3, " Verify me."); +} + +} |