aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-09-26 00:42:45 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-09-26 12:31:10 +0200
commit1752ae8451fe556de85972d245e1f85fcdbe5e19 (patch)
tree410b0980d90638ca00ba965333930822a6abfc84 /src/test
parent57d4a1e6bb5892c60890b4a4c5bd2dd22af073bf (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.java94
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java90
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);
+ }
}