diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/macosx')
6 files changed, 66 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile b/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile new file mode 100644 index 00000000000..f035d912b10 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile @@ -0,0 +1,18 @@ +LEVEL = ../../make + +C_SOURCES := main.c +LD_EXTRAS := -L. -lfoo + +TRIPLE := x86_64-apple-ios13.0-macabi +CFLAGS_EXTRAS := -target $(TRIPLE) + +all: libfoo.dylib a.out + +lib%.dylib: %.c + $(MAKE) MAKE_DSYM=YES CC=$(CC) \ + ARCH=$(ARCH) DSYMUTIL=$(DSYMUTIL) \ + BASENAME=$(shell basename $< .c) \ + TRIPLE=x86_64-apple-macosx10.15 SDKROOT=$(SDKROOT) \ + VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/dylib.mk all + +include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py b/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py new file mode 100644 index 00000000000..23b26772554 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/TestMacABImacOSFramework.py @@ -0,0 +1,28 @@ +# TestMacABImacOSFramework.py +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +import lldbsuite.test.lldbutil as lldbutil +import os +import unittest2 + + +class TestMacABImacOSFramework(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @skipIf(macos_version=["<", "10.15"]) + @skipUnlessDarwin + @skipIfDarwinEmbedded + # There is a Clang driver change missing on llvm.org. + @expectedFailureAll(bugnumber="rdar://problem/54986190>") + def test_macabi(self): + """Test the x86_64-apple-ios-macabi target linked against a macos dylib""" + self.build() + lldbutil.run_to_source_breakpoint(self, "break here", + lldb.SBFileSpec('main.c')) + self.expect("image list -t -b", + patterns=["x86_64.*-apple-ios.*-macabi a\.out", + "x86_64.*-apple-macosx.* libfoo.dylib[^(]"]) + self.expect("fr v s", "Hello MacABI") + self.expect("p s", "Hello MacABI") diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk b/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk new file mode 100644 index 00000000000..6f2c17adbf0 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk @@ -0,0 +1,6 @@ +LEVEL = ../../make +DYLIB_ONLY := YES +DYLIB_NAME := $(BASENAME) +DYLIB_C_SOURCES := $(DYLIB_NAME).c + +include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c new file mode 100644 index 00000000000..9c29d590f26 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.c @@ -0,0 +1,8 @@ +#include "foo.h" + +void stop() {} + +int foo() { + stop(); + return 0; +} diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h new file mode 100644 index 00000000000..5d5f8f0c9e7 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/foo.h @@ -0,0 +1 @@ +int foo(); diff --git a/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c b/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c new file mode 100644 index 00000000000..92069d902fd --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/macosx/macabi/main.c @@ -0,0 +1,5 @@ +#include "foo.h" +int main() { + const char *s = "Hello MacABI!"; + return foo(); // break here +} |