Skip to content

Move sourcekit-lsp off of SwiftPM's POSIX #95

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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