313 Commits

Author SHA1 Message Date
John Reck
7b57db7449 Expand perftests OWNERS
Test: none
Change-Id: Idb124887a24f769723c1e2d5f4e34eb74b1f85c3
2022-08-26 13:28:36 -04:00
Jeff Sharkey
954431c4df Merge changes from topic "jul15" am: 0e27faa039
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2155659

Change-Id: Ie949e0bb40967581190f7b98bb5005bab19cb7fb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-19 19:12:28 +00:00
Jeff Sharkey
0e27faa039 Merge changes from topic "jul15"
* changes:
  Offer explicit 3-byte vs 4-byte modified UTF-8.
  Cache least recently used output buffer.
2022-07-19 18:59:31 +00:00
Jeff Sharkey
c6b3699b63 Offer explicit 3-byte vs 4-byte modified UTF-8.
As documented in art/runtime/jni/jni_internal.cc, ART has deviated
from the RI by using a 4-byte encoding instead of the 3-byte encoding
required by the JNI specification.

Some users are okay with this 4-byte encoding (where they control
both the reading and writing logic) but other users require
compatibility with the DataOutput/DataInput API contract, so this
change lets users request either behavior.

This change now exercises all tests in both 4-byte and 3-byte modes,
and exhaustively confirms that all valid code-points match the
DataOutput/DataInput contract when in 3-byte mode.

Benchmark results still show significant performance benefits when
using this 3-byte encoding over the upstream RI:

    timeRead_Upstream_mean (ns):                  5090068
    timeRead_LocalUsing3ByteSequences_mean (ns):  1996032
    timeRead_LocalUsing4ByteSequences_mean (ns):  1813250

    timeWrite_Upstream_mean (ns):                 3856276
    timeWrite_LocalUsing3ByteSequences_mean (ns): 1632697
    timeWrite_LocalUsing4ByteSequences_mean (ns):  886503

Bug: 236923096
Test: atest FrameworksCoreTests:CharsetUtilsTest
Test: atest FrameworksCoreTests:FastDataTest
Test: atest FrameworksCoreTests:XmlTest
Test: atest FrameworksCoreTests:BinaryXmlTest
Test: ./frameworks/base/libs/hwui/tests/scripts/prep_generic.sh little && atest CorePerfTests:FastDataPerfTest
Change-Id: Ibddd36410a0d4a909522de011f23a337b53d6889
2022-07-19 10:36:37 -06:00
Miguel Aranda
72cb9f5de1 Merge "Fix CharsetUtf8PerfTest." am: 9795cfad96
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2145779

Change-Id: Ib492e08d134274dabaa22bd6da0fedc457a21028
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-18 13:58:12 +00:00
Miguel Aranda
9795cfad96 Merge "Fix CharsetUtf8PerfTest." 2022-07-18 13:32:35 +00:00
Alex Buynytskyy
2be5b4c118 Cache least recently used output buffer.
- reduce memory allocations especially when Xml is serialized inside a
tight inner loop,
- performance slightly improved.

BEFORE:
100 packages:
[2/4] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.516s)
	timeWrite_Binary_mean: 674979
	threadAllocCount_mean: 59
	timeWrite_Binary_min: 671194
	timeWrite_Binary_median: 674798
	timeWrite_Binary_standardDeviation: 3658
	threadAllocSize_mean: 530176
10 packages:
[2/4] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.542s)
	timeWrite_Binary_mean: 71113
	threadAllocCount_mean: 56
	timeWrite_Binary_min: 70201
	timeWrite_Binary_median: 71237
	timeWrite_Binary_standardDeviation: 692
	threadAllocSize_mean: 59136
1 package:
[2/4] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.091s)
	timeWrite_Binary_mean: 15698
	threadAllocCount_mean: 56
	timeWrite_Binary_min: 15072
	timeWrite_Binary_median: 15677
	timeWrite_Binary_standardDeviation: 410
	threadAllocSize_mean: 6439

AFTER:
100 packages:
[1/1] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.221s)
	timeWrite_Binary_mean: 605862
	threadAllocCount_mean: 53
	timeWrite_Binary_min: 602353
	timeWrite_Binary_median: 604424
	timeWrite_Binary_standardDeviation: 4972
	threadAllocSize_mean: 492748
10 packages:
[1/1] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.575s)
	timeWrite_Binary_mean: 58710
	threadAllocCount_mean: 50
	timeWrite_Binary_min: 57551
	timeWrite_Binary_median: 57798
	timeWrite_Binary_standardDeviation: 2129
	threadAllocSize_mean: 21696
