From a403a8e83b47df966aa8be099b76381a58df5d99 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 30 Sep 2006 18:58:09 +0000 Subject: Added some String tests, to verify copy-on-write works correctly svn-id: r24045 --- test/common/str.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'test/common/str.h') 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"); -- cgit v1.2.3