diff options
Diffstat (limited to 'cppu/test/purpenvhelper')
-rw-r--r-- | cppu/test/purpenvhelper/TestEnv.cxx | 132 | ||||
-rw-r--r-- | cppu/test/purpenvhelper/TestEnv.def | 8 | ||||
-rw-r--r-- | cppu/test/purpenvhelper/makefile.mk | 58 | ||||
-rwxr-xr-x | cppu/test/purpenvhelper/purpenvhelper.test.pl | 71 |
4 files changed, 269 insertions, 0 deletions
diff --git a/cppu/test/purpenvhelper/TestEnv.cxx b/cppu/test/purpenvhelper/TestEnv.cxx new file mode 100644 index 000000000000..f398683c5386 --- /dev/null +++ b/cppu/test/purpenvhelper/TestEnv.cxx @@ -0,0 +1,132 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: TestEnv.cxx,v $ + * $Revision: 1.4 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_cppu.hxx" + + +#include "cppu/EnvDcp.hxx" + +#include "cppu/helper/purpenv/Environment.hxx" +#include "cppu/helper/purpenv/Mapping.hxx" + + + +#define LOG_LIFECYCLE_TestEnv +#ifdef LOG_LIFECYCLE_TestEnv +# include <iostream> +# define LOG_LIFECYCLE_TestEnv_emit(x) x + +#else +# define LOG_LIFECYCLE_TestEnv_emit(x) + +#endif + + +class SAL_DLLPRIVATE TestEnv : public cppu::Enterable +{ + int m_inCount; + + virtual ~TestEnv(void); + +public: + explicit TestEnv(void); + +protected: + virtual void v_enter(void); + virtual void v_leave(void); + + virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam); + virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam); + + virtual int v_isValid (rtl::OUString * pReason); +}; + +TestEnv::TestEnv(void) + : m_inCount(0) +{ + LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this)); +} + +TestEnv::~TestEnv(void) +{ + LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this)); +} + + +void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam) +{ + ++ m_inCount; + pCallee(pParam); + -- m_inCount; +} + +void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam) +{ + -- m_inCount; + pCallee(pParam); + ++ m_inCount; +} + +void TestEnv::v_enter(void) +{ + ++ m_inCount; +} + +void TestEnv::v_leave(void) +{ + -- m_inCount; +} + +int TestEnv::v_isValid(rtl::OUString * pReason) +{ + int result = m_inCount & 1; + + if (result) + *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OK")); + + else + *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not entered/invoked")); + + return result; +} + +extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C() +{ + cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv()); +} + +extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping, + uno_Environment * pFrom, + uno_Environment * pTo ) +{ + cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo); +} + diff --git a/cppu/test/purpenvhelper/TestEnv.def b/cppu/test/purpenvhelper/TestEnv.def new file mode 100644 index 000000000000..1444d92c13fa --- /dev/null +++ b/cppu/test/purpenvhelper/TestEnv.def @@ -0,0 +1,8 @@ +HEAPSIZE 0 +EXPORTS + uno_initEnvironment + uno_ext_getMapping + + + + diff --git a/cppu/test/purpenvhelper/makefile.mk b/cppu/test/purpenvhelper/makefile.mk new file mode 100644 index 000000000000..5c6258979adc --- /dev/null +++ b/cppu/test/purpenvhelper/makefile.mk @@ -0,0 +1,58 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.4 $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ := ..$/.. +PRJNAME := cppu +TARGET := purpenvhelper.test.pl + + +ENABLE_EXCEPTIONS := TRUE +NO_BSYMBOLIC := TRUE +USE_DEFFILE := TRUE + + +.INCLUDE : settings.mk +.INCLUDE : ../../source/helper/purpenv/export.mk + + +SHL1TARGET := TestEnv_uno_uno +SHL1IMPLIB := i$(SHL1TARGET) +SHL1OBJS := $(SLO)$/TestEnv.obj +SHL1STDLIBS := $(purpenv_helper_LIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) +SHL1DEF := TestEnv.def + + +.INCLUDE : target.mk + +ALLTAR: $(BIN)$/$(TARGET) + +$(BIN)$/$(TARGET): purpenvhelper.test.pl + @+$(COPY) $^ $@ diff --git a/cppu/test/purpenvhelper/purpenvhelper.test.pl b/cppu/test/purpenvhelper/purpenvhelper.test.pl new file mode 100755 index 000000000000..1cd2d78375a9 --- /dev/null +++ b/cppu/test/purpenvhelper/purpenvhelper.test.pl @@ -0,0 +1,71 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; + +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: purpenvhelper.test.pl,v $ +# +# $Revision: 1.3 $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +my $rc = 0; +my $comment = ""; + + +@tests=( + "env.tester.bin uno:TestEnv" +); + +foreach $test (@tests) { + $output = ""; + + $cmd = $test; + open TESTER, $cmd . "|"; + while (<TESTER>) { + chomp; + + $output = $output . "\t" . $_ . "\n"; + } + close TESTER ; + + if ($? != 0) { + $comment = $comment . "TEST FAILED: " . $cmd . "\n"; + $comment = $comment . $output; + } + $rc = $rc + $?; +} + + +print $comment; + +if ($rc == 0) { + print "*********** SUCCESS\n"; +} +else { + print "*********** FAILURE\n"; +} |