@@ -1014,41 +1014,15 @@ final class BuildPlanTests: XCTestCase {
1014
1014
1015
1015
func testParseAsLibraryFlagForExe( ) throws {
1016
1016
let fs = InMemoryFileSystem ( emptyFiles:
1017
- // executable has a single source file not named `main.swift`, without @main .
1017
+ // First executable has a single source file not named `main.swift`.
1018
1018
" /Pkg/Sources/exe1/foo.swift " ,
1019
- // executable has a single source file named `main.swift`, without @main .
1019
+ // Second executable has a single source file named `main.swift`.
1020
1020
" /Pkg/Sources/exe2/main.swift " ,
1021
- // executable has a single source file not named `main.swift`, with @main.
1022
- " /Pkg/Sources/exe3/foo.swift " ,
1023
- // executable has a single source file named `main.swift`, with @main
1024
- " /Pkg/Sources/exe4/main.swift " ,
1025
- // executable has multiple source files.
1026
- " /Pkg/Sources/exe5/bar.swift " ,
1027
- " /Pkg/Sources/exe5/main.swift "
1021
+ // Third executable has multiple source files.
1022
+ " /Pkg/Sources/exe3/bar.swift " ,
1023
+ " /Pkg/Sources/exe3/main.swift "
1028
1024
)
1029
1025
1030
- try fs. writeFileContents ( AbsolutePath ( " /Pkg/Sources/exe3/foo.swift " ) ) {
1031
- """
1032
- @main
1033
- struct Runner {
1034
- static func main() {
1035
- print( " hello world " )
1036
- }
1037
- }
1038
- """
1039
- }
1040
-
1041
- try fs. writeFileContents ( AbsolutePath ( " /Pkg/Sources/exe4/main.swift " ) ) {
1042
- """
1043
- @main
1044
- struct Runner {
1045
- static func main() {
1046
- print( " hello world " )
1047
- }
1048
- }
1049
- """
1050
- }
1051
-
1052
1026
let observability = ObservabilitySystem . makeForTesting ( )
1053
1027
let graph = try loadPackageGraph (
1054
1028
fileSystem: fs,
@@ -1061,8 +1035,6 @@ final class BuildPlanTests: XCTestCase {
1061
1035
TargetDescription ( name: " exe1 " , type: . executable) ,
1062
1036
TargetDescription ( name: " exe2 " , type: . executable) ,
1063
1037
TargetDescription ( name: " exe3 " , type: . executable) ,
1064
- TargetDescription ( name: " exe4 " , type: . executable) ,
1065
- TargetDescription ( name: " exe5 " , type: . executable) ,
1066
1038
] ) ,
1067
1039
] ,
1068
1040
observabilityScope: observability. topScope
@@ -1076,30 +1048,22 @@ final class BuildPlanTests: XCTestCase {
1076
1048
observabilityScope: observability. topScope
1077
1049
) )
1078
1050
1079
- result. checkProductsCount ( 5 )
1080
- result. checkTargetsCount ( 5 )
1051
+ result. checkProductsCount ( 3 )
1052
+ result. checkTargetsCount ( 3 )
1081
1053
1082
1054
XCTAssertNoDiagnostics ( observability. diagnostics)
1083
1055
1084
- // single source file not named main, and without @main should not have -parse-as-library.
1056
+ // Check that the first target ( single source file not named main) has -parse-as-library.
1085
1057
let exe1 = try result. target ( for: " exe1 " ) . swiftTarget ( ) . emitCommandLine ( )
1086
- XCTAssertNoMatch ( exe1, [ " -parse-as-library " ] )
1058
+ XCTAssertMatch ( exe1, [ " -parse-as-library " ] )
1087
1059
1088
- // single source file named main, and without @main should not have -parse-as-library.
1060
+ // Check that the second target ( single source file named main) does not have -parse-as-library.
1089
1061
let exe2 = try result. target ( for: " exe2 " ) . swiftTarget ( ) . emitCommandLine ( )
1090
1062
XCTAssertNoMatch ( exe2, [ " -parse-as-library " ] )
1091
1063
1092
- // single source file not named main, with @main should have -parse-as-library.
1064
+ // Check that the third target (multiple source files) does not have -parse-as-library.
1093
1065
let exe3 = try result. target ( for: " exe3 " ) . swiftTarget ( ) . emitCommandLine ( )
1094
- XCTAssertMatch ( exe3, [ " -parse-as-library " ] )
1095
-
1096
- // single source file named main, with @main should have -parse-as-library.
1097
- let exe4 = try result. target ( for: " exe4 " ) . swiftTarget ( ) . emitCommandLine ( )
1098
- XCTAssertMatch ( exe4, [ " -parse-as-library " ] )
1099
-
1100
- // multiple source files should not have -parse-as-library.
1101
- let exe5 = try result. target ( for: " exe5 " ) . swiftTarget ( ) . emitCommandLine ( )
1102
- XCTAssertNoMatch ( exe5, [ " -parse-as-library " ] )
1066
+ XCTAssertNoMatch ( exe3, [ " -parse-as-library " ] )
1103
1067
}
1104
1068
1105
1069
func testCModule( ) throws {
0 commit comments