1 package:
[1/1] android.util.XmlPerfTest#timeWrite_Binary: PASSED (10.151s)
	timeWrite_Binary_mean: 11576
	threadAllocCount_mean: 50
	timeWrite_Binary_min: 11315
	timeWrite_Binary_median: 11381
	timeWrite_Binary_standardDeviation: 431
	threadAllocSize_mean: 4336

Test: atest FastDataPerfTest XmlPerfTest
Bug: 195994150
Fixes: 195994150

Merged-In: Ieedd27a676d718967c2fac30bc48a68ae636a180
Change-Id: Ieedd27a676d718967c2fac30bc48a68ae636a180
2022-07-15 16:07:19 -06:00
Miguel Aranda
0f38154c3d Merge "Fix failing Libcore benchmarks." am: 9b62bec021
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2152634

Change-Id: If4763480f6ca4e759d369ea2756693b7de7be005
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-13 13:04:43 +00:00
Miguel
7a2bd0fb4a Fix CharsetUtf8PerfTest.
The test performed a lot of repetitions of the same append call with a buffer that kept being extended which resulted in OOM errors, but now we use a new buffer each time.

Test: atest CharsetUtf8PerfTest
Bug: 235455275
Change-Id: I10427d315a6d0b45394c74d0c8642f0c085ceb07
2022-07-13 10:25:14 +00:00
Miguel
0abd4763ec Fix failing Libcore benchmarks.
JarFilePerfTest was incorrectly submitted and not working yet, and
SignaturePerfTest had a failing test case.

Test: atest SignaturePerfTest
Change-Id: I739a87c02fdb3dd8c82cd63c8187fa9a8bf05ca7
2022-07-13 09:59:56 +00:00
Miguel Aranda
069963bf3b Merge "Final set of libcore benchmarks." am: 7ec1c694b5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2122613

Change-Id: I8d06422afac3cd83e2468ef2d406a6bca279592d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-11 17:53:27 +00:00
Miguel Aranda
7ec1c694b5 Merge "Final set of libcore benchmarks." 2022-07-11 16:43:07 +00:00
Miguel Aranda
f5c48daae6 Merge "Delete timeClonedSimpleDateFormat." am: c6350a111b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2145780

Change-Id: I1a1aaf990929d3f2505d410b50ecfa22098ff4e9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-06 09:34:38 +00:00
Miguel Aranda
c6350a111b Merge "Delete timeClonedSimpleDateFormat." 2022-07-06 09:06:06 +00:00
Miguel
5aadebf514 Delete timeClonedSimpleDateFormat.
This test has been timing out due to it's long runtime and causing other
tests to fail. Since it is already the simplest it can be we should just
delete it.

Bug: 237633188
Test: atest ExpensiveObjectsPerfTest
Change-Id: Id334fc9bd650206d0433433ff27abd6fab695d0a
2022-07-05 09:12:45 +00:00
Miguel
02c8b5ecf6 Final set of libcore benchmarks.
Test: atest {TestName}
Change-Id: Id6340c9cda83bcadfb5b65dbae0226fcb4eb691c
2022-07-05 08:52:14 +00:00
Xin Li
14543d1ec7 Merge tm-dev-plus-aosp-without-vendor@8763363
Bug: 236760014
Merged-In: I5705ac7586cb73b7bc2bd60bb792d0a0a951ed74
Change-Id: I59a4fd917c95c8c9e258cd743cee2d950a46d9cd
2022-06-28 21:24:28 +00:00
Miguel
2d0ae712a9 Fix failing benchmark by correcting Provider name.
Test: atest MessageDigestPerfTest
Bug: 236922387
Change-Id: I80af7091a1e8229d4ac29437a8b6d46d1c206eb5
2022-06-23 15:09:59 +00:00
Miguel Aranda
b991caa231 Merge "Fix ByteBufferBulkPerfTest issues by shortening param & test names." am: 5c73e446de am: 29267e1b30
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2128773

Change-Id: Ide3d0947d17d7275c4c4f7245195bd50bfb7a1ad
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-20 14:38:35 +00:00
Miguel Aranda
3c0701c1af Merge "More libcore benchmarks" am: 464ee3d1f1 am: 083f2e7266
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2100170

