daa0d5b
From e71c92e3bd0c6f755aa2e15e78a62d4bdfac8d19 Mon Sep 17 00:00:00 2001
daa0d5b
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
daa0d5b
Date: Fri, 20 Jan 2023 09:43:39 +0000
daa0d5b
Subject: [PATCH] std::abort() during CppunitTest_sw_layoutwriter
daa0d5b
daa0d5b
seen in fedora distro build. Probably since:
daa0d5b
daa0d5b
commit 4170b94c443b3bd68b4cc75b8c344ecca3c249b0
daa0d5b
Date:   Tue Nov 8 18:27:05 2022 +0100
daa0d5b
daa0d5b
    SwModelTestBase: inherit from UnoApiXmlTest
daa0d5b
daa0d5b
See original discussion in https://gerrit.libreoffice.org/c/core/+/142465
daa0d5b
daa0d5b
use an alternative approach to solve this
daa0d5b
daa0d5b
[_RUN_____] testTdf143239::TestBody
daa0d5b
Fatal exception: Signal 6
daa0d5b
Stack:
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libuno_sal.so.3(+0x48bd8)[0xffff95428bd8]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libuno_sal.so.3(+0x4fd8c)[0xffff9542fd8c]
daa0d5b
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0xffff955247fc]
daa0d5b
/lib64/libc.so.6(+0x8d568)[0xffff94f2d568]
daa0d5b
/lib64/libc.so.6(gsignal+0x20)[0xffff94ee3e80]
daa0d5b
/lib64/libc.so.6(abort+0xf4)[0xffff94ed0284]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN3psp16PrintFontManager10SubstituteERN3vcl4font17FontSelectPatternERN3rtl8OUStringE+0xbc4)[0xffff91980de4]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(+0x891ea8)[0xffff91981ea8]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK3vcl4font22PhysicalFontCollection20GetGlyphFallbackFontERNS0_17FontSelectPatternEP19LogicalFontInstanceRN3rtl8OUStringEi+0xd0)[0xffff9186a7c0]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK12OutputDevice10ImplLayoutERKN3rtl8OUStringEiiRK5Pointl13KernArraySpanN4o3tl4spanIKhEE14SalLayoutFlagsPKN3vcl4text15TextLayoutCacheEPK15SalLayoutGlyphs+0x112c)[0xffff915be0c0]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK12OutputDevice12GetTextArrayERKN3rtl8OUStringEP9KernArrayiibPKN3vcl4text15TextLayoutCacheEPK15SalLayoutGlyphs+0x2c4)[0xffff915bf2b8]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN18ImplFontMetricData20ImplInitTextLineSizeEPK12OutputDevice+0x74)[0xffff91873da4]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK12OutputDevice11ImplNewFontEv+0x1c8)[0xffff915b7318]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(+0x4c5f70)[0xffff915b5f70]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK12OutputDevice14GetFontCharMapERN5tools5SvRefI11FontCharMapEE+0x34)[0xffff915b9004]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZNK12OutputDevice9HasGlyphsERKN3vcl4FontESt17basic_string_viewIDsSt11char_traitsIDsEEii+0x90)[0xffff915b9300]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libsvtlo.so(+0xff560)[0xffff8cadf560]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libsvtlo.so(_ZN11FontNameBox12CachePreviewEmP5Point+0x288)[0xffff8cae0168]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libsvtlo.so(+0x100448)[0xffff8cae0448]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN9Scheduler22CallbackTaskSchedulingEv+0x30c)[0xffff917b050c]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN14SvpSalInstance12CheckTimeoutEb+0x140)[0xffff919790a0]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN14SvpSalInstance9ImplYieldEbb+0x98)[0xffff91979818]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN14SvpSalInstance7DoYieldEbb+0xe0)[0xffff91979b70]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/instdir/program/libvcllo.so(_ZN9Scheduler19ProcessEventsToIdleEv+0x40)[0xffff917bac84]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/CppunitTest/libtest_sw_layoutwriter.so(+0x5520c)[0xffff8d87520c]
daa0d5b
/lib64/libcppunit-1.15.so.1(+0x1e4dc)[0xffff9549e4dc]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/Library/unoexceptionprotector.so(+0x107ec)[0xffff94e107ec]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit16DefaultProtector7protectERKNS_7FunctorERKNS_16ProtectorContextE+0x3c)[0xffff9549e1cc]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit14ProtectorChain7protectERKNS_7FunctorERKNS_16ProtectorContextE+0x320)[0xffff954969f4]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit10TestResult7protectERKNS_7FunctorEPNS_4TestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x80)[0xffff954a06d0]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit8TestCase3runEPNS_10TestResultE+0x11c)[0xffff954a993c]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit13TestComposite15doRunChildTestsEPNS_10TestResultE+0xe0)[0xffff9549e980]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit13TestComposite3runEPNS_10TestResultE+0x58)[0xffff9549e6a8]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit13TestComposite15doRunChildTestsEPNS_10TestResultE+0xe0)[0xffff9549e980]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit13TestComposite3runEPNS_10TestResultE+0x58)[0xffff9549e6a8]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit10TestResult7runTestEPNS_4TestE+0x38)[0xffff9549f5a8]
daa0d5b
/lib64/libcppunit-1.15.so.1(_ZN7CppUnit10TestRunner3runERNS_10TestResultERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x70)[0xffff954a6b70]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/Executable/cppunittester(+0x1443c)[0xaaaac255443c]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/Executable/cppunittester(+0x15390)[0xaaaac2555390]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/Executable/cppunittester(+0x10a38)[0xaaaac2550a38]
daa0d5b
/lib64/libc.so.6(+0x30588)[0xffff94ed0588]
daa0d5b
/lib64/libc.so.6(__libc_start_main+0x9c)[0xffff94ed0660]
daa0d5b
/builddir/build/BUILD/libreoffice-7.5.0.2/workdir/LinkTarget/Executable/cppunittester(+0x10ab0)[0xaaaac2550ab0]
daa0d5b
which: no gdb in (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/lib/jvm/java-17-openjdk-17.0.6.0.9-0.2.ea.fc38.aarch64/bin)
daa0d5b
You need gdb in your path to show backtraces
daa0d5b
Error: a unit test failed, please do one of:
daa0d5b
make CppunitTest_sw_layoutwriter CPPUNITTRACE="gdb --args"
daa0d5b
    # for interactive debugging on Linux
