aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-02-09 03:11:29 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-09 12:20:51 +0000
commit380b610849a6336daa5cc3a9aaeff7fd49344c20 (patch)
tree1b24db6da37f5811fe5e8c43cd520f251e8fd6c2 /src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
parent8d5a7bbcf4e4cc59774312bc8abd0403c0655fce (diff)
Unify tests for native and Skylark IntelliJ aspects.
Most tests are disabled for Skylark aspect. I'll reenable them as we get to parity. -- MOS_MIGRATED_REVID=114175091
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java192
1 files changed, 190 insertions, 2 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
index b3dd9ad826..50c7bcd5f3 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
@@ -18,16 +18,34 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import com.google.common.collect.ImmutableList;
+import com.google.common.eventbus.EventBus;
+import com.google.devtools.build.lib.actions.Action;
+import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.analysis.BuildView;
+import com.google.devtools.build.lib.analysis.OutputGroupProvider;
+import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
+import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation;
import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo;
import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.Kind;
+import com.google.devtools.build.lib.skyframe.AspectValue;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.protobuf.TextFormat;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.Map;
/**
@@ -49,7 +67,9 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
assertThat(ruleIdeInfos.size()).isEqualTo(1);
RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel(
"//com/google/example:simple", ruleIdeInfos);
- assertThat(ruleIdeInfo.getBuildFile()).isEqualTo(buildFilePath.toString());
+ if (isNativeTest()) {
+ assertThat(ruleIdeInfo.getBuildFile()).isEqualTo(buildFilePath.toString());
+ }
assertThat(ruleIdeInfo.getKind()).isEqualTo(Kind.JAVA_LIBRARY);
assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(0);
assertThat(relativePathsForSourcesOf(ruleIdeInfo))
@@ -70,6 +90,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testPackageManifestCreated() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -87,7 +111,7 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
}
@Test
- public void testJavaLibraryProtoWithDependencies() throws Exception {
+ public void testJavaLibraryWithDependencies() throws Exception {
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -199,6 +223,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaLibraryWithExports() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -247,6 +275,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaLibraryWithTransitiveExports() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -291,6 +323,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaImport() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_import(",
@@ -331,6 +367,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaImportWithExports() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -362,6 +402,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testNoPackageManifestForExports() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -390,6 +434,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testGeneratedJavaImportFilesAreAddedToOutputGroup() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_import(",
@@ -417,6 +465,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAspectIsPropagatedAcrossExports() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -435,6 +487,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaTest() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"java_library(",
@@ -472,6 +528,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaBinary() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -508,6 +568,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibrary() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"android_library(",
@@ -562,6 +626,9 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidBinary() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
scratch.file(
"com/google/example/BUILD",
"android_library(",
@@ -619,6 +686,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidInferredPackage() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"android_library(",
@@ -641,6 +712,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibraryWithoutAidlHasNoIdlJars() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"android_library(",
@@ -657,6 +732,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibraryWithAidlHasIdlJars() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"android_library(",
@@ -685,6 +764,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibraryGeneratedManifestIsAddedToOutputGroup() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"android_library(",
@@ -710,6 +793,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaLibraryWithoutGeneratedSourcesHasNoGenJars() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"java_library(",
@@ -727,6 +814,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaLibraryWithGeneratedSourcesHasGenJars() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"java_library(",
@@ -764,6 +855,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testNonConformingPackageName() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"bad/package/google/example/BUILD",
"android_library(",
@@ -781,6 +876,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testTags() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -796,6 +895,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibraryWithoutSourcesExportsDependencies() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"android_library(",
@@ -821,6 +924,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testSourceFilesAreCorrectlyMarkedAsSourceOrGenerated() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"genrule(",
@@ -849,6 +956,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAspectIsPropagatedAcrossRuntimeDeps() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -871,6 +982,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testRuntimeDepsAddedToProto() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"com/google/example/BUILD",
"java_library(",
@@ -904,6 +1019,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testAndroidLibraryGeneratesResourceClass() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"android_library(",
@@ -936,6 +1055,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
@Test
public void testJavaPlugin() throws Exception {
+ if (!isNativeTest()) {
+ return;
+ }
+
scratch.file(
"java/com/google/example/BUILD",
"java_plugin(",
@@ -955,4 +1078,69 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
.containsExactly(jarString("java/com/google/example",
"libplugin.jar", "libplugin-ijar.jar", "libplugin-src.jar"));
}
+
+ /**
+ * Returns true if we are testing the native aspect, not the Skylark one.
+ * Eventually Skylark aspect will be equivalent to a native one, and this method
+ * will be removed.
+ */
+ public boolean isNativeTest() {
+ return true;
+ }
+
+ /**
+ * Test for Skylark version of the aspect.
+ */
+ @RunWith(JUnit4.class)
+ public static class IntelliJSkylarkAspectTest extends AndroidStudioInfoAspectTest {
+ @Before
+ public void setupBzl() throws Exception {
+ InputStream stream = IntelliJSkylarkAspectTest.class
+ .getResourceAsStream("intellij_info.bzl");
+ BufferedReader reader =
+ new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
+ String line;
+ ArrayList<String> contents = new ArrayList<>();
+ while ((line = reader.readLine()) != null) {
+ contents.add(line);
+ }
+
+ scratch.file("intellij_tools/BUILD", "# empty");
+ scratch.file("intellij_tools/intellij_info.bzl", contents.toArray(new String[0]));
+ }
+
+ @Override
+ protected Map<String, RuleIdeInfo> buildRuleIdeInfo(String target) throws Exception {
+ BuildView.AnalysisResult analysisResult = update(
+ ImmutableList.of(target),
+ ImmutableList.of("intellij_tools/intellij_info.bzl%intellij_info_aspect"),
+ false,
+ LOADING_PHASE_THREADS,
+ true,
+ new EventBus()
+ );
+ Collection<AspectValue> aspects = analysisResult.getAspects();
+ assertThat(aspects).hasSize(1);
+ AspectValue aspectValue = aspects.iterator().next();
+ this.configuredAspect = aspectValue.getConfiguredAspect();
+ OutputGroupProvider provider = configuredAspect.getProvider(OutputGroupProvider.class);
+ NestedSet<Artifact> outputGroup = provider.getOutputGroup("ide-info-text");
+ Map<String, RuleIdeInfo> ruleIdeInfos = new HashMap<>();
+ for (Artifact artifact : outputGroup) {
+ Action generatingAction = getGeneratingAction(artifact);
+ assertThat(generatingAction).isInstanceOf(FileWriteAction.class);
+ String fileContents = ((FileWriteAction) generatingAction).getFileContents();
+ RuleIdeInfo.Builder builder = RuleIdeInfo.newBuilder();
+ TextFormat.getParser().merge(fileContents, builder);
+ RuleIdeInfo ruleIdeInfo = builder.build();
+ ruleIdeInfos.put(ruleIdeInfo.getLabel(), ruleIdeInfo);
+ }
+ return ruleIdeInfos;
+ }
+
+ @Override
+ public boolean isNativeTest() {
+ return false;
+ }
+ }
}