diff options
author | Alex Light <allight@google.com> | 2014-08-22 17:49:35 -0700 |
---|---|---|
committer | Alex Light <allight@google.com> | 2014-08-26 16:39:14 -0700 |
commit | 84d7605f93f1e6e86a16e02017e305c90e93117a (patch) | |
tree | 4602fe9beb2c0e59ff89a828473c1c2acf07930b /test | |
parent | a9ffc181c61f5634753bf1039ed50bf22c800fde (diff) | |
download | art-84d7605f93f1e6e86a16e02017e305c90e93117a.zip art-84d7605f93f1e6e86a16e02017e305c90e93117a.tar.gz art-84d7605f93f1e6e86a16e02017e305c90e93117a.tar.bz2 |
Support booting without functioning boot.oat/art patchoat.
Bug: 17000769
Change-Id: I89c26a905af12ea288742368c2c038afd57a879a
Diffstat (limited to 'test')
-rw-r--r-- | test/119-noimage-patchoat/expected.txt | 6 | ||||
-rw-r--r-- | test/119-noimage-patchoat/info.txt | 1 | ||||
-rw-r--r-- | test/119-noimage-patchoat/run | 36 | ||||
-rw-r--r-- | test/119-noimage-patchoat/src/Main.java | 38 |
4 files changed, 81 insertions, 0 deletions
diff --git a/test/119-noimage-patchoat/expected.txt b/test/119-noimage-patchoat/expected.txt new file mode 100644 index 0000000..e864268 --- /dev/null +++ b/test/119-noimage-patchoat/expected.txt @@ -0,0 +1,6 @@ +Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false +Has image is false, is image dex2oat enabled is false. +Run -Ximage-dex2oat +Has image is true, is image dex2oat enabled is true. +Run default +Has image is true, is image dex2oat enabled is true. diff --git a/test/119-noimage-patchoat/info.txt b/test/119-noimage-patchoat/info.txt new file mode 100644 index 0000000..6b85368 --- /dev/null +++ b/test/119-noimage-patchoat/info.txt @@ -0,0 +1 @@ +Test that disables patchoat'ing the image. diff --git a/test/119-noimage-patchoat/run b/test/119-noimage-patchoat/run new file mode 100644 index 0000000..745b0c9 --- /dev/null +++ b/test/119-noimage-patchoat/run @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (C) 2014 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Force relocation otherwise we will just use the already created core.oat/art pair. +flags="${@/--no-relocate/--relocate}" + +if [ $(basename $RUN) == 'host-run-test-jar' ]; then + false_bin="/bin/false" +else + false_bin="/system/bin/false" +fi + +# Make sure we can run without an image file, +echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false" +${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat --runtime-option -Xpatchoat:${false_bin} + +# Make sure we can run with the image file. +echo "Run -Ximage-dex2oat" +${RUN} ${flags} ${BPATH} --runtime-option -Ximage-dex2oat + +# Make sure we can run with the default settings. +echo "Run default" +${RUN} ${flags} ${BPATH} diff --git a/test/119-noimage-patchoat/src/Main.java b/test/119-noimage-patchoat/src/Main.java new file mode 100644 index 0000000..11c736a --- /dev/null +++ b/test/119-noimage-patchoat/src/Main.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +public class Main { + public static void main(String[] args) { + boolean hasImage = hasImage(); + System.out.println( + "Has image is " + hasImage + ", is image dex2oat enabled is " + + isImageDex2OatEnabled() + "."); + + if (hasImage && !isImageDex2OatEnabled()) { + throw new Error("Image with dex2oat disabled runs with an oat file"); + } else if (!hasImage && isImageDex2OatEnabled()) { + throw new Error("Image with dex2oat enabled runs without an oat file"); + } + } + + static { + System.loadLibrary("arttest"); + } + + private native static boolean hasImage(); + + private native static boolean isImageDex2OatEnabled(); +} |