CppunitTest: different results depending on execution command

Xisco Fauli xiscofauli at libreoffice.org
Mon Jul 27 15:54:29 UTC 2020


Hello Miklos,

On 27/7/20 8:46, Miklos Vajna wrote:
> Hi Xisco,
>
> On Fri, Jul 24, 2020 at 07:51:30PM +0200, Xisco Fauli <xiscofauli at libreoffice.org> wrote:
>> as I mentioned yesterday in the ESC meeting, i'm working on a unittest
>> that is passing for me locally but it fails in Jenkins. The patch is
>> here: https://gerrit.libreoffice.org/c/core/+/99214
>>
>> it turned out it passes when executed with 'make CppunitTest_sw_uiwriter
>> CPPUNIT_TEST_NAME="testTdf132911::TestBody"' but fails when executed
>> with 'make CppunitTest_sw_uiwriter'.
>>
>> Any idea why it passes when the test is executed alone and why it fails
>> when not ?
> Most probably one of the tests violate that invariant that none of the
> test cases in a suite should alter the global state. You could try to
> disable the tests from the suite, i.e. binary search what test causes
> the problem. Hopefully you can find a single 2nd test that makes your
> new test fail, and then that's easier to investigate that the whole
> sw_uiwriter suite, which has 300+ test cases.

After disabling some tests here and there, I found
SwUiWriterTest::testRedlineViewAuthor is the one affecting the execution
of the new test.

I'm not sure why it's happening yet but I do believe it has to do with
the view being set in
https://opengrok.libreoffice.org/xref/core/sw/qa/extras/uiwriter/uiwriter.cxx?r=99d4bf94#5477

I tried to add the following like at the end of the unittest but it
didn't work:

pDocShell->GetViewShell()->GetViewFrame()->GetDispatcher()->Execute(SID_CLOSEWIN,
SfxCallMode::SYNCHRON);

( similar to destroyView in lokhelper <
https://opengrok.libreoffice.org/xref/core/sfx2/source/view/lokhelper.cxx?r=2f72fa98#93
> )

Any idea what is happening and how to solve it? Otherwise I might go
with your second solution and put the test somewhere else.

Cheers

-- 
Xisco Faulí
LibreOffice QA Team
IRC: x1sc0




More information about the LibreOffice mailing list