diff options
author | 2016-09-19 10:06:09 -0700 | |
---|---|---|
committer | 2016-09-19 15:33:15 -0700 | |
commit | ca57c409b947bdd4642374ae8d7366e14b2a836e (patch) | |
tree | 44f85e41cd4dfe1aa57018f14bc762a234758105 /test/590-checker-arr-set-null-regression/src | |
parent | 7d26164308e9eab5c596a19b841e4ab1c27828a8 (diff) |
Shorten long test names
Long Android.run-test.mk targets cause testing framework to
misbehave. Issues occur in no-prebuild mode when --output-path
parameter generated by the make system is too long. When this
happens oat generation fails silently in oat_file_assistant.cc
during creation of empty vdex and oat files.
Creation fails because file names, which are as long as absolute path
to source dex file, are longer than 255 characters Linux file name
limit.
Because oat generation fails silently affected tests pass even though
they were effectively ran in interpreter mode, instead of intended
default mode.
This CL shortens test names to be at most 35 characters. This helps
make the tests more reliable.
Test: m test-art-run-test
Bug: 31597671
Change-Id: Ic68408ae0c98ffca0c64ca4f5535f4e683a296f0
Diffstat (limited to 'test/590-checker-arr-set-null-regression/src')
-rw-r--r-- | test/590-checker-arr-set-null-regression/src/Main.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/590-checker-arr-set-null-regression/src/Main.java b/test/590-checker-arr-set-null-regression/src/Main.java new file mode 100644 index 0000000000..792ee4ecd6 --- /dev/null +++ b/test/590-checker-arr-set-null-regression/src/Main.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2016 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[]) { + Element[] elements = new Element[51]; + testArraySetCheckCastNull(elements); + + System.out.println("passed"); + } + + /// CHECK-START: void Main.testArraySetCheckCastNull(Main$Element[]) builder (after) + /// CHECK: <<Array:l\d+>> ParameterValue + /// CHECK-DAG: <<Index:i\d+>> IntConstant 42 + /// CHECK-DAG: <<Null:l\d+>> NullConstant + /// CHECK-DAG: <<Class:l\d+>> LoadClass + /// CHECK-DAG: CheckCast [<<Null>>,<<Class>>] + /// CHECK-DAG: <<CheckedValue:l\d+>> BoundType [<<Null>>] klass:Main$Element can_be_null:true + /// CHECK-DAG: <<CheckedArray:l\d+>> NullCheck [<<Array>>] + /// CHECK-DAG: <<Length:i\d+>> ArrayLength [<<CheckedArray>>] + /// CHECK-DAG: <<CheckedIndex:i\d+>> BoundsCheck [<<Index>>,<<Length>>] + /// CHECK-DAG: <<ArraySet:v\d+>> ArraySet [<<CheckedArray>>,<<CheckedIndex>>,<<CheckedValue>>] needs_type_check:true + + /// CHECK-START: void Main.testArraySetCheckCastNull(Main$Element[]) instruction_simplifier (after) + /// CHECK-NOT: CheckCast + + /// CHECK-START: void Main.testArraySetCheckCastNull(Main$Element[]) prepare_for_register_allocation (before) + /// CHECK: <<Array:l\d+>> ParameterValue + /// CHECK-DAG: <<Index:i\d+>> IntConstant 42 + /// CHECK-DAG: <<Null:l\d+>> NullConstant + /// CHECK-DAG: <<Class:l\d+>> LoadClass + /// CHECK-DAG: <<CheckedValue:l\d+>> BoundType [<<Null>>] + /// CHECK-DAG: <<CheckedArray:l\d+>> NullCheck [<<Array>>] + /// CHECK-DAG: <<Length:i\d+>> ArrayLength [<<CheckedArray>>] + /// CHECK-DAG: <<CheckedIndex:i\d+>> BoundsCheck [<<Index>>,<<Length>>] + /// CHECK-DAG: <<ArraySet:v\d+>> ArraySet [<<CheckedArray>>,<<CheckedIndex>>,<<CheckedValue>>] needs_type_check:true + + /// CHECK-START: void Main.testArraySetCheckCastNull(Main$Element[]) prepare_for_register_allocation (after) + /// CHECK: <<Array:l\d+>> ParameterValue + /// CHECK-DAG: <<Index:i\d+>> IntConstant 42 + /// CHECK-DAG: <<Null:l\d+>> NullConstant + /// CHECK-DAG: <<Class:l\d+>> LoadClass + /// CHECK-DAG: <<Length:i\d+>> ArrayLength [<<Array>>] + /// CHECK-DAG: <<ArraySet:v\d+>> ArraySet [<<Array>>,<<Index>>,<<Null>>] needs_type_check:false + + static void testArraySetCheckCastNull(Element[] elements) { + Object object = null; + Element element = (Element) object; + elements[42] = element; + } + + class Element {} + +} |