diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-02-06 12:08:26 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2015-02-06 12:08:26 +0100 |
commit | 027c383584bff4ea2aa7aa2b9e294e614087f28f (patch) | |
tree | 74af09b746b1261481f87f97ff9f007fb8e41d66 /sal/qa | |
parent | d4cd001e3117b989fbfa7a650d7f4e4dc1877795 (diff) |
O[U]StringBuffer::appendUninitialized unit tests
Change-Id: I55f0a5bd01a3e250764e1eb34d674b535b85b56f
Diffstat (limited to 'sal/qa')
-rw-r--r-- | sal/qa/OStringBuffer/rtl_OStringBuffer.cxx | 45 | ||||
-rw-r--r-- | sal/qa/rtl/oustringbuffer/test_oustringbuffer_appenduninitialized.cxx | 66 |
2 files changed, 111 insertions, 0 deletions
diff --git a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx index d38a6a61c812..707cc07d8539 100644 --- a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx +++ b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx @@ -15967,6 +15967,50 @@ namespace rtl_OStringBuffer CPPUNIT_TEST( append_035 ); CPPUNIT_TEST_SUITE_END(); }; + + class AppendUninitialized: public CppUnit::TestFixture { + private: + void testEmpty(); + + void testNonEmpty(); + + void testZero(); + + CPPUNIT_TEST_SUITE(AppendUninitialized); + CPPUNIT_TEST(testEmpty); + CPPUNIT_TEST(testNonEmpty); + CPPUNIT_TEST(testZero); + CPPUNIT_TEST_SUITE_END(); + }; + + void AppendUninitialized::testEmpty() { + OStringBuffer s; + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); + char * p = s.appendUninitialized(5); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr()), + static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength()); + } + + void AppendUninitialized::testNonEmpty() { + OStringBuffer s("ab"); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), s.getLength()); + char * p = s.appendUninitialized(5); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr() + 2), + static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(7), s.getLength()); + } + + void AppendUninitialized::testZero() { + OStringBuffer s; + char * p = s.appendUninitialized(0); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr()), + static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); + } } // namespace rtl_OStringBuffer CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::ctors); @@ -15996,6 +16040,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_float); CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_Float_Negative); CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_double); CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_Double_Negative); +CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::AppendUninitialized); CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::remove); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appenduninitialized.cxx b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appenduninitialized.cxx new file mode 100644 index 000000000000..7530d6a32273 --- /dev/null +++ b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appenduninitialized.cxx @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sal/config.h> + +#include <cppunit/TestAssert.h> +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/HelperMacros.h> +#include <rtl/ustrbuf.hxx> +#include <sal/types.h> + +namespace { + +class Test: public CppUnit::TestFixture { +private: + void testEmpty(); + + void testNonEmpty(); + + void testZero(); + + CPPUNIT_TEST_SUITE(Test); + CPPUNIT_TEST(testEmpty); + CPPUNIT_TEST(testNonEmpty); + CPPUNIT_TEST(testZero); + CPPUNIT_TEST_SUITE_END(); +}; + +void Test::testEmpty() { + OUStringBuffer s; + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); + sal_Unicode * p = s.appendUninitialized(5); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr()), static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength()); +} + +void Test::testNonEmpty() { + OUStringBuffer s("ab"); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), s.getLength()); + sal_Unicode * p = s.appendUninitialized(5); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr() + 2), + static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(7), s.getLength()); +} + +void Test::testZero() { + OUStringBuffer s; + sal_Unicode * p = s.appendUninitialized(0); + CPPUNIT_ASSERT_EQUAL( + static_cast<void const *>(s.getStr()), static_cast<void const *>(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); +} + +CPPUNIT_TEST_SUITE_REGISTRATION(Test); + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |