From 027c383584bff4ea2aa7aa2b9e294e614087f28f Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 6 Feb 2015 12:08:26 +0100 Subject: O[U]StringBuffer::appendUninitialized unit tests Change-Id: I55f0a5bd01a3e250764e1eb34d674b535b85b56f --- sal/qa/OStringBuffer/rtl_OStringBuffer.cxx | 45 +++++++++++++++ .../test_oustringbuffer_appenduninitialized.cxx | 66 ++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 sal/qa/rtl/oustringbuffer/test_oustringbuffer_appenduninitialized.cxx (limited to 'sal/qa') 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(s.getStr()), + static_cast(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(s.getStr() + 2), + static_cast(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(7), s.getLength()); + } + + void AppendUninitialized::testZero() { + OStringBuffer s; + char * p = s.appendUninitialized(0); + CPPUNIT_ASSERT_EQUAL( + static_cast(s.getStr()), + static_cast(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 + +#include +#include +#include +#include +#include + +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(s.getStr()), static_cast(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(s.getStr() + 2), + static_cast(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(s.getStr()), static_cast(p)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); +} + +CPPUNIT_TEST_SUITE_REGISTRATION(Test); + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit