From 282c29e57f6a505cf2c0fa480263e62c85bd753f Mon Sep 17 00:00:00 2001 From: cpeyser Date: Mon, 25 Sep 2017 20:00:48 +0200 Subject: Move remaining legacy objc_library tests to crosstool case. PiperOrigin-RevId: 169930643 --- .../lib/rules/objc/LegacyObjcLibraryTest.java | 54 +-------------------- .../build/lib/rules/objc/ObjcLibraryTest.java | 56 ++++++++++++++++++++++ 2 files changed, 57 insertions(+), 53 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib/rules') diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcLibraryTest.java index 852752545a..0df64354b5 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcLibraryTest.java @@ -68,6 +68,7 @@ public class LegacyObjcLibraryTest extends ObjcLibraryTest { // Features are not exported by legacy actions. } + // Crosstool rules do not account for slashes in target names. @Test public void testLibFileIsCorrectForSlashInTargetName() throws Exception { ConfiguredTarget target = @@ -205,22 +206,6 @@ public class LegacyObjcLibraryTest extends ObjcLibraryTest { .containsExactly("a.m", "c.h", "private.h", XCRUNWRAPPER); } - // Test with ios device SDK version 9.0. Framework path differs from previous versions. - @Test - public void testCompilationActions_deviceSdk9() throws Exception { - useConfiguration("--cpu=ios_armv7", "--ios_minimum_os=1.0", "--ios_sdk_version=9.0"); - - createLibraryTargetWriter("//objc:lib") - .setAndCreateFiles("srcs", "a.m", "b.m", "private.h") - .setAndCreateFiles("hdrs", "c.h") - .write(); - - CommandAction compileAction = compileAction("//objc:lib", "a.o"); - - assertThat(compileAction.getArguments()).containsAllOf( - "-F", AppleToolchain.sdkDir() + AppleToolchain.SYSTEM_FRAMEWORK_PATH).inOrder(); - } - // Override required for distinct compiler path, command line args. @Override @Test @@ -457,43 +442,6 @@ public class LegacyObjcLibraryTest extends ObjcLibraryTest { .containsExactly("liblib_dep.a", "liblib.a", LIBTOOL); } - @Test - public void testProvidesHdrsAndIncludes() throws Exception { - checkProvidesHdrsAndIncludes(RULE_TYPE); - } - - @Test - public void testCompilesAssemblyS() throws Exception { - createLibraryTargetWriter("//objc:lib") - .setAndCreateFiles("srcs", "a.m", "b.s") - .setAndCreateFiles("hdrs", "c.h") - .write(); - - CommandAction compileAction = compileAction("//objc:lib", "b.o"); - - assertThat(compileAction.getArguments()).doesNotContain("-x"); - assertThat(compileAction.getArguments()).doesNotContain("assembler-with-cpp"); - assertThat(baseArtifactNames(compileAction.getOutputs())).containsExactly("b.o", "b.d"); - assertThat(baseArtifactNames(compileAction.getInputs())) - .containsExactly("c.h", "b.s", XCRUNWRAPPER); - } - - @Test - public void testCompilesAssemblyAsm() throws Exception { - createLibraryTargetWriter("//objc:lib") - .setAndCreateFiles("srcs", "a.m", "b.asm") - .setAndCreateFiles("hdrs", "c.h") - .write(); - - CommandAction compileAction = compileAction("//objc:lib", "b.o"); - - assertThat(compileAction.getArguments()).doesNotContain("-x"); - assertThat(compileAction.getArguments()).doesNotContain("assembler-with-cpp"); - assertThat(baseArtifactNames(compileAction.getOutputs())).containsExactly("b.o", "b.d"); - assertThat(baseArtifactNames(compileAction.getInputs())) - .containsExactly("c.h", "b.asm", XCRUNWRAPPER); - } - // Dotd pruning must be tested seperately for the legacy case, since it involves the // ObjcCompileAction. @Override diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index 79381625f6..043b791cd2 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java @@ -1322,6 +1322,25 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { checkSdkIncludesUsedInCompileAction(RULE_TYPE); } + // Test with ios device SDK version 9.0. Framework path differs from previous versions. + @Test + public void testCompilationActions_deviceSdk9() throws Exception { + useConfiguration("--cpu=ios_armv7", "--ios_minimum_os=1.0", "--ios_sdk_version=9.0"); + + createLibraryTargetWriter("//objc:lib") + .setAndCreateFiles("srcs", "a.m", "b.m", "private.h") + .setAndCreateFiles("hdrs", "c.h") + .write(); + + CommandAction compileAction = compileAction("//objc:lib", "a.o"); + + // We remove spaces, since the crosstool rules do not use spaces in command line args. + + String compileArgs = Joiner.on("").join(compileAction.getArguments()).replace(" ", ""); + assertThat(compileArgs) + .contains("-F" + AppleToolchain.sdkDir() + AppleToolchain.SYSTEM_FRAMEWORK_PATH); + } + @Test public void testCompilationActionsWithPch() throws Exception { ApplePlatform platform = ApplePlatform.IOS_SIMULATOR; @@ -1591,6 +1610,43 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { "-iquote", config.getGenfilesFragment().getSafePathString())); } + @Test + public void testCompilesAssemblyAsm() throws Exception { + createLibraryTargetWriter("//objc:lib") + .setAndCreateFiles("srcs", "a.m", "b.asm") + .setAndCreateFiles("hdrs", "c.h") + .write(); + + CommandAction compileAction = compileAction("//objc:lib", "b.o"); + + assertThat(compileAction.getArguments()).doesNotContain("-x"); + assertThat(compileAction.getArguments()).doesNotContain("assembler-with-cpp"); + assertThat(baseArtifactNames(compileAction.getOutputs())).contains("b.o"); + assertThat(baseArtifactNames(compileAction.getPossibleInputsForTesting())) + .containsAllOf("c.h", "b.asm"); + } + + @Test + public void testCompilesAssemblyS() throws Exception { + createLibraryTargetWriter("//objc:lib") + .setAndCreateFiles("srcs", "a.m", "b.s") + .setAndCreateFiles("hdrs", "c.h") + .write(); + + CommandAction compileAction = compileAction("//objc:lib", "b.o"); + + assertThat(compileAction.getArguments()).doesNotContain("-x"); + assertThat(compileAction.getArguments()).doesNotContain("assembler-with-cpp"); + assertThat(baseArtifactNames(compileAction.getOutputs())).contains("b.o"); + assertThat(baseArtifactNames(compileAction.getPossibleInputsForTesting())) + .containsAllOf("c.h", "b.s"); + } + + @Test + public void testProvidesHdrsAndIncludes() throws Exception { + checkProvidesHdrsAndIncludes(RULE_TYPE); + } + @Test public void testUsesDotdPruning() throws Exception { useConfiguration( -- cgit v1.2.3