aboutsummaryrefslogtreecommitdiff
path: root/test/common/str.h
diff options
context:
space:
mode:
authorMax Horn2006-09-30 18:58:09 +0000
committerMax Horn2006-09-30 18:58:09 +0000
commita403a8e83b47df966aa8be099b76381a58df5d99 (patch)
tree2c05a86f769d12e177d2ac3f1c5553f1856c8f6f /test/common/str.h
parent5b22991f345cf4ea01144af8e23419de97f63f46 (diff)
downloadscummvm-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/common/str.h')
-rw-r--r--test/common/str.h44
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");