CppunitTest_sw_ooxmlexport4 failing with --disable-pch on Windows

Stephan Bergmann sbergman at redhat.com
Wed Jul 22 08:18:44 UTC 2020


On 12/07/2020 18:45, Mike Kaganski wrote:
> On 11.07.2020 2:35, Mike Kaganski wrote:
>> In current master (at least a week, and still the same after pull just
>> now) I see 100% reproducible failure of make CppunitTest_sw_ooxmlexport4:
>>
>>> $ /opt/lo/bin/make CppunitTest_sw_ooxmlexport4
>>> ...
>>> test_Tdf115030::Load_Reload_Verify finished in: 1500ms
>>> C:/lo/src/core/test/source/xmltesttools.cxx(194) : error : Assertion
>>> Test name: testComboBoxControl::Load_Reload_Verify
>>> equality assertion failed
>>> - Expected: manolo
>>> - Actual  : Manolo
>>> - In <file:///C:/cygwin64/tmp/lu23416a8g0y3.tmp>, XPath contents of child does not match
>>>
>>> Failures !!!
>>> Run: 85   Failure total: 1   Failures: 1   Errors: 0
>>
>> This test succeeds normally though, when run individually:
>>
>>> $ /opt/lo/bin/make CppunitTest_sw_ooxmlexport4 CPPUNIT_TEST_NAME=testComboBoxControl
>>
>> I was able to narrow down the problem to --disable-pch in my config.
> 
> I had played with the includes from PCH, and could find out that
> including <boost/iterator/iterator_concepts.hpp> in the beginning of
> sw/qa/extras/ooxmlexport/ooxmlexport4.cxx allows the test to pass. I
> couldn't limit the includes further: only including what's included
> inside that boost header does not allow the test to pass. But I don't
> understand what does that mean (some ODR violation? some missing virtual
> overridden function?...), and don't see where to look next. Does someone
> have any ideas?

I think the issue is in what relative order the three individual tests

> DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testComboBoxControl, "combobox-control.docx")
> {
>     // check XML
>     xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
>     assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtPr/w:dropDownList/w:listItem[1]", "value", "manolo");
>     assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtPr/w:dropDownList/w:listItem[2]", "value", "pepito");
>     assertXPathContent(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtContent/w:r/w:t", "manolo");
> 
>     // check imported control
>     verifyComboBoxExport(getShapes() == 0);
> }
> 
> CPPUNIT_TEST_FIXTURE(Test, tdf134043_ImportComboBoxAsDropDown_true)
> {
>     std::shared_ptr< comphelper::ConfigurationChanges > batch(comphelper::ConfigurationChanges::create());
>     officecfg::Office::Writer::Filter::Import::DOCX::ImportComboBoxAsDropDown::set(true, batch);
>     batch->commit();
> 
>     load(mpTestDocumentPath, "combobox-control.docx");
>     verifyComboBoxExport(true);
> }
> 
> CPPUNIT_TEST_FIXTURE(Test, tdf134043_ImportComboBoxAsDropDown_false)
> {
>     std::shared_ptr< comphelper::ConfigurationChanges > batch(comphelper::ConfigurationChanges::create());
>     officecfg::Office::Writer::Filter::Import::DOCX::ImportComboBoxAsDropDown::set(false, batch);
>     batch->commit();
> 
>     load(mpTestDocumentPath, "combobox-control.docx");
>     verifyComboBoxExport(false);
> }

(that were added to sw/qa/extras/ooxmlexport/ooxmlexport4.cxx with 
<https://git.libreoffice.org/core/+/7b00fbddfb1cd55a68ed7481ebd4a5d5f60c6128%5E!/> 
"tdf#134043 DOCX import: new unit tests: ComboBox to DropDown") are 
executed:

With just --disable-pch, the order for me happens to be 2, 3, 1; while 
with an additional

> diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
> index 7fe92c72eede..5fad8bd08bdf 100644
> --- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
> +++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
> @@ -7,6 +7,7 @@
>   * file, You can obtain one at http://mozilla.org/MPL/2.0/.
>   */
>  
> +#include <boost/iterator/iterator_concepts.hpp>
>  #include <swmodeltestbase.hxx>
>  
>  #include <com/sun/star/awt/XBitmap.hpp>

the order happens to change to 2, 1, 3.  Note how tests 2 and 3 modify 
global state, which presumably makes a different for the (failing) test 1.

Serge, can you see to get that fixed?



More information about the LibreOffice mailing list