diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:36 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:36 +0000 |
commit | ef5d0b5e97ec8e6fa395d377b09aa7755e345b4f (patch) | |
tree | 27916256fdeeb57d10d2f3d6948be5d71a703215 /packages/Python/lldbsuite/test/lang/objc | |
parent | 76e0736e7fcfeb179779e49c05604464b1ccd704 (diff) |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/objc')
12 files changed, 61 insertions, 82 deletions
diff --git a/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile b/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile index 3d24348618da9..2d6de6f1514b5 100644 --- a/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile +++ b/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile @@ -1,6 +1,20 @@ LEVEL = ../../../make -CFLAGS = -g -O0 +CC ?= clang +ifeq "$(ARCH)" "" + ARCH = x86_64 +endif + +ifeq "$(OS)" "" + OS = $(shell uname -s) +endif + +CFLAGS ?= -g -O0 + +ifeq "$(OS)" "Darwin" + CFLAGS += -arch $(ARCH) +endif + LDFLAGS = $(CFLAGS) -lobjc -framework Foundation all: a.out libTest.dylib libTestExt.dylib diff --git a/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py b/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py index 564a1e15c06c0..df3a41fedf608 100644 --- a/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py +++ b/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestConflictingDefinition.py @@ -21,6 +21,7 @@ class TestRealDefinition(TestBase): if self.getArchitecture() == 'i386': self.skipTest("requires modern objc runtime") self.build() + self.shlib_names = ["libTestExt.dylib", "libTest.dylib"] self.common_setup() line = line_number('TestExt/TestExt.m', '// break here') @@ -46,4 +47,7 @@ class TestRealDefinition(TestBase): def common_setup(self): exe = os.path.join(os.getcwd(), "a.out") + target = self.dbg.CreateTarget(exe) + self.registerSharedLibrariesWithTarget(target, self.shlib_names) + self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) diff --git a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile index 329ceabeea97d..bd940ab148c98 100644 --- a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile +++ b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile @@ -1,12 +1,28 @@ LEVEL = ../../../make -myclass.o: myclass.h myclass.m - $(CC) myclass.m -c -o myclass.o +CC ?= clang +ifeq "$(ARCH)" "" + ARCH = x86_64 +endif -repro: myclass.o repro.m - $(CC) -g -O0 myclass.o repro.m -framework Foundation +ifeq "$(OS)" "" + OS = $(shell uname -s) +endif -cleanup: - rm -r myclass.o +CFLAGS ?= -g -O0 +CFLAGS_NO_DEBUG = +ifeq "$(OS)" "Darwin" + CFLAGS += -arch $(ARCH) + CFLAGS_NO_DEBUG += -arch $(ARCH) +endif + +all: aout + +aout: + $(CC) $(CFLAGS_NO_DEBUG) myclass.m -c -o myclass.o + $(CC) $(CFLAGS) myclass.o repro.m -framework Foundation + +clean:: + rm -f myclass.o include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py index 79b7ee5dbfb06..d29476727bd62 100644 --- a/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py +++ b/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py @@ -30,15 +30,11 @@ class ObjCiVarIMPTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) @skipUnlessDarwin + @skipIf(archs=['i386']) # objc file does not build for i386 @no_debug_info_test def test_imp_ivar_type(self): """Test that dynamically discovered ivars of type IMP do not crash LLDB""" - execute_command("make repro") - - def cleanup(): - execute_command("make cleanup") - self.addTearDownHook(cleanup) - + self.build() exe = os.path.join(os.getcwd(), "a.out") # Create a target from the debugger. diff --git a/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py b/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py index 2904621a416c3..328335dfe2c97 100644 --- a/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py +++ b/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py @@ -28,7 +28,6 @@ class ModulesInlineFunctionsTestCase(TestBase): @skipUnlessDarwin @skipIf(macos_version=["<", "10.12"]) - @expectedFailureDarwin("llvm.org/pr25743") def test_expr(self): self.build() exe = os.path.join(os.getcwd(), "a.out") diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py b/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py index 50ed2992ee799..562c0cfc1e7ab 100644 --- a/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py +++ b/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py @@ -60,5 +60,9 @@ class TestObjCClassMethod(TestBase): cmd_value = frame.EvaluateExpression( "(int)[Foo doSomethingWithString:@\"Hello\"]") + if self.TraceOn(): + if cmd_value.IsValid(): + print("cmd_value is valid") + print("cmd_value has the value %d" % cmd_value.GetValueAsUnsigned()) self.assertTrue(cmd_value.IsValid()) self.assertTrue(cmd_value.GetValueAsUnsigned() == 5) diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py index 96c5a33f14b03..84b12579166d9 100644 --- a/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py +++ b/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py @@ -47,12 +47,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=[' resolved, hit count = 1']) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_read_array(self): @@ -69,12 +63,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["foo"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_update_array(self): @@ -91,12 +79,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["bar"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_read_dictionary(self): @@ -113,12 +95,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["value"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_update_dictionary(self): @@ -135,12 +111,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["object"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_array_literal(self): @@ -155,12 +125,6 @@ class ObjCNewSyntaxTestCase(TestBase): "bar"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_dictionary_literal(self): @@ -174,12 +138,6 @@ class ObjCNewSyntaxTestCase(TestBase): "object"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_char_literal(self): @@ -189,12 +147,6 @@ class ObjCNewSyntaxTestCase(TestBase): VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord('a'))]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_integer_literals(self): @@ -226,12 +178,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["1"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_float_literal(self): @@ -241,12 +187,6 @@ class ObjCNewSyntaxTestCase(TestBase): substrs=["NSNumber", "123.45"]) @skipUnlessDarwin - @expectedFailureAll( - oslist=['macosx'], - compiler='clang', - compiler_version=[ - '<', - '7.0.0']) @skipIf(macos_version=["<", "10.12"]) @expectedFailureAll(archs=["i[3-6]86"]) def test_expressions_in_literals(self): diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py b/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py index 8516ef3281ffc..95eb6e5a212df 100644 --- a/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py +++ b/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py @@ -13,9 +13,6 @@ from lldbsuite.test import lldbutil class TestObjCStepping(TestBase): - def getCategories(self): - return ['basic_process'] - mydir = TestBase.compute_mydir(__file__) def setUp(self): @@ -35,7 +32,7 @@ class TestObjCStepping(TestBase): self.main_source, '// Step over nil should stop here.') @skipUnlessDarwin - @add_test_categories(['pyapi']) + @add_test_categories(['pyapi', 'basic_process']) def test_with_python_api(self): """Test stepping through ObjC method dispatch in various forms.""" self.build() @@ -162,6 +159,7 @@ class TestObjCStepping(TestBase): newClassName = mySource_isa.GetSummary() if self.TraceOn(): + print("className is %s, newClassName is %s" % (className, newClassName)) print(mySource_isa) self.assertTrue( diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py index 75f726340ef76..650923a729e46 100644 --- a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py +++ b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py @@ -25,6 +25,7 @@ class TestObjCStructArgument(TestBase): @skipUnlessDarwin @add_test_categories(['pyapi']) + @skipIf(debug_info=no_match(["gmodules"]), oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'arm64']) # this test program only builds for ios with -gmodules def test_with_python_api(self): """Test passing structs to Objective-C methods.""" self.build() diff --git a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m index f013c5602395e..337ab3408ce28 100644 --- a/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m +++ b/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m @@ -1,4 +1,10 @@ #import <Foundation/Foundation.h> +#include <TargetConditionals.h> + +#if TARGET_OS_IPHONE +@import CoreGraphics; +typedef CGRect NSRect; +#endif struct things_to_sum { int a; diff --git a/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py b/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py index 26afe71d1de9b..d1956d46e7b6a 100644 --- a/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py +++ b/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py @@ -46,13 +46,13 @@ class Rdar10967107TestCase(TestBase): self.runCmd("run", RUN_SUCCEEDED) # check that we correctly see the const char*, even with dynamic types # on - self.expect("frame variable my_string", substrs=['const char *']) + self.expect("frame variable -raw-output my_string", substrs=['const char *']) self.expect( - "frame variable my_string --dynamic-type run-target", + "frame variable my_string --raw-output --dynamic-type run-target", substrs=['const char *']) # check that expr also gets it right - self.expect("expr my_string", substrs=['const char *']) - self.expect("expr -d run -- my_string", substrs=['const char *']) + self.expect("e -R -- my_string", substrs=['const char *']) + self.expect("expr -R -d run -- my_string", substrs=['const char *']) # but check that we get the real Foolie as such self.expect("frame variable my_foolie", substrs=['FoolMeOnce *']) self.expect( diff --git a/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py b/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py index 97b137818a07a..54011db1a120c 100644 --- a/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py +++ b/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py @@ -27,6 +27,7 @@ class ObjCSingleEntryDictionaryTestCase(TestBase): self.line = line_number('main.m', '// break here') @skipUnlessDarwin + @expectedFailureAll(oslist=['watchos'], bugnumber="rdar://problem/34642736") # bug in NSDictionary formatting on watchos def test_single_entry_dict(self): self.build() exe = os.path.join(os.getcwd(), "a.out") |