diff options
author | Vladimir Glazunov <vg@openoffice.org> | 2010-05-27 14:07:06 +0200 |
---|---|---|
committer | Vladimir Glazunov <vg@openoffice.org> | 2010-05-27 14:07:06 +0200 |
commit | 94098547cb48684e2fddd4f13b617fb57ef52683 (patch) | |
tree | 201a2eaf53bff07a47bb11b23ad1dd3b6a32b41b /cppu/test/mapping_tester/mapping.tester.cxx | |
parent | 692b763ac1adfdc7d93a41e711a08b9d5c43a726 (diff) | |
parent | 662272563751a94c57e6f70c06bfca371feca3a5 (diff) |
CWS-TOOLING: integrate CWS sb120
Diffstat (limited to 'cppu/test/mapping_tester/mapping.tester.cxx')
-rw-r--r-- | cppu/test/mapping_tester/mapping.tester.cxx | 456 |
1 files changed, 0 insertions, 456 deletions
diff --git a/cppu/test/mapping_tester/mapping.tester.cxx b/cppu/test/mapping_tester/mapping.tester.cxx deleted file mode 100644 index bed213daefba..000000000000 --- a/cppu/test/mapping_tester/mapping.tester.cxx +++ /dev/null @@ -1,456 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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. - * - ************************************************************************/ - -#define CPPU_TEST_MAPPING_TESTER_TESTS_IMPL - - -#include <iostream> - -#include "sal/main.h" -#include "osl/module.hxx" -#include "rtl/ustring.hxx" -#include "uno/environment.hxx" -#include "uno/mapping.hxx" - -#include "../ObjectFactory/ObjectFactory.hxx" -#include "Mapping.tester.hxx" - -using namespace ::com::sun::star; - - - -static uno::Mapping s_getMapping(rtl::OUString const & from_envDcp, - rtl::OUString const & to_envDcp, - uno::Environment * pSourceEnv, - uno::Environment * pTargetEnv) -{ - uno::Environment sourceEnv(from_envDcp); - uno::Environment targetEnv(to_envDcp); - - uno::Mapping mapping(sourceEnv, targetEnv); - - if (pSourceEnv) - *pSourceEnv = sourceEnv; - - if (pTargetEnv) - *pTargetEnv = targetEnv; - - return mapping; -} - -static void * s_mapObject(rtl::OUString const & from_envDcp, - rtl::OUString const & to_envDcp, - void * object, - uno::Environment * pSourceEnv, - uno::Environment * pTargetEnv) -{ - uno::Mapping mapping(s_getMapping(from_envDcp, to_envDcp, pSourceEnv, pTargetEnv)); - - void * mapped_object = NULL; - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0; - - TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface ); - mapping.mapInterface(&mapped_object, object, pTXInterfaceDescr); - TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr ); - - return mapped_object; -} - - -static rtl::OUString s_test_regetMapping(void) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tmapping reget test --> ")); - - uno::Mapping mapping1(g_from_envDcp, g_to_envDcp); - uno::Mapping mapping2(g_from_envDcp, g_to_envDcp); - - if (mapping2.get() == mapping1.get()) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_mapObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - if (mapped_object) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_remapObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject remap test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object1 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - void * mapped_object2 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, NULL, NULL); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - if (mapped_object2 == mapped_object1) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object1); - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object2); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_mapBackObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map back test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment to_sourceEnv; - uno::Environment to_targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, - g_from_envDcp, - pObject, - &to_sourceEnv, - &to_targetEnv); - - uno::Environment back_sourceEnv; - uno::Environment back_targetEnv; - void * mapped_back_object = s_mapObject(g_from_envDcp, - g_to_envDcp, - mapped_object, - &back_sourceEnv, - &back_targetEnv); - - if (back_targetEnv.get() != to_sourceEnv.get()) - abort(); - - if (back_sourceEnv.get() != to_targetEnv.get()) - abort(); - - if (pObject == mapped_back_object) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - to_sourceEnv .get()->pExtEnv->releaseInterface(to_sourceEnv .get()->pExtEnv, pObject); - to_targetEnv .get()->pExtEnv->releaseInterface(to_targetEnv .get()->pExtEnv, mapped_object); - back_targetEnv.get()->pExtEnv->releaseInterface(back_targetEnv.get()->pExtEnv, mapped_back_object); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_objectRegistered(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject registered test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, - g_from_envDcp, - pObject, - &sourceEnv, - &targetEnv); - - if (sourceEnv.get() == targetEnv.get()) - { - if (mapped_object != pObject) - abort(); - } - else - { - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0; - TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface ); - - rtl_uString * pOId = 0; - targetEnv.get()->pExtEnv->getObjectIdentifier(targetEnv.get()->pExtEnv, &pOId, mapped_object); - - void * pOut = NULL; - - targetEnv.get()->pExtEnv->getRegisteredInterface(targetEnv.get()->pExtEnv, - &pOut, - pOId, - pTXInterfaceDescr); - - TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr ); - - if (mapped_object == pOut) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, pOut); - } - - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - - -// static void s_test_mappingNotEqual(char const * source1Name, char const * dest1Name, -// char const * source2Name, char const * dest2Name) -// { -// rtl::OUString source1EnvName(source1Name, rtl_str_getLength(source1Name), RTL_TEXTENCODING_ASCII_US); -// rtl::OUString dest1EnvName (dest1Name, rtl_str_getLength(dest1Name), RTL_TEXTENCODING_ASCII_US); - -// rtl::OUString source2EnvName(source2Name, rtl_str_getLength(source2Name), RTL_TEXTENCODING_ASCII_US); -// rtl::OUString dest2EnvName (dest2Name, rtl_str_getLength(dest2Name), RTL_TEXTENCODING_ASCII_US); - -// uno::Mapping mapping1(s_getMapping(source1EnvName, dest1EnvName, NULL, NULL)); -// uno::Mapping mapping2(s_getMapping(source2EnvName, dest2EnvName, NULL, NULL)); - -// if (mapping2.get() == mapping1.get()) -// { -// // fprintf(stderr, "***************** can not reget mapping\n"); -// abort(); -// } -// } - -static rtl::OUString s_test_call(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject call test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - g_check = 1; - callObject(g_from_envDcp, mapped_object); - g_check = 0; - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - - -static rtl::OString test_mapping_a(char const * pfrom_envDcp, - char const * pto_envDcp, - Callee * pCallee, - char const * pRef) -{ - g_from_envDcp = rtl::OUString(pfrom_envDcp, rtl_str_getLength(pfrom_envDcp), RTL_TEXTENCODING_ASCII_US); - g_to_envDcp = rtl::OUString(pto_envDcp, rtl_str_getLength(pto_envDcp), RTL_TEXTENCODING_ASCII_US); - g_ref = rtl::OUString(pRef, rtl_str_getLength(pRef), RTL_TEXTENCODING_ASCII_US); - - rtl::OUString result; - - g_check = 0; - - result += s_test_regetMapping (); - result += s_test_objectRegistered(pCallee); - result += s_test_remapObject (pCallee); - result += s_test_mapBackObject (pCallee); - result += s_test_mapObject (pCallee); - result += s_test_call (pCallee); - - return rtl::OUStringToOString(result, RTL_TEXTENCODING_ASCII_US); -} - - -static rtl::OString s_replaceCPP(rtl::OString const & str) -{ - rtl::OString result; - - sal_Int32 index_old = 0; - sal_Int32 index = str.indexOf("CPP", index_old); - while (index != -1) - { - result += str.copy(index_old, index - index_old); - result += rtl::OString(CPPU_STRINGIFY(CPPU_ENV)); - - index_old = index + 3; - index = str.indexOf("CPP", index_old); - } - result += str.copy(index_old); - - return result; -} - - -extern "C" { static void s_dummy(rtl_uString * pMethod_name) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\t\tmethod: ")); - result += rtl::OUString(pMethod_name); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" -dummy-\n")); - - g_result = result; -}} - -static Callee * s_pCustomCallee = s_dummy; - -extern "C" { static void s_callee(rtl_uString * pMethod_name) -{ - if (rtl::OUString(pMethod_name).equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")))) - { - rtl::OUString tmp; - - if (!g_from_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - { - tmp += g_from_envDcp; - tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->")); - } - - tmp += g_custom; - - if (!g_to_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - { - tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->")); - tmp += g_to_envDcp; - } - - g_custom = tmp; - s_pCustomCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")).pData); - } - else - s_pCustomCallee(pMethod_name); -}} - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - int ret = 0; - rtl::OString message; - - if (argc == 3 || argc == 6) - { - rtl::OString from_envDcp(argv[1]); - from_envDcp = s_replaceCPP(from_envDcp); - - rtl::OString to_envDcp(argv[2]); - to_envDcp = s_replaceCPP(to_envDcp); - - osl::Module module; - - rtl::OString ref; - if (argc == 6 && rtl::OString(argv[3]).equals(rtl::OString("-s"))) - { - rtl::OUString libName(argv[4], rtl_str_getLength(argv[4]), RTL_TEXTENCODING_ASCII_US); - libName += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_DLLEXTENSION)); - module.load(libName); - - s_pCustomCallee = (Callee *)module.getFunctionSymbol(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CALLEE"))); - if (!s_pCustomCallee) - abort(); - - ref = s_replaceCPP(rtl::OString(argv[5])); - } - - message += rtl::OString("TESTING: "); - message += from_envDcp; - message += rtl::OString("-->"); - message += to_envDcp; - message += rtl::OString("\n"); - - message += test_mapping_a(from_envDcp.getStr(), to_envDcp.getStr(), s_callee, ref); - - if (message.indexOf(rtl::OString("FAILED")) == -1) - message += rtl::OString("TESTS PASSED\n"); - - else - { - message += rtl::OString("TESTS _NOT_ PASSED\n"); - ret = -1; - } - } - else - message = "Usage: <source env. dcp> <destination env. dcp> [-s testfun <ref. string>]\n"; - - - std::cout << message.getStr(); - - return ret; -} |