[Lldb-commits] [lldb] r323450 - Use test-specific module caches to avoid stale header conflicts

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Thu Jan 25 12:40:57 PST 2018


The bot started failing recently, and this commit seems the most likely culprit.

http://lab.llvm.org:8080/green/view/LLDB/job/lldb-xcode/4513/


Can you please take a look, Vedant?

Thanks,

--
Davide

On Thu, Jan 25, 2018 at 10:01 AM, Vedant Kumar via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
> Author: vedantk
> Date: Thu Jan 25 10:01:27 2018
> New Revision: 323450
>
> URL: http://llvm.org/viewvc/llvm-project?rev=323450&view=rev
> Log:
> Use test-specific module caches to avoid stale header conflicts
>
> Stale global module caches cause problems for the bots. The modules
> become invalid when clang headers are updated by version control, and
> tests which use these modules fail to compile, e.g:
>
>   fatal error: file '.../__stddef_max_align_t.h' has been modified since the module file '/var/.../Darwin.pcm' was built
>   note: please rebuild precompiled header '/var/.../Darwin.pcm'
>
> Eventually we should transition to having just a single module cache to speed
> tests up. This patch should be just enough to fix the spurious bot failures due
> to stale caches.
>
> rdar://36479805, also related to llvm.org/PR36048
>
> Differential Revision: https://reviews.llvm.org/D42277
>
> Modified:
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/Makefile
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/Makefile
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/Makefile
>     lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
>     lldb/trunk/packages/Python/lldbsuite/test/make/Makefile.rules
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py Thu Jan 25 10:01:27 2018
> @@ -26,6 +26,8 @@ class CppDataFormatterTestCase(TestBase)
>      @expectedFailureAll(
>          oslist=["windows"],
>          bugnumber="llvm.org/pr24462: Data formatters have problems on Windows")
> +    @skipIf(debug_info="gmodules",
> +            bugnumber="https://bugs.llvm.org/show_bug.cgi?id=36048")
>      def test_with_run_command(self):
>          """Test that that file and class static variables display correctly."""
>          self.build()
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py Thu Jan 25 10:01:27 2018
> @@ -9,6 +9,7 @@ import os
>  import time
>  import lldb
>  from lldbsuite.test.lldbtest import *
> +from lldbsuite.test.decorators import *
>  import lldbsuite.test.lldbutil as lldbutil
>
>
> @@ -22,6 +23,8 @@ class GlobalsDataFormatterTestCase(TestB
>          # Find the line number to break at.
>          self.line = line_number('main.cpp', '// Set break point at this line.')
>
> +    @skipIf(debug_info="gmodules",
> +            bugnumber="https://bugs.llvm.org/show_bug.cgi?id=36048")
>      def test_with_run_command(self):
>          """Test that that file and class static variables display correctly."""
>          self.build()
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py Thu Jan 25 10:01:27 2018
> @@ -31,6 +31,8 @@ class LibcxxListDataFormatterTestCase(Te
>                                   '// Set fourth break point at this line.')
>
>      @add_test_categories(["libc++"])
> +    @skipIf(debug_info="gmodules",
> +            bugnumber="https://bugs.llvm.org/show_bug.cgi?id=36048")
>      def test_with_run_command(self):
>          """Test that that file and class static variables display correctly."""
>          self.build()
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py Thu Jan 25 10:01:27 2018
> @@ -18,6 +18,8 @@ class LibcxxVectorDataFormatterTestCase(
>      mydir = TestBase.compute_mydir(__file__)
>
>      @add_test_categories(["libc++"])
> +    @skipIf(debug_info="gmodules",
> +            bugnumber="https://bugs.llvm.org/show_bug.cgi?id=36048")
>      def test_with_run_command(self):
>          """Test that that file and class static variables display correctly."""
>          self.build()
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/Makefile
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/Makefile?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/Makefile (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/Makefile Thu Jan 25 10:01:27 2018
> @@ -1,6 +1,6 @@
>  LEVEL = ../../../make
>  OBJC_SOURCES := main.m
>
> -CFLAGS += -fmodules -gmodules -g
> +CFLAGS += $(MANDATORY_MODULE_BUILD_CFLAGS)
>
>  include $(LEVEL)/Makefile.rules
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py Thu Jan 25 10:01:27 2018
> @@ -26,7 +26,7 @@ class ObjCModulesAutoImportTestCase(Test
>          self.line = line_number('main.m', '// Set breakpoint 0 here.')
>
>      @skipUnlessDarwin
> -    @skipIf(macos_version=["<", "10.12"])
> +    @skipIf(macos_version=["<", "10.12"], debug_info=no_match(["gmodules"]))
>      def test_expr(self):
>          self.build()
>          exe = self.getBuildArtifact("a.out")
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/Makefile
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/Makefile?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/Makefile (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/Makefile Thu Jan 25 10:01:27 2018
> @@ -4,5 +4,5 @@ OBJC_SOURCES := main.m myModule.m
>
>  include $(LEVEL)/Makefile.rules
>
> -CFLAGS += -fmodules -I$(PWD)
> +CFLAGS += $(MANDATORY_MODULE_BUILD_CFLAGS) -I$(PWD)
>  LDFLAGS += -framework Foundation
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py Thu Jan 25 10:01:27 2018
> @@ -24,7 +24,7 @@ class IncompleteModulesTestCase(TestBase
>
>      @skipUnlessDarwin
>      @unittest2.expectedFailure("rdar://20416388")
> -    @skipIf(macos_version=["<", "10.12"])
> +    @skipIf(macos_version=["<", "10.12"], debug_info=no_match(["gmodules"]))
>      def test_expr(self):
>          self.build()
>          exe = self.getBuildArtifact("a.out")
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/Makefile
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/Makefile?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/Makefile (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/Makefile Thu Jan 25 10:01:27 2018
> @@ -6,4 +6,4 @@ OBJC_SOURCES := main.m
>
>  include $(LEVEL)/Makefile.rules
>
> -CFLAGS += -fmodules -I$(PWD)
> +CFLAGS += $(MANDATORY_MODULE_BUILD_CFLAGS) -I$(PWD)
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py Thu Jan 25 10:01:27 2018
> @@ -27,7 +27,7 @@ class ModulesInlineFunctionsTestCase(Tes
>          self.line = line_number('main.m', '// Set breakpoint here.')
>
>      @skipUnlessDarwin
> -    @skipIf(macos_version=["<", "10.12"])
> +    @skipIf(macos_version=["<", "10.12"], debug_info=no_match(["gmodules"]))
>      def test_expr(self):
>          self.build()
>          exe = self.getBuildArtifact("a.out")
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/make/Makefile.rules
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/make/Makefile.rules?rev=323450&r1=323449&r2=323450&view=diff
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/make/Makefile.rules (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/make/Makefile.rules Thu Jan 25 10:01:27 2018
> @@ -237,13 +237,15 @@ ifeq "$(MAKE_DWO)" "YES"
>         CFLAGS += -gsplit-dwarf
>  endif
>
> +CLANG_MODULE_CACHE_DIR := module-cache
> +
> +MANDATORY_MODULE_BUILD_CFLAGS := -fmodules -gmodules -fmodules-cache-path=$(CLANG_MODULE_CACHE_DIR)
> +
>  ifeq "$(MAKE_GMODULES)" "YES"
> -       CFLAGS += -fmodules -gmodules
> +       CFLAGS += $(MANDATORY_MODULE_BUILD_CFLAGS)
>  endif
>
> -CXXFLAGS += -std=c++11
> -# FIXME: C++ modules aren't supported on all platforms.
> -CXXFLAGS += $(subst -fmodules,, $(CFLAGS))
> +CXXFLAGS += -std=c++11 $(CFLAGS)
>  LD = $(CC)
>  LDFLAGS ?= $(CFLAGS)
>  LDFLAGS += $(LD_EXTRAS) $(ARCH_LDFLAGS)
> @@ -636,7 +638,7 @@ endif
>  dsym:  $(DSYM)
>  all:   $(EXE) $(DSYM)
>  clean::
> -       $(RM) $(OBJECTS) $(PREREQS) $(PREREQS:.d=.d.tmp) $(DWOS) $(ARCHIVE_NAME) $(ARCHIVE_OBJECTS)
> +       $(RM) -rf $(OBJECTS) $(PREREQS) $(PREREQS:.d=.d.tmp) $(DWOS) $(ARCHIVE_NAME) $(ARCHIVE_OBJECTS) $(CLANG_MODULE_CACHE_DIR)
>  ifneq "$(DYLIB_NAME)" ""
>         $(RM) -r $(DYLIB_FILENAME).dSYM
>         $(RM) $(DYLIB_OBJECTS) $(DYLIB_PREREQS) $(DYLIB_PREREQS:.d=.d.tmp) $(DYLIB_DWOS) $(DYLIB_FILENAME) $(DYLIB_FILENAME).debug
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


More information about the lldb-commits mailing list