diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2009-12-15 01:05:29 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2009-12-15 01:05:29 -0500 |
commit | 116eaaf3669b83901bc3edffa034366dc2ef64e0 (patch) | |
tree | 3d0732de27cb6d466fa0c80e89898946b7bb4742 | |
parent | 725007b7e9e3079e74e31de61f1ecf5804573781 (diff) |
Managed to automatically run the test program & bootstrap to soffice.bin process.
-rw-r--r-- | Makefile.in | 24 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | inc/global.hxx | 7 | ||||
-rwxr-xr-x | run-test.sh.in | 6 | ||||
-rw-r--r-- | source/global.cxx | 39 | ||||
-rw-r--r-- | source/main.cxx | 24 |
6 files changed, 99 insertions, 9 deletions
diff --git a/Makefile.in b/Makefile.in index c57c30b..80039b9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -4,9 +4,14 @@ BINDIR=@BINDIR@ SRCDIR=@ROOTDIR@/source INCDIR=@ROOTDIR@/inc OBJDIR=@OBJDIR@ +UREDIR=@OOO_INSTALL_PATH@/ure -LDFLAGS= -lsal -lcppuhelpergcc3 -lcppu -L@OOO_INSTALL_PATH@/program -CXXCPP=-I@UNOHEADER_PATH@ -I$(INCDIR) +LDFLAGS= \ + -luno_sal -luno_cppuhelpergcc3 -luno_cppu -luno_salhelpergcc3 \ + -L@OOO_INSTALL_PATH@/program \ + -L@SOLVER_PATH@/lib + +CXXCPP=-I@UNOHEADER_PATH@ -I@SOLVER_PATH@/inc -I$(INCDIR) CXX_DEFINES= \ -DUNX -DGCC -DLINUX -DCPPU_ENV=gcc3 -DHAVE_GCC_VISIBILITY_FEATURE @@ -16,18 +21,25 @@ CXXFLAGS= \ $(CXXCPP) OBJFILES= \ - $(OBJDIR)/main.o + $(OBJDIR)/global.o \ + $(OBJDIR)/main.o \ -all: pre $(EXEC) +all: $(EXEC) pre: mkdir $(OBJDIR) 2>/dev/null || /bin/true -$(EXEC): $(OBJFILES) - $(CXX) -o $@ $(OBJFILES) -lc +$(EXEC): pre $(OBJFILES) + $(CXX) -o $@ $(OBJFILES) -lc $(LDFLAGS) $(OBJDIR)/main.o: $(SRCDIR)/main.cxx $(CXX) -o $@ $(CXXFLAGS) -c $< +$(OBJDIR)/global.o: $(SRCDIR)/global.cxx + $(CXX) -o $@ $(CXXFLAGS) -c $< + +run: $(EXEC) + bash @ROOTDIR@/run-test.sh + clean: rm -rf $(OBJDIR) $(EXEC) diff --git a/configure.ac b/configure.ac index fa7450d..70a94b4 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ AC_CHECK_HEADER(boost/shared_ptr.hpp, [], [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], []) AC_LANG_RESTORE -ROOTDIR=. +ROOTDIR=`pwd` AC_SUBST(ROOTDIR) OBJDIR=$ROOTDIR/obj @@ -38,12 +38,16 @@ AC_SUBST(OOO_INSTALL_PATH) SOLVER_PATH=$OOO_INSTALL_PATH/solver UNOHEADER_PATH=$SOLVER_PATH/inc/offuh BINDIR=$SOLVER_PATH/bin -AC_SUBST(OOO_SOLVER_PATH) +AC_SUBST(SOLVER_PATH) AC_SUBST(UNOHEADER_PATH) AC_SUBST(BINDIR) +AC_CHECK_FILE($SOLVER_PATH/inc/cppuhelper/bootstrap.hxx, [], + [AC_MSG_ERROR($SOLVER_PATH/inc/cppuhelper/bootstrap.hxx not found.)], []) + RUNTIME_LIB_PATH=$OOO_INSTALL_PATH/program AC_SUBST(RUNTIME_LIB_PATH) AC_OUTPUT(Makefile) +AC_OUTPUT(run-test.sh) diff --git a/inc/global.hxx b/inc/global.hxx index 84648ea..cd421d3 100644 --- a/inc/global.hxx +++ b/inc/global.hxx @@ -2,6 +2,13 @@ #ifndef __GLOBAL_HXX__ #define __GLOBAL_HXX__ +#include <com/sun/star/frame/XDesktop.hpp> +namespace test { + +::com::sun::star::uno::Reference< ::com::sun::star::frame::XDesktop > + bootstrap(); + +} #endif diff --git a/run-test.sh.in b/run-test.sh.in new file mode 100755 index 0000000..b88f0f7 --- /dev/null +++ b/run-test.sh.in @@ -0,0 +1,6 @@ +#!/bin/bash + +export LD_LIBRARY_PATH=@OOO_INSTALL_PATH@/program:@OOO_INSTALL_PATH@/ure/lib +cd @OOO_INSTALL_PATH@/ure/lib +@ROOTDIR@/test + diff --git a/source/global.cxx b/source/global.cxx new file mode 100644 index 0000000..d1d0847 --- /dev/null +++ b/source/global.cxx @@ -0,0 +1,39 @@ + +#include "global.hxx" +#include "cppuhelper/bootstrap.hxx" +#include "rtl/ustring.hxx" +#include "rtl/textenc.h" + +#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> + +#include <cstring> + +using ::com::sun::star::frame::XDesktop; +using ::com::sun::star::sheet::XSpreadsheetDocument; +using ::com::sun::star::uno::XComponentContext; +using ::com::sun::star::lang::XMultiComponentFactory;; +using ::com::sun::star::uno::UNO_QUERY_THROW; +using ::com::sun::star::uno::Reference; +using ::rtl::OUString; + +namespace test { + +OUString ascii(const sal_Char* str) +{ + return ::rtl::OUString::intern(str, ::std::strlen(str), RTL_TEXTENCODING_ASCII_US); +} + +Reference<XDesktop> bootstrap() +{ + Reference<XSpreadsheetDocument> xSpDoc; + Reference<XComponentContext> xCC = ::cppu::bootstrap(); + Reference<XMultiComponentFactory> xFactory = xCC->getServiceManager(); + + Reference<XDesktop> xDesktop(xFactory->createInstanceWithContext( + ascii("com.sun.star.frame.Desktop"), xCC), UNO_QUERY_THROW); + + return xDesktop; +} + +} diff --git a/source/main.cxx b/source/main.cxx index fd03ad8..2130bb5 100644 --- a/source/main.cxx +++ b/source/main.cxx @@ -1,6 +1,28 @@ #include "global.hxx" +#include <iostream> + +//Reference<XSpreadsheetDocument> loadComponent(const Reference<XDesktop>& xDesktop, const char* docPath) +//{ +// Reference<XSpreadsheetDocument> xSpDoc; +// Reference<frame::XComponentLoader> xLoader(xDesktop, UNO_QUERY_THROW); +// Sequence< beans::PropertyValue > args; +// Reference< XComponent > xComponent = xLoader->loadComponentFromURL( +// ascii(docPath), ascii("_default"), 0, args); +// +// if ( !xComponent.is() ) +// { +// printf("component failed to load\n"); +// return xSpDoc; +// } +// +// xSpDoc.set(xComponent, UNO_QUERY_THROW); +// return xSpDoc; +//} + +using namespace std; int main() { - + cout << "test program begins" << endl; + ::test::bootstrap(); } |