Author: damjan Date: Sat Aug 29 18:39:35 2015 New Revision: 1700066 URL: http://svn.apache.org/r1700066 Log: #i125003# migrate main/cppuhelper/qa/ifcontainer from cppunit to Google Test and run it on every build.
Added: openoffice/trunk/main/cppuhelper/qa/ifcontainer/main.cxx Removed: openoffice/trunk/main/cppuhelper/qa/ifcontainer/export.map Modified: openoffice/trunk/main/cppuhelper/prj/build.lst openoffice/trunk/main/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx openoffice/trunk/main/cppuhelper/qa/ifcontainer/makefile.mk Modified: openoffice/trunk/main/cppuhelper/prj/build.lst URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cppuhelper/prj/build.lst?rev=1700066&r1=1700065&r2=1700066&view=diff ============================================================================== --- openoffice/trunk/main/cppuhelper/prj/build.lst (original) +++ openoffice/trunk/main/cppuhelper/prj/build.lst Sat Aug 29 18:39:35 2015 @@ -3,4 +3,5 @@ ch cppuhelper usr1 - all ch_mkout ch cppuhelper\inc nmake - all ch_include NULL ch cppuhelper\source nmake - all ch_source ch_unotypes ch_include NULL ch cppuhelper\unotypes nmake - all ch_unotypes NULL +ch cppuhelper\qa\ifcontainer nmake - all ch_qa_ifcontainer ch_source ch_include ch_unotypes NULL ch cppuhelper\qa\propertysetmixin nmake - all ch_qa_propertysetmixin ch_source NULL Modified: openoffice/trunk/main/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx?rev=1700066&r1=1700065&r2=1700066&view=diff ============================================================================== --- openoffice/trunk/main/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx (original) +++ openoffice/trunk/main/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx Sat Aug 29 18:39:35 2015 @@ -21,13 +21,12 @@ -#include <testshl/simpleheader.hxx> - #include "com/sun/star/lang/XEventListener.hpp" #include "cppuhelper/interfacecontainer.hxx" #include "cppuhelper/queryinterface.hxx" #include "cppuhelper/implbase1.hxx" #include "cppuhelper/propshlp.hxx" +#include "gtest/gtest.h" using namespace com::sun::star; using namespace com::sun::star::uno; @@ -57,79 +56,12 @@ public: namespace cppu_ifcontainer { - class IfTest : public CppUnit::TestFixture + class IfTest : public ::testing::Test { + protected: osl::Mutex m_aGuard; static const int nTests = 10; public: - void testCreateDispose() - { - ContainerStats aStats; - cppu::OInterfaceContainerHelper *pContainer; - - pContainer = new cppu::OInterfaceContainerHelper(m_aGuard); - - CPPUNIT_ASSERT_MESSAGE("Empty container not empty", - pContainer->getLength() == 0); - - int i; - for (i = 0; i < nTests; i++) - { - Reference<XEventListener> xRef = new ContainerListener(&aStats); - int nNewLen = pContainer->addInterface(xRef); - - CPPUNIT_ASSERT_MESSAGE("addition length mismatch", - nNewLen == i + 1); - CPPUNIT_ASSERT_MESSAGE("addition length mismatch", - pContainer->getLength() == i + 1); - } - CPPUNIT_ASSERT_MESSAGE("alive count mismatch", - aStats.m_nAlive == nTests); - - EventObject aObj; - pContainer->disposeAndClear(aObj); - - CPPUNIT_ASSERT_MESSAGE("dispose count mismatch", - aStats.m_nDisposed == nTests); - CPPUNIT_ASSERT_MESSAGE("leaked container left alive", - aStats.m_nAlive == 0); - - delete pContainer; - } - - void testEnumerate() - { - int i; - ContainerStats aStats; - cppu::OInterfaceContainerHelper *pContainer; - pContainer = new cppu::OInterfaceContainerHelper(m_aGuard); - - std::vector< Reference< XEventListener > > aListeners; - for (i = 0; i < nTests; i++) - { - Reference<XEventListener> xRef = new ContainerListener(&aStats); - int nNewLen = pContainer->addInterface(xRef); - aListeners.push_back(xRef); - } - Sequence< Reference< XInterface > > aElements; - aElements = pContainer->getElements(); - - CPPUNIT_ASSERT_MESSAGE("query contents", - (int)aElements.getLength() == nTests); - if ((int)aElements.getLength() == nTests) - { - for (i = 0; i < nTests; i++) - { - CPPUNIT_ASSERT_MESSAGE("mismatching elements", - aElements[i] == aListeners[i]); - } - } - pContainer->clear(); - - CPPUNIT_ASSERT_MESSAGE("non-empty container post clear", - pContainer->getLength() == 0); - delete pContainer; - } template < typename ContainerType, typename ContainedType > void doContainerTest(const ContainedType *pTypes) @@ -155,11 +87,11 @@ namespace cppu_ifcontainer pHelper = pContainer->getContainer(pTypes[i]); - CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL); + ASSERT_TRUE(pHelper != NULL) << "no helper"; Sequence<Reference< XInterface > > aSeq = pHelper->getElements(); - CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 2); - CPPUNIT_ASSERT_MESSAGE("match", aSeq[0] == xRefs[i*2]); - CPPUNIT_ASSERT_MESSAGE("match", aSeq[1] == xRefs[i*2+1]); + ASSERT_TRUE(aSeq.getLength() == 2) << "wrong num elements"; + ASSERT_TRUE(aSeq[0] == xRefs[i*2]) << "match"; + ASSERT_TRUE(aSeq[1] == xRefs[i*2+1]) << "match"; } // remove every other interface @@ -173,10 +105,10 @@ namespace cppu_ifcontainer pHelper = pContainer->getContainer(pTypes[i]); - CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL); + ASSERT_TRUE(pHelper != NULL) << "no helper"; Sequence<Reference< XInterface > > aSeq = pHelper->getElements(); - CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 1); - CPPUNIT_ASSERT_MESSAGE("match", aSeq[0] == xRefs[i*2]); + ASSERT_TRUE(aSeq.getLength() == 1) << "wrong num elements"; + ASSERT_TRUE(aSeq[0] == xRefs[i*2]) << "match"; } // remove the 1st half of the rest @@ -189,75 +121,124 @@ namespace cppu_ifcontainer cppu::OInterfaceContainerHelper *pHelper; pHelper = pContainer->getContainer(pTypes[i]); - CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL); + ASSERT_TRUE(pHelper != NULL) << "no helper"; Sequence<Reference< XInterface > > aSeq = pHelper->getElements(); - CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 0); + ASSERT_TRUE(aSeq.getLength() == 0) << "wrong num elements"; } delete pContainer; } + }; - void testOMultiTypeInterfaceContainerHelper() + TEST_F(IfTest, testCreateDispose) + { + ContainerStats aStats; + cppu::OInterfaceContainerHelper *pContainer; + + pContainer = new cppu::OInterfaceContainerHelper(m_aGuard); + + ASSERT_TRUE(pContainer->getLength() == 0) << "Empty container not empty"; + + int i; + for (i = 0; i < nTests; i++) { - uno::Type pTypes[nTests] = - { - ::cppu::UnoType< bool >::get(), - ::cppu::UnoType< float >::get(), - ::cppu::UnoType< double >::get(), - ::cppu::UnoType< ::sal_uInt64 >::get(), - ::cppu::UnoType< ::sal_Int64 >::get(), - ::cppu::UnoType< ::sal_uInt32 >::get(), - ::cppu::UnoType< ::sal_Int32 >::get(), - ::cppu::UnoType< ::sal_Int16 >::get(), - ::cppu::UnoType< ::rtl::OUString >::get(), - ::cppu::UnoType< ::sal_Int8 >::get() - }; - doContainerTest< cppu::OMultiTypeInterfaceContainerHelper, - uno::Type> (pTypes); + Reference<XEventListener> xRef = new ContainerListener(&aStats); + int nNewLen = pContainer->addInterface(xRef); + + ASSERT_TRUE(nNewLen == i + 1) << "addition length mismatch"; + ASSERT_TRUE(pContainer->getLength() == i + 1) << "addition length mismatch"; + } + ASSERT_TRUE(aStats.m_nAlive == nTests) << "alive count mismatch"; + + EventObject aObj; + pContainer->disposeAndClear(aObj); + + ASSERT_TRUE(aStats.m_nDisposed == nTests) << "dispose count mismatch"; + ASSERT_TRUE(aStats.m_nAlive == 0) << "leaked container left alive"; + + delete pContainer; + } + + TEST_F(IfTest, testEnumerate) + { + int i; + ContainerStats aStats; + cppu::OInterfaceContainerHelper *pContainer; + pContainer = new cppu::OInterfaceContainerHelper(m_aGuard); + + std::vector< Reference< XEventListener > > aListeners; + for (i = 0; i < nTests; i++) + { + Reference<XEventListener> xRef = new ContainerListener(&aStats); + int nNewLen = pContainer->addInterface(xRef); + aListeners.push_back(xRef); } + Sequence< Reference< XInterface > > aElements; + aElements = pContainer->getElements(); - void testOMultiTypeInterfaceContainerHelperInt32() + ASSERT_TRUE((int)aElements.getLength() == nTests) << "query contents"; + if ((int)aElements.getLength() == nTests) { - sal_Int32 pTypes[nTests] = + for (i = 0; i < nTests; i++) { - 0, - -1, - 1, - 256, - 1024, - 3, - 7, - 8, - 9, - 10 - }; - doContainerTest< cppu::OMultiTypeInterfaceContainerHelperInt32, sal_Int32> (pTypes); + ASSERT_TRUE(aElements[i] == aListeners[i]) << "mismatching elements"; + } } + pContainer->clear(); + + ASSERT_TRUE(pContainer->getLength() == 0) << "non-empty container post clear"; + delete pContainer; + } - void testOMultiTypeInterfaceContainerHelperVar() + TEST_F(IfTest, testOMultiTypeInterfaceContainerHelper) + { + uno::Type pTypes[nTests] = { - typedef ::cppu::OMultiTypeInterfaceContainerHelperVar< - const char*, rtl::CStringHash, rtl::CStringEqual> StrContainer; + ::cppu::UnoType< bool >::get(), + ::cppu::UnoType< float >::get(), + ::cppu::UnoType< double >::get(), + ::cppu::UnoType< ::sal_uInt64 >::get(), + ::cppu::UnoType< ::sal_Int64 >::get(), + ::cppu::UnoType< ::sal_uInt32 >::get(), + ::cppu::UnoType< ::sal_Int32 >::get(), + ::cppu::UnoType< ::sal_Int16 >::get(), + ::cppu::UnoType< ::rtl::OUString >::get(), + ::cppu::UnoType< ::sal_Int8 >::get() + }; + doContainerTest< cppu::OMultiTypeInterfaceContainerHelper, + uno::Type> (pTypes); + } - const char *pTypes[nTests] = - { - "this_is", "such", "fun", "writing", "unit", "tests", "when", "it", "works", "anyway" - }; - doContainerTest< StrContainer, const char *> (pTypes); - } + TEST_F(IfTest, testOMultiTypeInterfaceContainerHelperInt32) + { + sal_Int32 pTypes[nTests] = + { + 0, + -1, + 1, + 256, + 1024, + 3, + 7, + 8, + 9, + 10 + }; + doContainerTest< cppu::OMultiTypeInterfaceContainerHelperInt32, sal_Int32> (pTypes); + } - // Automatic registration code - CPPUNIT_TEST_SUITE(IfTest); - CPPUNIT_TEST(testCreateDispose); - CPPUNIT_TEST(testEnumerate); - CPPUNIT_TEST(testOMultiTypeInterfaceContainerHelper); - CPPUNIT_TEST(testOMultiTypeInterfaceContainerHelperVar); - CPPUNIT_TEST(testOMultiTypeInterfaceContainerHelperInt32); - CPPUNIT_TEST_SUITE_END(); - }; -} // namespace cppu_ifcontainer + TEST_F(IfTest, testOMultiTypeInterfaceContainerHelperVar) + { + typedef ::cppu::OMultiTypeInterfaceContainerHelperVar< + const char*, rtl::CStringHash, rtl::CStringEqual> StrContainer; -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(cppu_ifcontainer::IfTest, - "cppu_ifcontainer"); + const char *pTypes[nTests] = + { + "this_is", "such", "fun", "writing", "unit", "tests", "when", "it", "works", "anyway" + }; + doContainerTest< StrContainer, const char *> (pTypes); + } + + +} // namespace cppu_ifcontainer -NOADDITIONAL; Added: openoffice/trunk/main/cppuhelper/qa/ifcontainer/main.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cppuhelper/qa/ifcontainer/main.cxx?rev=1700066&view=auto ============================================================================== --- openoffice/trunk/main/cppuhelper/qa/ifcontainer/main.cxx (added) +++ openoffice/trunk/main/cppuhelper/qa/ifcontainer/main.cxx Sat Aug 29 18:39:35 2015 @@ -0,0 +1,28 @@ +/************************************************************** + * + * 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 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + *************************************************************/ + +#include "gtest/gtest.h" + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} Modified: openoffice/trunk/main/cppuhelper/qa/ifcontainer/makefile.mk URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cppuhelper/qa/ifcontainer/makefile.mk?rev=1700066&r1=1700065&r2=1700066&view=diff ============================================================================== --- openoffice/trunk/main/cppuhelper/qa/ifcontainer/makefile.mk (original) +++ openoffice/trunk/main/cppuhelper/qa/ifcontainer/makefile.mk Sat Aug 29 18:39:35 2015 @@ -31,27 +31,31 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE : settings.mk -CFLAGSCXX += $(CPPUNIT_CFLAGS) +.IF "$(ENABLE_UNIT_TESTS)" != "YES" +all: + @echo unit tests are disabled. Nothing to do. + +.ELSE # BEGIN ---------------------------------------------------------------- # auto generated Target:joblist by codegen.pl -SHL1OBJS= \ - $(SLO)$/cppu_ifcontainer.obj -SHL1TARGET= cppu_ifcontainer -SHL1STDLIBS=\ +APP1OBJS= \ + $(SLO)$/cppu_ifcontainer.obj \ + $(SLO)$/main.obj +APP1TARGET= cppu_ifcontainer +APP1STDLIBS=\ $(CPPUHELPERLIB) \ $(SALLIB) \ $(CPPULIB) \ $(TESTSHL2LIB)\ - $(CPPUNITLIB) -SHL1IMPLIB= i$(SHL1TARGET) -DEF1NAME =$(SHL1TARGET) -SHL1VERSIONMAP= export.map + $(GTESTLIB) +APP1RPATH = NONE +APP1TEST = enabled # auto generated Target:joblist # END ------------------------------------------------------------------ # --- Targets ------------------------------------------------------ .INCLUDE : target.mk -.INCLUDE : _cppunit.mk +.ENDIF # "$(ENABLE_UNIT_TESTS)" != "YES"