[Libreoffice-commits] core.git: Branch 'feature/liblibo' - desktop/inc desktop/source smoketest/CppunitTest_liblibreoffice.mk smoketest/libtest.cxx
Michael Meeks
michael.meeks at suse.com
Tue Mar 5 06:07:43 PST 2013
desktop/inc/liblibreoffice.h | 2 -
desktop/source/lib/init.cxx | 38 ++++++++++++++++++++++----------
smoketest/CppunitTest_liblibreoffice.mk | 1
smoketest/libtest.cxx | 19 +++++++++++++++-
4 files changed, 47 insertions(+), 13 deletions(-)
New commits:
commit e144cfad708f14b9e5dd29b6cb760688861bf310
Author: Michael Meeks <michael.meeks at suse.com>
Date: Tue Mar 5 14:06:47 2013 +0000
liblibo: export symbols correctly, and improve tests.
Change-Id: I7d6688634aa423b62336c05a70d5047115c0081e
diff --git a/desktop/inc/liblibreoffice.h b/desktop/inc/liblibreoffice.h
index 200688b..dde50ce 100644
--- a/desktop/inc/liblibreoffice.h
+++ b/desktop/inc/liblibreoffice.h
@@ -22,7 +22,7 @@ typedef struct {
typedef int loboolean;
typedef struct _LODocument LODocument;
-void lo_initialize (const char *install_path);
+loboolean lo_initialize (const char *install_path);
void lo_error_free (LOError *error);
LOError *lo_error_new (int errno, const char *message);
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index cd8ce9f..8f96dbe 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -11,6 +11,7 @@
#include <liblibreoffice.h>
#include <tools/errinf.hxx>
+#include <osl/file.hxx>
#include <rtl/strbuf.hxx>
#include <rtl/bootstrap.hxx>
#include <cppuhelper/bootstrap.hxx>
@@ -34,22 +35,24 @@ static uno::Reference<css::uno::XComponentContext> xContext;
static uno::Reference<css::lang::XMultiServiceFactory> xSFactory;
static uno::Reference<css::lang::XMultiComponentFactory> xFactory;
-void lo_error_free( LOError * )
+SAL_DLLPUBLIC_EXPORT void
+lo_error_free( LOError * )
{
}
-LOError *lo_error_new( int, const char * )
+SAL_DLLPUBLIC_EXPORT LOError *
+lo_error_new( int, const char * )
{
return NULL;
}
-LODocument *
+SAL_DLLPUBLIC_EXPORT LODocument *
lo_document_load( const char *, LOError ** )
{
return NULL;
}
-loboolean
+SAL_DLLPUBLIC_EXPORT loboolean
lo_document_save( const char *, LOError ** )
{
return 1;
@@ -78,24 +81,35 @@ aBasicErrorFunc( const OUString &rErr, const OUString &rAction )
}
static void
-initialize_uno( void )
+initialize_uno( const rtl::OUString &aUserProfileURL )
{
// set UserInstallation to user profile dir in test/user-template
rtl::Bootstrap aDefaultVars;
- // madness ...
- fprintf(stderr, "trying to bootstrap with no user install !\n");
-/* rtl::OUString sUserInstallURL = m_aSolverRootURL + rtl::OUString("/unittest");
- aDefaultVars.set(rtl::OUString("UserInstallation"), sUserInstallURL); */
+ aDefaultVars.set(rtl::OUString("UserInstallation"), aUserProfileURL );
xContext = comphelper::getProcessComponentContext();
xFactory = xContext->getServiceManager();
xSFactory = uno::Reference<lang::XMultiServiceFactory>(xFactory, uno::UNO_QUERY_THROW);
}
-void lo_initialize( const char * )
+SAL_DLLPUBLIC_EXPORT loboolean
+lo_initialize( const char *app_path )
{
+ static bool bInitialized = false;
+ if( bInitialized )
+ return true;
+
+ if( !app_path )
+ return false;
+
+ OUString aAppPath( app_path, strlen( app_path ), RTL_TEXTENCODING_UTF8 );
+ OUString aAppURL;
+ if( osl::FileBase::getFileURLFromSystemPath( aAppPath, aAppURL ) !=
+ osl::FileBase::E_None )
+ return false;
+
try {
- initialize_uno();
+ initialize_uno( aAppURL + "../registry" );
force_c_locale();
InitVCL();
if (Application::IsHeadlessModeRequested())
@@ -104,10 +118,12 @@ void lo_initialize( const char * )
ErrorHandler::RegisterDisplay( aBasicErrorFunc );
fprintf (stderr, "do nothing yet");
+ bInitialized = true;
} catch (css::uno::Exception & e) {
fprintf( stderr, "bootstrapping exception '%s'\n",
OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
}
+ return bInitialized;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/smoketest/CppunitTest_liblibreoffice.mk b/smoketest/CppunitTest_liblibreoffice.mk
index 9a333c9..2cd3456 100644
--- a/smoketest/CppunitTest_liblibreoffice.mk
+++ b/smoketest/CppunitTest_liblibreoffice.mk
@@ -25,6 +25,7 @@ $(eval $(call gb_CppunitTest_use_api,liblibreoffice,\
$(eval $(call gb_CppunitTest_use_libraries,liblibreoffice,\
cppu \
cppuhelper \
+ libreoffice \
sal \
unotest \
))
diff --git a/smoketest/libtest.cxx b/smoketest/libtest.cxx
index 53c836a..39ab01b 100644
--- a/smoketest/libtest.cxx
+++ b/smoketest/libtest.cxx
@@ -1,7 +1,18 @@
+/* -*- 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/.
+ */
+
// yuck / FIXME ...
#include "../desktop/inc/liblibreoffice.h"
#include <sal/types.h>
+#include <rtl/ustring.hxx>
+#include <rtl/bootstrap.hxx>
#include "cppunit/TestAssert.h"
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
@@ -29,9 +40,15 @@ void Test::tearDown()
void Test::test()
{
- fprintf( stderr, " test me !\n" );
+ rtl::OUString aArgSoffice;
+ rtl::Bootstrap::get( rtl::OUString( "arg-soffice" ), aArgSoffice );
+ OString aInstall = OUStringToOString( aArgSoffice, RTL_TEXTENCODING_UTF8 );
+ fprintf( stderr, "liblibreoffice test: '%s'\n", aInstall.getStr() );
+ lo_initialize( aInstall.getStr() );
}
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list