Change-Id: Ic696ac55be3d4d850b87d3dc6764ea8391451185
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-20 14:37:44 +00:00
Miguel Aranda
5c73e446de Merge "Fix ByteBufferBulkPerfTest issues by shortening param & test names." 2022-06-20 14:05:47 +00:00
Miguel
c65100489c Fix ByteBufferBulkPerfTest issues by shortening param & test names.
Android's Trace class seems to have a 127 char limit to section names (which is
not enforced running locally), which should no longer be hit when this
change goes through.

Bug: 236230898
Test: atest ByteBufferBulkPerfTest
Change-Id: I0ff3f13bc0d22bc412dfedad2772fc8c341f8f0c
2022-06-20 08:30:13 +00:00
Miguel
844e9f47e0 More libcore benchmarks
Test: atest {TestName}
Change-Id: I1ff5876dc68d316ec95412513a4b7ceeff82d638
2022-06-20 08:29:53 +00:00
Miguel Aranda
4c2143df58 Merge "Fix ZipFilePerfTest issues by closing the file in each loop iteration." am: 90c3935195 am: 9c051367f8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2096495

Change-Id: Icde15ba6e9b3768e64bebd292dfcce62ed8b63ab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-13 10:24:48 +00:00
Miguel Aranda
fa2d6b2d14 Merge "Separate timeNumberFormatTrivialFormatLong into its own file and delete HostnameVerifierTest." am: 2385e75640 am: 63042c543f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2096494

Change-Id: Ib900ee3b244fb34b171f0e277515045b9b8b4ad9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-13 10:24:00 +00:00
Miguel Aranda
90c3935195 Merge "Fix ZipFilePerfTest issues by closing the file in each loop iteration." 2022-05-13 08:54:32 +00:00
Miguel
f153f7c154 Fix ZipFilePerfTest issues by closing the file in each loop iteration.
Test: atest ZipFilePerfTest
Bug: 231407205
Change-Id: Ie37da23b9e8468588893a3d4673b6a6350631408
2022-05-13 08:54:23 +00:00
Miguel
932b2253d3 Separate timeNumberFormatTrivialFormatLong into its own file and delete
HostnameVerifierTest.

The timeNumberFormatTrivialFormatLong test has been occasionally failing
since ICU has a lot of caching and interactions with Gc, which makes it
unstable. Separating it into it's own file should reduce noise levels.

In addition HostnameVerifierTest fails when presubmit devices lack
internet collections, and is not a very consistent benchmark due to DNS internals, so we will delete it.

Test: atest {TestName}
Bug: 232196040
Bug: 232196536
Change-Id: I70e3950f7914f7d32cab2d81713ac109d6fe641c
2022-05-12 15:00:10 +00:00
Miguel Aranda
e0f0e690cc Merge "Still more libcore benchmarks migrated to Crystal Ball." am: 2dc0d124a7 am: 5c6e766d4b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2084215

Change-Id: I9a842e95c4df15662bce58bf9782006f64b19058
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-04 18:13:13 +00:00
Miguel Aranda
2dc0d124a7 Merge "Still more libcore benchmarks migrated to Crystal Ball." 2022-05-04 16:55:08 +00:00
Miguel Aranda
d6ba065aef Merge "Libcore VarHandle generator script and tests." am: 2427797def am: 14a7d644a3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2079622

Change-Id: I3e4d807ecc9eea58631fdaae44e6a8a2f3f03820
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-04 13:45:01 +00:00
Miguel
2c04bb22f4 Still more libcore benchmarks migrated to Crystal Ball.
Test: atest {TestName}
Change-Id: I9e67814d011fc13a9a2cf57f2bf543ba89d9aaa2
2022-05-04 10:16:08 +00:00
Miguel
4d8a847ab4 Libcore VarHandle generator script and tests.
Test: atest {TestName}
Change-Id: I6df071657a8d04ed4dd4c00ac4f4e2e941c91322
2022-05-04 10:00:26 +00:00
Miguel Aranda
07aba18a6c Merge "Even more libcore benchmark tests." am: 14fff66fa2 am: 6bfa1645f9
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2074938

Change-Id: I2ea7b85d3670ff54a8bc1b0abc06e6fa0afba46c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-29 20:14:38 +00:00
Miguel
2030cb4041 Even more libcore benchmark tests.
Test: atest TestName
Change-Id: I547d8347dade1f66164acbfbacd2936fa0664b95
2022-04-28 10:51:51 +00:00
Miguel Aranda
302bd6b08e Merge "Additional libcore benchmarks." am: e81851f57b am: e981334c62 am: 17c5bf6107
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2067207

