Massive test suite cleanup to stop everyone from manually having to compute "mydir" inside each test case.
This has led to many test suite failures because of copy and paste where new test cases were based off of other test cases and the "mydir" variable wasn't updated.
Now you can call your superclasses "compute_mydir()" function with "__file__" as the sole argument and the relative path will be computed for you.
llvm-svn: 196985
diff --git a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
index 0213c46..40d7bfc 100644
--- a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
+++ b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
@@ -8,7 +8,7 @@
class TestObjCIvarsInBlocks(TestBase):
- mydir = os.path.join("lang", "objc", "blocks")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
# This test requires the 2.0 runtime, so it will fail on i386.
diff --git a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
index 24ede4c..abcddae 100644
--- a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
+++ b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
@@ -8,7 +8,7 @@
class ForwardDeclTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "forward-decl")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@dsym_test
diff --git a/lldb/test/lang/objc/foundation/TestConstStrings.py b/lldb/test/lang/objc/foundation/TestConstStrings.py
index e19d09e..cafea53 100644
--- a/lldb/test/lang/objc/foundation/TestConstStrings.py
+++ b/lldb/test/lang/objc/foundation/TestConstStrings.py
@@ -12,7 +12,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class ConstStringTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
d = {'OBJC_SOURCES': 'const-strings.m'}
@dsym_test
diff --git a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
index 11dda65..b067640 100644
--- a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
+++ b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class FoundationDisassembleTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
# rdar://problem/8504895
# Crash while doing 'disassemble -n "-[NSNumber descriptionWithLocale:]"
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods.py b/lldb/test/lang/objc/foundation/TestObjCMethods.py
index 380c448..67c96c1 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods.py
@@ -12,7 +12,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class FoundationTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_break_with_dsym(self):
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods2.py b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
index 37e3f1e..3385a0f 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods2.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class FoundationTestCase2(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_more_expr_commands_with_dsym(self):
diff --git a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
index 1c42553..09a03d4 100644
--- a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -10,7 +10,7 @@
class ObjectDescriptionAPITestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
# rdar://problem/10857337
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
diff --git a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
index dbdd82f..0cfa89b 100644
--- a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
+++ b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class RuntimeTypesTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_break_with_dsym(self):
diff --git a/lldb/test/lang/objc/foundation/TestSymbolTable.py b/lldb/test/lang/objc/foundation/TestSymbolTable.py
index c41874a..28b5f73 100644
--- a/lldb/test/lang/objc/foundation/TestSymbolTable.py
+++ b/lldb/test/lang/objc/foundation/TestSymbolTable.py
@@ -10,7 +10,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class FoundationSymtabTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "foundation")
+ mydir = TestBase.compute_mydir(__file__)
symbols_list = ['-[MyString initWithNSString:]',
'-[MyString dealloc]',
diff --git a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index 1f50de9..f8a768c 100644
--- a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -8,7 +8,7 @@
class HiddenIvarsTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "hidden-ivars")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@dsym_test
diff --git a/lldb/test/lang/objc/objc++/TestObjCXX.py b/lldb/test/lang/objc/objc++/TestObjCXX.py
index 484d729..0658b84 100644
--- a/lldb/test/lang/objc/objc++/TestObjCXX.py
+++ b/lldb/test/lang/objc/objc++/TestObjCXX.py
@@ -10,7 +10,7 @@
class ObjCXXTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc++")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_break_with_dsym(self):
diff --git a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
index 0a98469..6aca65b 100644
--- a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
+++ b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
@@ -10,7 +10,7 @@
class ObjCDynamicValueTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-baseclass-sbtype")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
index e0ebee67..b43ad7a 100644
--- a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
+++ b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -8,7 +8,7 @@
class TestObjCBuiltinTypes(TestBase):
- mydir = os.path.join("lang", "objc", "objc-builtin-types")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
index fd3d76c..28659ff 100644
--- a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
+++ b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
@@ -10,7 +10,7 @@
class ObjCCheckerTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-checker")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
index c158385..9fc2721 100644
--- a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
+++ b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
@@ -8,7 +8,7 @@
class TestObjCClassMethod(TestBase):
- mydir = os.path.join("lang", "objc", "objc-class-method")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
index 3d14339..335aab3 100644
--- a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class ObjCDynamicSBTypeTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-dyn-sbtype")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
@skipIfi386
diff --git a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
index bd77aa3..e679ca2 100644
--- a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -10,7 +10,7 @@
class ObjCDynamicValueTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-dynamic-value")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
index b4d7137..1df069f 100644
--- a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
+++ b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
@@ -8,7 +8,7 @@
class TestObjCIvarOffsets(TestBase):
- mydir = os.path.join("lang", "objc", "objc-ivar-offsets")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
index fef0921..3a116bb 100644
--- a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
+++ b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
@@ -8,7 +8,7 @@
class TestObjCIvarStripped(TestBase):
- mydir = os.path.join("lang", "objc", "objc-ivar-stripped")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
index 2f1f5b0..b3dcafc 100644
--- a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
+++ b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
@@ -12,7 +12,7 @@
class ObjCNewSyntaxTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-new-syntax")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.expectedFailure
@dsym_test
diff --git a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
index a7a9d23..55127c3 100644
--- a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
+++ b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
@@ -19,7 +19,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class ObjcOptimizedTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-optimized")
+ mydir = TestBase.compute_mydir(__file__)
myclass = "MyClass"
mymethod = "description"
method_spec = "-[%s %s]" % (myclass, mymethod)
diff --git a/lldb/test/lang/objc/objc-property/TestObjCProperty.py b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
index dadb7fa..2a2bd01 100644
--- a/lldb/test/lang/objc/objc-property/TestObjCProperty.py
+++ b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
@@ -10,7 +10,7 @@
class ObjCPropertyTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "objc-property")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
index bf7e059..c14432c 100644
--- a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
+++ b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
@@ -8,7 +8,7 @@
class TestObjCStaticMethodStripped(TestBase):
- mydir = os.path.join("lang", "objc", "objc-static-method-stripped")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
index 3196830..a898631 100644
--- a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
+++ b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
@@ -8,7 +8,7 @@
class TestObjCStaticMethod(TestBase):
- mydir = os.path.join("lang", "objc", "objc-static-method")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
index 48900d2..8bee8c0 100644
--- a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
+++ b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
@@ -11,7 +11,7 @@
def getCategories (self):
return ['basic_process']
- mydir = os.path.join("lang", "objc", "objc-stepping")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
diff --git a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
index 788310b..8490d1c 100644
--- a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
+++ b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
@@ -8,7 +8,7 @@
class TestObjCClassMethod(TestBase):
- mydir = os.path.join("lang", "objc", "objc-class-method")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
@@ -30,7 +30,7 @@
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers to break inside main().
- self.main_source = "class.m"
+ self.main_source = "test.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
def objc_class_method(self):
diff --git a/lldb/test/lang/objc/objc-super/TestObjCSuper.py b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
index 746e29c..15b5218 100644
--- a/lldb/test/lang/objc/objc-super/TestObjCSuper.py
+++ b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
@@ -8,7 +8,7 @@
class TestObjCSuperMethod(TestBase):
- mydir = os.path.join("lang", "objc", "objc-super")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@expectedFailurei386
diff --git a/lldb/test/lang/objc/print-obj/TestPrintObj.py b/lldb/test/lang/objc/print-obj/TestPrintObj.py
index 66b5958..acd4f7d 100644
--- a/lldb/test/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/test/lang/objc/print-obj/TestPrintObj.py
@@ -10,7 +10,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class PrintObjTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "print-obj")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_print_obj_with_dsym(self):
diff --git a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
index 8f48196..20aecde 100644
--- a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class MethodReturningBOOLTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "radar-9691614")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_method_ret_BOOL_with_dsym(self):
diff --git a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
index 15e843b..ecc80eb 100644
--- a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
+++ b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class Rdar10967107TestCase(TestBase):
- mydir = os.path.join("lang", "objc", "rdar-10967107")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_cfrange_diff_cfgregoriandate_with_dsym(self):
diff --git a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
index 1dbf680..165948d 100644
--- a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
+++ b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class Rdar10967107TestCase(TestBase):
- mydir = os.path.join("lang", "objc", "rdar-11355592")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_charstar_dyntype_with_dsym(self):
diff --git a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
index 7f88424..caae896 100644
--- a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
+++ b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -11,7 +11,7 @@
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
class Rdar12408181TestCase(TestBase):
- mydir = os.path.join("lang", "objc", "rdar-12408181")
+ mydir = TestBase.compute_mydir(__file__)
@dsym_test
def test_nswindow_count_with_dsym(self):
diff --git a/lldb/test/lang/objc/real-definition/TestRealDefinition.py b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
index 8530f35..dd476fc 100644
--- a/lldb/test/lang/objc/real-definition/TestRealDefinition.py
+++ b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
@@ -8,7 +8,7 @@
class TestRealDefinition(TestBase):
- mydir = os.path.join("lang", "objc", "real-definition")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@dsym_test
diff --git a/lldb/test/lang/objc/self/TestObjCSelf.py b/lldb/test/lang/objc/self/TestObjCSelf.py
index e7733ab..cc58bf2 100644
--- a/lldb/test/lang/objc/self/TestObjCSelf.py
+++ b/lldb/test/lang/objc/self/TestObjCSelf.py
@@ -7,7 +7,7 @@
class ObjCSelfTestCase(TestBase):
- mydir = os.path.join("lang", "objc", "self")
+ mydir = TestBase.compute_mydir(__file__)
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@dsym_test