@@ -683,6 +683,7 @@ class ManifestTests: XCTestCase {
683
683
let dependencies : [ PackageDependency ] = [
684
684
. localSourceControl( path: " /Bar " , requirement: . upToNextMajor( from: " 1.0.0 " ) ) ,
685
685
. localSourceControl( path: " /Baz " , requirement: . upToNextMajor( from: " 1.0.0 " ) ) ,
686
+ . localSourceControl( path: " /Cosmic " , requirement: . upToNextMajor( from: " 1.0.0 " ) ) ,
686
687
]
687
688
688
689
let products = try [
@@ -711,13 +712,20 @@ class ManifestTests: XCTestCase {
711
712
package : " Boom "
712
713
)
713
714
715
+ let manyTraitsEnableTargetDependency : TargetDescription . Dependency = . product(
716
+ name: " Supernova " ,
717
+ package : " Cosmic " ,
718
+ condition: . init( traits: [ " Space " , " Music " ] )
719
+ )
720
+
714
721
let target = try TargetDescription (
715
722
name: " Foo " ,
716
723
dependencies: [
717
724
unguardedTargetDependency,
718
725
trait3GuardedTargetDependency,
719
726
defaultTraitGuardedTargetDependency,
720
727
enabledTargetDependencyWithSamePackage,
728
+ manyTraitsEnableTargetDependency
721
729
]
722
730
)
723
731
@@ -726,6 +734,8 @@ class ManifestTests: XCTestCase {
726
734
TraitDescription ( name: " Trait1 " , enabledTraits: [ " Trait2 " ] ) ,
727
735
TraitDescription ( name: " Trait2 " ) ,
728
736
TraitDescription ( name: " Trait3 " ) ,
737
+ TraitDescription ( name: " Space " ) ,
738
+ TraitDescription ( name: " Music " ) ,
729
739
]
730
740
731
741
do {
@@ -792,18 +802,47 @@ class ManifestTests: XCTestCase {
792
802
enabledTargetDependencyWithSamePackage,
793
803
enabledTraits: [ ]
794
804
) )
805
+
806
+ // Test variations of traits that enable a target dependency that is unguarded by many traits.
807
+ XCTAssertFalse ( try manifest. isTargetDependencyEnabled (
808
+ target: " Foo " ,
809
+ manyTraitsEnableTargetDependency,
810
+ enabledTraits: [ ]
811
+ ) )
812
+ XCTAssertTrue ( try manifest. isTargetDependencyEnabled (
813
+ target: " Foo " ,
814
+ manyTraitsEnableTargetDependency,
815
+ enabledTraits: [ " Space " ]
816
+ ) )
817
+ XCTAssertTrue ( try manifest. isTargetDependencyEnabled (
818
+ target: " Foo " ,
819
+ manyTraitsEnableTargetDependency,
820
+ enabledTraits: [ " Music " ]
821
+ ) )
822
+ XCTAssertTrue ( try manifest. isTargetDependencyEnabled (
823
+ target: " Foo " ,
824
+ manyTraitsEnableTargetDependency,
825
+ enabledTraits: [ " Music " , " Space " ]
826
+ ) )
827
+ XCTAssertTrue ( try manifest. isTargetDependencyEnabled (
828
+ target: " Foo " ,
829
+ manyTraitsEnableTargetDependency,
830
+ enabledTraits: [ " Trait3 " , " Music " , " Space " , " Trait1 " , " Trait2 " ]
831
+ ) )
795
832
}
796
833
}
797
834
798
835
func testIsPackageDependencyUsed( ) throws {
799
836
let bar : PackageDependency = . localSourceControl( path: " /Bar " , requirement: . upToNextMajor( from: " 1.0.0 " ) )
800
837
let baz : PackageDependency = . localSourceControl( path: " /Baz " , requirement: . upToNextMajor( from: " 1.0.0 " ) )
801
838
let bam : PackageDependency = . localSourceControl( path: " /Bam " , requirement: . upToNextMajor( from: " 1.0.0 " ) )
839
+ let drinks : PackageDependency = . localSourceControl( path: " /Drinks " , requirement: . upToNextMajor( from: " 1.0.0 " ) )
802
840
803
841
let dependencies : [ PackageDependency ] = [
804
842
bar,
805
843
baz,
806
844
bam,
845
+ drinks,
807
846
]
808
847
809
848
let products = try [
@@ -832,12 +871,19 @@ class ManifestTests: XCTestCase {
832
871
package : " Bam "
833
872
)
834
873
874
+ let manyTraitsGuardingTargetDependency : TargetDescription . Dependency = . product(
875
+ name: " Coffee " ,
876
+ package : " Drinks " ,
877
+ condition: . init( traits: [ " Sugar " , " Cream " ] )
878
+ )
879
+
835
880
let target = try TargetDescription (
836
881
name: " Foo " ,
837
882
dependencies: [
838
883
unguardedTargetDependency,
839
884
trait3GuardedTargetDependency,
840
885
defaultTraitGuardedTargetDependency,
886
+ manyTraitsGuardingTargetDependency
841
887
]
842
888
)
843
889
@@ -856,6 +902,8 @@ class ManifestTests: XCTestCase {
856
902
TraitDescription ( name: " Trait1 " , enabledTraits: [ " Trait2 " ] ) ,
857
903
TraitDescription ( name: " Trait2 " ) ,
858
904
TraitDescription ( name: " Trait3 " ) ,
905
+ TraitDescription ( name: " Sugar " ) ,
906
+ TraitDescription ( name: " Cream " ) ,
859
907
]
860
908
861
909
do {
@@ -879,19 +927,19 @@ class ManifestTests: XCTestCase {
879
927
traits: traits
880
928
)
881
929
882
- // XCTAssertTrue(try manifest.isPackageDependencyUsed(bar))
883
930
XCTAssertTrue ( try manifest. isPackageDependencyUsed ( bar, enabledTraits: [ ] ) )
884
- // XCTAssertFalse(try manifest.isPackageDependencyUsed(baz))
885
931
XCTAssertTrue ( try manifest. isPackageDependencyUsed ( baz, enabledTraits: [ " Trait3 " ] ) )
886
- // XCTAssertTrue(try manifest.isPackageDependencyUsed(bam))
887
932
XCTAssertFalse ( try manifest. isPackageDependencyUsed ( bam, enabledTraits: [ ] ) )
888
933
XCTAssertFalse ( try manifest. isPackageDependencyUsed ( bam, enabledTraits: [ " Trait3 " ] ) )
934
+ XCTAssertFalse ( try manifest. isPackageDependencyUsed ( drinks, enabledTraits: [ ] ) )
935
+ XCTAssertTrue ( try manifest. isPackageDependencyUsed ( drinks, enabledTraits: [ " Sugar " ] ) )
936
+ XCTAssertTrue ( try manifest. isPackageDependencyUsed ( drinks, enabledTraits: [ " Cream " ] ) )
937
+ XCTAssertTrue ( try manifest. isPackageDependencyUsed ( drinks, enabledTraits: [ " Sugar " , " Cream " ] ) )
889
938
890
939
// Configuration of the manifest that includes a case where there exists a target
891
940
// dependency that depends on the same package as another target dependency, but
892
941
// is unguarded by traits; therefore, this package dependency should be considered used
893
942
// in every scenario, regardless of the passed trait configuration.
894
- // XCTAssertTrue(try manifestWithBamDependencyAlwaysUsed.isPackageDependencyUsed(bam, enabledTraits: nil))
895
943
XCTAssertTrue ( try manifestWithBamDependencyAlwaysUsed. isPackageDependencyUsed ( bam, enabledTraits: [ ] ) )
896
944
XCTAssertTrue ( try manifestWithBamDependencyAlwaysUsed. isPackageDependencyUsed ( bam, enabledTraits: [ " Trait3 " ] ) )
897
945
}
0 commit comments