diff options
author | Max Horn | 2006-09-30 18:58:09 +0000 |
---|---|---|
committer | Max Horn | 2006-09-30 18:58:09 +0000 |
commit | a403a8e83b47df966aa8be099b76381a58df5d99 (patch) | |
tree | 2c05a86f769d12e177d2ac3f1c5553f1856c8f6f /test | |
parent | 5b22991f345cf4ea01144af8e23419de97f63f46 (diff) | |
download | scummvm-rg350-a403a8e83b47df966aa8be099b76381a58df5d99.tar.gz scummvm-rg350-a403a8e83b47df966aa8be099b76381a58df5d99.tar.bz2 scummvm-rg350-a403a8e83b47df966aa8be099b76381a58df5d99.zip |
Added some String tests, to verify copy-on-write works correctly
svn-id: r24045
Diffstat (limited to 'test')
-rw-r--r-- | test/common/str.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/common/str.h b/test/common/str.h index b3977576b6..8b7b966935 100644 --- a/test/common/str.h +++ b/test/common/str.h @@ -47,6 +47,50 @@ class StringTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( str, "fooX" ); } + void test_refCount( void ) + { + Common::String foo1("foo"); + Common::String foo2("foo"); + Common::String foo3(foo2); + foo3 += 'X'; + TS_ASSERT_EQUALS( foo2, foo1 ); + TS_ASSERT_EQUALS( foo2, "foo" ); + TS_ASSERT_EQUALS( foo3, "foo""X" ); + } + + void test_refCount2( void ) + { + Common::String foo1("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd"); + Common::String foo2("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd"); + Common::String foo3(foo2); + foo3 += 'X'; + TS_ASSERT_EQUALS( foo2, foo1 ); + TS_ASSERT_EQUALS( foo2, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd" ); + TS_ASSERT_EQUALS( foo3, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd""X" ); + } + + void test_refCount3( void ) + { + Common::String foo1("0123456789abcdefghijk"); + Common::String foo2("0123456789abcdefghijk"); + Common::String foo3(foo2); + foo3 += "0123456789abcdefghijk"; + TS_ASSERT_EQUALS( foo2, foo1 ); + TS_ASSERT_EQUALS( foo2, "0123456789abcdefghijk" ); + TS_ASSERT_EQUALS( foo3, "0123456789abcdefghijk""0123456789abcdefghijk" ); + } + + void test_refCount4( void ) + { + Common::String foo1("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd"); + Common::String foo2("fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd"); + Common::String foo3(foo2); + foo3 += "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd"; + TS_ASSERT_EQUALS( foo2, foo1 ); + TS_ASSERT_EQUALS( foo2, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd" ); + TS_ASSERT_EQUALS( foo3, "fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd""fooasdkadklasdjklasdjlkasjdlkasjdklasjdlkjasdasd" ); + } + void test_hasPrefix( void ) { Common::String str("this/is/a/test, haha"); |