solenv/gbuild/CppunitTest.mk |    7 +++++++
 solenv/gbuild/PythonTest.mk  |    6 ++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

New commits:
commit 5d67dcc922f831d91424cae8d8758f067a6781b0
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Thu Sep 24 17:44:23 2020 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Sep 24 20:37:56 2020 +0200

    PythonTest CPPUNITTRACE='gdb --args' needs to tunnel setting LD_LIBRARY_PATH
    
    ...so that it doesn't affect gdb itself, just like CppunitTest already did.
    Otherwise, e.g.
    
      make PythonTest_sc_python CPPUNITTRACE='gdb --args'
    
    in a Linux ASan and --enable-python=fully-internal build on Fedora 32 would 
fail
    with
    
    > gdb: symbol lookup error: instdir/program/libpython3.8.so.1.0: undefined 
symbol: __asan_option_detect_stack_use_after_return
    
    as /usr/bin/gdb would try to use LO's instdir/program/libpython3.8.so.1.0
    instead of /usr/lib64/libpython3.8.so.1.0.
    
    So, at least on Linux, the gb_PythonTest_PRECOMMAND settings are now passed 
into
    the test process either directly upfront (if gb_PythonTest_GDBTRACE is not 
set)
    or tunneled past gdb via gb_PythonTest_GDBTRACE (if it is set).  At least on
    some platforms, gb_PythonTest_PRECOMMAND has a different value than
    gb_CppunitTest_CPPTESTPRECOMMAND, so gb_CppunitTest_GDBTRACE would reflect 
the
    settings from gb_CppunitTest_CPPTESTPRECOMMAND but not from
    gb_PythonTest_PRECOMMAND, so introduce a new gb_PythonTest_GDBTRACE (which 
is to
    gb_PythonTest_PRECOMMAND what gb_CppunitTest_GDBTRACE is to
    gb_CppunitTest_CPPTESTPRECOMMAND).
    
    macOS with its split gb_CppunitTest_{,PRE,POST}GDBTRACE variables will 
likely
    need some work to adopt that to PythonTest, but which is rather orthogonal 
to
    this change, so just note that as a TODO for now.
    
    Change-Id: I7e6681de638095cb58b44de381248ae7326ce412
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103345
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index 356b4317ab4f..cd28e578cc1e 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -28,14 +28,21 @@ ifneq ($(filter gdb,$(CPPUNITTRACE)),)
 gb_CppunitTest_GDBTRACE := $(subst gdb,\
        gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" -ex 
"set environment $(subst =, ,$(gb_CppunitTest_CPPTESTPRECOMMAND))" 
$(gb_CppunitTest_malloc_check) $(gb_CppunitTest_DEBUGCPPUNIT),\
        $(CPPUNITTRACE))
+gb_PythonTest_GDBTRACE := $(subst gdb,\
+       gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" -ex 
"set environment $(subst =, ,$(gb_PythonTest_PRECOMMAND))" 
$(gb_CppunitTest_malloc_check) $(gb_CppunitTest_DEBUGCPPUNIT),\
+       $(CPPUNITTRACE))
 else ifneq ($(filter lldb,$(CPPUNITTRACE)),)
 gb_CppunitTest_PREGDBTRACE := lo_dyldpathfile=$(call var2file,$(shell 
$(gb_MKTEMP)),500,settings set target.env-vars 
$(gb_CppunitTest_CPPTESTPRECOMMAND))
 gb_CppunitTest_GDBTRACE := $(subst lldb,\
        lldb -s $$lo_dyldpathfile $(gb_CppunitTest_malloc_check),\
        $(CPPUNITTRACE))
 gb_CppunitTest_POSTGDBTRACE := rm $$lo_dyldpathfile
+#TODO: PythonTest.mk probably needs to handle gb_CppunitTest_PREGDBTRACE and
+# gb_CppunitTest_POSTGDBTRACE in addition to gb_PythonTest_GDBTRACE (aka 
gb_CppunitTest_GDBTRACE):
+gb_PythonTest_GDBTRACE := $(gb_CppunitTest_GDBTRACE)
 else
 gb_CppunitTest_GDBTRACE := $(CPPUNITTRACE)
+gb_PythonTest_GDBTRACE := $(gb_CppunitTest_GDBTRACE)
 endif
 ifneq ($(strip $(DEBUGCPPUNIT)),TRUE)
 gb_CppunitTest__interactive := $(true)
diff --git a/solenv/gbuild/PythonTest.mk b/solenv/gbuild/PythonTest.mk
index 52ecbffe7f1c..998df0767d2c 100644
--- a/solenv/gbuild/PythonTest.mk
+++ b/solenv/gbuild/PythonTest.mk
@@ -9,6 +9,8 @@
 
 # PythonTest class
 
+# (gb_PythonTest_GDBTRACE is defined alongside gb_CppunitTest_GDBTRACE in 
CppunitTest.mk)
+
 gb_PythonTest_UNITTESTFAILED ?= 
$(GBUILDDIR)/platform/unittest-failed-default.sh
 
 ifeq ($(SYSTEM_PYTHON),)
@@ -46,7 +48,7 @@ else
                $(if $(gb_CppunitTest__interactive),, \
                        $(if $(value gb_CppunitTest_postprocess), \
                                rm -fr $@.core && mkdir $@.core && cd $@.core 
&&)) \
-               ($(gb_PythonTest_PRECOMMAND) \
+               ($(if $(filter 
gdb,$(gb_PythonTest_GDBTRACE)),,$(gb_PythonTest_PRECOMMAND)) \
                $(if $(G_SLICE),G_SLICE=$(G_SLICE)) \
                $(if 
$(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \
                $(DEFS) \
@@ -57,7 +59,7 @@ else
                TestUserDir="$(call gb_Helper_make_url,$(dir $(call 
gb_PythonTest_get_target,$*)))" \
                PYTHONDONTWRITEBYTECODE=1 \
                $(gb_TEST_ENV_VARS) \
-               $(ICECREAM_RUN) $(gb_CppunitTest_GDBTRACE) 
$(gb_CppunitTest_VALGRINDTOOL) $(gb_CppunitTest_RR) \
+               $(ICECREAM_RUN) $(gb_PythonTest_GDBTRACE) 
$(gb_CppunitTest_VALGRINDTOOL) $(gb_CppunitTest_RR) \
                        $(gb_PythonTest_COMMAND) \
                        $(if 
$(PYTHON_TEST_NAME),$(PYTHON_TEST_NAME),$(MODULES)) \
                $(if $(gb_CppunitTest__interactive),, \
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to