diff options
author | Sean Callanan <scallanan@apple.com> | 2016-06-07 17:22:18 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2016-06-07 17:22:18 +0000 |
commit | 968bb72f5869fe524c64ab520f66b05a57c3f561 (patch) | |
tree | 432e3778b2d3a4fbfbb5202c91bd9ebad8edecc8 /lldb/packages/Python/lldbsuite/test/lldbinline.py | |
parent | 486f49cc63fa593bbc29817dba9f375b6aeb7e3c (diff) | |
download | bcm5719-llvm-968bb72f5869fe524c64ab520f66b05a57c3f561.tar.gz bcm5719-llvm-968bb72f5869fe524c64ab520f66b05a57c3f561.zip |
Make lldbinline.py regenerate the Makefile each time it builds.
If a lldbinline test's source file changed language, then the Makefile wasn't
updated. This was a problem if the Makefile was checked into the repository.
Now lldbinline.py always regenerates the Makefile and asserts if the
newly-generated version is not the same as the one already there. This ensures
that the repository will never be out of date without a buildbot failing.
http://reviews.llvm.org/D21032
llvm-svn: 272024
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lldbinline.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lldbinline.py | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbinline.py b/lldb/packages/Python/lldbsuite/test/lldbinline.py index 6a61b2eaf55..8d619cf829d 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbinline.py +++ b/lldb/packages/Python/lldbsuite/test/lldbinline.py @@ -2,7 +2,9 @@ from __future__ import print_function from __future__ import absolute_import # System modules +import filecmp import os +import sys # Third-party modules @@ -89,9 +91,6 @@ class InlineTest(TestBase): return "-N dsym %s" % (self.mydir) def BuildMakefile(self): - if os.path.exists("Makefile"): - return - categories = {} for f in os.listdir(os.getcwd()): @@ -102,7 +101,7 @@ class InlineTest(TestBase): else: categories[t] = [f] - makefile = open("Makefile", 'w+') + makefile = open("Makefile.tmp", 'w+') level = os.sep.join([".."] * len(self.mydir.split(os.sep))) + os.sep + "make" @@ -118,11 +117,26 @@ class InlineTest(TestBase): if ('CXX_SOURCES' in list(categories.keys())): makefile.write("CXXFLAGS += -std=c++11\n") - makefile.write("include $(LEVEL)/Makefile.rules\n") + # clang-3.5+ outputs FullDebugInfo by default for Darwin/FreeBSD + # targets. Other targets do not, which causes this test to fail. + # This flag enables FullDebugInfo for all targets. + + makefile.write("ifneq (,$(findstring clang,$(CC)))\n") + makefile.write(" CFLAGS_EXTRAS += -fno-limit-debug-info\n") + makefile.write("endif\n\n") + + makefile.write("include $(LEVEL)/Makefile.rules\n\n") + makefile.write("\ncleanup:\n\trm -f Makefile *.d\n\n") makefile.flush() makefile.close() + if os.path.exists("Makefile"): + if not filecmp.cmp("Makefile", "Makefile.tmp"): + sys.exit("Existing Makefile doesn't match generated Makefile!") + + os.rename("Makefile.tmp", "Makefile") + @skipUnlessDarwin def __test_with_dsym(self): self.using_dsym = True |