From 7c968741982e740e5d68680e7c02fc53c40a2616 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sun, 24 Jul 2011 21:16:15 +0100 Subject: recover my cppunit test for tools again --- tools/Module_tools.mk | 4 + tools/qa/cppunit/test_reversemap.cxx | 171 ++++++++++++++++++++++++++++++++++ tools/qa/test_reversemap.cxx | 173 ----------------------------------- tools/qa/version.map | 34 ------- 4 files changed, 175 insertions(+), 207 deletions(-) create mode 100644 tools/qa/cppunit/test_reversemap.cxx delete mode 100644 tools/qa/test_reversemap.cxx delete mode 100644 tools/qa/version.map diff --git a/tools/Module_tools.mk b/tools/Module_tools.mk index 064f6d74de7d..aa84e1c038ab 100644 --- a/tools/Module_tools.mk +++ b/tools/Module_tools.mk @@ -36,6 +36,10 @@ $(eval $(call gb_Module_add_targets,tools,\ StaticLibrary_toolshelpers \ )) +$(eval $(call gb_Module_add_check_targets,tools,\ + CppunitTest_tools_test \ +)) + ifneq ($(CROSS_COMPILING),YES) $(eval $(call gb_Module_add_targets,tools,\ Executable_bestreversemap \ diff --git a/tools/qa/cppunit/test_reversemap.cxx b/tools/qa/cppunit/test_reversemap.cxx new file mode 100644 index 000000000000..a6e13147007e --- /dev/null +++ b/tools/qa/cppunit/test_reversemap.cxx @@ -0,0 +1,171 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Initial Developer of the Original Code is + * Caolán McNamara (Red Hat, Inc.) + * Portions created by the Initial Developer are Copyright (C) 2010 the + * Initial Developer. All Rights Reserved. + * + * Contributor(s): Caolán McNamara + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#include "precompiled_tools.hxx" +#include + +#include +#include + +#include "tools/tenccvt.hxx" + +//Tests for getBestMSEncodingByChar + +namespace +{ + + class Test: public CppUnit::TestFixture + { + public: + void testEncoding(rtl_TextEncoding eEncoding); + + void test1258(); + void test1257(); + void test1256(); + void test1255(); + void test1254(); + void test1253(); + void test1252(); + void test1251(); + void test1250(); + void test874(); + + CPPUNIT_TEST_SUITE(Test); + CPPUNIT_TEST(test1258); + CPPUNIT_TEST(test1257); + CPPUNIT_TEST(test1256); + CPPUNIT_TEST(test1255); + CPPUNIT_TEST(test1254); + CPPUNIT_TEST(test1253); + CPPUNIT_TEST(test1252); + CPPUNIT_TEST(test1251); + CPPUNIT_TEST(test1250); + CPPUNIT_TEST(test874); + CPPUNIT_TEST_SUITE_END(); + }; + + void Test::testEncoding(rtl_TextEncoding eEncoding) + { + //Taking the single byte legacy encodings, fill in all possible values + std::vector aAllChars(255); + for (int i = 1; i <= 255; ++i) + aAllChars[i-1] = static_cast(i); + + //Some slots are unused, so don't map to private, just set them to 'X' + sal_uInt32 convertFlags = OUSTRING_TO_OSTRING_CVTFLAGS ^ RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE; + rtl::OUString sOrigText(&aAllChars[0], aAllChars.size(), eEncoding, convertFlags); + sOrigText = sOrigText.replace( 0xfffd, 'X' ); + + //Should clearly be equal + sal_Int32 nLength = aAllChars.size(); + CPPUNIT_ASSERT_EQUAL(sOrigText.getLength(), nLength); + + rtl::OUString sFinalText; + + //Split up in chunks of the same encoding returned by + //getBestMSEncodingByChar, convert to it, and back + rtl_TextEncoding ePrevEncoding = RTL_TEXTENCODING_DONTKNOW; + const sal_Unicode *pStr = sOrigText.getStr(); + sal_Int32 nChunkStart=0; + for (int i = 0; i < 255; ++i) + { + rtl_TextEncoding eCurrEncoding = getBestMSEncodingByChar(pStr[i]); + if (eCurrEncoding != ePrevEncoding) + { + rtl::OString aChunk(pStr+nChunkStart, i-nChunkStart, ePrevEncoding); + sFinalText += rtl::OStringToOUString(aChunk, ePrevEncoding); + nChunkStart = i; + } + ePrevEncoding = eCurrEncoding; + } + if (nChunkStart < 255) + { + rtl::OString aChunk(pStr+nChunkStart, 255-nChunkStart, ePrevEncoding); + sFinalText += rtl::OStringToOUString(aChunk, ePrevEncoding); + } + + //Final text should be the same as original + CPPUNIT_ASSERT_EQUAL(sOrigText, sFinalText); + } + + void Test::test1252() + { + testEncoding(RTL_TEXTENCODING_MS_1252); + } + + void Test::test874() + { + testEncoding(RTL_TEXTENCODING_MS_874); + } + + void Test::test1258() + { + testEncoding(RTL_TEXTENCODING_MS_1258); + } + + void Test::test1257() + { + testEncoding(RTL_TEXTENCODING_MS_1257); + } + + void Test::test1256() + { + testEncoding(RTL_TEXTENCODING_MS_1256); + } + + void Test::test1255() + { + testEncoding(RTL_TEXTENCODING_MS_1255); + } + + void Test::test1254() + { + testEncoding(RTL_TEXTENCODING_MS_1254); + } + + void Test::test1253() + { + testEncoding(RTL_TEXTENCODING_MS_1253); + } + + void Test::test1251() + { + testEncoding(RTL_TEXTENCODING_MS_1251); + } + + void Test::test1250() + { + testEncoding(RTL_TEXTENCODING_MS_1250); + } + + CPPUNIT_TEST_SUITE_REGISTRATION(Test); +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/tools/qa/test_reversemap.cxx b/tools/qa/test_reversemap.cxx deleted file mode 100644 index e1ea8698ce87..000000000000 --- a/tools/qa/test_reversemap.cxx +++ /dev/null @@ -1,173 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Initial Developer of the Original Code is - * Caolán McNamara (Red Hat, Inc.) - * Portions created by the Initial Developer are Copyright (C) 2010 the - * Initial Developer. All Rights Reserved. - * - * Contributor(s): Caolán McNamara - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#include "precompiled_tools.hxx" -#include "sal/config.h" - -#include -#include -#include - -#include -#include - -#include "tools/tenccvt.hxx" - -//Tests for getBestMSEncodingByChar - -namespace -{ - - class Test: public CppUnit::TestFixture - { - public: - void testEncoding(rtl_TextEncoding eEncoding); - - void test1258(); - void test1257(); - void test1256(); - void test1255(); - void test1254(); - void test1253(); - void test1252(); - void test1251(); - void test1250(); - void test874(); - - CPPUNIT_TEST_SUITE(Test); - CPPUNIT_TEST(test1258); - CPPUNIT_TEST(test1257); - CPPUNIT_TEST(test1256); - CPPUNIT_TEST(test1255); - CPPUNIT_TEST(test1254); - CPPUNIT_TEST(test1253); - CPPUNIT_TEST(test1252); - CPPUNIT_TEST(test1251); - CPPUNIT_TEST(test1250); - CPPUNIT_TEST(test874); - CPPUNIT_TEST_SUITE_END(); - }; - - void Test::testEncoding(rtl_TextEncoding eEncoding) - { - //Taking the single byte legacy encodings, fill in all possible values - std::vector aAllChars(255); - for (int i = 1; i <= 255; ++i) - aAllChars[i-1] = static_cast(i); - - //Some slots are unused, so don't map to private, just set them to 'X' - sal_uInt32 convertFlags = OUSTRING_TO_OSTRING_CVTFLAGS ^ RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE; - rtl::OUString sOrigText(&aAllChars[0], aAllChars.size(), eEncoding, convertFlags); - sOrigText = sOrigText.replace( 0xfffd, 'X' ); - - //Should clearly be equal - sal_Int32 nLength = aAllChars.size(); - CPPUNIT_ASSERT_EQUAL(sOrigText.getLength(), nLength); - - rtl::OUString sFinalText; - - //Split up in chunks of the same encoding returned by - //getBestMSEncodingByChar, convert to it, and back - rtl_TextEncoding ePrevEncoding = RTL_TEXTENCODING_DONTKNOW; - const sal_Unicode *pStr = sOrigText.getStr(); - sal_Int32 nChunkStart=0; - for (int i = 0; i < 255; ++i) - { - rtl_TextEncoding eCurrEncoding = getBestMSEncodingByChar(pStr[i]); - if (eCurrEncoding != ePrevEncoding) - { - rtl::OString aChunk(pStr+nChunkStart, i-nChunkStart, ePrevEncoding); - sFinalText += rtl::OStringToOUString(aChunk, ePrevEncoding); - nChunkStart = i; - } - ePrevEncoding = eCurrEncoding; - } - if (nChunkStart < 255) - { - rtl::OString aChunk(pStr+nChunkStart, 255-nChunkStart, ePrevEncoding); - sFinalText += rtl::OStringToOUString(aChunk, ePrevEncoding); - } - - //Final text should be the same as original - CPPUNIT_ASSERT_EQUAL(sOrigText, sFinalText); - } - - void Test::test1252() - { - testEncoding(RTL_TEXTENCODING_MS_1252); - } - - void Test::test874() - { - testEncoding(RTL_TEXTENCODING_MS_874); - } - - void Test::test1258() - { - testEncoding(RTL_TEXTENCODING_MS_1258); - } - - void Test::test1257() - { - testEncoding(RTL_TEXTENCODING_MS_1257); - } - - void Test::test1256() - { - testEncoding(RTL_TEXTENCODING_MS_1256); - } - - void Test::test1255() - { - testEncoding(RTL_TEXTENCODING_MS_1255); - } - - void Test::test1254() - { - testEncoding(RTL_TEXTENCODING_MS_1254); - } - - void Test::test1253() - { - testEncoding(RTL_TEXTENCODING_MS_1253); - } - - void Test::test1251() - { - testEncoding(RTL_TEXTENCODING_MS_1251); - } - - void Test::test1250() - { - testEncoding(RTL_TEXTENCODING_MS_1250); - } - - CPPUNIT_TEST_SUITE_REGISTRATION(Test); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/tools/qa/version.map b/tools/qa/version.map deleted file mode 100644 index 3308588ef6f8..000000000000 --- a/tools/qa/version.map +++ /dev/null @@ -1,34 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -UDK_3_0_0 { - global: - cppunitTestPlugIn; - - local: - *; -}; -- cgit