Ensure resource bundle and test dependencies are set for test native targets

parent ce087202
......@@ -12,8 +12,9 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
##### Bug Fixes
* None.
* Ensure resource bundle and test dependencies are set for test native targets
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
[#6829](https://github.com/CocoaPods/CocoaPods/pull/6829)
## 1.3.0.beta.2 (2017-06-22)
......
......@@ -198,10 +198,8 @@ module Pod
configure_app_extension_api_only_for_target(aggregate_target) if is_app_extension
unless pod_target.should_build?
pod_target.resource_bundle_targets.each do |resource_bundle_target|
aggregate_target.native_target.add_dependency(resource_bundle_target)
end
add_resource_bundles_to_native_target(pod_target, aggregate_target.native_target)
add_pod_target_test_dependencies(pod_target, frameworks_group)
next
end
......@@ -210,9 +208,7 @@ module Pod
add_dependent_targets_to_native_target(pod_target.dependent_targets, pod_target.native_target, is_app_extension, pod_target.requires_frameworks?, frameworks_group)
pod_target.test_native_targets.each do |test_native_target|
add_dependent_targets_to_native_target([pod_target, *pod_target.test_dependent_targets], test_native_target, false, pod_target.requires_frameworks?, frameworks_group)
end
add_pod_target_test_dependencies(pod_target, frameworks_group)
end
end
end
......@@ -250,6 +246,16 @@ module Pod
private
def add_pod_target_test_dependencies(pod_target, frameworks_group)
test_dependent_targets = [pod_target, *pod_target.test_dependent_targets]
pod_target.test_native_targets.each do |test_native_target|
test_dependent_targets.reject(&:should_build?).each do |test_dependent_target|
add_resource_bundles_to_native_target(test_dependent_target, test_native_target)
end
add_dependent_targets_to_native_target(test_dependent_targets, test_native_target, false, pod_target.requires_frameworks?, frameworks_group)
end
end
def add_dependent_targets_to_native_target(dependent_targets, native_target, is_app_extension, requires_frameworks, frameworks_group)
dependent_targets.each do |pod_dependency_target|
next unless pod_dependency_target.should_build?
......@@ -264,6 +270,12 @@ module Pod
end
end
def add_resource_bundles_to_native_target(dependent_target, native_target)
dependent_target.resource_bundle_targets.each do |resource_bundle_target|
native_target.add_dependency(resource_bundle_target)
end
end
# Sets the APPLICATION_EXTENSION_API_ONLY build setting to YES for all
# configurations of the given target
#
......
......@@ -269,6 +269,7 @@ module Pod
dependent_target = mock('dependent-target', :should_build? => true, :native_target => dependent_native_target)
test_dependent_target = mock('dependent-test-target', :should_build? => true, :native_target => test_dependent_native_target)
test_dependent_target.expects(:should_build?).returns(true)
@pod_target.stubs(:native_target).returns(mock_native_target)
@pod_target.stubs(:test_native_targets).returns([mock_test_native_target])
......@@ -287,6 +288,35 @@ module Pod
@generator.send(:set_target_dependencies)
end
it 'adds test dependencies to test native targets for a pod target that should not be built' do
mock_test_native_target = mock('CoconutLib-Unit-Tests')
test_dependent_native_target = mock('TestDependentNativeTarget')
test_dependent_target = mock('dependent-test-target', :should_build? => true, :native_target => test_dependent_native_target)
test_dependent_target.expects(:should_build?).returns(true)
@pod_target.stubs(:test_native_targets).returns([mock_test_native_target])
@pod_target.stubs(:test_dependent_targets).returns([test_dependent_target])
@pod_target.stubs(:should_build? => false)
mock_test_native_target.expects(:add_dependency).with(test_dependent_native_target)
@generator.send(:set_target_dependencies)
end
it 'sets resource bundles for not build pods as target dependencies of the test target' do
mock_test_native_target = mock('CoconutLib-Unit-Tests')
@pod_target.stubs(:test_native_targets).returns([mock_test_native_target])
@pod_target.stubs(:test_dependent_targets).returns([])
@pod_target.stubs(:should_build? => false)
@pod_target.stubs(:resource_bundle_targets).returns(['dummy'])
@mock_target.expects(:add_dependency).with('dummy')
mock_test_native_target.expects(:add_dependency).with('dummy')
@generator.send(:set_target_dependencies)
end
end
#--------------------------------------#
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment