summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2009-12-15 01:05:29 -0500
committerKohei Yoshida <kyoshida@novell.com>2009-12-15 01:05:29 -0500
commit116eaaf3669b83901bc3edffa034366dc2ef64e0 (patch)
tree3d0732de27cb6d466fa0c80e89898946b7bb4742
parent725007b7e9e3079e74e31de61f1ecf5804573781 (diff)
Managed to automatically run the test program & bootstrap to soffice.bin process.
-rw-r--r--Makefile.in24
-rw-r--r--configure.ac8
-rw-r--r--inc/global.hxx7
-rwxr-xr-xrun-test.sh.in6
-rw-r--r--source/global.cxx39
-rw-r--r--source/main.cxx24
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();
}