From 06f330a12ce6d44d3498477db5c8b0d5d43b4bbd Mon Sep 17 00:00:00 2001 From: Andrew Scull Date: Fri, 12 May 2023 05:11:30 +0000 Subject: [PATCH] Use String#lines() rather than String#split() Use the more predictable behaviour of String#lines() to split the stdout string as an example of how it should be parsed. String#split() has slightly surprising behaviour if stdout is empty as it results in an array containing an empty string. Test: atest RemoteProvisioningShellCommandTest Bug: 281584054 Change-Id: I06796772cc58007fefb5d2089ae709965c6576b1 --- services/tests/RemoteProvisioningServiceTests/Android.bp | 1 + .../security/rkp/RemoteProvisioningShellCommandTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/services/tests/RemoteProvisioningServiceTests/Android.bp b/services/tests/RemoteProvisioningServiceTests/Android.bp index 075680a51af3f..fc2c0857146bf 100644 --- a/services/tests/RemoteProvisioningServiceTests/Android.bp +++ b/services/tests/RemoteProvisioningServiceTests/Android.bp @@ -31,6 +31,7 @@ android_test { "service-rkp.impl", "services.core", "truth-prebuilt", + "truth-java8-extension-jar", ], test_suites: [ "device-tests", diff --git a/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningShellCommandTest.java b/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningShellCommandTest.java index 77c3396464000..2d93120681ec7 100644 --- a/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningShellCommandTest.java +++ b/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningShellCommandTest.java @@ -17,6 +17,7 @@ package com.android.server.security.rkp; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth8.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -42,7 +43,6 @@ import org.junit.runner.RunWith; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; -import java.util.Arrays; import java.util.Base64; import java.util.Map; @@ -119,6 +119,7 @@ public class RemoteProvisioningShellCommandTest { assertThat(res.getErr()).isEmpty(); assertThat(res.getCode()).isEqualTo(0); assertThat(res.getOut()).isEmpty(); + assertThat(res.getOut().lines()).isEmpty(); } @Test @@ -128,7 +129,7 @@ public class RemoteProvisioningShellCommandTest { CommandResult res = exec(cmd, new String[] {"list"}); assertThat(res.getErr()).isEmpty(); assertThat(res.getCode()).isEqualTo(0); - assertThat(Arrays.asList(res.getOut().split("\n"))).containsExactly("default"); + assertThat(res.getOut().lines()).containsExactly("default"); } @Test @@ -140,7 +141,7 @@ public class RemoteProvisioningShellCommandTest { CommandResult res = exec(cmd, new String[] {"list"}); assertThat(res.getErr()).isEmpty(); assertThat(res.getCode()).isEqualTo(0); - assertThat(Arrays.asList(res.getOut().split("\n"))).containsExactly("default", "strongbox"); + assertThat(res.getOut().lines()).containsExactly("default", "strongbox"); } @Test