diff options
author | cpeyser <cpeyser@google.com> | 2017-09-26 00:42:45 +0200 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-09-26 12:31:10 +0200 |
commit | 1752ae8451fe556de85972d245e1f85fcdbe5e19 (patch) | |
tree | 410b0980d90638ca00ba965333930822a6abfc84 /src/test | |
parent | 57d4a1e6bb5892c60890b4a4c5bd2dd22af073bf (diff) |
Move objc_proto_library tests from legacy to crosstool test cases.
PiperOrigin-RevId: 169972686
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcProtoLibraryTest.java | 94 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java | 90 |
2 files changed, 90 insertions, 94 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcProtoLibraryTest.java index 8f7dabd943..c4ef886914 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcProtoLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/LegacyObjcProtoLibraryTest.java @@ -14,17 +14,7 @@ package com.google.devtools.build.lib.rules.objc; -import static com.google.common.truth.Truth.assertThat; - -import com.google.common.collect.ImmutableList; -import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.actions.CommandAction; -import com.google.devtools.build.lib.actions.util.ActionsTestUtil; -import com.google.devtools.build.lib.analysis.ConfiguredTarget; -import com.google.devtools.build.lib.rules.apple.ApplePlatform; -import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; -import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -39,88 +29,4 @@ public class LegacyObjcProtoLibraryTest extends ObjcProtoLibraryTest { return ObjcCrosstoolMode.OFF; } - @Test - public void testCompilationAction() throws Exception { - useConfiguration("--cpu=ios_i386"); - ApplePlatform platform = ApplePlatform.IOS_SIMULATOR; - - ConfiguredTarget target = getConfiguredTarget("//package:opl"); - CommandAction linkAction = - (CommandAction) getGeneratingAction(getBinArtifact("libopl.a", target)); - - CommandAction compileAction = - (CommandAction) - getGeneratingAction( - ActionsTestUtil.getFirstArtifactEndingWith(linkAction.getInputs(), "/FileA.pb.o")); - - Artifact sourceFile = - ActionsTestUtil.getFirstArtifactEndingWith( - getFilesToBuild(getConfiguredTarget("//package:opl")), "/FileA.pb.m"); - - Artifact objectFile = - ActionsTestUtil.getFirstArtifactEndingWith(compileAction.getOutputs(), ".o"); - Artifact dotdFile = - ActionsTestUtil.getFirstArtifactEndingWith(compileAction.getOutputs(), ".d"); - assertThat(compileAction.getArguments()) - .containsExactlyElementsIn( - new ImmutableList.Builder<String>() - .add(MOCK_XCRUNWRAPPER_PATH) - .add(ObjcRuleClasses.CLANG) - .addAll(AppleToolchain.DEFAULT_WARNINGS.values()) - .add("-fexceptions") - .add("-fasm-blocks") - .add("-fobjc-abi-version=2") - .add("-fobjc-legacy-dispatch") - .addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS) - .add("-mios-simulator-version-min=" + DEFAULT_IOS_SDK_VERSION) - .add("-arch", "i386") - .add("-isysroot", AppleToolchain.sdkDir()) - .add("-F", AppleToolchain.sdkDir() + AppleToolchain.DEVELOPER_FRAMEWORK_PATH) - .add("-F", frameworkDir(platform)) - .addAll(FASTBUILD_COPTS) - .addAll( - ObjcLibraryTest.iquoteArgs( - target.get(ObjcProvider.SKYLARK_CONSTRUCTOR), getTargetConfiguration())) - .add("-I") - .add(sourceFile.getExecPath().getParentDirectory().getParentDirectory().toString()) - .add("-fno-objc-arc") - .add("-c", sourceFile.getExecPathString()) - .add("-o") - .add(objectFile.getExecPathString()) - .add("-MD") - .add("-MF") - .add(dotdFile.getExecPathString()) - .build()) - .inOrder(); - assertRequiresDarwin(compileAction); - assertThat(Artifact.toRootRelativePaths(compileAction.getInputs())).containsAllOf( - "package/_generated_protos/opl/package/FileA.pb.m", - "package/_generated_protos/opl/package/FileA.pb.h", - "package/_generated_protos/opl/package/dir/FileB.pb.h", - "package/_generated_protos/opl/dep/File.pb.h" - ); - } - - @Test - public void testLibraryLinkAction() throws Exception { - useConfiguration("--cpu=ios_armv7"); - Artifact libFile = - ActionsTestUtil.getFirstArtifactEndingWith( - getFilesToBuild(getConfiguredTarget("//package:opl")), "/libopl.a"); - CommandAction action = (CommandAction) getGeneratingAction(libFile); - assertThat(action.getArguments()) - .isEqualTo( - ImmutableList.of( - MOCK_LIBTOOL_PATH, - "-static", - "-filelist", - getBinArtifact("opl-archive.objlist", "//package:opl").getExecPathString(), - "-arch_only", - "armv7", - "-syslibroot", - AppleToolchain.sdkDir(), - "-o", - libFile.getExecPathString())); - assertRequiresDarwin(action); - } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java index 043f21b8cb..dc4873cd04 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java @@ -30,6 +30,8 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.packages.util.MockObjcSupport; import com.google.devtools.build.lib.packages.util.MockProtoSupport; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction; import java.util.List; import org.junit.Before; @@ -851,4 +853,92 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase { "package/_generated_protos/opl/package/dir/FileB.pb.h", "package/_generated_protos/opl/dep/File.pb.h"); } + + @Test + public void testCompilationAction() throws Exception { + useConfiguration("--cpu=ios_i386"); + ApplePlatform platform = ApplePlatform.IOS_SIMULATOR; + + ConfiguredTarget target = getConfiguredTarget("//package:opl"); + CommandAction linkAction = + (CommandAction) getGeneratingAction(getBinArtifact("libopl.a", target)); + + CommandAction compileAction = + (CommandAction) + getGeneratingAction( + ActionsTestUtil.getFirstArtifactEndingWith(linkAction.getInputs(), "/FileA.pb.o")); + + Artifact sourceFile = + ActionsTestUtil.getFirstArtifactEndingWith( + getFilesToBuild(getConfiguredTarget("//package:opl")), "/FileA.pb.m"); + + Artifact objectFile = + ActionsTestUtil.getFirstArtifactEndingWith(compileAction.getOutputs(), ".o"); + Artifact dotdFile = + ActionsTestUtil.getFirstArtifactEndingWith(compileAction.getOutputs(), ".d"); + // We remove spaces since the crosstool rules do not use spaces in command line args. + String compileArgs = Joiner.on("").join(compileAction.getArguments()).replace(" ", ""); + + List<String> expectedArgs = + new ImmutableList.Builder<String>() + .addAll(AppleToolchain.DEFAULT_WARNINGS.values()) + .add("-fexceptions") + .add("-fasm-blocks") + .add("-fobjc-abi-version=2") + .add("-fobjc-legacy-dispatch") + .addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS) + .add("-mios-simulator-version-min=" + DEFAULT_IOS_SDK_VERSION) + .add("-arch", "i386") + .add("-isysroot", AppleToolchain.sdkDir()) + .add("-F", AppleToolchain.sdkDir() + AppleToolchain.DEVELOPER_FRAMEWORK_PATH) + .add("-F", frameworkDir(platform)) + .addAll(FASTBUILD_COPTS) + .addAll( + ObjcLibraryTest.iquoteArgs( + target.get(ObjcProvider.SKYLARK_CONSTRUCTOR), getTargetConfiguration())) + .add("-I") + .add(sourceFile.getExecPath().getParentDirectory().getParentDirectory().toString()) + .add("-fno-objc-arc") + .add("-c", sourceFile.getExecPathString()) + .add("-o") + .add(objectFile.getExecPathString()) + .add("-MD") + .add("-MF") + .add(dotdFile.getExecPathString()) + .build(); + + for (String expectedArg : expectedArgs) { + assertThat(compileArgs).contains(expectedArg); + } + + assertRequiresDarwin(compileAction); + assertThat(Artifact.toRootRelativePaths(compileAction.getInputs())) + .containsAllOf( + "package/_generated_protos/opl/package/FileA.pb.m", + "package/_generated_protos/opl/package/FileA.pb.h", + "package/_generated_protos/opl/package/dir/FileB.pb.h", + "package/_generated_protos/opl/dep/File.pb.h"); + } + + @Test + public void testLibraryLinkAction() throws Exception { + useConfiguration("--cpu=ios_armv7"); + Artifact libFile = + ActionsTestUtil.getFirstArtifactEndingWith( + getFilesToBuild(getConfiguredTarget("//package:opl")), "/libopl.a"); + CommandAction action = (CommandAction) getGeneratingAction(libFile); + assertThat(action.getArguments()) + .containsAllIn( + ImmutableList.of( + "-static", + "-filelist", + getBinArtifact("opl-archive.objlist", "//package:opl").getExecPathString(), + "-arch_only", + "armv7", + "-syslibroot", + AppleToolchain.sdkDir(), + "-o", + libFile.getExecPathString())); + assertRequiresDarwin(action); + } } |