summaryrefslogtreecommitdiff
path: root/solenv/gbuild/CppunitTest.mk
AgeCommit message (Collapse)Author
2018-09-05gbuild: allow recording of CppunitTests and PythonTests tooMichael Stahl
Since these don't use soffice they need to be tweaked to use RR variable. A rr git master build from some weeks ago can record all tests, except CppunitTest_dbaccess_firebird_test which fails. smoketest is a bit tricky because it spawns soffice which checks RR variable again and starts a nested rr, but fortunately there's a flag to prevent it from aborting in this situation. For UITests currently only the soffice.bin is recorded, not the python test process. The size of all the recording is about 35G per run in a --enable-dbgutil build. Change-Id: I2143618fa2181e36b6aaeded43637cb3481f5e47 Reviewed-on: https://gerrit.libreoffice.org/60032 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Michael Stahl <Michael.Stahl@cib.de>
2018-07-26Prevent unittest hangs due to cups password promptPeter Foley
If cups is configured to require a password prompt, it causes unittests to hang indefinitely. e.g. 0 0x00007fe545a41ccd in __pthread_join (threadid=140622167353088, thread_return=0x0) at pthread_join.c:90 1 0x00007fe53e3aa4bf in psp::CUPSManager::checkPrintersChanged(bool) () from /home/peter/libreoffice/instdir/program/libvcllo.so 2 0x00007fe53e3bcbe0 in SvpSalInstance::GetPrinterQueueInfo(ImplPrnQueueList*) () from /home/peter/libreoffice/instdir/program/libvcllo.so 3 0x00007fe53e27d532 in Printer::ImplGetQueueInfo(rtl::OUString const&, rtl::OUString const*) () from /home/peter/libreoffice/instdir/program/libvcllo.so 4 0x00007fe53e27d739 in Printer::Printer() () from /home/peter/libreoffice/instdir/program/libvcllo.so And in another thread: Password for peter on localhost? 0 0x00007f07f3c3834a in __GI___libc_read (fd=<optimized out>, buf=0x7f07d4a30b0f, nbytes=1) at ../sysdeps/unix/sysv/linux/read.c:26 1 0x00007f07ea7603ab in _cupsGetPassword () from /usr/lib/libcups.so.2 2 0x00007f07ea7231dd in cupsDoAuthentication () from /usr/lib/libcups.so.2 3 0x00007f07ea759266 in cupsSendRequest () from /usr/lib/libcups.so.2 4 0x00007f07ea7596d4 in cupsDoIORequest () from /usr/lib/libcups.so.2 5 0x00007f07ea72650b in _cupsGetDests () from /usr/lib/libcups.so.2 6 0x00007f07ea727403 in ?? () from /usr/lib/libcups.so.2 7 0x00007f07ea7275d1 in cupsGetDests2 () from /usr/lib/libcups.so.2 8 0x00007f07ec090b2d in psp::CUPSManager::runDests() () from /home/peter/libreoffice/instdir/program/libvcllo.so Fix this by exporting SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION=1 for unittests. Change-Id: I0a3a2e7e9a88f5e6e1a9481cbb134538505381be Reviewed-on: https://gerrit.libreoffice.org/55255 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2018-07-12improve message when running perfcheck without valgrind installedNoel Grandin
Change-Id: I50e7d3f38dc16feab450e32085e8c031904b216c Reviewed-on: https://gerrit.libreoffice.org/57347 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-12CppunitTest_xmlsecurity_signing failed in sanitizer buildsStephan Bergmann
...because external/gpgmepp spawns /usr/bin/gpgconf (and later on /usr/bin/ggp2, /usr/bin/gpgsm) which all depend on libgpg-error.so.0, so due to CppunitTest's LD_LIBRARY_PATH will pick up instdir/program/libgpg-error.so.0, which fails due to > /usr/bin/gpgconf: symbol lookup error: /data/sbergman/lo-san/core/instdir/program/libgpg-error.so.0: undefined symbol: __asan_option_detect_stack_use_after_return The easiest fix appears to be, when running sanitizers on Linux, to hack gpgmepp's _gpgme_io_spawn to set LD_LIBRARY_PATH back to its original state. (When it was originally unset, it will now be set but null, but that should not make a difference.) This requires EXTRA_ENV_VARS to be set earlier in CppunitTest.mk, so setting LIBO_LD_PATH doesn't use the LD_LIBRARY_PATH value set in gb_CppunitTest_CPPTESTPRECOMMAND. The backtrace of the first, originally failing call to _gpgme_io_spawn during CppunitTest_xmlsecurity_signing: > #0 0x00007fffe1f354dc in _gpgme_io_spawn (path=0x1 <error: Cannot access memory at address 0x1>, argv=0x7ffff2fbd4e0, flags=0, fd_list=0x9, atfork=0x4e, atforkvalue=0x7ffff2fbd4e0, r_pid=0x7ffff2fbd4e0) at posix-io.c:433 > #1 0x00007fffe1f41971 in read_gpgconf_dirs (pgmname=0x6110002f8e00 "/usr/bin/gpgconf", components=0) at dirinfo.c:206 > #2 0x00007fffe1f3fa29 in get_gpgconf_item (what=12) at dirinfo.c:284 > #3 0x00007fffe1f4073e in _gpgme_get_default_gpg_name () at dirinfo.c:370 > #4 0x00007fffe1e87093 in engine_get_file_name (proto=GPGME_PROTOCOL_OpenPGP) at engine.c:79 > #5 0x00007fffe1e84e89 in gpgme_get_engine_info (info=0x7ffff2a06160) at engine.c:230 > #6 0x00007fffe1e845ef in gpgme_engine_check_version (proto=GPGME_PROTOCOL_OpenPGP) at engine.c:144 > #7 0x00007fffe634e7d9 in GpgME::checkEngine(GpgME::Protocol) (proto=GpgME::OpenPGP) at context.cpp:1610 > #8 0x00007fff8df3fd49 in SecurityEnvironmentGpg::SecurityEnvironmentGpg() (this=0x6060005825c0) at xmlsecurity/source/gpg/SecurityEnvironment.cxx:30 > #9 0x00007fff8df5755e in SEInitializerGpg::createSecurityContext(rtl::OUString const&) (this=0x606000582560) at xmlsecurity/source/gpg/SEInitializer.cxx:45 > #10 0x00007fff8df57bb3 in non-virtual thunk to SEInitializerGpg::createSecurityContext(rtl::OUString const&) () at include/rtl/stringutils.hxx:170 > #11 0x00007fffab66de90 in DocumentSignatureManager::init() (this=0x7ffff2fbb020) at xmlsecurity/source/helper/documentsignaturemanager.cxx:78 > #12 0x00007fffab498504 in DocumentDigitalSignatures::ImplVerifySignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, DocumentSignatureMode) (this=0x6080001aaf20, rxStorage=uno::Reference to (OStorage *) 0x60d0003a4c48, xSignStream=empty uno::Reference, eMode=DocumentSignatureMode::Content) at xmlsecurity/source/component/documentdigitalsignatures.cxx:264 > #13 0x00007fffab497f8b in DocumentDigitalSignatures::verifyDocumentContentSignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&) (this=0x6080001aaf20, rxStorage=uno::Reference to (OStorage *) 0x60d0003a4c48, xSignInStream=empty uno::Reference) at xmlsecurity/source/component/documentdigitalsignatures.cxx:127 > #14 0x00007fffab49c35b in non-virtual thunk to DocumentDigitalSignatures::verifyDocumentContentSignatures(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&) () at include/cppu/unotype.hxx:136 > #15 0x00007fffafc062a3 in SfxObjectShell::ImplAnalyzeSignature(bool, com::sun::star::uno::Reference<com::sun::star::security::XDocumentDigitalSignatures> const&) (this=0x61100021c7c0, bScriptingContent=false, xSigner=empty uno::Reference) at sfx2/source/doc/objserv.cxx:1293 > #16 0x00007fffafc074b1 in SfxObjectShell::ImplGetSignatureState(bool) (this=0x61100021c7c0, bScriptingContent=false) at sfx2/source/doc/objserv.cxx:1322 > #17 0x00007fffafc0383d in SfxObjectShell::GetDocumentSignatureState() (this=0x61100021c7c0) at sfx2/source/doc/objserv.cxx:1485 > #18 0x00007fffafbb323c in SfxObjectShell::CheckForBrokenDocSignatures_Impl() (this=0x61100021c7c0) at sfx2/source/doc/objmisc.cxx:981 > #19 0x00007fffafbb2da4 in SfxObjectShell::CheckSecurityOnLoading_Impl() (this=0x61100021c7c0) at sfx2/source/doc/objmisc.cxx:931 > #20 0x00007fffafbb95cf in SfxObjectShell::FinishedLoading(SfxLoadedFlags) (this=0x61100021c7c0, nFlags=SfxLoadedFlags::ALL) at sfx2/source/doc/objmisc.cxx:1079 > #21 0x00007fff716a9185 in SwDocShell::LoadingFinished() (this=0x61100021c7c0) at sw/source/uibase/app/docsh.cxx:1153 > #22 0x00007fff71759ada in SwDocShell::Load(SfxMedium&) (this=0x61100021c7c0, rMedium=...) at sw/source/uibase/app/docshini.cxx:581 > #23 0x00007fffafc2bd9a in SfxObjectShell::LoadOwnFormat(SfxMedium&) (this=0x61100021c7c0, rMedium=...) at sfx2/source/doc/objstor.cxx:2971 > #24 0x00007fffafc3128c in SfxObjectShell::DoLoad(SfxMedium*) (this=0x61100021c7c0, pMed=0x60300083dac0) at sfx2/source/doc/objstor.cxx:714 > #25 0x00007fffafdd88d8 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x6190000fb0b0, seqArguments=uno::Sequence of length 13 = {...}) at sfx2/source/doc/sfxbasemodel.cxx:1788 > #26 0x00007fffb049a98a in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) (this=0x6060004aaec0, rArgs=uno::Sequence of length 11 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::Frame *) 0x6160000c63f0) at sfx2/source/view/frmload.cxx:693 > #27 0x00007fff82d6a7ee in framework::LoadEnv::impl_loadContent() (this=0x7ffff2fe3040) at framework/source/loadenv/loadenv.cxx:1105 > #28 0x00007fff82d5aa6b in framework::LoadEnv::startLoading() (this=0x7ffff2fe3040) at framework/source/loadenv/loadenv.cxx:374 > #29 0x00007fff82d56633 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (xLoader=uno::Reference to (framework::Desktop *) 0x6160000153f8, xContext=uno::Reference to (cppu::ComponentContext *) 0x611000002b10, sURL="file:///xmlsecurity/qa/unit/signing/data/goodGPG.odt", sTarget="_default", nFlags=0, lArgs=uno::Sequence of length 2 = {...}) at framework/source/loadenv/loadenv.cxx:160 > #30 0x00007fff82ec93f0 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x616000015380, sURL="file:///xmlsecurity/qa/unit/signing/data/goodGPG.odt", sTargetFrameName="_default", nSearchFlags=0, lArguments=uno::Sequence of length 2 = {...}) at framework/source/services/desktop.cxx:618 > #31 0x00007fff82ec95eb in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) () at include/rtl/stringutils.hxx:170 > #32 0x00007fffabe3097d in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x60c000035e48, rURL="file:///xmlsecurity/qa/unit/signing/data/goodGPG.odt", rDocService="com.sun.star.text.TextDocument", rExtraArgs=empty uno::Sequence) at unotest/source/cpp/macros_test.cxx:50 > #33 0x00007fffb2ba9d2a in SigningTest::createDoc(rtl::OUString const&) (this=0x60c000035e00, rURL="file:///xmlsecurity/qa/unit/signing/data/goodGPG.odt") at xmlsecurity/qa/unit/signing/signing.cxx:204 > #34 0x00007fffb2bd1532 in SigningTest::testODFGoodGPG() (this=0x60c000035e00) at xmlsecurity/qa/unit/signing/signing.cxx:690 > #35 0x00007fffb2c304fd in std::__invoke_impl<void, void (SigningTest::*&)(), SigningTest*&>(std::__invoke_memfun_deref, void (SigningTest::*&)(), SigningTest*&) (__f=@0x6030001f0480: (void (SigningTest::*)(SigningTest * const)) 0x7fffb2bd0d80 <SigningTest::testODFGoodGPG()>, __t=@0x6030001f0490: 0x60c000035e00) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/invoke.h:73 > #36 0x00007fffb2c300e0 in std::__invoke<void (SigningTest::*&)(), SigningTest*&>(void (SigningTest::*&)(), SigningTest*&) (__fn=@0x6030001f0480: (void (SigningTest::*)(SigningTest * const)) 0x7fffb2bd0d80 <SigningTest::testODFGoodGPG()>, __args=@0x6030001f0490: 0x60c000035e00) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/invoke.h:95 > #37 0x00007fffb2c2ff2f in std::_Bind<void (SigningTest::*(SigningTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x6030001f0480, __args=...) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/functional:467 > #38 0x00007fffb2c2fb23 in std::_Bind<void (SigningTest::*(SigningTest*))()>::operator()<, void>() (this=0x6030001f0480) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/functional:549 > #39 0x00007fffb2c2e8d1 in std::_Function_handler<void (), std::_Bind<void (SigningTest::*(SigningTest*))()> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/std_function.h:316 > #40 0x00007fffb2c30b1c in std::function<void ()>::operator()() const (this=0x608000083660) at /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/std_function.h:706 > #41 0x00007fffb2c2db41 in CppUnit::TestCaller<SigningTest>::runTest() (this=0x608000083620) at workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175 > #42 0x00007ffff78fc159 in CppUnit::TestCaseMethodFunctor::operator()() const (this=0x7ffff2e9c0d0) at TestCase.cpp:32 > #43 0x00007fffdc3cc8e3 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x602000019910, functor=...) at test/source/vclbootstrapprotector.cxx:48 > #44 0x00007ffff78ccf96 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (this=0x6030002189e0) at ProtectorChain.cpp:20 > #45 0x00007fffe8938ab3 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x6020000003f0, functor=...) at unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89 > #46 0x00007ffff78ccf96 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (this=0x603000218a10) at ProtectorChain.cpp:20 > #47 0x00007fffebc1e492 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x602000000250, functor=..., context=...) at unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63 > #48 0x00007ffff78ccf96 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (this=0x603000218a40) at ProtectorChain.cpp:20 > #49 0x00007ffff7863084 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x602000000150, functor=..., context=...) at DefaultProtector.cpp:15 > #50 0x00007ffff78ccf96 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (this=0x603000218a70) at ProtectorChain.cpp:20 > #51 0x00007ffff78c68f5 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x60b000000510, functor=..., context=...) at ProtectorChain.cpp:86 > #52 0x00007ffff795e259 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x7ffff2f000a0, functor=..., test=0x608000083620, shortDescription="") at TestResult.cpp:182 > #53 0x00007ffff78fa785 in CppUnit::TestCase::run(CppUnit::TestResult*) (this=0x608000083620, result=0x7ffff2f000a0) at TestCase.cpp:91 > #54 0x00007ffff798c2fe in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) (this=0x608000081820, result=0x7ffff2f000a0) at TestRunner.cpp:47 > #55 0x00007ffff795ccdf in CppUnit::TestResult::runTest(CppUnit::Test*) (this=0x7ffff2f000a0, test=0x608000081820) at TestResult.cpp:149 > #56 0x00007ffff798d23f in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x7ffff2f4db00, controller=..., testPath="") at TestRunner.cpp:96 > #57 0x000000000052e3a9 in (anonymous namespace)::ProtectedFixtureFunctor::run() const (this=0x7ffff2f00350) at sal/cppunittester/cppunittester.cxx:319 > #58 0x000000000052ae38 in sal_main() () at sal/cppunittester/cppunittester.cxx:469 > #59 0x0000000000529e2c in main(int, char**) (argc=23, argv=0x7fffffff2798) at sal/cppunittester/cppunittester.cxx:376 Change-Id: I386a3b316c78344c2449568894c0f03ba39b1bf0 Reviewed-on: https://gerrit.libreoffice.org/46249 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-11-06QT5 rename from KF5Jan-Marek Glogowski
Move out of unx, as this will eventually compile on other OS platforms. At least currently it doesn't contain platform dependant code. Change-Id: Iea0bebf574201881ea158381fe7ba8af2a9a6488
2017-11-06KF5 seperate Qt5 detection from KF5Jan-Marek Glogowski
Splits the configure checks into a Qt5 and KF5 specific part. Change-Id: I0a616ba031e1f7fd0385219ac48179adb4bdaf14
2017-10-06gbuild: more verbose forwarding of LinkTarget functionsMichael Stahl
The forwarding of LinkTarget subclass functions to LinkTarget functions is currently done in a very elegant way that only requires listing the bare function names once, but the downside is that the subclass functions aren't defined in a way that "git grep" or "ctags" can find, so replace that with more verbose copy-paste definitions. Change-Id: I4bd7f1b1bc0904ae345958e39403ab508db584a1 Reviewed-on: https://gerrit.libreoffice.org/43196 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-08-22unotest: really run every CppunitTest with its own user profileMichael Stahl
Apparently a sw unit test randomly read a partially written autotbl.fmt that was written by another unit test, in particular the file workdir/unittest/user/config/autotbl.fmt. The tests are actually started with -env:UserInstallation=$(call gb_Helper_make_url,$(call gb_CppunitTest_get_target,$*).user) to prevent exactly this problem, but unfortunately it's then overridden by a call to rtl::Bootstrap::set(), which overrides even command line arguments, from test::BootstrapFixtureBase::setUp(). Change-Id: I618574e94755ea38caf9583f3dcf7715396bca48 Reviewed-on: https://gerrit.libreoffice.org/41432 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-07-21migrate to boost::gettextCaolán McNamara
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl * all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string") * ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching MODULE .mo files * UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui goes from l10n target to normal one, so the res/lang.zips of UI files go away * translation via Translation::get(hrc-define-key, imbued-std::locale) * python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there to keep finding the .hrc file uniform) so magic numbers can go away there * java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation mechanism * en-US res files go away, their strings are now the .hrc keys in the source code * remaining .res files are replaced by .mo files * in .res/.ui-lang-zip files, the old scheme missing translations of strings results in inserting the english original so something can be found, now the standard fallback of using the english original from the source key is used, so partial translations shrink dramatically in size * extract .hrc strings with hrcex which backs onto xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap * extract .ui strings with uiex which backs onto xgettext --add-comments --no-wrap * qtz for gettext translations is generated at runtime as ascii-ified crc32 of content + "|" + msgid * [API CHANGE] remove deprecated binary .res resouce loader related uno apis com::sun::star::resource::OfficeResourceLoader com::sun::star::resource::XResourceBundleLoader com::sun::star::resource::XResourceBundle when translating strings via uno apis com.sun.star.resource.StringResourceWithLocation can continue to be used Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
2017-07-18More avoidance of invoking gdb with LD_LIBRARY_PATH setStephan Bergmann
...similar to 785eb0ed14cde731c2795f68f004f0b811cfe387 "gbuild: try to avoid invoking gdb with LD_LIBRARY_PATH set", this time for DEBUGCPPUNIT=TRUE in addition to CPPUNITTRACE="gdb --args" Change-Id: I3e2cc5abf76947dc4c7b4d6caa3fd5720720e050
2017-06-13remove TDE integration (vclplug, address book, config backend)Michael Stahl
It has ~no users, can't even be built on modern Linuxes, and it annoys folks who want to refactor VCL. Per ESC decision from 2017-06-08, remove --enable-tde and --enable-tdeab. Change-Id: I51ce4786f29f8fcac2e2bb2a654c41fbfbbd8afd Reviewed-on: https://gerrit.libreoffice.org/38718 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-06-05gb_SUPPRESS_TESTS to build tests but not run themStephan Bergmann
Change-Id: I390b97bbacfc123b952be2b54cf1333b4d5c24a7
2017-03-22gbuild: MSVC: unbreak CPPUNITTRACE='$(DEVENV)'Michael Stahl
... which is unlikely to contain the strings "gdb" or "lldb". (regression from c38a4d9ce248b4b3fcc9208b25dfa599fe506ac0) Change-Id: I355069ec512232898b246d2b0bf8912831f0c80a
2017-02-21When building with clang-cl on Windows, build CLR code with MSVCStephan Bergmann
...as clang-cl doesn't support the /clr switch. * In configure.ac, capture the MSCV version (that would be used if CC hadn't been overridden to use clang-cl) into MSVC_CXX. * The logic which flags to pass into gb_CObject__command_pattern is coded into the platform-agnostic LinkTarget.mk, so it's too late to try and filter all relevant flags in com_GCC_class.mk, depending on whether a given .cxx file is a normal one built with the normal $CXX or a special /clr one built with $MSVC_CXX. Thus, a new CxxClrObject class had to be introduced that captures this information early. * When building with clang-cl, the generated config_host/config_*.h files contain values suitable for clang-cl, but not for MSVC. But the .cxx files compiled with MSVC happen to include config_global.h, and would fail. Hack around that problem for now by introducing a hard-coded, minimal solenv/clang-cl/config_global.h that is found first when buliding such a CxxClrObject. Needs cleaning-up properly. Change-Id: Iff8aac51c0b4fa906b14503c692640dda0996d33 Reviewed-on: https://gerrit.libreoffice.org/34509 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-01-04gbuild: CppunitTest: export VCL_HIDE_WINDOWSMichael Stahl
This currently has no effect and so the CppunitTest_cppcanvas_emfplus pops up an annoying window. (regression from 181932b31ea9c07a9bec3677e73b67a9a6d4e3f2) Change-Id: I26314d98f10f6b39ca1c28821ccd0de6ba2a4358
2016-12-09Fix removal of the temporary dyldpathfileStephan Bergmann
Change-Id: I2a4efc9ade69ab53da81c72528e18ecb99e99757
2016-12-06Make the CPPUNITTRACE="lldb --" thing work again (on macOS)Tor Lillqvist
It doesn't seem to work (any longer in 10.12) to pass DYLD_LIBRARY_PATH in the environment to the process to be run under lldb. We need to make lldb execute an explicit 'settings set target.env-vars' command. Use a temporary file to pass that command. I could not figure out where to call the gb_CppunitTest_POSTGDBTRACE macro I define, to remove the temporary file, sorry. Help appreciated. Change-Id: I46bd05f14623639e6ce10112b92ef497cdbb0755
2016-11-28add cppunit tests to gbuildtojsonMarkus Mohrhard
Change-Id: I655190464e2b4289f5c51b194821f9288272d301 Reviewed-on: https://gerrit.libreoffice.org/31271 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
2016-11-22Exit gb_CppunitTest_localized loop on first failureStephan Bergmann
...instead of ignoring failures in every but the last iteration Change-Id: Ie80e78f75aaec5e9b1625c2e1ef740adf31fab1b
2016-11-21add missing deps on ui filesDavid Tardon
Change-Id: I28bb2a33c02d8eadced584d3d3f2b62b2e847324
2016-11-20gbuild allow unitest to run once per lang in WITH_LANG_LISTNorbert Thiebaud
this is motivated by the new screenshot feature the initial proposed solution involved running make screenshot once per lang which took ~6 hours for --with-lang=ALL on tb68 a reasonnably big windows slavebot. with this patch, one can run make screenshot just once and get all the screenshot the elapsed time is 36 inutes on the same box/same config a 10x improvement. Change-Id: I4339caebf915c118aa455de2a7e56e1a4e413939 Reviewed-on: https://gerrit.libreoffice.org/30970 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
2016-09-29gbuild: try to avoid invoking gdb with LD_LIBRARY_PATH setMichael Stahl
Commit b078e0d638514b298616838fae090b8294bac32f introduced the problem that gdb will load via LD_LIBRARY_PATH the libpython3.5m.so.1.0 from INSTDIR instead of the one from the system, which makes it unhappy (at least on Fedora 24). Try to hack around that by detecting that the user wants to run gdb, and passing in a command "set environment LD_LIBRARY_PATH ..." so that "run" inside gdb uses the custom LD_LIBRARY_PATH but gdb itself does not. Change-Id: I1d29d2af1a77ffab3e718a876c17c29de444c6d9 Reviewed-on: https://gerrit.libreoffice.org/29349 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-08-30Fix placement of EXTRA_ENV_VARSStephan Bergmann
Change-Id: Id9ae15aaf24b65abfcb4006490836eae8a1d8db6
2016-08-30Hack for shaky VCL test under ASanStephan Bergmann
Change-Id: I0c89d1c23ddc1d0d6cd98d95ef31622a30d4862b
2016-08-18screenshots: unset VCL_HIDE_WINDOWSKatarina Behrens
Those screenshot cppunit tests need to run in non-headless mode with dialog windows exposed (i.e. VCL_HIDE_WINDOWS must not be set) To preserve the current behaviour (VCL_HIDE_WINDOWS is set always on Win and Mac, and in use_vcl_non_headless case on Linux), introduce 2 new variables: gb_CppunitTest_show_windows: unset VCL_HIDE_WINDOWS unconditionally gb_CppunitTest_hide_windows: set VCL_HIDE_WINDOWS=1 if HEADLESS is empty (i.e. let's not use emptiness of HEADLESS as an indicator, as it is empty in 2 mutually exclusive cases) Change-Id: Ib2f7a9cfb1202944d10856c44b6ac7c41156b333
2016-08-17enable password export tests under macosxCaolán McNamara
gerrit says they build with this cert folder disable variable in place Change-Id: Ibf711a01e6c055613c65dd94d85b523e7c8b5acd
2016-06-15tdf#98955 hardware_concurrency not ideal for thread poolsAshod Nakashian
A new static member getPreferredConcurrency added to comphelper::ThreadPool to return a configurable max number of threads. By default the new function returns the hardware_concurrency value provided by std::thread. When MAX_CONCURRENCY envar is defined, the return value is limited to whatever is set there. Three call-sites that used std::thread::hardware_concurrency have been replaced with getPreferredConcurrency. Unittests added to cover the functionality of the new member. Unittests are capped to 4 threads. Change-Id: I3332e393a88a5ed436316fa712ed920a4b37f4af Reviewed-on: https://gerrit.libreoffice.org/26254 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2016-04-16add VALGRIND_GDB also for normal unit testsMarkus Mohrhard
Change-Id: I1920ece6ca683403d72a68b6705da2dea7c9ad9b
2016-04-16fix crash in perfcheckMarkus Mohrhard
Change-Id: I8e053f5f0c6994c44485f61f5b3dc489271b8c5f
2015-11-17make CPPUNITTRACE=TRUE a shortcut for debuging on WNTBjoern Michaelsen
Change-Id: Ie834e1e1592163977435f0af6dde04c4fe86c1bf Reviewed-on: https://gerrit.libreoffice.org/19977 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
2015-11-17refactor unittest help messageBjoern Michaelsen
- get platform switch logic out of shell script - platform specific stuff should be in $(GBUILDDIR)/platform, if possible - do not suggest shell-polluting exports, which might lead to confusion later, suggest setting the var as a one-off addition to the make command - move exception caching down, as it is assumed to be used rather rarely Change-Id: I01db3ca07582a6c6213ebac86fddabb28c925d50 Reviewed-on: https://gerrit.libreoffice.org/19976 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org> Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
2015-10-05Fix gb_CppunitTest__use_vcl dependenciesStephan Bergmann
Regression introduced with 41c66312885393614c274897fd75a25c2ddf6ba0 "The 'svp' 'plug-in' library is empty so don't build it at all" Change-Id: I534173372ee21e16c78693f60957706bbf61c1c8
2015-09-25Replace GUIBASE with USING_X11Samuel Mehrbrodt
That's what it actually means. Also make it a boolean Change-Id: I249e18351253b34b5dada28e2a9c6bc0c06b730c Reviewed-on: https://gerrit.libreoffice.org/18688 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2015-09-03remove KDE3 support, --enable-kde and --enable-kdeabMichael Stahl
With the new RHEL6-era baseline TDF can finally ship KDE4 support. Change-Id: I227278b576a3ed2f2aaa751d41b469ca92dc78b3 Reviewed-on: https://gerrit.libreoffice.org/18267 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-09-02percheck: produce similar stats than off-tree callgrindNorbert Thiebaud
Change-Id: I7035ea6f2d9ffe92282533064d69b75e2c1989e1
2015-08-31sal: don't use --target as parameter to cppunittesterMichael Stahl
CppunitTest_libreofficekit_tiledrendering hangs because the soffice_main exits due to the unrecognized command line arg --target. Use a -env:VARIABLE argument instead, which is filtered out by rtl_getAppCommandArg() so does not reach the soffice_main code. (regression from 87514b0907dfbb479e2646b5ff951c68babf3417) Change-Id: I2c801305398dccfb447e4e5c44726f42bf2a72ef
2015-08-31log resource usage of unit tests on UNX platformsMarkus Mohrhard
Change-Id: I3788eae60f73bc42488bf2e4961922962f7e505b Reviewed-on: https://gerrit.libreoffice.org/18155 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-07-01gbuild: CppunitTest: don't hang with DEBUGCPPUNIT=TRUE ...Michael Stahl
... if the process exits before the "bt" command, because then gdb will print an error that there is no stack and stop the script before "quit". Change-Id: I0f3a1381e17dda7e8a7d958e0cbc96676bbc23ce
2015-05-28More aggressive system malloc memory checking for linux unit tests.Michael Meeks
Change-Id: If8e70dc25c537fcf12de0853d91c30f0e6f92e31 Reviewed-on: https://gerrit.libreoffice.org/15940 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
2015-05-22Revert "gbuild: allow recording of CppunitTests and PythonTests too"Michael Stahl
This reverts commit 5a7816b971c51ea4b642738a065e90d4d9bf12d7.
2015-05-21gbuild: allow recording of CppunitTests and PythonTests tooMichael Stahl
Since these don't use soffice they need to be tweaked to use RR varaiable. Unfortunately rr crashes in some CppunitTest so don't enable that now. Unfortunately rr crashes in PythonTest. Change-Id: I2143618fa2181e36b6aaeded43637cb3481f5e47
2015-05-18Revert "gbuild: CppunitTest: allow specifying arguments with CPPUNITTEST_ARGS"Michael Stahl
This reverts commit 1b6be726449fb9b1ff54bc99a1b8839621444ddc. It turned out not to be necessary, see commit 9ce371fa1626bb845e702ceef66a730547b313a8
2015-04-26--enable-mergelibs: Turns out we don't need to install saxMatúš Kukan
We are lucky, saxparser(expwrap) is only needed to build localedata* libs which are only runtime dependencies, and can be built *after* libmerged. So, simplify and move runtime deps to CppunitTest. This reverts commits 59cea45ec247df1acb691308c940ff97673e4c48 and partially 5e45637568ceefee21fe329a5254881963fecd7a Change-Id: I1a1fb4a48fd1a22a9b3a48f0eb0f123649c113b0
2015-04-25gbuild: CppunitTest: allow specifying arguments with CPPUNITTEST_ARGSMichael Stahl
Change-Id: Ied595f97c2a6501a7e80a378a474689c43ad60d9
2015-03-20The 'svp' "plug-in" library is empty so don't build it at allTor Lillqvist
Its code is in the vcl library nowadays. Change-Id: Idb659e541226724004660102f6641c38a2312c27
2015-02-27gbuild: CppunitTest: always use unittest configurationMichael Stahl
The sc_subsequent_filters_test was failing because of a lock file because it did not use the unittest configuration. Refactor gb_CppunitTest_use_configuration so it uses both the instdir and unittest configuration to prevent such errors. In case there ever is a test that does not work with the unittest configuration it should call gb_CppunitTest_use_instdir_configuration. Change-Id: Ibc00d42f8b6102d50d922f51173120798fa45c6e
2014-12-21Remove unused gb_*_disable_compiler_pluginsStephan Bergmann
Change-Id: Ia6395282916011d75a4fa01aa12e96d866621411
2014-12-18Introduce gb_*_set_external_codeStephan Bergmann
...to harmonize the mechanisms to not define LIBO_INTERNAL_ONLY for extension code and CppunitTest_odk_checkapi. (It also needs to revert any -Wundef, as the config_host/config_*.h files will not be included, so the HAVE_* macros will be undefined.) This obsoletes the need for RTL_DISABLE_FAST_STRING. Change-Id: If5eacba80c349efb90762aade8f2ea6d2db7e314
2014-12-07solenv: no need to advertise lldb/devenv on Linux in unittest-failed.shMiklos Vajna
Change-Id: I1dd1b7804defdf363599c17dee3ab1333cf46ee7
2014-12-04Add gb_CppunitTest_use_confpreinit:Andrzej Hunt
For unit tests that use the VCL event loop we can use this to avoid the otherwise required restart. Change-Id: I48265d7e7188a4efaa6f87432c762320331c0c78