diff options
author | sb <sb@openoffice.org> | 2010-05-14 09:46:21 +0200 |
---|---|---|
committer | sb <sb@openoffice.org> | 2010-05-14 09:46:21 +0200 |
commit | 29f3a9517e34743077e1bb8001232d113903a21e (patch) | |
tree | a91d73ef71792640f759cf5b2d2f9be8f568e3bb /test/source | |
parent | a8f7bf3eee546b0ef2c32121ee5256133b8c902b (diff) |
sb120: #i111558# allow override of tested soffice process
Diffstat (limited to 'test/source')
-rw-r--r-- | test/source/cpp/officeconnection.cxx | 114 | ||||
-rw-r--r-- | test/source/java/OfficeConnection.java | 54 |
2 files changed, 97 insertions, 71 deletions
diff --git a/test/source/cpp/officeconnection.cxx b/test/source/cpp/officeconnection.cxx index 0365484ea9c8..ccfd2cd0a069 100644 --- a/test/source/cpp/officeconnection.cxx +++ b/test/source/cpp/officeconnection.cxx @@ -54,57 +54,69 @@ OfficeConnection::OfficeConnection(): process_(0) {} OfficeConnection::~OfficeConnection() {} void OfficeConnection::setUp() { - oslProcessInfo info; - info.Size = sizeof info; - CPPUNIT_ASSERT_EQUAL( - osl_Process_E_None, - osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info)); - rtl::OUString desc( - rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) + - rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident)) + - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";urp"))); - rtl::OUString noquickArg( - RTL_CONSTASCII_USTRINGPARAM("-quickstart=no")); - rtl::OUString nofirstArg( - RTL_CONSTASCII_USTRINGPARAM("-nofirststartwizard")); - rtl::OUString norestoreArg(RTL_CONSTASCII_USTRINGPARAM("-norestore")); - rtl::OUString acceptArg( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-accept=")) + desc); - rtl::OUString argUser; + rtl::OUString desc; + rtl::OUString argSoffice; CPPUNIT_ASSERT( getArgument( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), &argUser)); - rtl::OUString userArg( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-env:UserInstallation=")) + - toAbsoluteFileUrl(argUser)); - rtl::OUString jreArg( - RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_JREHOME=true")); - rtl::OUString classpathArg( - RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_CLASSPATH=true")); - rtl_uString * args[] = { - noquickArg.pData, nofirstArg.pData, norestoreArg.pData, acceptArg.pData, - userArg.pData, jreArg.pData, classpathArg.pData }; - rtl_uString ** envs = 0; - rtl::OUString argEnv; - if (getArgument(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("env")), &argEnv)) - { - envs = &argEnv.pData; + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("soffice")), + &argSoffice)); + if (argSoffice.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("path:"))) { + oslProcessInfo info; + info.Size = sizeof info; + CPPUNIT_ASSERT_EQUAL( + osl_Process_E_None, + osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info)); + desc = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) + + rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident)); + rtl::OUString noquickArg( + RTL_CONSTASCII_USTRINGPARAM("-quickstart=no")); + rtl::OUString nofirstArg( + RTL_CONSTASCII_USTRINGPARAM("-nofirststartwizard")); + rtl::OUString norestoreArg(RTL_CONSTASCII_USTRINGPARAM("-norestore")); + rtl::OUString acceptArg( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-accept=")) + desc + + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";urp"))); + rtl::OUString argUser; + CPPUNIT_ASSERT( + getArgument( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), &argUser)); + rtl::OUString userArg( + rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("-env:UserInstallation=")) + + toAbsoluteFileUrl(argUser)); + rtl::OUString jreArg( + RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_JREHOME=true")); + rtl::OUString classpathArg( + RTL_CONSTASCII_USTRINGPARAM( + "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true")); + rtl_uString * args[] = { + noquickArg.pData, nofirstArg.pData, norestoreArg.pData, + acceptArg.pData, userArg.pData, jreArg.pData, classpathArg.pData }; + rtl_uString ** envs = 0; + rtl::OUString argEnv; + if (getArgument( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("env")), &argEnv)) + { + envs = &argEnv.pData; + } + CPPUNIT_ASSERT_EQUAL( + osl_Process_E_None, + osl_executeProcess( + toAbsoluteFileUrl( + argSoffice.copy(RTL_CONSTASCII_LENGTH("path:"))).pData, + args, sizeof args / sizeof args[0], 0, 0, 0, envs, + envs == 0 ? 0 : 1, &process_)); + } else if (argSoffice.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("connect:"))) { + desc = argSoffice.copy(RTL_CONSTASCII_LENGTH("connect:")); + } else { + CPPUNIT_FAIL( + "\"soffice\" argument starts with neither \"path:\" nor" + " \"connect:\""); } - rtl::OUString argPath; - CPPUNIT_ASSERT( - getArgument( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("path")), &argPath)); - CPPUNIT_ASSERT_EQUAL( - osl_Process_E_None, - osl_executeProcess( - toAbsoluteFileUrl(argPath).pData, args, - sizeof args / sizeof args[0], 0, 0, 0, envs, envs == 0 ? 0 : 1, - &process_)); css::uno::Reference< css::bridge::XUnoUrlResolver > resolver( css::bridge::UnoUrlResolver::create( cppu::defaultBootstrap_InitialComponentContext())); - for (int i = 0;; ++i) { + for (;;) { try { factory_ = css::uno::Reference< css::lang::XMultiServiceFactory >( @@ -113,14 +125,16 @@ void OfficeConnection::setUp() { desc + rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - ";StarOffice.ServiceManager"))), + ";urp;StarOffice.ServiceManager"))), css::uno::UNO_QUERY_THROW); break; } catch (css::connection::NoConnectException &) {} - TimeValue delay = { 1, 0 }; // 1 sec - CPPUNIT_ASSERT_EQUAL( - osl_Process_E_TimedOut, - osl_joinProcessWithTimeout(process_, &delay)); + if (process_ != 0) { + TimeValue delay = { 1, 0 }; // 1 sec + CPPUNIT_ASSERT_EQUAL( + osl_Process_E_TimedOut, + osl_joinProcessWithTimeout(process_, &delay)); + } } } diff --git a/test/source/java/OfficeConnection.java b/test/source/java/OfficeConnection.java index 55cf54320a2d..6887c3bfa3cd 100644 --- a/test/source/java/OfficeConnection.java +++ b/test/source/java/OfficeConnection.java @@ -49,28 +49,38 @@ public final class OfficeConnection { /** Start up an OOo instance. */ public void setUp() throws Exception { - description = "pipe,name=oootest" + UUID.randomUUID(); - ProcessBuilder pb = new ProcessBuilder( - getArgument("path"), "-quickstart=no", "-nofirststartwizard", - "-norestore", "-accept=" + description + ";urp", - "-env:UserInstallation=" + getArgument("user"), - "-env:UNO_JAVA_JFW_ENV_JREHOME=true", - "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true"); - String envArg = getArgument("env"); - if (envArg != null) { - Map<String, String> env = pb.environment(); - int i = envArg.indexOf("="); - if (i == -1) { - env.remove(envArg); - } else { - env.put(envArg.substring(0, i), envArg.substring(i + 1)); + String sofficeArg = getArgument("soffice"); + if (sofficeArg.startsWith("path:")) { + description = "pipe,name=oootest" + UUID.randomUUID(); + ProcessBuilder pb = new ProcessBuilder( + sofficeArg.substring("path:".length()), "-quickstart=no", + "-nofirststartwizard", "-norestore", + "-accept=" + description + ";urp", + "-env:UserInstallation=" + getArgument("user"), + "-env:UNO_JAVA_JFW_ENV_JREHOME=true", + "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true"); + String envArg = getArgument("env"); + if (envArg != null) { + Map<String, String> env = pb.environment(); + int i = envArg.indexOf("="); + if (i == -1) { + env.remove(envArg); + } else { + env.put(envArg.substring(0, i), envArg.substring(i + 1)); + } } + process = pb.start(); + outForward = new Forward(process.getInputStream(), System.out); + outForward.start(); + errForward = new Forward(process.getErrorStream(), System.err); + errForward.start(); + } else if (sofficeArg.startsWith("connect:")) { + description = sofficeArg.substring("connect:".length()); + } else { + fail( + "\"soffice\" argument \"" + sofficeArg + + " starts with neither \"path:\" nor \"connect:\""); } - process = pb.start(); - outForward = new Forward(process.getInputStream(), System.out); - outForward.start(); - errForward = new Forward(process.getErrorStream(), System.err); - errForward.start(); XUnoUrlResolver resolver = UnoUrlResolver.create( Bootstrap.createInitialComponentContext(null)); for (;;) { @@ -82,7 +92,9 @@ public final class OfficeConnection { ";urp;StarOffice.ServiceManager")); break; } catch (NoConnectException e) {} - assertNull(waitForProcess(process, 1000)); // 1 sec + if (process != null) { + assertNull(waitForProcess(process, 1000)); // 1 sec + } } } |