diff options
author | 2017-04-17 21:42:46 +0000 | |
---|---|---|
committer | 2017-04-17 21:42:48 +0000 | |
commit | 030b1066a6bdfaca1034ab8c1166bb9f8e98e76c (patch) | |
tree | cb20d7d46c5bb2bb6b865cf01495153a1657c468 | |
parent | 3ace1f0ce2b7f91182239d80c2828e12700b7221 (diff) | |
parent | 1dfd10ec49a0734d4f533a7cc2950102fbbbff89 (diff) |
Merge "ART: Change run-test 913 array testing"
-rw-r--r-- | test/913-heaps/expected.txt | 133 | ||||
-rw-r--r-- | test/913-heaps/heaps.cc | 4 | ||||
-rw-r--r-- | test/913-heaps/src/art/Test913.java | 9 |
3 files changed, 87 insertions, 59 deletions
diff --git a/test/913-heaps/expected.txt b/test/913-heaps/expected.txt index 46e81715bd..702b247819 100644 --- a/test/913-heaps/expected.txt +++ b/test/913-heaps/expected.txt @@ -5,8 +5,6 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestNonR root@root --(stack-local[id=1,tag=3000,depth=3,method=doFollowReferencesTest,vreg=1,location= 28])--> 3000@0 [size=136, length=-1] root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 1@1000 [size=16, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -17,11 +15,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -34,11 +34,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- root@root --(jni-global)--> 1@1000 [size=16, length=-1] @@ -50,7 +52,6 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestRoot root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 1@1000 [size=16, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -61,11 +62,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -78,11 +81,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- root@root --(thread)--> 3000@0 [size=136, length=-1] @@ -98,13 +103,11 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestNonR root@root --(stack-local[id=1,tag=3000,depth=3,method=doFollowReferencesTest,vreg=1,location= 28])--> 3000@0 [size=136, length=-1] root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 1@1000 [size=16, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] --- root@root --(jni-global)--> 1@1000 [size=16, length=-1] root@root --(jni-local[id=1,tag=3000,depth=0,method=followReferences])--> 1@1000 [size=16, length=-1] @@ -115,12 +118,11 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestRoot root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 1@1000 [size=16, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] --- [1@0 (32, 'HelloWorld'), 2@0 (16, '')] 2 @@ -160,16 +162,17 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 10008 --- klass --- root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestNonRoot,vreg=13,location= 32])--> 1@1000 [size=16, length=-1] -0@0 --(array-element@0)--> 1@1000 [size=16, length=-1] 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- root@root --(jni-global)--> 1@1000 [size=16, length=-1] root@root --(jni-local[id=1,tag=3000,depth=0,method=followReferences])--> 1@1000 [size=16, length=-1] @@ -179,13 +182,15 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestRoot root@root --(thread)--> 1@1000 [size=16, length=-1] 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- --- heap_filter --- ---- tagged objects @@ -199,8 +204,6 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestNonR root@root --(stack-local[id=1,tag=3000,depth=3,method=doFollowReferencesTest,vreg=1,location= 28])--> 3000@0 [size=136, length=-1] root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 1@1000 [size=16, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -211,11 +214,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -228,11 +233,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- root@root --(jni-global)--> 1@1000 [size=16, length=-1] @@ -244,7 +251,6 @@ root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestRoot root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 1@1000 [size=16, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -255,11 +261,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -272,11 +280,13 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 2@1000 --(class)--> 1000@0 [size=123, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- ---- tagged classes @@ -284,7 +294,6 @@ root@root --(jni-local[id=1,tag=3000,depth=0,method=followReferences])--> 3000@0 root@root --(stack-local[id=1,tag=3000,depth=3,method=doFollowReferencesTest,vreg=1,location= 28])--> 3000@0 [size=136, length=-1] root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -294,6 +303,7 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -305,12 +315,12 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- root@root --(jni-local[id=1,tag=3000,depth=0,method=followReferences])--> 3000@0 [size=136, length=-1] root@root --(stack-local[id=1,tag=3000,depth=5,method=run,vreg=2,location= 0])--> 3000@0 [size=136, length=-1] root@root --(thread)--> 3000@0 [size=136, length=-1] -0@0 --(array-element@0)--> 3000@0 [size=136, length=-1] 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] 1002@0 --(interface)--> 2001@0 [size=124, length=-1] 1002@0 --(superclass)--> 1001@0 [size=123, length=-1] @@ -320,6 +330,7 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- 1001@0 --(superclass)--> 1000@0 [size=123, length=-1] @@ -331,24 +342,26 @@ root@root --(thread)--> 3000@0 [size=136, length=-1] 3@1001 --(class)--> 1001@0 [size=123, length=-1] 4@1000 --(class)--> 1000@0 [size=123, length=-1] 5@1002 --(class)--> 1002@0 [size=123, length=-1] +5@1002 --(field@8)--> 500@0 [size=20, length=2] 6@1000 --(class)--> 1000@0 [size=123, length=-1] --- ---- untagged classes root@root --(stack-local[id=1,tag=3000,depth=2,method=doFollowReferencesTestNonRoot,vreg=13,location= 32])--> 1@1000 [size=16, length=-1] -0@0 --(array-element@0)--> 1@1000 [size=16, length=-1] 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 1@1000 --(field@3)--> 3@1001 [size=24, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 1@1000 --(field@3)--> 3@1001 [size=24, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- root@root --(jni-global)--> 1@1000 [size=16, length=-1] root@root --(jni-local[id=1,tag=3000,depth=0,method=followReferences])--> 1@1000 [size=16, length=-1] @@ -359,14 +372,16 @@ root@root --(thread)--> 1@1000 [size=16, length=-1] 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 1@1000 --(field@3)--> 3@1001 [size=24, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- 1@1000 --(field@2)--> 2@1000 [size=16, length=-1] 1@1000 --(field@3)--> 3@1001 [size=24, length=-1] 3@1001 --(field@4)--> 4@1000 [size=16, length=-1] -3@1001 --(field@5)--> 5@1002 [size=32, length=-1] -5@1002 --(field@8)--> 6@1000 [size=16, length=-1] -5@1002 --(field@9)--> 1@1000 [size=16, length=-1] +3@1001 --(field@5)--> 5@1002 [size=36, length=-1] +500@0 --(array-element@1)--> 2@1000 [size=16, length=-1] +5@1002 --(field@10)--> 1@1000 [size=16, length=-1] +5@1002 --(field@9)--> 6@1000 [size=16, length=-1] --- diff --git a/test/913-heaps/heaps.cc b/test/913-heaps/heaps.cc index 8c06803cc4..19e12ae731 100644 --- a/test/913-heaps/heaps.cc +++ b/test/913-heaps/heaps.cc @@ -147,6 +147,10 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test913_followReferences( reference_info->stack_local.thread_tag != 3000) { return 0; } + // Ignore array elements with an untagged source. These are from the environment. + if (reference_kind == JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT && *referrer_tag_ptr == 0) { + return 0; + } // Only check tagged objects. if (tag == 0) { diff --git a/test/913-heaps/src/art/Test913.java b/test/913-heaps/src/art/Test913.java index 2eb05ef696..d3b29cf2b5 100644 --- a/test/913-heaps/src/art/Test913.java +++ b/test/913-heaps/src/art/Test913.java @@ -371,6 +371,14 @@ public class Test913 { cInst.baz2 = aInst; v.add(cInstStr, aInstStr); // C -->(field) --> A. + A[] aArray = new A[2]; + setTag(aArray, 500); + aArray[1] = a2Inst; + cInst.array = aArray; + String aArrayStr = "500@0"; + v.add(cInstStr, aArrayStr); + v.add(aArrayStr, a2InstStr); + return aInst; } } @@ -408,6 +416,7 @@ public class Test913 { public static class C extends B implements I2 { public A baz; public A baz2; + public A[] array; public C() {} public C(A a, A b) { |