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