diff --git a/Foundation.xcodeproj/project.pbxproj b/Foundation.xcodeproj/project.pbxproj index 1d6cd30662..8cf9698ac2 100644 --- a/Foundation.xcodeproj/project.pbxproj +++ b/Foundation.xcodeproj/project.pbxproj @@ -310,6 +310,9 @@ 7900433B1CACD33E00ECCBF1 /* TestNSCompoundPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790043391CACD33E00ECCBF1 /* TestNSCompoundPredicate.swift */; }; 7900433C1CACD33E00ECCBF1 /* TestNSPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7900433A1CACD33E00ECCBF1 /* TestNSPredicate.swift */; }; 90E645DF1E4C89A400D0D47C /* TestNSCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90E645DE1E4C89A400D0D47C /* TestNSCache.swift */; }; + 9F0DD3521ECD73D000F68030 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0041781ECD5962004138BD /* main.swift */; }; + 9F0DD3531ECD73D200F68030 /* XDGTestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F4ADBD21ECD506E001F0B3D /* XDGTestHelper.swift */; }; + 9F0DD3571ECD783500F68030 /* SwiftFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B5D885D1BBC938800234F36 /* SwiftFoundation.framework */; }; A058C2021E529CF100B07AA1 /* TestMassFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A058C2011E529CF100B07AA1 /* TestMassFormatter.swift */; }; AE35A1861CBAC85E0042DB84 /* SwiftFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = AE35A1851CBAC85E0042DB84 /* SwiftFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; B9974B961EDF4A22007F15B8 /* TransferState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9974B8F1EDF4A22007F15B8 /* TransferState.swift */; }; @@ -760,6 +763,11 @@ 84BA558D1C16F90900F48C54 /* TestNSTimeZone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSTimeZone.swift; sourceTree = ""; }; 88D28DE61C13AE9000494606 /* TestNSGeometry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSGeometry.swift; sourceTree = ""; }; 90E645DE1E4C89A400D0D47C /* TestNSCache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSCache.swift; sourceTree = ""; }; + 9F0041781ECD5962004138BD /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 9F0DD33F1ECD734200F68030 /* xdgTestHelper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = xdgTestHelper.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F0DD34F1ECD737B00F68030 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9F4ADBB61ECD445E001F0B3D /* SymbolAliases */ = {isa = PBXFileReference; lastKnownFileType = text; path = SymbolAliases; sourceTree = ""; }; + 9F4ADBD21ECD506E001F0B3D /* XDGTestHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = XDGTestHelper.swift; path = ../XDGTestHelper.swift; sourceTree = ""; }; A058C2011E529CF100B07AA1 /* TestMassFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestMassFormatter.swift; sourceTree = ""; }; A5A34B551C18C85D00FD972B /* TestNSByteCountFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSByteCountFormatter.swift; sourceTree = ""; }; AE35A1851CBAC85E0042DB84 /* SwiftFoundation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwiftFoundation.h; sourceTree = ""; }; @@ -928,6 +936,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9F0DD33C1ECD734200F68030 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F0DD3571ECD783500F68030 /* SwiftFoundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; EA66F66C1BF56CCB00136161 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -978,6 +994,7 @@ 5BDC405C1BD6D83B00ED97BB /* TestFoundation.app */, 5B7C8A6E1BEA7F8F00C5B690 /* libCoreFoundation.a */, EA66F66F1BF56CCB00136161 /* plutil */, + 9F0DD33F1ECD734200F68030 /* xdgTestHelper.app */, ); name = Products; sourceTree = ""; @@ -1019,6 +1036,7 @@ 5B5D895B1BBDAB7E00234F36 /* CoreFoundation.h */, 5B5D88C61BBC983600234F36 /* ForFoundationOnly.h */, 5BF7AEC21BCD568D008F214A /* ForSwiftFoundationOnly.h */, + 9F4ADBB61ECD445E001F0B3D /* SymbolAliases */, EA66F6321BEECC7400136161 /* SwiftRuntime */, ); name = Base; @@ -1298,6 +1316,16 @@ path = Foundation; sourceTree = ""; }; + 9F4ADBCF1ECD4F56001F0B3D /* xdgTestHelper */ = { + isa = PBXGroup; + children = ( + 9F0DD34F1ECD737B00F68030 /* Info.plist */, + 9F4ADBD21ECD506E001F0B3D /* XDGTestHelper.swift */, + 9F0041781ECD5962004138BD /* main.swift */, + ); + path = xdgTestHelper; + sourceTree = ""; + }; E4F889331E9CF04D008A70EB /* http */ = { isa = PBXGroup; children = ( @@ -1327,6 +1355,7 @@ children = ( 1520469A1D8AEABE00D02E36 /* HTTPServer.swift */, EA66F6381BF1619600136161 /* main.swift */, + 9F4ADBCF1ECD4F56001F0B3D /* xdgTestHelper */, EA66F65A1BF1976100136161 /* Tests */, EA66F6391BF1619600136161 /* Resources */, ); @@ -1911,6 +1940,23 @@ productReference = 5BDC405C1BD6D83B00ED97BB /* TestFoundation.app */; productType = "com.apple.product-type.bundle"; }; + 9F0DD33E1ECD734200F68030 /* xdgTestHelper */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F0DD34B1ECD734200F68030 /* Build configuration list for PBXNativeTarget "xdgTestHelper" */; + buildPhases = ( + 9F0DD33B1ECD734200F68030 /* Sources */, + 9F0DD33C1ECD734200F68030 /* Frameworks */, + 9F0DD33D1ECD734200F68030 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = xdgTestHelper; + productName = xdgTestHelper; + productReference = 9F0DD33F1ECD734200F68030 /* xdgTestHelper.app */; + productType = "com.apple.product-type.application"; + }; EA66F66E1BF56CCB00136161 /* plutil */ = { isa = PBXNativeTarget; buildConfigurationList = EA66F6751BF56CCB00136161 /* Build configuration list for PBXNativeTarget "plutil" */; @@ -1934,8 +1980,8 @@ 5B5D88541BBC938800234F36 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0800; + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0830; ORGANIZATIONNAME = Apple; TargetAttributes = { 5B5D885C1BBC938800234F36 = { @@ -1955,6 +2001,10 @@ LastSwiftUpdateCheck = 0800; ProvisioningStyle = Manual; }; + 9F0DD33E1ECD734200F68030 = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + }; EA66F66E1BF56CCB00136161 = { CreatedOnToolsVersion = 7.1; LastSwiftMigration = 0800; @@ -1969,6 +2019,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 5B5D88531BBC938800234F36; productRefGroup = 5B5D885E1BBC938800234F36 /* Products */; @@ -1979,6 +2030,7 @@ 5BDC405B1BD6D83B00ED97BB /* TestFoundation */, 5B7C8A6D1BEA7F8F00C5B690 /* CoreFoundation */, EA66F66E1BF56CCB00136161 /* plutil */, + 9F0DD33E1ECD734200F68030 /* xdgTestHelper */, ); }; /* End PBXProject section */ @@ -2014,6 +2066,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9F0DD33D1ECD734200F68030 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -2343,6 +2402,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9F0DD33B1ECD734200F68030 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F0DD3521ECD73D000F68030 /* main.swift in Sources */, + 9F0DD3531ECD73D200F68030 /* XDGTestHelper.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; EA66F66B1BF56CCB00136161 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2520,7 +2588,7 @@ r, r, ); - OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -DDEPLOYMENT_RUNTIME_SWIFT -swift-version 3"; + OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -DDEPLOYMENT_RUNTIME_SWIFT -swift-version 3"; PRODUCT_BUNDLE_IDENTIFIER = org.swift.Foundation; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -2593,7 +2661,7 @@ r, r, ); - OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -DDEPLOYMENT_RUNTIME_SWIFT -swift-version 3"; + OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -DDEPLOYMENT_RUNTIME_SWIFT -swift-version 3"; PRODUCT_BUNDLE_IDENTIFIER = org.swift.Foundation; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -2636,6 +2704,8 @@ "-DCF_CHARACTERSET_UNICODE_DATA_B=\\\\\"CoreFoundation/CharacterSets/CFUnicodeData-B.mapping\\\\\"", "-DCF_CHARACTERSET_UNICHAR_DB=\\\\\"CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data\\\\\"", "-DCF_CHARACTERSET_BITMAP=\\\\\"CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap\\\\\"", + "-Wno-nullability-completeness-on-arrays", + "-Wno-format-security", ); PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/CoreFoundation; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2676,6 +2746,8 @@ "-DCF_CHARACTERSET_UNICODE_DATA_B=\\\\\"CoreFoundation/CharacterSets/CFUnicodeData-B.mapping\\\\\"", "-DCF_CHARACTERSET_UNICHAR_DB=\\\\\"CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data\\\\\"", "-DCF_CHARACTERSET_BITMAP=\\\\\"CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap\\\\\"", + "-Wno-nullability-completeness-on-arrays", + "-Wno-format-security", ); PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/CoreFoundation; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2697,8 +2769,9 @@ ); INFOPLIST_FILE = TestFoundation/Resources/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + LIBRARY_SEARCH_PATHS = "$(inherited)"; MACH_O_TYPE = mh_execute; - OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -swift-version 3"; + OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -swift-version 3"; PRODUCT_BUNDLE_IDENTIFIER = org.swift.TestFoundation; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -2721,8 +2794,9 @@ ); INFOPLIST_FILE = TestFoundation/Resources/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + LIBRARY_SEARCH_PATHS = "$(inherited)"; MACH_O_TYPE = mh_execute; - OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -swift-version 3"; + OTHER_SWIFT_FLAGS = "-DDEPLOYMENT_ENABLE_LIBDISPATCH -swift-version 3"; PRODUCT_BUNDLE_IDENTIFIER = org.swift.TestFoundation; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -2731,6 +2805,48 @@ }; name = Release; }; + 9F0DD34C1ECD734200F68030 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = TestFoundation/xdgTestHelper/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../../.. @loader_path/../../.. @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + PRODUCT_BUNDLE_IDENTIFIER = org.swift.xdgTestHelper; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 9F0DD34D1ECD734200F68030 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = TestFoundation/xdgTestHelper/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../../.. @loader_path/../../.. @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.12; + PRODUCT_BUNDLE_IDENTIFIER = org.swift.xdgTestHelper; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; EA66F6731BF56CCB00136161 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2793,6 +2909,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9F0DD34B1ECD734200F68030 /* Build configuration list for PBXNativeTarget "xdgTestHelper" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F0DD34C1ECD734200F68030 /* Debug */, + 9F0DD34D1ECD734200F68030 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; EA66F6751BF56CCB00136161 /* Build configuration list for PBXNativeTarget "plutil" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Foundation.xcodeproj/xcshareddata/xcschemes/CoreFoundation.xcscheme b/Foundation.xcodeproj/xcshareddata/xcschemes/CoreFoundation.xcscheme index ddcbfc7ff2..f1db99b4a5 100644 --- a/Foundation.xcodeproj/xcshareddata/xcschemes/CoreFoundation.xcscheme +++ b/Foundation.xcodeproj/xcshareddata/xcschemes/CoreFoundation.xcscheme @@ -1,6 +1,6 @@ + + + + Never { + let storage = HTTPCookieStorage.shared + let properties = [ + HTTPCookiePropertyKey.name: "TestCookie", + HTTPCookiePropertyKey.value: "Test @#$%^$&*99", + HTTPCookiePropertyKey.path: "/", + HTTPCookiePropertyKey.domain: "example.com", + ] + let simpleCookie = HTTPCookie(properties: properties) + guard simpleCookie != nil else { + exit(HelperCheckStatus.cookieStorageNil.rawValue) + } + let rawValue = getenv("XDG_CONFIG_HOME") + guard rawValue != nil else { + exit(HelperCheckStatus.fail.rawValue) + } + let xdg_config_home = String(utf8String: rawValue!) + storage.setCookie(simpleCookie!) + let fm = FileManager.default + let destPath = xdg_config_home! + "/.cookies.shared" + var isDir = false + let exists = fm.fileExists(atPath: destPath, isDirectory: &isDir) + if (!exists) { + exit(HelperCheckStatus.cookieStorePathWrong.rawValue) + } + exit(HelperCheckStatus.ok.rawValue) + } +} diff --git a/TestFoundation/xdgTestHelper/Info.plist b/TestFoundation/xdgTestHelper/Info.plist new file mode 100644 index 0000000000..506785aede --- /dev/null +++ b/TestFoundation/xdgTestHelper/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + xdgTestHelper + CFBundleIdentifier + org.swift.xdgTestHelper + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + TestFoundation + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright (c) 2017 Swift project authors + + diff --git a/TestFoundation/xdgTestHelper/main.swift b/TestFoundation/xdgTestHelper/main.swift new file mode 100644 index 0000000000..19b12fda60 --- /dev/null +++ b/TestFoundation/xdgTestHelper/main.swift @@ -0,0 +1,29 @@ +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2017 Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See http://swift.org/LICENSE.txt for license information +// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// + +#if os(Linux) + import Foundation +#else + import SwiftFoundation +#endif + +enum HelperCheckStatus : Int32 { + case ok = 0 + case fail = 1 + case cookieStorageNil = 20 + case cookieStorePathWrong +} + +protocol HelperCheck { + + static func run() -> Never +} + +XDGCheck.run() + diff --git a/build.py b/build.py index c98850c064..5c1e6d3e32 100644 --- a/build.py +++ b/build.py @@ -492,7 +492,9 @@ Configuration.current.extra_ld_flags += ' -L'+Configuration.current.variables["LIBDISPATCH_BUILD_DIR"]+'/src/.libs' foundation_tests.add_dependency(foundation_tests_resources) -xdgTestHelper = SwiftExecutable('xdgTestHelper', ['TestFoundation/XDGTestHelper.swift']) +xdgTestHelper = SwiftExecutable('xdgTestHelper', + ['TestFoundation/xdgTestHelper/main.swift', + 'TestFoundation/XDGTestHelper.swift']) foundation_tests.add_dependency(xdgTestHelper) foundation.add_phase(xdgTestHelper) foundation.add_phase(foundation_tests_resources)