aboutsummaryrefslogtreecommitdiff
path: root/javatests
diff options
context:
space:
mode:
authortomlu <tomlu@google.com>2018-02-08 09:45:54 -0800
committerLiam Miller-Cushon <cushon@google.com>2018-02-08 09:56:01 -0800
commit2c7d1193e10c424cd236365d373aa4227a1f5ab5 (patch)
tree1793ce5dda48755c639cf5b1c41116e0e8192565 /javatests
parent5c62aebcb5ad87753c2daa06c756878aedb30630 (diff)
downloadturbine-2c7d1193e10c424cd236365d373aa4227a1f5ab5.tar.gz
Accept --target_label, --injecting_rule_kind in Turbine.
The values (if present) are written into the manifest with this format: Target-Label: <label> Injecting-Rule-Kind: <kind> In the future, JavaBuilder will make sure of this instead of command line arguments to find owners for jars for its add_dep commands. MOE_MIGRATED_REVID=185008500
Diffstat (limited to 'javatests')
-rw-r--r--javatests/com/google/turbine/main/MainTest.java32
-rw-r--r--javatests/com/google/turbine/options/TurbineOptionsTest.java4
2 files changed, 36 insertions, 0 deletions
diff --git a/javatests/com/google/turbine/main/MainTest.java b/javatests/com/google/turbine/main/MainTest.java
index d8e7df6..ec984b1 100644
--- a/javatests/com/google/turbine/main/MainTest.java
+++ b/javatests/com/google/turbine/main/MainTest.java
@@ -28,12 +28,16 @@ import com.google.turbine.options.TurbineOptions;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.time.Instant;
import java.util.Enumeration;
+import java.util.GregorianCalendar;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.jar.Attributes;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -158,4 +162,32 @@ public class MainTest {
assertThat(data.keySet())
.containsExactly("foo/module-info.class", "bar/module-info.class", "baz/module-info.class");
}
+
+ @Test
+ public void testManifest() throws IOException {
+ Path src = temporaryFolder.newFile("Foo.java").toPath();
+ Files.write(src, "class Foo {}".getBytes(UTF_8));
+
+ Path output = temporaryFolder.newFile("output.jar").toPath();
+
+ boolean ok =
+ Main.compile(
+ optionsWithBootclasspath()
+ .addSources(ImmutableList.of(src.toString()))
+ .setTargetLabel("//foo:foo")
+ .setInjectingRuleKind("foo_library")
+ .setOutput(output.toString())
+ .build());
+ assertThat(ok).isTrue();
+
+ try (JarFile jarFile = new JarFile(output.toFile())) {
+ Manifest manifest = jarFile.getManifest();
+ Attributes attributes = manifest.getMainAttributes();
+ assertThat(attributes.getValue("Target-Label")).isEqualTo("//foo:foo");
+ assertThat(attributes.getValue("Injecting-Rule-Kind")).isEqualTo("foo_library");
+ assertThat(jarFile.getEntry(JarFile.MANIFEST_NAME).getLastModifiedTime().toInstant())
+ .isEqualTo(
+ Instant.ofEpochMilli(new GregorianCalendar(1980, 0, 1, 0, 0, 0).getTimeInMillis()));
+ }
+ }
}
diff --git a/javatests/com/google/turbine/options/TurbineOptionsTest.java b/javatests/com/google/turbine/options/TurbineOptionsTest.java
index 2455fa6..22b98f9 100644
--- a/javatests/com/google/turbine/options/TurbineOptionsTest.java
+++ b/javatests/com/google/turbine/options/TurbineOptionsTest.java
@@ -81,6 +81,8 @@ public class TurbineOptionsTest {
"out.jdeps",
"--target_label",
"//java/com/google/test",
+ "--injecting_rule_kind",
+ "foo_library",
"--rule_kind",
"java_library",
};
@@ -102,6 +104,7 @@ public class TurbineOptionsTest {
assertThat(options.sources()).containsExactly("Source1.java", "Source2.java");
assertThat(options.outputDeps()).hasValue("out.jdeps");
assertThat(options.targetLabel()).hasValue("//java/com/google/test");
+ assertThat(options.injectingRuleKind()).hasValue("foo_library");
assertThat(options.ruleKind()).hasValue("java_library");
}
@@ -259,6 +262,7 @@ public class TurbineOptionsTest {
assertThat(options.ruleKind()).isAbsent();
assertThat(options.targetLabel()).isAbsent();
+ assertThat(options.injectingRuleKind()).isAbsent();
}
@Test