Change-Id: Ieaa90ba5e3a2cead2ab32affad913df54ef47c26
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-21 14:11:35 +00:00
Miguel
4ca7bb87d7 Additional libcore benchmarks.
Test: atest {testName}
Bug: 210606618
Change-Id: I6ccb8870f5b1a2ec71570119b7b29b8ea38a14ab
2022-04-21 09:07:17 +00:00
Miguel Aranda
bfb23e7107 Merge "Correct AdditionPerfTest to return void." am: 4e7f5518f1 am: c7c95e1859 am: e25e36ace0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2059947

Change-Id: I25d820c331eaa65ff3beccf29ff43c3d1aad821e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-11 10:04:05 +00:00
Miguel
24ec182f8d Correct AdditionPerfTest to return void.
Test: atest AdditionPerfTest
Change-Id: I920864a557cedd96ff0a6364506946feb15b0df9
2022-04-08 14:53:28 +00:00
Miguel Aranda
94b8687974 Merge "Add first set of libcore benchmarks to the System Health CB framework." am: e01a01ca3e am: c7fda7b570 am: 5b96793af5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1986426

Change-Id: If512729ba53b711e03ed3241d872df92cde69d60
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-07 15:00:55 +00:00
Miguel
1935f73e5b Add first set of libcore benchmarks to the System Health CB framework.
These will later be referenced by a google3 gcl file as part of a new
libcore test set. Doc: go/libcore-benchmarks-doc

Test: N/A
Bug: 210606618
Change-Id: I4f38b797f8f4978d00e92da07c3db8df366a6897
2022-04-07 14:01:16 +00:00
Treehugger Robot
0b9d40af0f Merge "Add OWNERS for libcore perf tests" am: e8869375d9 am: 8cd8c8c8ec am: 70a2f0ce66
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2055912

Change-Id: I4db539126f620d3c83f52e01292bdd0ab4914519
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-07 11:36:25 +00:00
Orion Hodson
f0cc30bd7e Add OWNERS for libcore perf tests
Bug: 210606618
Test: checkowners.py OWNERS
Change-Id: I00912add5908195092b4f5c3a0157133a8a3e60c
2022-04-06 13:51:56 +01:00
Treehugger Robot
e017c8ad89 Merge "Add a benchmark test for Resources.getIdentifier" am: 49665e8d49 am: 863e8c2eaa am: 9432472262
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1934472

Change-Id: Ie25cc4979b8d6a95a6b333deb596367452bb1899
2022-02-14 09:20:29 +00:00
Felka Chang
ccb8c015b7 Add a benchmark test for Resources.getIdentifier
In order to prevent unstable benchmark results because of cache,
a random resource name with an expected value comes from
Random.nextInt(10001).The range is from 0 to 10000.

This patch creates 10001 color resources with the prefix
"i_am_color_%x".  The range is from "i_am_color_0" to
"i_am_color_2710". The benchmark measures randomly accessing any
of those resources.

Test: atest --request-upload-result \
    CorePerfTests:android.app.ResourcesPerfTest#getIdentifier

Bug: 191487225
Change-Id: I357b43fda77e31b6d234233fd902eb8e4696301e
2022-02-14 13:08:39 +08:00
Haoyu Zhang
57620822d3 Scribe in View: enable Handwriting
Bug: 209854913
Test: atest FrameworksCoreTests:HandwritingInitiatorTest
Change-Id: I8449b3d9e713e226a2cd2b772103e79bf65b88c9
2022-01-20 16:31:04 -08:00
Winson
efbb319630 Move package parsing to services.jar
This facilitates exposing the Parsed_ classes as
@SystemApi(client = SYSTEM_SERVER) while keeping everything inside
services.jar rather than having it split across both jars.

This reverts getPackageArchiveInfo to use legacy PackageParser, since
framework.jar can no longer access the moved classes.

Bug: 214038417

Test: presubmit, no logic changes

Change-Id: I152d70fb4f643d32efb012cfb20b0fbc5f88f2d8
2022-01-18 12:47:45 -08:00
Haoyu Zhang
3b83af05b8 Add benchmark for HandwritingInitiator
Benchmark results:
android.view.HandwritingInitiatorPerfTest#onTouchEvent_actionMove_toolTypeFinger: PASSED (8.111s)
  onTouchEvent_actionMove_toolTypeFinger_min (ns): 86
  onTouchEvent_actionMove_toolTypeFinger_mean (ns): 88
  onTouchEvent_actionMove_toolTypeFinger_median (ns): 88
  onTouchEvent_actionMove_toolTypeFinger_standardDeviation: 2

