diff options
author | Kohsuke Yatoh <kyatoh@google.com> | 2021-04-08 12:54:29 -0700 |
---|---|---|
committer | Kohsuke Yatoh <kyatoh@google.com> | 2021-04-08 12:58:57 -0700 |
commit | bd636d839155abf3b3d2114f096105bc5f70f5df (patch) | |
tree | afa4d1f0af97421767704465145b6a13efcea9a0 /tests/UpdatableSystemFontTest | |
parent | 4a50c4e8470fa7677731c1ddb4839f4009ee3d44 (diff) |
Allow same version update.
Bug: 184862662
Test: atest FrameworksServicesTests:UpdatableFontDirTest
Test: atest UpdatableSystemFontTest
Change-Id: Ic955e2713c08e4c258d61cd3b597a472e1e3298c
Diffstat (limited to 'tests/UpdatableSystemFontTest')
4 files changed, 105 insertions, 53 deletions
diff --git a/tests/UpdatableSystemFontTest/Android.bp b/tests/UpdatableSystemFontTest/Android.bp index d4f1ad317d31..8b0ae5c37bae 100644 --- a/tests/UpdatableSystemFontTest/Android.bp +++ b/tests/UpdatableSystemFontTest/Android.bp @@ -24,18 +24,27 @@ package { java_test_host { name: "UpdatableSystemFontTest", srcs: ["src/**/*.java"], - libs: ["tradefed", "compatibility-tradefed", "compatibility-host-util"], + libs: [ + "tradefed", + "compatibility-tradefed", + "compatibility-host-util", + ], static_libs: [ "frameworks-base-hostutils", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], data: [ ":NotoColorEmojiTtf", ":UpdatableSystemFontTestCertDer", ":UpdatableSystemFontTestNotoColorEmojiTtfFsvSig", - ":UpdatableSystemFontTestNotoColorEmojiV1Ttf", - ":UpdatableSystemFontTestNotoColorEmojiV1TtfFsvSig", - ":UpdatableSystemFontTestNotoColorEmojiV2Ttf", - ":UpdatableSystemFontTestNotoColorEmojiV2TtfFsvSig", + ":UpdatableSystemFontTestNotoColorEmojiV0Ttf", + ":UpdatableSystemFontTestNotoColorEmojiV0TtfFsvSig", + ":UpdatableSystemFontTestNotoColorEmojiVPlus1Ttf", + ":UpdatableSystemFontTestNotoColorEmojiVPlus1TtfFsvSig", + ":UpdatableSystemFontTestNotoColorEmojiVPlus2Ttf", + ":UpdatableSystemFontTestNotoColorEmojiVPlus2TtfFsvSig", ], } diff --git a/tests/UpdatableSystemFontTest/AndroidTest.xml b/tests/UpdatableSystemFontTest/AndroidTest.xml index efe5d703880c..d573e93e4a4c 100644 --- a/tests/UpdatableSystemFontTest/AndroidTest.xml +++ b/tests/UpdatableSystemFontTest/AndroidTest.xml @@ -24,10 +24,12 @@ <option name="push" value="UpdatableSystemFontTestCert.der->/data/local/tmp/UpdatableSystemFontTestCert.der" /> <option name="push" value="NotoColorEmoji.ttf->/data/local/tmp/NotoColorEmoji.ttf" /> <option name="push" value="UpdatableSystemFontTestNotoColorEmoji.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmoji.ttf.fsv_sig" /> - <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV1.ttf->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV1.ttf" /> - <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV1.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV1.ttf.fsv_sig" /> - <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV2.ttf->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV2.ttf" /> - <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV2.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV2.ttf.fsv_sig" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV0.ttf->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV0.ttf" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiV0.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV0.ttf.fsv_sig" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf.fsv_sig" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf" /> + <option name="push" value="UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf.fsv_sig->/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf.fsv_sig" /> </target_preparer> <test class="com.android.compatibility.common.tradefed.testtype.JarHostTest" > diff --git a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java index 92fa498f8326..e68455612c7e 100644 --- a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java +++ b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java @@ -51,18 +51,26 @@ public class UpdatableSystemFontTest extends BaseHostJUnit4Test { private static final Pattern PATTERN_FONT = Pattern.compile("path = ([^, \n]*)"); private static final String NOTO_COLOR_EMOJI_TTF = "NotoColorEmoji.ttf"; - private static final String TEST_NOTO_COLOR_EMOJI_V1_TTF = - "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV1.ttf"; - private static final String TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG = - "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV1.ttf.fsv_sig"; - private static final String TEST_NOTO_COLOR_EMOJI_V2_TTF = - "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV2.ttf"; - private static final String TEST_NOTO_COLOR_EMOJI_V2_TTF_FSV_SIG = - "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV2.ttf.fsv_sig"; + private static final String ORIGINAL_NOTO_COLOR_EMOJI_TTF = "/data/local/tmp/NotoColorEmoji.ttf"; private static final String ORIGINAL_NOTO_COLOR_EMOJI_TTF_FSV_SIG = "/data/local/tmp/UpdatableSystemFontTestNotoColorEmoji.ttf.fsv_sig"; + // A font with revision == 0. + private static final String TEST_NOTO_COLOR_EMOJI_V0_TTF = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV0.ttf"; + private static final String TEST_NOTO_COLOR_EMOJI_V0_TTF_FSV_SIG = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiV0.ttf.fsv_sig"; + // A font with revision == original + 1 + private static final String TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf"; + private static final String TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf.fsv_sig"; + // A font with revision == original + 2 + private static final String TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf"; + private static final String TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF_FSV_SIG = + "/data/local/tmp/UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf.fsv_sig"; @Rule public final AddFsVerityCertRule mAddFsverityCertRule = @@ -81,7 +89,7 @@ public class UpdatableSystemFontTest extends BaseHostJUnit4Test { @Test public void updateFont() throws Exception { expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); String fontPath = getFontPath(NOTO_COLOR_EMOJI_TTF); assertThat(fontPath).startsWith("/data/fonts/files/"); } @@ -89,19 +97,39 @@ public class UpdatableSystemFontTest extends BaseHostJUnit4Test { @Test public void updateFont_twice() throws Exception { expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); String fontPath = getFontPath(NOTO_COLOR_EMOJI_TTF); expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V2_TTF, TEST_NOTO_COLOR_EMOJI_V2_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF_FSV_SIG)); String fontPath2 = getFontPath(NOTO_COLOR_EMOJI_TTF); assertThat(fontPath2).startsWith("/data/fonts/files/"); assertThat(fontPath2).isNotEqualTo(fontPath); } @Test + public void updateFont_allowSameVersion() throws Exception { + // Update original font to the same version + expectRemoteCommandToSucceed(String.format("cmd font update %s %s", + ORIGINAL_NOTO_COLOR_EMOJI_TTF, ORIGINAL_NOTO_COLOR_EMOJI_TTF_FSV_SIG)); + String fontPath = getFontPath(NOTO_COLOR_EMOJI_TTF); + expectRemoteCommandToSucceed(String.format("cmd font update %s %s", + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); + String fontPath2 = getFontPath(NOTO_COLOR_EMOJI_TTF); + // Update updated font to the same version + expectRemoteCommandToSucceed(String.format("cmd font update %s %s", + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); + String fontPath3 = getFontPath(NOTO_COLOR_EMOJI_TTF); + assertThat(fontPath).startsWith("/data/fonts/files/"); + assertThat(fontPath2).isNotEqualTo(fontPath); + assertThat(fontPath2).startsWith("/data/fonts/files/"); + assertThat(fontPath3).startsWith("/data/fonts/files/"); + assertThat(fontPath3).isNotEqualTo(fontPath); + } + + @Test public void updatedFont_dataFileIsImmutableAndReadable() throws Exception { expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); String fontPath = getFontPath(NOTO_COLOR_EMOJI_TTF); assertThat(fontPath).startsWith("/data"); @@ -112,27 +140,27 @@ public class UpdatableSystemFontTest extends BaseHostJUnit4Test { @Test public void updateFont_invalidCert() throws Exception { expectRemoteCommandToFail(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V2_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF_FSV_SIG)); } @Test public void updateFont_downgradeFromSystem() throws Exception { expectRemoteCommandToFail(String.format("cmd font update %s %s", - ORIGINAL_NOTO_COLOR_EMOJI_TTF, ORIGINAL_NOTO_COLOR_EMOJI_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_V0_TTF, TEST_NOTO_COLOR_EMOJI_V0_TTF_FSV_SIG)); } @Test public void updateFont_downgradeFromData() throws Exception { expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V2_TTF, TEST_NOTO_COLOR_EMOJI_V2_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS2_TTF_FSV_SIG)); expectRemoteCommandToFail(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); } @Test public void reboot() throws Exception { expectRemoteCommandToSucceed(String.format("cmd font update %s %s", - TEST_NOTO_COLOR_EMOJI_V1_TTF, TEST_NOTO_COLOR_EMOJI_V1_TTF_FSV_SIG)); + TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF, TEST_NOTO_COLOR_EMOJI_VPLUS1_TTF_FSV_SIG)); String fontPath = getFontPath(NOTO_COLOR_EMOJI_TTF); assertThat(fontPath).startsWith("/data/fonts/files/"); @@ -182,17 +210,6 @@ public class UpdatableSystemFontTest extends BaseHostJUnit4Test { }); } - private void waitUntilSystemServerIsGone() { - waitUntil(TimeUnit.SECONDS.toMillis(30), () -> { - try { - return getDevice().executeShellV2Command("pid system_server").getStatus() - == CommandStatus.FAILED; - } catch (DeviceNotAvailableException e) { - return false; - } - }); - } - private void waitUntil(long timeoutMillis, Supplier<Boolean> func) { long untilMillis = System.currentTimeMillis() + timeoutMillis; do { diff --git a/tests/UpdatableSystemFontTest/testdata/Android.bp b/tests/UpdatableSystemFontTest/testdata/Android.bp index f744d5dd2b51..0f01be014d52 100644 --- a/tests/UpdatableSystemFontTest/testdata/Android.bp +++ b/tests/UpdatableSystemFontTest/testdata/Android.bp @@ -38,31 +38,48 @@ filegroup { genrule_defaults { name: "updatable_system_font_increment_font_revision_default", +} + +genrule { + name: "UpdatableSystemFontTestNotoColorEmojiV0Ttf", + srcs: [":NotoColorEmojiTtf"], + out: ["UpdatableSystemFontTestNotoColorEmojiV0.ttf"], tools: ["update_font_metadata"], cmd: "$(location update_font_metadata) " + "--input=$(in) " + "--output=$(out) " + - "--revision=+1", + "--revision=0", } genrule { - name: "UpdatableSystemFontTestNotoColorEmojiV1Ttf", - defaults: ["updatable_system_font_increment_font_revision_default"], + name: "UpdatableSystemFontTestNotoColorEmojiVPlus1Ttf", srcs: [":NotoColorEmojiTtf"], - out: ["UpdatableSystemFontTestNotoColorEmojiV1.ttf"], + out: ["UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf"], + tools: ["update_font_metadata"], + cmd: "$(location update_font_metadata) " + + "--input=$(in) " + + "--output=$(out) " + + "--revision=+1", } genrule { - name: "UpdatableSystemFontTestNotoColorEmojiV2Ttf", - defaults: ["updatable_system_font_increment_font_revision_default"], - srcs: [":UpdatableSystemFontTestNotoColorEmojiV1Ttf"], - out: ["UpdatableSystemFontTestNotoColorEmojiV2.ttf"], + name: "UpdatableSystemFontTestNotoColorEmojiVPlus2Ttf", + srcs: [":NotoColorEmojiTtf"], + out: ["UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf"], + tools: ["update_font_metadata"], + cmd: "$(location update_font_metadata) " + + "--input=$(in) " + + "--output=$(out) " + + "--revision=+2", } genrule_defaults { name: "updatable_system_font_sig_gen_default", tools: ["fsverity"], - tool_files: [":UpdatableSystemFontTestKeyPem", ":UpdatableSystemFontTestCertPem"], + tool_files: [ + ":UpdatableSystemFontTestKeyPem", + ":UpdatableSystemFontTestCertPem", + ], cmd: "$(location fsverity) sign $(in) $(out) " + "--key=$(location :UpdatableSystemFontTestKeyPem) " + "--cert=$(location :UpdatableSystemFontTestCertPem) " + @@ -77,15 +94,22 @@ genrule { } genrule { - name: "UpdatableSystemFontTestNotoColorEmojiV1TtfFsvSig", + name: "UpdatableSystemFontTestNotoColorEmojiV0TtfFsvSig", + defaults: ["updatable_system_font_sig_gen_default"], + srcs: [":UpdatableSystemFontTestNotoColorEmojiV0Ttf"], + out: ["UpdatableSystemFontTestNotoColorEmojiV0.ttf.fsv_sig"], +} + +genrule { + name: "UpdatableSystemFontTestNotoColorEmojiVPlus1TtfFsvSig", defaults: ["updatable_system_font_sig_gen_default"], - srcs: [":UpdatableSystemFontTestNotoColorEmojiV1Ttf"], - out: ["UpdatableSystemFontTestNotoColorEmojiV1.ttf.fsv_sig"], + srcs: [":UpdatableSystemFontTestNotoColorEmojiVPlus1Ttf"], + out: ["UpdatableSystemFontTestNotoColorEmojiVPlus1.ttf.fsv_sig"], } genrule { - name: "UpdatableSystemFontTestNotoColorEmojiV2TtfFsvSig", + name: "UpdatableSystemFontTestNotoColorEmojiVPlus2TtfFsvSig", defaults: ["updatable_system_font_sig_gen_default"], - srcs: [":UpdatableSystemFontTestNotoColorEmojiV2Ttf"], - out: ["UpdatableSystemFontTestNotoColorEmojiV2.ttf.fsv_sig"], + srcs: [":UpdatableSystemFontTestNotoColorEmojiVPlus2Ttf"], + out: ["UpdatableSystemFontTestNotoColorEmojiVPlus2.ttf.fsv_sig"], } |