openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damjan Jovanovic <dam...@apache.org>
Subject Re: cppunit -> Google Test migration and old failing tests
Date Sat, 29 Aug 2015 07:37:55 GMT
On Fri, Aug 28, 2015 at 6:07 PM, Kay Schenk <kay.schenk@gmail.com> wrote:
>
> On 08/27/2015 09:05 PM, Damjan Jovanovic wrote:
>> Hi
>>
>> I am in the process of migrating our unit tests from cppunit to Google
>> Test. However AOO doesn't build with cppunit and hasn't been routinely
>> built with cppunit for a while, which means our unit tests are in a
>> state of neglect, and unsurprisingly, there are many failures both
>> compiling and running our unit tests.
>>
>> Ideally we should investigate why and fix the tests. But the APIs
>> being tested are complex and unfamiliar to me (eg. SVG parsing), and
>> would take very long to investigate properly.
>>
>> I could commit changes that will just get the tests to compile, then
>> fail during testing and stop the build, thus forcing others to fix
>> them quickly :-), but I don't imagine that will go down well. So I am
>> taking this approach instead:
>>
>> // FIXME:
>> #define RUN_OLD_FAILING_TESTS 0
>>
>> #if RUN_OLD_FAILING_TESTS
>> broken_test();
>> #endif
>>
>> Also I am making unit tests run on every build. This way at least some
>> unit tests will be run, and any future regressions to tests can be
>> caught immediately, while the broken tests can be fixed gradually.
>>
>> Everyone happy?
>
> Well pretty much. :)
>
> I've been watching your commits. Thank you for taking on this
> challenging task.

Thank you.

> OK, just to be clear. It looks like you're converting the cppunit calls
> to Google Test api calls. But, what you're saying is the actual use of
> the Google test routines needs additional modification to work
> correctly, right?

Yes that's what I am doing.

No, the C++ conversions are very easy (feel free to help ;-)):
#include "cppunit..."   =>   #include "gtest/gtest.h"
class X : public CppUnit::TestFixture  =>  class X : public ::testing:Test
CPPUNIT_ASSERT_MESSAGE(msg, condition)   =>   ASSERT_TRUE(condition) << msg
CPPUNIT_ASSERT_EQUAL(c1, c2)    =>   ASSERT_EQ(c1, c2)
CPPUNIT_FALSE(msg)   =>   FAIL() << msg
private:  =>  protected:
test methods move outside of class declaration and become
TEST_F(className, methodName) instead
CPPUNIT_TEST...() registrations disappear

but the problem is that tests themselves are wrong no matter what the
testing library. For example:
basegfx::tools::importFromSvgD( aPoly, aSvg );
won't compile, as importfromSvgD() requires 4 parameters now instead
of just 2 (as I explained in an earlier email, this was caused by
commit 1536730 on 2013-10-29 by alg).

Damjan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Mime
View raw message