android.view.HandwritingInitiatorPerfTest#onTouchEvent_actionDown_toolTypeFinger: PASSED (8.701s)
  onTouchEvent_actionDown_toolTypeFinger_min (ns): 27
  onTouchEvent_actionDown_toolTypeFinger_mean (ns): 30
  onTouchEvent_actionDown_toolTypeFinger_median (ns): 30
  onTouchEvent_actionDown_toolTypeFinger_standardDeviation: 2

ndroid.view.HandwritingInitiatorPerfTest#onTouchEvent_actionUp_toolTypeFinger: PASSED (9.227s)
  onTouchEvent_actionUp_toolTypeFinger_min (ns): 50
  onTouchEvent_actionUp_toolTypeFinger_mean (ns): 50
  onTouchEvent_actionUp_toolTypeFinger_median (ns): 51
  onTouchEvent_actionUp_toolTypeFinger_standardDeviation: 0

android.view.HandwritingInitiatorPerfTest#onTouchEvent_actionMove_toolTypeStylus: PASSED (9.732s)
  onTouchEvent_actionMove_toolTypeStylus_min (ns): 129
  onTouchEvent_actionMove_toolTypeStylus_mean (ns): 131
  onTouchEvent_actionMove_toolTypeStylus_median (ns): 129
  onTouchEvent_actionMove_toolTypeStylus_standardDeviation: 2

android.view.HandwritingInitiatorPerfTest#onTouchEvent_actionDown_toolTypeStylus: PASSED (9.254s)
  onTouchEvent_actionDown_toolTypeStylus_min (ns): 97
  onTouchEvent_actionDown_toolTypeStylus_mean (ns): 99
  onTouchEvent_actionDown_toolTypeStylus_median (ns): 98
  onTouchEvent_actionDown_toolTypeStylus_standardDeviation: 3

android.view.HandwritingInitiatorPerfTest#onTouchEvent_actionUp_toolTypeStylus: PASSED (9.304s)
  onTouchEvent_actionUp_toolTypeStylus_min (ns): 62
  onTouchEvent_actionUp_toolTypeStylus_mean (ns): 64
  onTouchEvent_actionUp_toolTypeStylus_median (ns): 64
  onTouchEvent_actionUp_toolTypeStylus_standardDeviation: 1

android.view.HandwritingInitiatorPerfTest#updateEditorBoundary: PASSED (8.498s)
  updateEditorBoundary_min (ns): 6
  updateEditorBoundary_mean (ns): 6
  updateEditorBoundary_median (ns): 6
  updateEditorBoundary_standardDeviation: 0

android.view.HandwritingInitiatorPerfTest#onInputConnectionCreated: PASSED (8.926s)
  onInputConnectionCreated_min (ns): 60
  onInputConnectionCreated_mean (ns): 60
  onInputConnectionCreated_median (ns): 60
  onInputConnectionCreated_standardDeviation: 0

android.view.HandwritingInitiatorPerfTest#onInputConnectionClosed: PASSED (8.975s)
  onInputConnectionClosed_min (ns): 47
  onInputConnectionClosed_mean (ns): 49
  onInputConnectionClosed_median (ns): 49
  onInputConnectionClosed_standardDeviation: 1

Bug: 213216947
Test: atest CorePerfTests:android.view.HandwritingInitiatorPerfTest
Change-Id: I3a506572691cbb6ab78ae475823a2e3628ff9fae
2022-01-05 15:26:42 -08:00
Edgar Arriaga
9b724d67dd Add some tests for database operations
Test: atest SQLiteDatabasePerfTest
Bug: 193926152
Change-Id: I9b7994163bbe5992afba1b894b096ec1287f977c
2021-11-29 12:50:39 -08:00
Seigo Nonaka
0f761404af Implement fast hyphenation algorithm
RandomText Balanced Hyphenation ON
	min: 2,312,291
	mean: 2,320,574
	median: 2,320,112

RandomText Balanced Hyphenation ON(Fast)
	min: 985,850
	mean: 990,922
	median: 986,586

RandomText Balanced Hyphenation OFF
	min: 909,060
	median: 923,585
	mean: 930,052

Bug: 201096525
Test: TreeHugger and minikin_tests
Change-Id: Ide2d73acb3de85e91018e524c89df2c949235a4e
2021-11-10 23:19:43 -08:00