From 48ca6a681efe1fa1cf82d8af918bf9bbfd35ae96 Mon Sep 17 00:00:00 2001 From: Xueliang Zhong Date: Thu, 7 Mar 2019 14:48:55 +0000 Subject: VIXL simulator for ART (Stage1) Quick User Guide: test/README.simulator.md This CL enables running ART run-tests in a simulator on host machine. Some benefits of using this simulator approach: - No need to use a target device at all. Save developers from solving the device troubles: build, flash, usb, adb, etc. - Speed up development/debug/test cycle. - Allows easy debugging/testing new instruction features without real hardware. - Allows using a smaller AOSP Android manifest master-art. The Stage1 CL provides support for running 30% of current run-tests. The rest unsupported test cases are kept in knownfailures.json. Future work will be supporting proper stack frame layout between simulator and quick entrypoints, so that stack walk, QuickArgumentVisitor, deoptimization, etc can be supported. This CL adds libart(d)-simulator-container library to the ART APEX. It has cause the following increase of the APEX size (small, about 0.13% for release APEX, measured for target aosp_arm64-userdebug): Before: 88992 com.android.art.debug.apex 51612 com.android.art.release.apex 112352 com.android.art.testing.apex After: 89124 com.android.art.debug.apex 51680 com.android.art.release.apex 112468 com.android.art.testing.apex Test: art/test.py --run-test --optimizing --simulate-arm64 Test: art/test.py --run-test --optimizing --host Test: m test-art-host-gtest Change-Id: I078812dde9aaf7128d9f262b2102251927596b7f --- build/apex/art_apex_test.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'build/apex/art_apex_test.py') diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py index 1a337cbe3e..021fd5af81 100755 --- a/build/apex/art_apex_test.py +++ b/build/apex/art_apex_test.py @@ -546,6 +546,8 @@ class ReleaseChecker: self._checker.check_native_library('libopenjdkjvmti') self._checker.check_native_library('libprofile') self._checker.check_native_library('libsigchain') + # Only on ARM/ARM64 + self._checker.check_optional_native_library('libart-simulator-container') # Check java libraries for Managed Core Library. self._checker.check_java_library('apache-xml') @@ -688,6 +690,8 @@ class DebugChecker: self._checker.check_native_library('libopenjdkjvmd') self._checker.check_native_library('libopenjdkjvmtid') self._checker.check_native_library('libprofiled') + # Only on ARM/ARM64 + self._checker.check_optional_native_library('libartd-simulator-container') # Check internal libraries for Managed Core Library. self._checker.check_native_library('libopenjdkd') @@ -759,7 +763,6 @@ class TestingTargetChecker: # Check ART test (internal) libraries. self._checker.check_native_library('libart-gtest') - self._checker.check_native_library('libartd-simulator-container') # Check ART test tools. self._checker.check_executable('signal_dumper') -- cgit v1.2.3-59-g8ed1b