From 6a9f4c051dde36bcb37e2c5ff8296cb6e81361b2 Mon Sep 17 00:00:00 2001 From: cparsons Date: Tue, 25 Jul 2017 22:26:10 +0200 Subject: macOS link actions set the correct system framework include paths RELNOTES: None. PiperOrigin-RevId: 163114020 --- .../build/lib/rules/objc/AppleBinaryTest.java | 26 ++++++++++++++++++++++ .../lib/rules/objc/LegacyAppleBinaryTest.java | 6 +++++ 2 files changed, 32 insertions(+) (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc') diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java index a359149170..c58c64972c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java @@ -28,6 +28,9 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.analysis.actions.SymlinkAction; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; +import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.objc.AppleBinary.BinaryType; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; @@ -1444,4 +1447,27 @@ public class AppleBinaryTest extends ObjcRuleTestCase { public void testMinimumOsDifferentTargets() throws Exception { checkMinimumOsDifferentTargets(RULE_TYPE, "_lipobin", "_bin"); } + + @Test + public void testMacosFrameworkDirectories() throws Exception { + scratch.file( + "test/BUILD", + "apple_binary(", + " name = 'test',", + " srcs = ['test.m'],", + " platform_type = 'macos',", + ")"); + + CommandAction linkAction = linkAction("//test:test"); + ImmutableList expectedCommandLineFragments = + ImmutableList.builder() + .add(AppleToolchain.sdkDir() + AppleToolchain.SYSTEM_FRAMEWORK_PATH) + .add(frameworkDir(ApplePlatform.forTarget(PlatformType.MACOS, "x86_64"))) + .build(); + + String linkArgs = Joiner.on(" ").join(linkAction.getArguments()); + for (String expectedCommandLineFragment : expectedCommandLineFragments) { + assertThat(linkArgs).contains(expectedCommandLineFragment); + } + } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyAppleBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyAppleBinaryTest.java index 7f919ceee3..c89b00fde0 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyAppleBinaryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyAppleBinaryTest.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.objc; import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; +import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -28,4 +29,9 @@ public class LegacyAppleBinaryTest extends AppleBinaryTest { return ObjcCrosstoolMode.OFF; } + @Test + @Override + public void testMacosFrameworkDirectories() throws Exception { + // This AppleBinaryTest fails due to lack of support in legacy mode. + } } -- cgit v1.2.3