diff options
author | Neil Fuller <nfuller@google.com> | 2020-01-22 15:02:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-01-22 15:02:23 +0000 |
commit | 65c8f94fe44d11528cf1b72d5e2577a32de90bdf (patch) | |
tree | 1513c75a060a0b885a35db8012f833165c8e86cd | |
parent | 9a47fe8e52510ddadf2e54fc9a59c023e8865e56 (diff) | |
parent | 130fc6e723da32ac8db595fca1dd7deb305b3776 (diff) |
Merge "Add APIs for improved MTS testing"
6 files changed, 26 insertions, 0 deletions
diff --git a/luni/src/main/java/libcore/timezone/TimeZoneDataFiles.java b/luni/src/main/java/libcore/timezone/TimeZoneDataFiles.java index d95ff50279..b4c89761b2 100644 --- a/luni/src/main/java/libcore/timezone/TimeZoneDataFiles.java +++ b/luni/src/main/java/libcore/timezone/TimeZoneDataFiles.java @@ -55,6 +55,7 @@ public final class TimeZoneDataFiles { return System.getenv(ANDROID_DATA_ENV) + "/misc/zoneinfo/"; } + // Remove from CorePlatformApi when all users in platform code are removed. http://b/123398797 @libcore.api.CorePlatformApi public static String getDataTimeZoneFile(String fileName) { return getDataTimeZoneRootDir() + "current/" + fileName; diff --git a/luni/src/main/java/libcore/timezone/TzDataSetVersion.java b/luni/src/main/java/libcore/timezone/TzDataSetVersion.java index c2e7d7b0b7..a4045516d6 100644 --- a/luni/src/main/java/libcore/timezone/TzDataSetVersion.java +++ b/luni/src/main/java/libcore/timezone/TzDataSetVersion.java @@ -102,13 +102,17 @@ public class TzDataSetVersion { + REVISION_PATTERN.pattern() + ".*" /* ignore trailing */); + @libcore.api.CorePlatformApi public final int formatMajorVersion; + + @libcore.api.CorePlatformApi public final int formatMinorVersion; // Remove from CorePlatformApi when all users in platform code are removed. http://b/123398797 @libcore.api.CorePlatformApi public final String rulesVersion; + @libcore.api.CorePlatformApi public final int revision; @libcore.api.CorePlatformApi @@ -155,6 +159,17 @@ public class TzDataSetVersion { return fromBytes(versionBytes); } + /** + * Reads the version of time zone data supplied by the time zone data module. + */ + @libcore.api.CorePlatformApi + public static TzDataSetVersion readTimeZoneModuleVersion() + throws IOException, TzDataSetException { + String tzVersionFileName = + TimeZoneDataFiles.getTimeZoneModuleTzFile(TzDataSetVersion.DEFAULT_FILE_NAME); + return readFromFile(new File(tzVersionFileName)); + } + // Remove from CorePlatformApi when all users in platform code are removed. http://b/123398797 @libcore.api.CorePlatformApi public byte[] toBytes() { diff --git a/luni/src/main/java/libcore/util/CoreLibraryDebug.java b/luni/src/main/java/libcore/util/CoreLibraryDebug.java index 8ba385371f..dc1012f525 100644 --- a/luni/src/main/java/libcore/util/CoreLibraryDebug.java +++ b/luni/src/main/java/libcore/util/CoreLibraryDebug.java @@ -17,6 +17,7 @@ package libcore.util; import com.android.icu.util.Icu4cMetadata; + import libcore.timezone.TimeZoneDataFiles; import libcore.timezone.TzDataSetVersion; import libcore.timezone.TzDataSetVersion.TzDataSetException; diff --git a/luni/src/test/java/libcore/libcore/timezone/TimeZoneDataFilesTest.java b/luni/src/test/java/libcore/libcore/timezone/TimeZoneDataFilesTest.java index 282b18e7e3..a74ba3047f 100644 --- a/luni/src/test/java/libcore/libcore/timezone/TimeZoneDataFilesTest.java +++ b/luni/src/test/java/libcore/libcore/timezone/TimeZoneDataFilesTest.java @@ -28,10 +28,12 @@ public class TimeZoneDataFilesTest { private static final String ANDROID_TZDATA_ROOT_ENV = "ANDROID_TZDATA_ROOT"; private static final String ANDROID_I18N_ROOT_ENV = "ANDROID_I18N_ROOT"; + private static final String ANDROID_DATA_ENV = "ANDROID_DATA"; @Test public void expectedEnvironmentVariables() { // These environment variables are required to locate data files used by libcore / ICU. + assertNotNull(System.getenv(ANDROID_DATA_ENV)); assertNotNull(System.getenv(ANDROID_TZDATA_ROOT_ENV)); assertNotNull(System.getenv(ANDROID_I18N_ROOT_ENV)); } @@ -41,6 +43,7 @@ public class TimeZoneDataFilesTest { String[] paths = TimeZoneDataFiles.getTimeZoneFilePaths("foo"); assertEquals(2, paths.length); + assertTrue(paths[0].startsWith(System.getenv(ANDROID_DATA_ENV))); assertTrue(paths[0].contains("/misc/zoneinfo/current/")); assertTrue(paths[0].endsWith("/foo")); @@ -58,6 +61,7 @@ public class TimeZoneDataFilesTest { assertEquals(3, paths.length); String dataDirPath = paths[0]; + assertTrue(dataDirPath.startsWith(System.getenv(ANDROID_DATA_ENV))); assertTrue(dataDirPath + " invalid", dataDirPath.contains("/misc/zoneinfo/current/icu")); String tzdataModulePath = paths[1]; diff --git a/mmodules/core_platform_api/api/platform/current-api.txt b/mmodules/core_platform_api/api/platform/current-api.txt index 366ca676c6..8a984cedd3 100644 --- a/mmodules/core_platform_api/api/platform/current-api.txt +++ b/mmodules/core_platform_api/api/platform/current-api.txt @@ -1177,8 +1177,12 @@ package libcore.timezone { method public static int currentFormatMinorVersion(); method public static boolean isCompatibleWithThisDevice(libcore.timezone.TzDataSetVersion); method public static libcore.timezone.TzDataSetVersion readFromFile(java.io.File) throws java.io.IOException, libcore.timezone.TzDataSetVersion.TzDataSetException; + method public static libcore.timezone.TzDataSetVersion readTimeZoneModuleVersion() throws java.io.IOException, libcore.timezone.TzDataSetVersion.TzDataSetException; method public byte[] toBytes(); field public static final String DEFAULT_FILE_NAME = "tz_version"; + field public final int formatMajorVersion; + field public final int formatMinorVersion; + field public final int revision; field public final String rulesVersion; } diff --git a/non_openjdk_java_files.bp b/non_openjdk_java_files.bp index 8fc360775d..e76142dfec 100644 --- a/non_openjdk_java_files.bp +++ b/non_openjdk_java_files.bp @@ -447,6 +447,7 @@ filegroup { srcs: [ "luni/src/main/java/libcore/api/CorePlatformApi.java", "luni/src/main/java/libcore/api/IntraCoreApi.java", + "luni/src/main/java/libcore/timezone/TimeZoneDataFiles.java", "luni/src/main/java/libcore/timezone/TzDataSetVersion.java", ], } |