diff options
author | Tor Lillqvist <tml@iki.fi> | 2011-08-03 17:46:15 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2011-08-03 17:46:15 +0300 |
commit | c2b202910ea36e1a316fb990e730ecb534671993 (patch) | |
tree | 94a89df0d4bcf7312f82f22623aed44d92123730 /basebmp | |
parent | 7df04586e9b1422642a4712f7a2c8e19e0c90668 (diff) |
Add statically linked basebmp cppunittester for iOS
Diffstat (limited to 'basebmp')
-rw-r--r-- | basebmp/Executable_basebmp_cppunittester_all.mk | 70 | ||||
-rw-r--r-- | basebmp/Module_basebmp.mk | 6 | ||||
-rw-r--r-- | basebmp/test/basebmp_cppunittester_all.cxx | 137 | ||||
-rw-r--r-- | basebmp/test/basictest.cxx | 4 |
4 files changed, 217 insertions, 0 deletions
diff --git a/basebmp/Executable_basebmp_cppunittester_all.mk b/basebmp/Executable_basebmp_cppunittester_all.mk new file mode 100644 index 000000000000..c9511382aa55 --- /dev/null +++ b/basebmp/Executable_basebmp_cppunittester_all.mk @@ -0,0 +1,70 @@ +# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- +#************************************************************************* +# 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 or as specified alternatively below. 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 +# Tor Lillqvist <tml@iki.fi> +# Portions created by the Initial Developer are Copyright (C) 2011 the +# Initial Developer. All Rights Reserved. +# +# Major Contributor(s): +# +# For minor contributions see the git repository. +# +# 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. +#************************************************************************* + +$(eval $(call gb_Executable_Executable,basebmp_cppunittester_all)) + +$(eval $(call gb_Executable_add_defs,basebmp_cppunittester_all,\ + $(gb_OBJCXXFLAGS) \ +)) + +$(eval $(call gb_Executable_add_linked_libs,basebmp_cppunittester_all, \ + basebmp \ + basegfx \ + cppu \ + cppunit \ + sal \ + sal_textenc \ + $(gb_STDLIBS) \ +)) + +$(eval $(call gb_Executable_use_externals,basebmp_cppunittester_all, \ + uikit \ + foundation \ +)) + +$(eval $(call gb_Executable_add_exception_objects,basebmp_cppunittester_all, \ + basebmp/test/basebmp_cppunittester_all \ + basebmp/test/basictest \ + basebmp/test/bmpmasktest \ + basebmp/test/bmptest \ + basebmp/test/cliptest \ + basebmp/test/filltest \ + basebmp/test/linetest \ + basebmp/test/masktest \ + basebmp/test/polytest \ + basebmp/test/tools \ +)) + +$(eval $(call gb_Executable_add_api,basebmp_cppunittester_all, \ + udkapi \ + offapi \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/basebmp/Module_basebmp.mk b/basebmp/Module_basebmp.mk index e3a272a72caa..c6f610714bc3 100644 --- a/basebmp/Module_basebmp.mk +++ b/basebmp/Module_basebmp.mk @@ -37,4 +37,10 @@ $(eval $(call gb_Module_add_check_targets,basebmp,\ CppunitTest_basebmp \ )) +ifeq ($(OS),IOS) +$(eval $(call gb_Module_add_targets,basebmp,\ + Executable_basebmp_cppunittester_all \ +)) +endif + # vim: set noet sw=4 ts=4: diff --git a/basebmp/test/basebmp_cppunittester_all.cxx b/basebmp/test/basebmp_cppunittester_all.cxx new file mode 100644 index 000000000000..53a8113cfda6 --- /dev/null +++ b/basebmp/test/basebmp_cppunittester_all.cxx @@ -0,0 +1,137 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* +* +* 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 +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +#include "sal/config.h" + +#include <cstdlib> +#include <iostream> +#include <limits> +#include <string> +#include "protectorfactory.hxx" +#include "osl/module.h" +#include "osl/module.hxx" +#include "osl/thread.h" +#include "rtl/process.h" +#include "rtl/string.h" +#include "rtl/string.hxx" +#include "rtl/textcvt.h" +#include "rtl/ustring.hxx" +#include "sal/main.h" +#include "sal/types.h" + +#include "cppunit/CompilerOutputter.h" +#include "cppunit/TestResult.h" +#include "cppunit/TestResultCollector.h" +#include "cppunit/TestRunner.h" +#include "cppunit/plugin/TestPlugIn.h" +#include "cppunit/plugin/PlugInParameters.h" +#include "cppunit/extensions/TestFactoryRegistry.h" +#include "cppunit/portability/Stream.h" + +#include "boost/noncopyable.hpp" + +namespace { + +void usageFailure() { + std::cerr + << ("Usage: cppunittester (--protector <shared-library-path>" + " <function-symbol>)* <shared-library-path>") + << std::endl; + std::exit(EXIT_FAILURE); +} + +rtl::OUString getArgument(sal_Int32 index) { + rtl::OUString arg; + rtl_getAppCommandArg(index, &arg.pData); + return arg; +} + +std::string convertLazy(rtl::OUString const & s16) { + rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding())); + return std::string( + s8.getStr(), + ((static_cast< sal_uInt32 >(s8.getLength()) + > (std::numeric_limits< std::string::size_type >::max)()) + ? (std::numeric_limits< std::string::size_type >::max)() + : static_cast< std::string::size_type >(s8.getLength()))); +} + +//Allow the whole uniting testing framework to be run inside a "Protector" +//which knows about uno exceptions, so it can print the content of the +//exception before falling over and dying +class CPPUNIT_API ProtectedFixtureFunctor : public CppUnit::Functor, private boost::noncopyable +{ +private: + const std::string &args; + CppUnit::TestResult &result; +public: + ProtectedFixtureFunctor(const std::string &args_, CppUnit::TestResult &result_) + : args(args_) + , result(result_) + { + } + bool run() const + { + CppUnit::TestRunner runner; + runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); + CppUnit::TestResultCollector collector; + result.addListener(&collector); + runner.run(result); + CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write(); + return collector.wasSuccessful(); + } + virtual bool operator()() const + { + return run(); + } +}; +} + +extern "C" CppUnitTestPlugIn + *cppunitTest_basebmp(void); + +SAL_IMPLEMENT_MAIN() { + TestPlugInSignature plugs[] = { + cppunitTest_basebmp, + NULL + }; + CppUnit::TestResult result; + std::string args; + bool ok = false; + for (TestPlugInSignature *plug = plugs; *plug != NULL; plug++) { + CppUnitTestPlugIn *iface; + iface = (*plug)(); + iface->initialize(&CppUnit::TestFactoryRegistry::getRegistry(), CppUnit::PlugInParameters()); + } + ProtectedFixtureFunctor tests(args, result); + ok = tests.run(); + + return ok ? EXIT_SUCCESS : EXIT_FAILURE; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basebmp/test/basictest.cxx b/basebmp/test/basictest.cxx index 1b409921d046..a24852992f53 100644 --- a/basebmp/test/basictest.cxx +++ b/basebmp/test/basictest.cxx @@ -26,6 +26,10 @@ * ************************************************************************/ +#ifdef IOS +#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_basebmp +#endif + // autogenerated file with codegen.pl #include <sal/cppunit.h> |