summaryrefslogtreecommitdiff
path: root/bridges/test/testcomp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/test/testcomp.cxx')
-rw-r--r--bridges/test/testcomp.cxx738
1 files changed, 0 insertions, 738 deletions
diff --git a/bridges/test/testcomp.cxx b/bridges/test/testcomp.cxx
deleted file mode 100644
index fb33907b7614..000000000000
--- a/bridges/test/testcomp.cxx
+++ /dev/null
@@ -1,738 +0,0 @@
-/* -*- 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/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <osl/time.h>
-#include <uno/threadpool.h>
-#include <osl/mutex.hxx>
-#include <osl/diagnose.h>
-#include <test/XTestFactory.hpp>
-#include <cppuhelper/servicefactory.hxx>
-#include <com/sun/star/bridge/XInstanceProvider.hpp>
-#include <com/sun/star/registry/XImplementationRegistration.hpp>
-#include <com/sun/star/test/performance/XPerformanceTest.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/supportsservice.hxx>
-
-using namespace ::test;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::bridge;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::test::performance;
-
-#include "testcomp.h"
-
-
-void parseCommandLine( char *argv[] ,
- OUString *pConnection , OUString *pProtocol ,
- sal_Bool *pbLatency , sal_Bool *pbReverse)
-{
- sal_Int32 nArgIndex = 1;
- if( ! strcmp( argv[1] , "-r" ) )
- {
- nArgIndex = 2;
- *pbReverse = sal_True;
- }
- else if( ! strcmp( argv[1] , "-latency" ) )
- {
- *pbLatency = sal_True;
- nArgIndex = 2;
- }
-
- OUString sTemp = OUString::createFromAscii( argv[nArgIndex] );
- sal_Int32 nIndex = sTemp.indexOf( ';' );
- if( -1 == nIndex )
- {
- *pConnection = sTemp;
- *pProtocol = "iiop";
- }
- else
- {
- *pConnection = sTemp.copy( 0 , nIndex );
- *pProtocol = sTemp.copy( nIndex+1, sTemp.getLength() - (nIndex+1) );
- }
-}
-
-Any OInstanceProvider::queryInterface( const Type & aType ) throw ( RuntimeException )
-{
- Any a = ::cppu::queryInterface( aType ,
- (static_cast< XInstanceProvider * >(this)) );
- if( a.hasValue() )
- {
- return a;
- }
- return OWeakObject::queryInterface( aType );
-}
-
-::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
- OInstanceProvider::getInstance( const OUString& sObjectName )
- throw(::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::uno::RuntimeException)
-{
- // Tries to get the PerformanceTestObject
- if( sObjectName == "TestRemoteObject" )
- {
- return m_rSMgr->createInstance("com.sun.star.test.performance.PerformanceTestObject");
- }
- return Reference < XInterface > ( (::cppu::OWeakObject * ) new OTestFactory() );
-}
-
-class ServiceImpl
- : public XServiceInfo
- , public XPerformanceTest
-{
- OUString _aDummyString;
- Any _aDummyAny;
- Sequence< Reference< XInterface > > _aDummySequence;
- ComplexTypes _aDummyStruct;
- RuntimeException _aDummyRE;
-
- sal_Int32 _nRef;
-
-public:
- ServiceImpl()
- : _nRef( 0 )
- {}
- explicit ServiceImpl( const Reference< XMultiServiceFactory > & /* xMgr */)
- : _nRef( 0 )
- {}
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException)
- {
- // execution time remains appr. constant any time
- Any aRet;
- if (aType == cppu::UnoType<XInterface>::get())
- {
- void * p = (XInterface *)(XPerformanceTest *)this;
- aRet.setValue( &p, cppu::UnoType<XInterface>::get() );
- }
- if (aType == cppu::UnoType<XPerformanceTest>::get())
- {
- void * p = (XPerformanceTest *)this;
- aRet.setValue( &p, cppu::UnoType<XPerformanceTest>::get() );
- }
- if (! aRet.hasValue())
- {
- void * p = (XPerformanceTest *)this;
- Any aDummy( &p, cppu::UnoType<XPerformanceTest>::get() );
- }
- return aRet;
- }
- virtual void SAL_CALL acquire() throw()
- { osl_atomic_increment( &_nRef ); }
- virtual void SAL_CALL release() throw()
- { if (! osl_atomic_decrement( &_nRef )) delete this; }
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw (RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString & rServiceName ) throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException);
-
- // Attributes
- virtual sal_Int32 SAL_CALL getLong_attr() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setLong_attr( sal_Int32 /* _attributelong */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual sal_Int64 SAL_CALL getHyper_attr() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setHyper_attr( sal_Int64 /* _attributehyper */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual float SAL_CALL getFloat_attr() throw(::com::sun::star::uno::RuntimeException)
- { return 0.0; }
- virtual void SAL_CALL setFloat_attr( float /* _attributefloat */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual double SAL_CALL getDouble_attr() throw(::com::sun::star::uno::RuntimeException)
- { return 0.0; }
- virtual void SAL_CALL setDouble_attr( double /* _attributedouble */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual OUString SAL_CALL getString_attr() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyString; }
- virtual void SAL_CALL setString_attr( const OUString& /* _attributestring */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Reference< XInterface > SAL_CALL getInterface_attr() throw(::com::sun::star::uno::RuntimeException)
- { return Reference< XInterface >(); }
- virtual void SAL_CALL setInterface_attr( const Reference< XInterface >& /* _attributeinterface */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Any SAL_CALL getAny_attr() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyAny; }
- virtual void SAL_CALL setAny_attr( const Any& /* _attributeany */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Sequence< Reference< XInterface > > SAL_CALL getSequence_attr() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummySequence; }
- virtual void SAL_CALL setSequence_attr( const Sequence< Reference< XInterface > >& /* _attributesequence */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual ComplexTypes SAL_CALL getStruct_attr() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyStruct; }
- virtual void SAL_CALL setStruct_attr( const ::com::sun::star::test::performance::ComplexTypes& /* _attributestruct */) throw(::com::sun::star::uno::RuntimeException)
- {}
-
- // Methods
- virtual sal_Int32 SAL_CALL getLong() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setLong( sal_Int32 /* _long */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual sal_Int64 SAL_CALL getHyper() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setHyper( sal_Int64 /* _hyper */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual float SAL_CALL getFloat() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setFloat( float /* _float */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual double SAL_CALL getDouble() throw(::com::sun::star::uno::RuntimeException)
- { return 0; }
- virtual void SAL_CALL setDouble( double /* _double */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyString; }
- virtual void SAL_CALL setString( const OUString& /* _string */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Reference< XInterface > SAL_CALL getInterface() throw(::com::sun::star::uno::RuntimeException)
- { return Reference< XInterface >(); }
- virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& /* _interface */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Any SAL_CALL getAny() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyAny; }
- virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& /* _any */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Sequence< Reference< XInterface > > SAL_CALL getSequence() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummySequence; }
- virtual void SAL_CALL setSequence( const Sequence< Reference< XInterface > >& /*_sequence */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual ComplexTypes SAL_CALL getStruct() throw(::com::sun::star::uno::RuntimeException)
- { return _aDummyStruct; }
- virtual void SAL_CALL setStruct( const ::com::sun::star::test::performance::ComplexTypes& /* c */) throw(::com::sun::star::uno::RuntimeException)
- {}
-
- virtual void SAL_CALL async() throw(::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL sync() throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual ComplexTypes SAL_CALL complex_in( const ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
- { return aVal; }
- virtual ComplexTypes SAL_CALL complex_inout( ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
- { return aVal; }
- virtual void SAL_CALL complex_oneway( const ::com::sun::star::test::performance::ComplexTypes& /* aVal */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual void SAL_CALL complex_noreturn( const ::com::sun::star::test::performance::ComplexTypes& /* aVal */) throw(::com::sun::star::uno::RuntimeException)
- {}
- virtual Reference< XPerformanceTest > SAL_CALL createObject() throw(::com::sun::star::uno::RuntimeException)
- { return new ServiceImpl(); }
- virtual void SAL_CALL raiseRuntimeException( ) throw(::com::sun::star::uno::RuntimeException)
- { throw _aDummyRE; }
-};
-
-void ServiceImpl::async() throw(::com::sun::star::uno::RuntimeException)
-{}
-
-// XServiceInfo
-OUString ServiceImpl::getImplementationName()
- throw (RuntimeException)
-{
- return OUString( );
-}
-
-sal_Bool ServiceImpl::supportsService( const OUString & rServiceName )
- throw (RuntimeException)
-{
- return cppu::supportsService(this, rServiceName);
-}
-
-Sequence< OUString > ServiceImpl::getSupportedServiceNames()
- throw (RuntimeException)
-{
- return Sequence< OUString > ();
-}
-
-Any OCallMe::queryInterface( const Type & aType ) throw ( RuntimeException )
-{
- Any a = ::cppu::queryInterface( aType,
- (static_cast< XCallMe * >(this)) );
-
- if( a.hasValue() )
- {
- return a;
- }
-
- return OWeakObject::queryInterface( aType );
-}
-
-void OCallMe::call( const OUString& s, sal_Int32 nToDo )
- throw( RuntimeException, ::test::TestBridgeException)
-{
- if( nToDo < 0 )
- {
- throw TestBridgeException();
- }
-
- OUString sDummy;
- if( ! nToDo ) {
- OString o = OUStringToOString( s,RTL_TEXTENCODING_ASCII_US);
- printf( "%s\n" , o.pData->buffer );
- }
- for( sal_Int32 i = 0 ; i < nToDo ; i ++ )
- {
- sDummy += s;
- }
-}
-
-void SAL_CALL OCallMe::drawLine( sal_Int32 /* x1 */, sal_Int32 /* y1 */, sal_Int32 /* x2 */, sal_Int32 /* y2 */)
- throw(::com::sun::star::uno::RuntimeException)
-{
- // do nothings
-}
-
-void OCallMe::callOneway( const OUString& /* s */, sal_Int32 nToDo )
- throw(RuntimeException)
-{
- OUString sDummy;
- m_nLastToDos = nToDo;
-
-
- if( nToDo )
- {
- printf( "+" );
- fflush( stdout );
-
- TimeValue val = { nToDo , 0 };
- osl_waitThread( &val );
- printf( "-\n" );
- }
-
-}
-
-::test::TestTypes SAL_CALL OCallMe::transport( const ::test::TestTypes& types )
- throw(::com::sun::star::uno::RuntimeException)
-{
- return types;
-}
-
-OUString OCallMe::getsAttribute() throw(RuntimeException)
-{
- return m_sAttribute;
-}
-void OCallMe::setsAttribute( const OUString& _sattribute )
- throw(RuntimeException)
-{
- m_sAttribute = _sattribute;
-}
-void OCallMe::callAgain( const Reference< ::test::XCallMe >& callAgainArg,
- sal_Int32 nToCall ) throw(RuntimeException)
-{
- ::osl::MutexGuard guard( m_mutex );
- if( nToCall %2 )
- {
- printf( "Deadlocktest pong %" SAL_PRIdINT32 "\n", nToCall );
- }
- else
- {
- printf( "Deadlocktest ping %" SAL_PRIdINT32 "\n", nToCall );
- }
- if( nToCall )
- {
- callAgainArg->callAgain( Reference< XCallMe > ( (XCallMe *) this ) , nToCall -1 );
- }
-}
-
-Any OInterfaceTest::queryInterface( const Type & aType ) throw ( RuntimeException )
-{
- Any a = ::cppu::queryInterface( aType,
- (static_cast< XInterfaceTest * >(this)) );
- if( a.hasValue() )
- {
- return a;
- }
- return OWeakObject::queryInterface( aType );
-}
-
-void OInterfaceTest::setIn(
- const Reference< ::test::XCallMe >& callback )
- throw(RuntimeException)
-{
- m_rCallMe = callback;
- call();
-}
-
-void OInterfaceTest::setInOut( Reference< ::test::XCallMe >& callback )
- throw(RuntimeException)
-{
- Reference< XCallMe > r = m_rCallMe;
- m_rCallMe = callback;
- callback = r;
- call();
-}
-
-void OInterfaceTest::getOut( Reference< ::test::XCallMe >& callback )
- throw(RuntimeException)
-{
- callback = m_rCallMe;
-}
-
-Reference< ::test::XCallMe > OInterfaceTest::get( )
- throw(RuntimeException)
-{
- call();
- return m_rCallMe;
-}
-
-void OInterfaceTest::call()
-{
- if( m_rCallMe.is() )
- {
- m_rCallMe->call( OUString("This is my String during a callback!") , 5);
- }
-}
-
-Any OTestFactory::queryInterface( const Type & aType ) throw ( RuntimeException )
-{
- Any a = ::cppu::queryInterface( aType,
- (static_cast< XTestFactory * >(this)) );
-
- if( a.hasValue() )
- {
- return a;
- }
-
- return OWeakObject::queryInterface( aType );
-}
-
-Reference< ::test::XCallMe > OTestFactory::createCallMe( )
- throw(RuntimeException)
-{
- return Reference< XCallMe > ( (XCallMe * ) new OCallMe() );
-}
-
-Reference< ::test::XInterfaceTest > SAL_CALL OTestFactory::createInterfaceTest( )
- throw(RuntimeException)
-{
- return Reference < XInterfaceTest > ( (XInterfaceTest * ) new OInterfaceTest() );
-}
-
-// class OInstanceProvider :
-// public ::cppu::OWeakObject,
-// public XInstanceProvider
-// {
-// public:
-// OInstanceProvider( ){}
-// ~OInstanceProvider(){ printf( "instance provider dies\n" );}
-// public:
-// // XInterface
-// Any SAL_CALL queryInterface( const Type & aType);
-// void SAL_CALL acquire() { OWeakObject::acquire(); }
-// void SAL_CALL release() { OWeakObject::release(); }
-
-// public:
-// virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
-// getInstance( const OUString& sObjectName )
-// throw( ::com::sun::star::container::NoSuchElementException,
-// ::com::sun::star::uno::RuntimeException);
-// };
-
-double getCallsPerSec( const Reference < XCallMe > &rCall , int nLoops, int nToDo )
-{
- TimeValue aStartTime, aEndTime;
- osl_getSystemTime( &aStartTime );
- for( sal_Int32 i = 0; i < nLoops; i ++ )
- {
- rCall->call( OUString("Performance test string") , nToDo );
- }
- osl_getSystemTime( &aEndTime );
-
- double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0);
- double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0);
- return fEnd-fStart;
-}
-
-double getCallsPerSecOneway( const Reference < XCallMe > &rCall ,
- int nLoops,
- int nToDo,
- double *pdAfterExecution
- )
-{
- TimeValue aStartTime, aEndTime, aAfterExecution;
- osl_getSystemTime( &aStartTime );
- for( sal_Int32 i = 0; i < nLoops; i ++ )
- {
-// rCall->callOneway( OUString("Performance test string" ), 0 );
- rCall->drawLine( 0 , 0 , 500 , 123 );
- }
- osl_getSystemTime( &aEndTime );
-
- rCall->call( OUString("Performance test string") , nToDo );
- osl_getSystemTime( &aAfterExecution );
-
- double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0);
- double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0);
- *pdAfterExecution = (double)aAfterExecution.Seconds +
- ((double)aAfterExecution.Nanosec / 1000000000.0) - fStart;
- return fEnd-fStart;
-}
-
-void testOnewayPerformanceOnTwoInterfaces(
- const Reference < XCallMe > &rRemote1, const Reference < XCallMe > &rRemote2 )
-{
- printf( "Doing oneway performance test on two interfaces ...\n" );
- const sal_Int32 nLoops = 10000;
- TimeValue aStartTime, aEndTime;
- osl_getSystemTime( &aStartTime );
- for( sal_Int32 i = 0; i < nLoops ; i ++ )
- {
- rRemote1->drawLine( 0 , 0 , 500 , 123 );
- rRemote2->drawLine( 0 , 0 , 500 , 123 );
- }
- osl_getSystemTime( &aEndTime );
- double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0);
- double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0);
-
- printf( "Overhead per Call [ms] %g\n" , ((fEnd-fStart)/((double)nLoops/1000 ))/2. );
-}
-
-void testPerformance( const Reference < XCallMe > &rRemote,
- const Reference < XCallMe > &rLocal )
-{
- sal_Int32 nDoSomething = 1;
- sal_Int32 nCalls = 80000;
- double dRemote, dLocal,dAfterExecution;
-
- printf( "performance test oneway...\n" );
- dLocal = getCallsPerSecOneway( rLocal , nCalls , nDoSomething , &dAfterExecution);
- dRemote = getCallsPerSecOneway( rRemote , nCalls , nDoSomething , &dAfterExecution);
- printf( "Local=%g s,"
- "Remote : %g s\n" , dLocal, dRemote );
- if( dLocal > 0. )
- {
- printf( "Remote/Local : %g\n", dRemote/dLocal );
- }
-
- printf( "Overhead per Call [ms] %g\n" , (dRemote - dLocal)/((double)nCalls/1000 ) );
- printf( "Overhead per Call after completion [ms] %g\n" , (dAfterExecution - dLocal)/((double)nCalls/1000 ) );
-
- nCalls = 2000;
-
- printf( "Doing performance test ...\n" );
- dRemote = getCallsPerSec( rRemote , nCalls , nDoSomething );
- dLocal = getCallsPerSec( rLocal , nCalls , nDoSomething );
- printf( "Local=%g s,\n"
- "Remote=%g s\n" , dLocal, dRemote );
- if( dLocal > 0. )
- {
- printf( "Remote/Local : %g\n", dRemote/dLocal );
- }
- printf( "Overhead per synchron Call [ms] %g\n" , ((dRemote - dLocal)/((double)nCalls/1000 )) );
-}
-
-void testException( const Reference < XCallMe > &r )
-{
- try {
- r->call( OUString("dummy") , -1 );
- OSL_ASSERT( ! "no exception flown !" );
- }
- catch( TestBridgeException & e )
- {
- // Exception flew successfully !
- }
- catch( Exception & e )
- {
- OSL_ASSERT( ! "only base class of exception could be catched!" );
- }
- catch(...)
- {
- OSL_ASSERT(! "wrong unknown exception !" );
- }
-}
-
-void testSequenceOfCalls( const Reference< XCallMe > & rRCallMe )
-{
- printf( "Testing sequence of calls\n" );
- for( sal_Int32 i = 0 ; i < 800 ; i ++ )
- {
- rRCallMe->callOneway( OUString("hifuj" ), 0 );
- }
-}
-
-void testAllTypes( const Reference < XCallMe > & rRCallMe )
-{
- printf( "Testing all types\n" );
-
- for( sal_Int32 i = 0; i < 32 ; i ++ )
- {
-
- TestTypes types;
- types.Bool = sal_True;
- types.Char = L'i';
- types.Byte = -12;
- types.Short = -32000;
- types.UShort = (sal_uInt16 ) (1 << i);
- types.Long = -123;
- types.ULong = 1 << i;
- types.Hyper = 50;
- types.UHyper = 1 << i*2;
- types.Float = (float)123.239;
- types.Double = 1279.12490012;
- types.String = OUString("abcdefghijklmnopqrstuvwxyz");
- types.Interface.set( rRCallMe , UNO_QUERY);
- types.Any <<= types.Double;
-
- TestTypes retTypes = rRCallMe->transport( types );
-
- OSL_ASSERT( ( types.Bool && retTypes.Bool ) || ( ! types.Bool && ! retTypes.Bool ) );
- OSL_ASSERT( types.Char == retTypes.Char );
- OSL_ASSERT( types.Byte == retTypes.Byte );
- OSL_ASSERT( types.Short == retTypes.Short );
- OSL_ASSERT( types.UShort == retTypes.UShort );
- OSL_ASSERT( types.Long == retTypes.Long );
- OSL_ASSERT( types.ULong == retTypes.ULong );
- OSL_ASSERT( types.Hyper == retTypes.Hyper );
- OSL_ASSERT( types.UHyper == retTypes.UHyper );
- OSL_ASSERT( types.Float == retTypes.Float );
- OSL_ASSERT( types.Double == retTypes.Double );
- OSL_ASSERT( types.String == retTypes.String );
- OSL_ASSERT( types.Interface == retTypes.Interface );
- OSL_ASSERT( types.Any == retTypes.Any );
- }
-}
-
-void testRemote( const Reference< XInterface > &rRemote )
-{
- cppu::UnoType<sal_Int8>::get();
-
- Reference< XTestFactory > rRFact( rRemote , UNO_QUERY );
- if( ! rRFact.is() )
- {
- printf( "remote object doesn't support XTestFactory\n" );
- return;
- }
- OSL_ASSERT( rRFact.is() );
- Reference< XCallMe > rLCallMe = (XCallMe * ) new OCallMe();
- Reference< XCallMe > rRCallMe = rRFact->createCallMe();
-
- testAllTypes( rLCallMe );
- testAllTypes( rRCallMe );
-
- printf( "Testing exception local ...\n" );
- testException( rLCallMe );
- printf( "Testing exception remote ...\n" );
- testException( rRCallMe );
-
- // Test attributes
- OUString ow( "dum didel dum dideldei" );
- rLCallMe->setsAttribute( ow );
- OSL_ASSERT( rLCallMe->getsAttribute() == ow );
-
- rRCallMe->setsAttribute( ow );
- OSL_ASSERT( rRCallMe->getsAttribute() == ow );
-
- // Performance test
- testPerformance( rRCallMe , rLCallMe );
- testOnewayPerformanceOnTwoInterfaces( rRFact->createCallMe(), rRCallMe );
-
- // Test sequence
- testSequenceOfCalls( rRCallMe );
-
-
- // test triple to check if transporting the same interface multiple
- // times causes any problems
- Reference< XInterfaceTest > rRTest = rRFact->createInterfaceTest();
- Reference< XInterfaceTest > rRTest2 = rRFact->createInterfaceTest();
- Reference< XInterfaceTest > rRTest3 = rRFact->createInterfaceTest();
-
- rRTest->setIn( rRCallMe );
- rRTest2->setIn( rRCallMe );
- rRTest3->setIn( rRCallMe );
-
- OSL_ASSERT( rRTest->get() == rRCallMe );
- OSL_ASSERT( rRTest2->get() == rRCallMe );
- OSL_ASSERT( rRTest3->get() == rRCallMe );
-
- rRTest->setIn( rLCallMe );
- rRTest2->setIn( rLCallMe );
- rRTest3->setIn( rLCallMe );
-
- {
- Reference< XCallMe > rLCallMe1 = (XCallMe * ) new OCallMe();
- Reference< XCallMe > rLCallMe2 = (XCallMe * ) new OCallMe();
- Reference< XCallMe > rLCallMe3 = (XCallMe * ) new OCallMe();
- rRTest->setIn( rLCallMe1 );
- rRTest2->setIn( rLCallMe2 );
- rRTest3->setIn( rLCallMe3 );
- OSL_ASSERT( rRTest->get() == rLCallMe1 );
- OSL_ASSERT( rRTest2->get() == rLCallMe2 );
- OSL_ASSERT( rRTest3->get() == rLCallMe3 );
-
- rRTest->setIn( rLCallMe );
- rRTest2->setIn( rLCallMe );
- rRTest3->setIn( rLCallMe );
-
- OSL_ASSERT( rRTest->get() == rLCallMe );
- OSL_ASSERT( rRTest2->get() == rLCallMe );
- OSL_ASSERT( rRTest3->get() == rLCallMe );
- }
-
- Reference < XCallMe > r = rRCallMe;
- rRTest->setInOut( r );
- OSL_ASSERT( r == rLCallMe );
- OSL_ASSERT( ! ( r == rRCallMe ) );
-
- // test empty references
- rRTest->setIn( Reference < XCallMe > () );
-
- // test thread deadlocking
- rLCallMe->callAgain( rRCallMe, 20 );
-
-}
-
-Reference <XInterface > createComponent( const OUString &sService ,
- const OUString &sDllName,
- const Reference < XMultiServiceFactory > &rSMgr )
-{
- Reference< XInterface > rInterface;
- rInterface = rSMgr->createInstance( sService );
-
- if( ! rInterface.is() )
- {
- // erst registrieren
- Reference < XImplementationRegistration > rReg (
- rSMgr->createInstance("com.sun.star.registry.ImplementationRegistration"),
- UNO_QUERY );
-
- OSL_ASSERT( rReg.is() );
- OUString aDllName = sDllName;
-
- try
- {
- rReg->registerImplementation(
- OUString( "com.sun.star.loader.SharedLibrary" ),
- aDllName,
- Reference< XSimpleRegistry > () );
- rInterface = rSMgr->createInstance( sService );
- }
- catch( Exception & )
- {
- printf( "couldn't register dll %s\n" ,
- OUStringToOString( aDllName, RTL_TEXTENCODING_ASCII_US ).getStr() );
- }
- }
- return rInterface;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */