pyuno/source/module/pyuno.cxx | 9 +++ pyuno/source/module/pyuno_callable.cxx | 9 +++ pyuno/source/module/pyuno_iterator.cxx | 20 ++++++-- pyuno/source/module/pyuno_runtime.cxx | 9 +++ pyuno/source/module/pyuno_struct.cxx | 9 +++ toolkit/CppunitTest_toolkit.mk | 1 toolkit/qa/cppunit/EventContainer.cxx | 82 +++++++++++++++++++++++++++++++++ 7 files changed, 131 insertions(+), 8 deletions(-)
New commits: commit d1786724b8e8e474e1f7e39012c1f19611841dc0 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed May 6 18:43:30 2020 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu May 7 08:43:14 2020 +0200 prevent warnings in pyuno with latest python which has marked some members deprecated, but we can't stop initialising them or we run the risk of ASAN complaining Change-Id: I8f4ad0ae083fad9c040613ddde7c40f20d68c7d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93580 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index bdd717cc397e..1b875b6891d0 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -1603,6 +1603,10 @@ static PyMappingMethods PyUNOMappingMethods[] = PyUNO_setitem, /* mp_ass_subscript */ }; +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject PyUNOType = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -1661,11 +1665,14 @@ static PyTypeObject PyUNOType = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif int PyUNO_initType() { diff --git a/pyuno/source/module/pyuno_callable.cxx b/pyuno/source/module/pyuno_callable.cxx index 4803a30f814d..548c2bcef7dc 100644 --- a/pyuno/source/module/pyuno_callable.cxx +++ b/pyuno/source/module/pyuno_callable.cxx @@ -178,6 +178,10 @@ static PyObject* PyUNO_callable_call( } +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject PyUNO_callable_Type = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -236,11 +240,14 @@ static PyTypeObject PyUNO_callable_Type = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif PyRef PyUNO_callable_new ( const Reference<XInvocation2> &my_inv, diff --git a/pyuno/source/module/pyuno_iterator.cxx b/pyuno/source/module/pyuno_iterator.cxx index 6ba7f96a9632..9258b780a304 100644 --- a/pyuno/source/module/pyuno_iterator.cxx +++ b/pyuno/source/module/pyuno_iterator.cxx @@ -110,7 +110,10 @@ static PyObject* PyUNO_iterator_next( PyObject *self ) return nullptr; } - +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject PyUNO_iterator_Type = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -169,11 +172,14 @@ static PyTypeObject PyUNO_iterator_Type = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif PyObject* PyUNO_iterator_new( const Reference< XEnumeration >& xEnumeration ) { @@ -250,7 +256,10 @@ static PyObject* PyUNO_list_iterator_next( PyObject *self ) return nullptr; } - +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject PyUNO_list_iterator_Type = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -309,11 +318,14 @@ static PyTypeObject PyUNO_list_iterator_Type = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif PyObject* PyUNO_list_iterator_new( const Reference<XIndexAccess> &xIndexAccess ) { diff --git a/pyuno/source/module/pyuno_runtime.cxx b/pyuno/source/module/pyuno_runtime.cxx index ce7f36272f4b..a082907a1fac 100644 --- a/pyuno/source/module/pyuno_runtime.cxx +++ b/pyuno/source/module/pyuno_runtime.cxx @@ -70,6 +70,10 @@ using com::sun::star::beans::theIntrospection; namespace pyuno { +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject RuntimeImpl_Type = { PyVarObject_HEAD_INIT (&PyType_Type, 0) @@ -128,11 +132,14 @@ static PyTypeObject RuntimeImpl_Type = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif /*---------------------------------------------------------------------- Runtime implementation diff --git a/pyuno/source/module/pyuno_struct.cxx b/pyuno/source/module/pyuno_struct.cxx index c816e1351c8c..27b24b1659ec 100644 --- a/pyuno/source/module/pyuno_struct.cxx +++ b/pyuno/source/module/pyuno_struct.cxx @@ -290,6 +290,10 @@ static PyMethodDef PyUNOStructMethods[] = {nullptr, nullptr, 0, nullptr} }; +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif static PyTypeObject PyUNOStructType = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -348,11 +352,14 @@ static PyTypeObject PyUNOStructType = #if PY_VERSION_HEX >= 0x03080000 , nullptr // vectorcallfunc tp_vectorcall #if PY_VERSION_HEX >= 0x03080200 - , 0 //Py_ssize_t tp_print + , nullptr //Py_ssize_t tp_print #endif #endif #endif }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif int PyUNOStruct_initType() { commit 4021fedf758b8c4c439387c61223acd78630cedc Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> AuthorDate: Wed May 6 16:32:12 2020 +0200 Commit: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> CommitDate: Thu May 7 08:43:03 2020 +0200 Test keeping element order in EventContainer Change-Id: Ic33d8a83305f70bb3eb60f44da0d9ac0d2b47e16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93570 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> diff --git a/toolkit/CppunitTest_toolkit.mk b/toolkit/CppunitTest_toolkit.mk index 5afa7a616188..496ed0d7bac0 100644 --- a/toolkit/CppunitTest_toolkit.mk +++ b/toolkit/CppunitTest_toolkit.mk @@ -11,6 +11,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,toolkit)) $(eval $(call gb_CppunitTest_add_exception_objects,toolkit, \ toolkit/qa/cppunit/Dialog \ + toolkit/qa/cppunit/EventContainer \ toolkit/qa/cppunit/UnitConversion \ )) diff --git a/toolkit/qa/cppunit/EventContainer.cxx b/toolkit/qa/cppunit/EventContainer.cxx new file mode 100644 index 000000000000..300c8e5adb74 --- /dev/null +++ b/toolkit/qa/cppunit/EventContainer.cxx @@ -0,0 +1,82 @@ +/* -*- 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/. + */ + +#include <test/bootstrapfixture.hxx> + +#include <com/sun/star/awt/UnoControlDialog.hpp> +#include <com/sun/star/awt/XControlModel.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/script/ScriptEventDescriptor.hpp> +#include <com/sun/star/script/XScriptEventsSupplier.hpp> +#include <com/sun/star/uno/Reference.hxx> + +#include <comphelper/processfactory.hxx> + +using namespace css; +using namespace css::awt; +using namespace css::container; +using namespace css::lang; +using namespace css::script; +using namespace css::uno; + +namespace +{ +/// Test EventContainer class +class EventContainerTest : public test::BootstrapFixture +{ +protected: + Reference<XComponentContext> mxContext; + +public: + virtual void setUp() override; +}; + +void EventContainerTest::setUp() +{ + test::BootstrapFixture::setUp(); + + mxContext.set(comphelper::getComponentContext(getMultiServiceFactory())); +} + +// Make sure that EventContainer keeps insertion order, and does not reorder its elements. +// Otherwise this would break macro signatures. +CPPUNIT_TEST_FIXTURE(EventContainerTest, testInsertOrder) +{ + Reference<XMultiComponentFactory> xFactory(mxContext->getServiceManager(), UNO_SET_THROW); + Reference<XControlModel> xControlModel( + xFactory->createInstanceWithContext("com.sun.star.awt.UnoControlDialogModel", mxContext), + UNO_QUERY_THROW); + + Reference<beans::XPropertySet> xPropSet(xControlModel, UNO_QUERY_THROW); + + Reference<XScriptEventsSupplier> xEventsSupplier(xPropSet, UNO_QUERY_THROW); + Reference<XNameContainer> xEvents(xEventsSupplier->getEvents(), UNO_SET_THROW); + script::ScriptEventDescriptor descr1; + script::ScriptEventDescriptor descr2; + script::ScriptEventDescriptor descr3; + script::ScriptEventDescriptor descr4; + xEvents->insertByName("b", makeAny(descr1)); + xEvents->insertByName("a", makeAny(descr2)); + xEvents->insertByName("1", makeAny(descr3)); + xEvents->insertByName("A", makeAny(descr4)); + + Sequence<OUString> aEventNames(xEvents->getElementNames()); + sal_Int32 nEventCount = aEventNames.getLength(); + CPPUNIT_ASSERT_EQUAL(4, nEventCount); + + CPPUNIT_ASSERT_EQUAL(OUString("b"), aEventNames[0]); + CPPUNIT_ASSERT_EQUAL(OUString("a"), aEventNames[1]); + CPPUNIT_ASSERT_EQUAL(OUString("1"), aEventNames[2]); + CPPUNIT_ASSERT_EQUAL(OUString("A"), aEventNames[3]); +} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits