From 94f7edcdafd4e20d87f32b381340cdee7feaddcd Mon Sep 17 00:00:00 2001 From: Julien Desprez Date: Fri, 6 Sep 2019 13:15:18 -0700 Subject: Cherry-pick old fix for jdk differences Test: unit tests Bug: 140634978 Change-Id: I68323e16541b8273ff69144e5041f813fbee2170 Merged-In: I6a46050c049416bc1b62f873a1d5226cf81f0a6a --- tests/src/com/android/tradefed/device/TestDeviceTest.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/src/com/android/tradefed/device/TestDeviceTest.java b/tests/src/com/android/tradefed/device/TestDeviceTest.java index 31d17f727..26f3d2985 100644 --- a/tests/src/com/android/tradefed/device/TestDeviceTest.java +++ b/tests/src/com/android/tradefed/device/TestDeviceTest.java @@ -3033,8 +3033,14 @@ public class TestDeviceTest extends TestCase { // Size of the raw test data Assert.assertEquals(3000, testImage.data.length); byte[] result = mTestDevice.compressRawImage(testImage, "PNG", true); - // Size after compressing - Assert.assertEquals(107, result.length); + // Size after compressing can vary a bit depending of the JDK + if (result.length != 107 && result.length != 117) { + fail( + String.format( + "Should have compress the length as expected, got %s, " + + "expected 107 or 117", + result.length)); + } // Do it again with JPEG encoding Assert.assertEquals(3000, testImage.data.length); -- cgit v1.2.3 From 93b00b448019df55c126a1534bd6face4550b6a1 Mon Sep 17 00:00:00 2001 From: Stuart Scott Date: Thu, 25 Jan 2018 13:23:56 -0800 Subject: Change StreamUtil from DatatypeConverter to bytesToHexString This is a cherry-pick of an internal commit that's required to fix doc/stub generation on AOSP with language level 9 sources. The original CL had the following Test: lines, but these were not re-run on the cherrypicked version on AOSP: make tradefed tradefed-tests ./tools/tradefederation/core/tests/run_tradefed_tests.sh --class com.android.tradefed.util.StreamUtilTest com.android.tradefed.util.StreamUtilTest: 9 Tests, 9 Passed, 0 Failed, 0 Ignored Test: Treehugger Bug: 74381003 (cherry picked from commit ac9ac7433a94768cf61eaab715444837cf00caec) Change-Id: I67692c7ce0df085073688bc0b64b045a2c816736 Merged-In: I67692c7ce0df085073688bc0b64b045a2c816736 (cherry picked from commit 3d1557d071fe50a09e36c1e51fd39c2e0d0ccc91) --- src/com/android/tradefed/util/StreamUtil.java | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/com/android/tradefed/util/StreamUtil.java b/src/com/android/tradefed/util/StreamUtil.java index ec8551b0a..3f4b6d2e8 100644 --- a/src/com/android/tradefed/util/StreamUtil.java +++ b/src/com/android/tradefed/util/StreamUtil.java @@ -33,11 +33,10 @@ import java.io.Writer; import java.security.DigestInputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.Objects; import java.util.zip.GZIPOutputStream; import java.util.zip.ZipOutputStream; -import javax.xml.bind.DatatypeConverter; - /** * Utility class for managing input streams. */ @@ -312,7 +311,29 @@ public class StreamUtil { // Read through the stream to update digest. } input.close(); - String md5 = DatatypeConverter.printHexBinary(md.digest()).toLowerCase(); + String md5 = bytesToHexString(md.digest()); return md5; } + + private static final char[] HEX_CHARS = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' + }; + + /** + * Converts a byte array into a String of hexadecimal characters. + * + * @param bytes an array of bytes + * @return hex string representation of bytes array + */ + private static String bytesToHexString(byte[] bytes) { + Objects.requireNonNull(bytes); + StringBuilder sb = new StringBuilder(2 * bytes.length); + for (int i = 0; i < bytes.length; i++) { + int b = 0x0f & (bytes[i] >> 4); + sb.append(HEX_CHARS[b]); + b = 0x0f & bytes[i]; + sb.append(HEX_CHARS[b]); + } + return sb.toString(); + } } -- cgit v1.2.3