Merge "Revert "Add some more tests for member lookup.""
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index ae370ae..cb19bad 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -19,6 +19,7 @@
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.Timing;
+import com.android.tools.r8.utils.VersionProperties;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
@@ -153,9 +154,13 @@
if (options.hasMarker()) {
return options.getMarker();
}
- return new Marker(Tool.D8)
+ Marker marker = new Marker(Tool.D8)
.put("version", Version.LABEL)
.put("min-api", options.minApiLevel);
+ if (Version.isDev()) {
+ marker.put("sha-1", VersionProperties.INSTANCE.getSha());
+ }
+ return marker;
}
private static CompilationResult runForTesting(
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 2b21efc..76a6ed1 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -48,6 +48,7 @@
import com.android.tools.r8.utils.StringDiagnostic;
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.Timing;
+import com.android.tools.r8.utils.VersionProperties;
import com.google.common.io.ByteStreams;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
@@ -78,9 +79,13 @@
if (options.hasMarker()) {
return options.getMarker();
}
- return new Marker(Tool.R8)
+ Marker marker = new Marker(Tool.R8)
.put("version", Version.LABEL)
.put("min-api", options.minApiLevel);
+ if (Version.isDev()) {
+ marker.put("sha-1", VersionProperties.INSTANCE.getSha());
+ }
+ return marker;
}
public static void writeApplication(
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index c59c205..44e1bf4 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -5,7 +5,6 @@
package com.android.tools.r8;
import com.android.tools.r8.utils.VersionProperties;
-import java.io.IOException;
public final class Version {
@@ -16,13 +15,10 @@
public static void printToolVersion(String toolName) {
System.out.println(toolName + " " + Version.LABEL);
- try {
- VersionProperties version =
- new VersionProperties(Version.class.getClassLoader());
- System.out.println(version.getDescription());
- } catch (IOException e) {
- System.out.println("eng build");
- }
+ System.out.println(VersionProperties.INSTANCE.getDescription());
+ }
+ public static boolean isDev() {
+ return LABEL.endsWith("-dev") || VersionProperties.INSTANCE.isEngineering();
}
}
diff --git a/src/main/java/com/android/tools/r8/utils/VersionProperties.java b/src/main/java/com/android/tools/r8/utils/VersionProperties.java
index 57aea8b..28ac2ef 100644
--- a/src/main/java/com/android/tools/r8/utils/VersionProperties.java
+++ b/src/main/java/com/android/tools/r8/utils/VersionProperties.java
@@ -14,16 +14,29 @@
*/
public class VersionProperties {
+ public static final VersionProperties INSTANCE = get();
+
private static final String VERSION_CODE_KEY = "version-file.version.code";
private static final String SHA_KEY = "version.sha";
private static final String RELEASER_KEY = "releaser";
private static final String RESOURCE_NAME = "r8-version.properties";
- private String codeBase;
+ private String sha;
private String releaser;
- public VersionProperties(ClassLoader loader)
+ private static VersionProperties get() {
+ try {
+ return new VersionProperties(VersionProperties.class.getClassLoader());
+ } catch (IOException e) {
+ return new VersionProperties();
+ }
+ }
+
+ private VersionProperties() {
+ }
+
+ private VersionProperties(ClassLoader loader)
throws IOException {
try (InputStream resourceStream = loader.getResourceAsStream(RESOURCE_NAME)) {
if (resourceStream == null) {
@@ -40,20 +53,24 @@
long versionFileVersion = Long.parseLong(prop.getProperty(VERSION_CODE_KEY));
assert versionFileVersion >= 1;
- codeBase = prop.getProperty(SHA_KEY);
+ sha = prop.getProperty(SHA_KEY);
releaser = prop.getProperty(RELEASER_KEY);
}
public String getDescription() {
- if (codeBase != null && !codeBase.trim().isEmpty()) {
- return "build " + codeBase + (releaser != null ? " from " + releaser : "");
- } else {
- return "eng build" + (releaser != null ? " from " + releaser : "");
- }
+ return "build " + getSha() + (releaser != null ? " from " + releaser : "");
+ }
+
+ public String getSha() {
+ return isEngineering() ? "engineering" : sha;
}
@Override
public String toString() {
- return codeBase + " from " + releaser;
+ return sha + " from " + releaser;
+ }
+
+ public boolean isEngineering() {
+ return sha == null || sha.trim().isEmpty();
}
}