CppunitTest_sw_htmlexport failing due to zlib variation?

Stephan Bergmann sbergman at redhat.com
Tue Aug 25 09:07:19 UTC 2020


At least when building recent master on recent Fedora rawhide aarch64 
with (among others) --with-system-zlib, CppunitTest_sw_htmlexport fails with

> Test name: testEmbedImagesEnabled::Import_Export
> equality assertion failed
> - Expected: data:image/png;base64,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
> - Actual  : data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAA3ZAAAN2QHmodeGAAAFrklEQVR4nO1Ya2gcVRQ+szuzO9ndZNfEkMQ2tVorVdNKxRpQweqPmh+hPn5IIBTBPyLEQsQX4gsl+iv4z7aiYJFUIYFSHxQUpDZClWA0JJQSosTYuDHJJtnn7O68PHfmTDL7aArZmyyFXDjcfcy95/vO+c59jGiaJtzITaw2gErbNoFqt20C6zVBEHZiF0G7gouFthk+uBNA0IIkeXpEUXo/HA5IwUCNtrgYl+vq5G+SydzzSCTG0x93AuFwaHDvnh2Pf/FZb2jfHTcBGGlIJ5fg7b5znSc/v3QF+d2NJBZ4+eNKQBTFrl2tjR3D378blKU8gLZoEQj60tD/TrvfJ6aEE6cnBvDRI9x88poIrOgHXuzv6wrKYgLBpyzwlul2/17v7b6PTo0dxixEMAsrPHxyJZDL5e65r63OjrzuBm+Tkcw07N0tKxOTmQP4+EUePrkS8Enexav/zIRvbapfA+4QITLR+RzzGeXlkysBTdN+HDw72vrQvQd9TtTdBEbGliCjGCo+OsXLJ1cCyZT6+qdfXn76UJunoftopIDA1HQcnuiJp5Wc+azJ8QRZMQEsyP3Y7UGbRtudzmgfvPDm+GsnB/x1nY/Icjiowsi4on51XjNUFc7YQ4RD2DegZZHLhaoRQCCHa4P+b9vvv027NPKXHAmHhLv27VIMQ4f/5peNT4ZSedMwBdEX0Q4eCGg1sueZbC7XNTYxV9PaZGaXEiCEAsLHqYz5alUI+CWx85Wex4Jv9T4Mx984a17+Myv8MHQc9a+gbLIA5movOd9H/vgXjnRHYXwIQpN/AzzQDc/hVNUhwJrkxQ1LjyEZrE0TTVsg0GiMSHGvLYPoBdPjAUH2V+qdRxEbGQS1RKBp9y0G7SZkrFSOGrgRMGyZ6Et2b+J3fdEGXBJ9kpSe4IMceGZAdzIg0PmnQP+FhLQ0B9iwCRJi4ExvoYSKiTCJcX6HULmEGFBdJZA+IlCke9C5gC3XKs+AySSk2SsQi65VAySXLWhi8W0KOy/9zszDfqa/WRg16nXcQQ3rVwssPcFI6MtbABsKCSBuBhrzDyGw77DMatFkeoaBZSFNoq0wwzFJv7RKjtrWvyQTEYhIwBvRWtCa0PBQbxHyujLASGAVWiTm0a7SM1VtjkwksKPNiATQ/K7/gEIrEOAatCDYWQpsLdzSJpKuEy6ZMBHjbdySUA2Rc4holAVGcKdmQN3FUVCffBSk4VEw6yOFkopiPb/cD8bAh6vjQcLZUgoIY5MAE1NWZJSKCLBiRBnliYRDgGUiTFZHEQ9QBmrJPLoOv/z8O+xvPwbN+Fl5CXv35Au4PZy7UOiwucHqsg8eg7zggWxagacqIoDgHQmF6Ix+M6xlQKb/vC5zGou2lkzDCfregQe0DvfkGGlAgB4dc+v1rP3uESCfVsxwJcDBJSET1jTuEKknAtI6Y01XgZdtqYzdx7Hs68Ml77+8mP2KdzgmIRMnU0lCTONMk+zA0kyFKrtWI9MV/XXBuwksJwoJ0CQ+9Jut9Hpp7QM0SR4n1KgOElQLLbS8OsuqSwhw3Q3AIbCSLDtG5XE3LtiJqaBzYGeCuY+DTeQWsOsjSLISioCXzUZKWZcAqz9jdUfnQQDWsqHh5M7RIQX27ttM2Qi5xnmJkFguC+tkgGVyB1oM/bCntI0SueZhroysYrSUOhnwUkYayUoKElcoq9CvQeBOtFm0ObQ4W8o3IqnrnkYpMkxWOXSScMnF2ZkX6PgRLx67krBIMQJeKK2ZLG2eguvQyJ8AlGbF7UShDDEZzJ4ahPzXP4HqkJyeteaP9p+GljPnrSCYqsaWUOvzb2gqmb7Rgq74PoB+VSLRNxeDYTTnLAUU5V+jMWhDU0lmLOozOI7L5ZjLq0WKXgKJfAe2HJzl1qDNaoaHn3KN67tRIqLDZt4hYRMJVKNtE6h22yZQ7XbDE/gf25LGjrgcuP4AAAAASUVORK5CYII=
> - In <file:///tmp/lu137295836rgnq.tmp>, attribute 'src' of '/html/body/p/img' incorrect value.

The test succeeds when changing from --with-system-zlib to 
--without-system-zlib.  The test was introduced with

> commit 587d6e13df7bb9c8f78ce605ebb8f8fd34b85a2c
> Author: Jan Holesovsky <kendy at collabora.com>
> Date:   Fri Jul 28 14:15:07 2017 +0200
> 
>     sw htmlexport: Avoid unnecessary conversion to base64 + unit tests.
>     
>     Change-Id: Ifdd86590f4258c84006f7ca94ea06058e600db1e
> 
> diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
> index 63435cee780a..1ea03e880de7 100644
> --- a/sw/qa/extras/htmlexport/htmlexport.cxx
> +++ b/sw/qa/extras/htmlexport/htmlexport.cxx
[...]
> +DECLARE_HTMLEXPORT_TEST(testEmbedImagesEnabled, "textAndImage.docx")
> +{
> +    htmlDocPtr pDoc = parseHtml(maTempFile);
> +    CPPUNIT_ASSERT(pDoc);
> +
> +    assertXPath(pDoc, "/html/body", 1);
> +    assertXPath(pDoc, "/html/body/p/img", "src", "data:image/png;base64,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");
> +}
[...]

The base64-encoded payload apparently is a PNG image.  And from what 
little I know about PNG, it looks plausible to me that there can be 
different (compressed) PNG content that decompress to identical raw 
data, and that the LibreOffice code would be allowed to generate 
differing (compressed) PNG content for the above data:image/png URL payload.

If that assumption is right, the above assertXPath check would be bogus. 
  Can somebody clarify, and clarify what the test should actually verify?


More information about the LibreOffice mailing list