diff options
author | tomlu <tomlu@google.com> | 2018-02-08 09:45:54 -0800 |
---|---|---|
committer | Liam Miller-Cushon <cushon@google.com> | 2018-02-08 09:56:01 -0800 |
commit | 2c7d1193e10c424cd236365d373aa4227a1f5ab5 (patch) | |
tree | 1793ce5dda48755c639cf5b1c41116e0e8192565 /javatests | |
parent | 5c62aebcb5ad87753c2daa06c756878aedb30630 (diff) | |
download | turbine-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.java | 32 | ||||
-rw-r--r-- | javatests/com/google/turbine/options/TurbineOptionsTest.java | 4 |
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 |