diff --git a/Tests/Info.plist b/Tests/Info.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/Tests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift new file mode 100644 index 0000000..1e0cffe --- /dev/null +++ b/Tests/LinuxMain.swift @@ -0,0 +1,33 @@ +// +// LinuxMain.swift +// UnreachableTests +// +// The MIT License (MIT) +// +// Copyright (c) 2017 Nikolai Vazquez +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import XCTest +@testable import UnreachableTests + +XCTMain([ + testCase(UnreachableTests.allTests), +]) diff --git a/Tests/UnreachableTests/UnreachableTests.swift b/Tests/UnreachableTests/UnreachableTests.swift new file mode 100644 index 0000000..44f1968 --- /dev/null +++ b/Tests/UnreachableTests/UnreachableTests.swift @@ -0,0 +1,60 @@ +// +// UnreachableTests.swift +// UnreachableTests +// +// The MIT License (MIT) +// +// Copyright (c) 2017 Nikolai Vazquez +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import XCTest +import Unreachable + +struct Incrementor: IteratorProtocol, Sequence { + var value: UInt + + mutating func next() -> UInt? { + defer { value += 1 } + return value + } +} + +class UnreachableTests: XCTestCase { + + static let allTests = [ + ("testLoop", testLoop) + ] + + func testLoop() { + func helper(_ x: UInt) -> UInt { + for i in Incrementor(value: 0) { + if i == x { + return i + } + } + // Fails to compile without this. + unreachable() + } + let x: UInt = 20 + XCTAssertEqual(helper(x), x) + } + +} diff --git a/Unreachable.xcodeproj/project.pbxproj b/Unreachable.xcodeproj/project.pbxproj index 449f64d..1efdb37 100644 --- a/Unreachable.xcodeproj/project.pbxproj +++ b/Unreachable.xcodeproj/project.pbxproj @@ -11,8 +11,38 @@ 52D67CA01F096FCB008FF44B /* Unreachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67C9E1F096FCB008FF44B /* Unreachable.swift */; }; 52D67CA11F096FCB008FF44B /* Unreachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67C9E1F096FCB008FF44B /* Unreachable.swift */; }; 52D67CA21F096FCB008FF44B /* Unreachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67C9E1F096FCB008FF44B /* Unreachable.swift */; }; + 52D67CB21F098947008FF44B /* Unreachable.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D67C6D1F096F7A008FF44B /* Unreachable.framework */; }; + 52D67CC11F098957008FF44B /* Unreachable.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D67C7B1F096F88008FF44B /* Unreachable.framework */; }; + 52D67CD01F098962008FF44B /* Unreachable.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D67C951F096F9F008FF44B /* Unreachable.framework */; }; + 52D67CDB1F098A22008FF44B /* UnreachableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67CDA1F098A1D008FF44B /* UnreachableTests.swift */; }; + 52D67CDC1F098A22008FF44B /* UnreachableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67CDA1F098A1D008FF44B /* UnreachableTests.swift */; }; + 52D67CDD1F098A23008FF44B /* UnreachableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D67CDA1F098A1D008FF44B /* UnreachableTests.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 52D67CB31F098947008FF44B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 52BC95391F096EE90088A4A2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52D67C6C1F096F79008FF44B; + remoteInfo = "Unreachable macOS"; + }; + 52D67CC21F098957008FF44B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 52BC95391F096EE90088A4A2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52D67C7A1F096F88008FF44B; + remoteInfo = "Unreachable iOS"; + }; + 52D67CD11F098962008FF44B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 52BC95391F096EE90088A4A2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52D67C941F096F9F008FF44B; + remoteInfo = "Unreachable tvOS"; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXFileReference section */ 52784F8F1F09792E0092139C /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; 52D67C6D1F096F7A008FF44B /* Unreachable.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Unreachable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -23,6 +53,12 @@ 52D67CA41F097012008FF44B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Unreachable.xcodeproj/Info.plist; sourceTree = ""; }; 52D67CA51F0970F0008FF44B /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = ""; }; 52D67CA61F0982EF008FF44B /* Unreachable.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Unreachable.playground; sourceTree = ""; }; + 52D67CAD1F098947008FF44B /* Unreachable macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Unreachable macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 52D67CBC1F098957008FF44B /* Unreachable iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Unreachable iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 52D67CCB1F098962008FF44B /* Unreachable tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Unreachable tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 52D67CD71F098A1D008FF44B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 52D67CD81F098A1D008FF44B /* LinuxMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinuxMain.swift; sourceTree = ""; }; + 52D67CDA1F098A1D008FF44B /* UnreachableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnreachableTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,6 +90,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 52D67CAA1F098947008FF44B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CB21F098947008FF44B /* Unreachable.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CB91F098957008FF44B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CC11F098957008FF44B /* Unreachable.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CC81F098962008FF44B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CD01F098962008FF44B /* Unreachable.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -62,6 +122,7 @@ children = ( 52D67C9D1F096FC1008FF44B /* Sources */, 52D67CA31F097007008FF44B /* Resources */, + 52D67CD61F098A1D008FF44B /* Tests */, 52D67C6E1F096F7A008FF44B /* Products */, 52D67CA61F0982EF008FF44B /* Unreachable.playground */, 52D67CA51F0970F0008FF44B /* LICENSE.md */, @@ -76,6 +137,9 @@ 52D67C7B1F096F88008FF44B /* Unreachable.framework */, 52D67C881F096F93008FF44B /* Unreachable.framework */, 52D67C951F096F9F008FF44B /* Unreachable.framework */, + 52D67CAD1F098947008FF44B /* Unreachable macOS Tests.xctest */, + 52D67CBC1F098957008FF44B /* Unreachable iOS Tests.xctest */, + 52D67CCB1F098962008FF44B /* Unreachable tvOS Tests.xctest */, ); name = Products; sourceTree = ""; @@ -96,6 +160,24 @@ name = Resources; sourceTree = ""; }; + 52D67CD61F098A1D008FF44B /* Tests */ = { + isa = PBXGroup; + children = ( + 52D67CD71F098A1D008FF44B /* Info.plist */, + 52D67CD81F098A1D008FF44B /* LinuxMain.swift */, + 52D67CD91F098A1D008FF44B /* UnreachableTests */, + ); + path = Tests; + sourceTree = ""; + }; + 52D67CD91F098A1D008FF44B /* UnreachableTests */ = { + isa = PBXGroup; + children = ( + 52D67CDA1F098A1D008FF44B /* UnreachableTests.swift */, + ); + path = UnreachableTests; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -202,12 +284,67 @@ productReference = 52D67C951F096F9F008FF44B /* Unreachable.framework */; productType = "com.apple.product-type.framework"; }; + 52D67CAC1F098947008FF44B /* Unreachable macOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 52D67CB71F098947008FF44B /* Build configuration list for PBXNativeTarget "Unreachable macOS Tests" */; + buildPhases = ( + 52D67CA91F098947008FF44B /* Sources */, + 52D67CAA1F098947008FF44B /* Frameworks */, + 52D67CAB1F098947008FF44B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 52D67CB41F098947008FF44B /* PBXTargetDependency */, + ); + name = "Unreachable macOS Tests"; + productName = "Unreachable macOS Tests"; + productReference = 52D67CAD1F098947008FF44B /* Unreachable macOS Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 52D67CBB1F098957008FF44B /* Unreachable iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 52D67CC41F098957008FF44B /* Build configuration list for PBXNativeTarget "Unreachable iOS Tests" */; + buildPhases = ( + 52D67CB81F098957008FF44B /* Sources */, + 52D67CB91F098957008FF44B /* Frameworks */, + 52D67CBA1F098957008FF44B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 52D67CC31F098957008FF44B /* PBXTargetDependency */, + ); + name = "Unreachable iOS Tests"; + productName = "Unreachable iOS Tests"; + productReference = 52D67CBC1F098957008FF44B /* Unreachable iOS Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 52D67CCA1F098962008FF44B /* Unreachable tvOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 52D67CD31F098962008FF44B /* Build configuration list for PBXNativeTarget "Unreachable tvOS Tests" */; + buildPhases = ( + 52D67CC71F098962008FF44B /* Sources */, + 52D67CC81F098962008FF44B /* Frameworks */, + 52D67CC91F098962008FF44B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 52D67CD21F098962008FF44B /* PBXTargetDependency */, + ); + name = "Unreachable tvOS Tests"; + productName = "Unreachable tvOS Tests"; + productReference = 52D67CCB1F098962008FF44B /* Unreachable tvOS Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 52BC95391F096EE90088A4A2 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 0830; LastUpgradeCheck = 0830; ORGANIZATIONNAME = "Nikolai Vazquez"; TargetAttributes = { @@ -231,6 +368,18 @@ LastSwiftMigration = 0830; ProvisioningStyle = Automatic; }; + 52D67CAC1F098947008FF44B = { + CreatedOnToolsVersion = 8.3.3; + ProvisioningStyle = Automatic; + }; + 52D67CBB1F098957008FF44B = { + CreatedOnToolsVersion = 8.3.3; + ProvisioningStyle = Automatic; + }; + 52D67CCA1F098962008FF44B = { + CreatedOnToolsVersion = 8.3.3; + ProvisioningStyle = Automatic; + }; }; }; buildConfigurationList = 52BC953C1F096EE90088A4A2 /* Build configuration list for PBXProject "Unreachable" */; @@ -249,6 +398,9 @@ 52D67C7A1F096F88008FF44B /* Unreachable iOS */, 52D67C871F096F93008FF44B /* Unreachable watchOS */, 52D67C941F096F9F008FF44B /* Unreachable tvOS */, + 52D67CAC1F098947008FF44B /* Unreachable macOS Tests */, + 52D67CBB1F098957008FF44B /* Unreachable iOS Tests */, + 52D67CCA1F098962008FF44B /* Unreachable tvOS Tests */, ); }; /* End PBXProject section */ @@ -282,6 +434,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 52D67CAB1F098947008FF44B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CBA1F098957008FF44B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CC91F098962008FF44B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -317,8 +490,50 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 52D67CA91F098947008FF44B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CDB1F098A22008FF44B /* UnreachableTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CB81F098957008FF44B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CDC1F098A22008FF44B /* UnreachableTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52D67CC71F098962008FF44B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52D67CDD1F098A23008FF44B /* UnreachableTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 52D67CB41F098947008FF44B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 52D67C6C1F096F79008FF44B /* Unreachable macOS */; + targetProxy = 52D67CB31F098947008FF44B /* PBXContainerItemProxy */; + }; + 52D67CC31F098957008FF44B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 52D67C7A1F096F88008FF44B /* Unreachable iOS */; + targetProxy = 52D67CC21F098957008FF44B /* PBXContainerItemProxy */; + }; + 52D67CD21F098962008FF44B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 52D67C941F096F9F008FF44B /* Unreachable tvOS */; + targetProxy = 52D67CD11F098962008FF44B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 52BC953D1F096EE90088A4A2 /* Debug */ = { isa = XCBuildConfiguration; @@ -817,6 +1032,314 @@ }; name = Release; }; + 52D67CB51F098947008FF44B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-macOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 52D67CB61F098947008FF44B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-macOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + 52D67CC51F098957008FF44B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-iOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 52D67CC61F098957008FF44B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-iOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 52D67CD41F098962008FF44B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-tvOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TVOS_DEPLOYMENT_TARGET = 10.2; + }; + name = Debug; + }; + 52D67CD51F098962008FF44B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.nikolaivazquez.Unreachable-tvOS-Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + TVOS_DEPLOYMENT_TARGET = 10.2; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -865,6 +1388,33 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 52D67CB71F098947008FF44B /* Build configuration list for PBXNativeTarget "Unreachable macOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52D67CB51F098947008FF44B /* Debug */, + 52D67CB61F098947008FF44B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 52D67CC41F098957008FF44B /* Build configuration list for PBXNativeTarget "Unreachable iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52D67CC51F098957008FF44B /* Debug */, + 52D67CC61F098957008FF44B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 52D67CD31F098962008FF44B /* Build configuration list for PBXNativeTarget "Unreachable tvOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52D67CD41F098962008FF44B /* Debug */, + 52D67CD51F098962008FF44B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 52BC95391F096EE90088A4A2 /* Project object */; diff --git a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable iOS.xcscheme b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable iOS.xcscheme index 5063206..9f99601 100644 --- a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable iOS.xcscheme +++ b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable iOS.xcscheme @@ -27,9 +27,29 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + + + + + + + + diff --git a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable macOS.xcscheme b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable macOS.xcscheme index df171b3..d1f79a9 100644 --- a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable macOS.xcscheme +++ b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable macOS.xcscheme @@ -27,9 +27,29 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + + + + + + + + diff --git a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable tvOS.xcscheme b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable tvOS.xcscheme index 563e6b2..17f6502 100644 --- a/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable tvOS.xcscheme +++ b/Unreachable.xcodeproj/xcshareddata/xcschemes/Unreachable tvOS.xcscheme @@ -27,9 +27,29 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + + + + + + + +