@@ -18,6 +18,59 @@ import SKTestSupport
18
18
import XCTest
19
19
20
20
final class SwiftPMWorkspaceTests : XCTestCase {
21
+
22
+ func testNoPackage( ) {
23
+ let fs = InMemoryFileSystem ( )
24
+ let tempDir = try ! TemporaryDirectory ( removeTreeOnDeinit: true )
25
+ try ! fs. createFiles ( root: tempDir. path, files: [
26
+ " pkg/Sources/lib/a.swift " : " " ,
27
+ ] )
28
+ let packageRoot = tempDir. path. appending ( component: " pkg " )
29
+ let tr = ToolchainRegistry . shared
30
+ XCTAssertThrowsError ( try SwiftPMWorkspace (
31
+ workspacePath: packageRoot,
32
+ toolchainRegistry: tr,
33
+ fileSystem: fs) )
34
+ }
35
+
36
+ func testUnparsablePackage( ) {
37
+ let fs = localFileSystem
38
+ let tempDir = try ! TemporaryDirectory ( removeTreeOnDeinit: true )
39
+ try ! fs. createFiles ( root: tempDir. path, files: [
40
+ " pkg/Sources/lib/a.swift " : " " ,
41
+ " pkg/Package.swift " : """
42
+ // swift-tools-version:4.2
43
+ import PackageDescription
44
+ let pack
45
+ """
46
+ ] )
47
+ let packageRoot = tempDir. path. appending ( component: " pkg " )
48
+ let tr = ToolchainRegistry . shared
49
+ XCTAssertThrowsError ( try SwiftPMWorkspace (
50
+ workspacePath: packageRoot,
51
+ toolchainRegistry: tr,
52
+ fileSystem: fs) )
53
+ }
54
+
55
+ func testNoToolchain( ) {
56
+ let fs = localFileSystem
57
+ let tempDir = try ! TemporaryDirectory ( removeTreeOnDeinit: true )
58
+ try ! fs. createFiles ( root: tempDir. path, files: [
59
+ " pkg/Sources/lib/a.swift " : " " ,
60
+ " pkg/Package.swift " : """
61
+ // swift-tools-version:4.2
62
+ import PackageDescription
63
+ let package = Package(name: " a " , products: [], dependencies: [],
64
+ targets: [.target(name: " lib " , dependencies: [])])
65
+ """
66
+ ] )
67
+ let packageRoot = tempDir. path. appending ( component: " pkg " )
68
+ XCTAssertThrowsError ( try SwiftPMWorkspace (
69
+ workspacePath: packageRoot,
70
+ toolchainRegistry: ToolchainRegistry ( ) ,
71
+ fileSystem: fs) )
72
+ }
73
+
21
74
func testBasicSwiftArgs( ) {
22
75
// FIXME: should be possible to use InMemoryFileSystem.
23
76
let fs = localFileSystem
0 commit comments