daa0d5b
make CppunitTest_sw_layoutwriter VALGRIND=memcheck
daa0d5b
    # for memory checking
daa0d5b
make CppunitTest_sw_layoutwriter DEBUGCPPUNIT=TRUE
daa0d5b
    # for exception catching
daa0d5b
You can limit the execution to just one particular test by:
daa0d5b
daa0d5b
Change-Id: Ife968c5d1d49081b1d28d50a557bc90d59980fc0
daa0d5b
---
daa0d5b
 svtools/source/control/ctrlbox.cxx | 4 +++-
daa0d5b
 1 file changed, 3 insertions(+), 1 deletion(-)
daa0d5b
daa0d5b
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
daa0d5b
index 32f82f6884c8..5aec7838c015 100644
daa0d5b
--- a/svtools/source/control/ctrlbox.cxx
daa0d5b
+++ b/svtools/source/control/ctrlbox.cxx
daa0d5b
@@ -504,9 +504,11 @@ void FontNameBox::Fill( const FontList* pList )
daa0d5b
         set_active_or_entry_text(aOldText);
daa0d5b
 }
daa0d5b
 
daa0d5b
+static bool IsRunningUnitTest() { return getenv("LO_TESTNAME") != nullptr; }
daa0d5b
+
daa0d5b
 void FontNameBox::EnableWYSIWYG(bool bEnable)
daa0d5b
 {
daa0d5b
-    if (comphelper::LibreOfficeKit::isActive())
daa0d5b
+    if (comphelper::LibreOfficeKit::isActive() || IsRunningUnitTest())
daa0d5b
         return;
daa0d5b
     if (mbWYSIWYG == bEnable)
daa0d5b
         return;
daa0d5b
-- 
daa0d5b
2.39.0
daa0d5b