Skip to content

Commit

Permalink
Move sourcekit-lsp off of SwiftPM's POSIX
Browse files Browse the repository at this point in the history
SwiftPM's POSIX is going removed soon in order to make it more
cross-platform. This removes all usage of POSIX from sourcekit-lsp.

<rdar://problem/49198341> Move sourcekit-lsp off of SwiftPM's POSIX
  • Loading branch information
aciidgh committed Mar 25, 2019
1 parent 8fc6030 commit 5afd361
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ Package.resolved
/*.xcodeproj
/*.sublime-project
/*.sublime-workspace
/.swiftpm
7 changes: 3 additions & 4 deletions Sources/SKCore/ToolchainRegistry.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import SKSupport
import Basic
import SPMUtility
import Dispatch
import POSIX
import Foundation

/// Set of known toolchains.
Expand Down Expand Up @@ -43,7 +42,7 @@ public final class ToolchainRegistry {

/// The currently selected toolchain identifier on Darwin.
public internal(set) lazy var darwinToolchainOverride: String? = {
if let id = getenv("TOOLCHAINS"), !id.isEmpty, id != "default" {
if let id = ProcessEnv.vars["TOOLCHAINS"], !id.isEmpty, id != "default" {
return id
}
return nil
Expand Down Expand Up @@ -278,7 +277,7 @@ extension ToolchainRegistry {
{
var shouldSetDefault = setDefault
for envVar in environmentVariables {
if let pathStr = getenv(envVar),
if let pathStr = ProcessEnv.vars[envVar],
let path = try? AbsolutePath(validating: pathStr),
let toolchain = try? _registerToolchain(path, fileSystem),
shouldSetDefault
Expand All @@ -301,7 +300,7 @@ extension ToolchainRegistry {

func _scanForToolchains(pathVariables: [String], _ fileSystem: FileSystem) {
pathVariables.lazy.flatMap { envVar in
getEnvSearchPaths(pathString: getenv(envVar), currentWorkingDirectory: nil)
getEnvSearchPaths(pathString: ProcessEnv.vars[envVar], currentWorkingDirectory: nil)
}
.forEach { path in
_ = try? _registerToolchain(path, fileSystem)
Expand Down
11 changes: 5 additions & 6 deletions Tests/SKCoreTests/ToolchainRegistryTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import Basic
import SPMUtility
import XCTest
import POSIX

final class ToolchainRegistryTests: XCTestCase {
func testDefaultBasic() {
Expand Down Expand Up @@ -186,8 +185,8 @@ final class ToolchainRegistryTests: XCTestCase {
XCTAssertNil(tr.default)
XCTAssert(tr.toolchains.isEmpty)

try! setenv("SOURCEKIT_PATH", value: "/bogus:\(binPath):/bogus2")
defer { try! setenv("SOURCEKIT_PATH", value: "") }
try! ProcessEnv.setVar("SOURCEKIT_PATH", value: "/bogus:\(binPath):/bogus2")
defer { try! ProcessEnv.setVar("SOURCEKIT_PATH", value: "") }

tr.scanForToolchains(fs)

Expand All @@ -205,7 +204,7 @@ final class ToolchainRegistryTests: XCTestCase {
XCTAssertNil(tc.libIndexStore)

let binPath2 = AbsolutePath("/other/my_toolchain/bin")
try! setenv("SOME_TEST_ENV_PATH", value: "/bogus:\(binPath2):/bogus2")
try! ProcessEnv.setVar("SOME_TEST_ENV_PATH", value: "/bogus:\(binPath2):/bogus2")
makeToolchain(binPath: binPath2, fs, sourcekitd: true)
tr.scanForToolchains(pathVariables: ["NOPE", "SOME_TEST_ENV_PATH", "MORE_NOPE"], fs)

Expand All @@ -228,7 +227,7 @@ final class ToolchainRegistryTests: XCTestCase {
XCTAssertNil(tr.default)
XCTAssert(tr.toolchains.isEmpty)

try! setenv("TEST_SOURCEKIT_TOOLCHAIN_PATH_1", value: binPath.parentDirectory.pathString)
try! ProcessEnv.setVar("TEST_SOURCEKIT_TOOLCHAIN_PATH_1", value: binPath.parentDirectory.pathString)

tr.scanForToolchains(environmentVariables: ["TEST_SOURCEKIT_TOOLCHAIN_PATH_1"], fs)

Expand All @@ -255,7 +254,7 @@ final class ToolchainRegistryTests: XCTestCase {
XCTAssertNil(tr.default)
XCTAssert(tr.toolchains.isEmpty)

try! setenv("TEST_ENV_SOURCEKIT_TOOLCHAIN_PATH_2", value: binPath.parentDirectory.pathString)
try! ProcessEnv.setVar("TEST_ENV_SOURCEKIT_TOOLCHAIN_PATH_2", value: binPath.parentDirectory.pathString)

tr.scanForToolchains(
environmentVariables: ["TEST_ENV_SOURCEKIT_TOOLCHAIN_PATH_2"],
Expand Down
1 change: 0 additions & 1 deletion Tests/SKSupportTests/SupportPerfTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
@testable import SKSupport
import SKTestSupport
import Basic
import POSIX
import XCTest

final class SupportPerfTests: PerfTestCase {
Expand Down
19 changes: 9 additions & 10 deletions Tests/SKSupportTests/SupportTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import XCTest
@testable import SKSupport
import Basic
import POSIX

final class SupportTests: XCTestCase {

Expand Down Expand Up @@ -184,8 +183,8 @@ final class SupportTests: XCTestCase {

testLogger.currentLevel = .default

try! setenv("TEST_ENV_LOGGGING_1", value: "1")
try! setenv("TEST_ENV_LOGGGING_0", value: "0")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_1", value: "1")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_0", value: "0")
// .warning
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_1")

Expand Down Expand Up @@ -221,7 +220,7 @@ final class SupportTests: XCTestCase {
])

// invalid - no change
try! setenv("TEST_ENV_LOGGGING_err", value: "")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_err", value: "")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_err")

log("d", level: .error)
Expand All @@ -233,7 +232,7 @@ final class SupportTests: XCTestCase {
])

// invalid - no change
try! setenv("TEST_ENV_LOGGGING_err", value: "a3")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_err", value: "a3")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_err")

log("d", level: .error)
Expand All @@ -245,7 +244,7 @@ final class SupportTests: XCTestCase {
])

// too high - max out at .debug
try! setenv("TEST_ENV_LOGGGING_err", value: "1000")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_err", value: "1000")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_err")

log("d", level: .error)
Expand All @@ -260,16 +259,16 @@ final class SupportTests: XCTestCase {
])

// By string.
try! setenv("TEST_ENV_LOGGGING_string", value: "error")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_string", value: "error")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_string")
XCTAssertEqual(testLogger.currentLevel, .error)
try! setenv("TEST_ENV_LOGGGING_string", value: "warning")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_string", value: "warning")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_string")
XCTAssertEqual(testLogger.currentLevel, .warning)
try! setenv("TEST_ENV_LOGGGING_string", value: "info")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_string", value: "info")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_string")
XCTAssertEqual(testLogger.currentLevel, .info)
try! setenv("TEST_ENV_LOGGGING_string", value: "debug")
try! ProcessEnv.setVar("TEST_ENV_LOGGGING_string", value: "debug")
testLogger.setLogLevel(environmentVariable: "TEST_ENV_LOGGGING_string")
XCTAssertEqual(testLogger.currentLevel, .debug)

Expand Down

0 comments on commit 5afd361

Please sign in to comment.