• Home
Name Date Size #Lines LOC

..--

000-nop/03-May-2024-307

001-HelloWorld/03-May-2024-6742

001-Main/03-May-2024-6440

002-sleep/03-May-2024-7157

003-omnibus-opcodes/03-May-2024-5,0394,200

004-InterfaceTest/03-May-2024-10070

004-JniTest/03-May-2024-1,7591,312

004-NativeAllocations/03-May-2024-173110

004-ReferenceMap/03-May-2024-33488

004-SignalTest/03-May-2024-283198

004-StackWalk/03-May-2024-299169

004-ThreadStress/03-May-2024-1,021720

004-UnsafeTest/03-May-2024-430318

004-checker-UnsafeTest18/03-May-2024-418248

005-annotations/03-May-2024-986612

006-args/03-May-2024-12870

007-count10/03-May-2024-8960

008-exceptions/03-May-2024-325210

009-instanceof/03-May-2024-296129

010-instance/03-May-2024-230167

011-array-copy/03-May-2024-526354

012-math/03-May-2024-215179

013-math2/03-May-2024-8856

014-math3/03-May-2024-11173

015-switch/03-May-2024-735639

016-intern/03-May-2024-10570

017-float/03-May-2024-8955

018-stack-overflow/03-May-2024-145100

019-wrong-array-type/03-May-2024-8453

020-string/03-May-2024-235183

021-string2/03-May-2024-1,4171,045

022-interface/03-May-2024-359153

023-many-interfaces/03-May-2024-535372

024-illegal-access/03-May-2024-310144

025-access-controller/03-May-2024-11261

026-access/03-May-2024-16979

027-arithmetic/03-May-2024-223162

028-array-write/03-May-2024-13893

029-assert/03-May-2024-8453

030-bad-finalizer/03-May-2024-223123

031-class-attributes/03-May-2024-690561

032-concrete-sub/03-May-2024-237111

033-class-init-deadlock/03-May-2024-12684

034-call-null/03-May-2024-10054

035-enum/03-May-2024-9058

036-finalizer/03-May-2024-258187

037-inherit/03-May-2024-9072

038-inner-null/03-May-2024-11666

039-join-main/03-May-2024-12384

040-miranda/03-May-2024-265118

041-narrowing/03-May-2024-187167

042-new-instance/03-May-2024-385237

043-privates/03-May-2024-11579

044-proxy/03-May-2024-1,9771,355

045-reflect-array/03-May-2024-331268

046-reflect/03-May-2024-1,113909

047-returns/03-May-2024-139100

048-reflect-v8/03-May-2024-1,010548

049-show-object/03-May-2024-10974

050-sync-test/03-May-2024-310216

051-thread/03-May-2024-341258

052-verifier-fun/03-May-2024-209143

053-wait-some/03-May-2024-164116

054-uncaught/03-May-2024-201122

055-enum-performance/03-May-2024-314252

056-const-string-jumbo/03-May-2024-8725

058-enum-order/03-May-2024-8152

059-finalizer-throw/03-May-2024-14582

061-out-of-memory/03-May-2024-180126

062-character-encodings/03-May-2024-7159

063-process-manager/03-May-2024-154126

064-field-access/03-May-2024-1,175786

065-mismatched-implements/03-May-2024-15736

066-mismatched-super/03-May-2024-19044

067-preemptive-unpark/03-May-2024-174121

068-classloader/03-May-2024-1,504643

069-field-type/03-May-2024-12583

070-nio-buffer/03-May-2024-228169

071-dexfile/03-May-2024-14973

071-dexfile-get-static-size/03-May-2024-10139

071-dexfile-map-clean/03-May-2024-224102

072-precise-gc/03-May-2024-160104

072-reachability-fence/03-May-2024-11483

073-mismatched-field/03-May-2024-14970

074-gc-thrash/03-May-2024-405272

075-verification-error/03-May-2024-510232

076-boolean-put/03-May-2024-9658

077-method-override/03-May-2024-353230

078-polymorphic-virtual/03-May-2024-18889

079-phantom/03-May-2024-318203

080-oom-fragmentation/03-May-2024-8053

080-oom-throw/03-May-2024-278200

080-oom-throw-with-finalizer/03-May-2024-12484

081-hot-exceptions/03-May-2024-9162

082-inline-execute/03-May-2024-2,2631,778

083-compiler-regressions/03-May-2024-10,0389,879

084-class-init/03-May-2024-355204

085-old-style-inner-class/03-May-2024-152100

086-null-super/03-May-2024-215118

087-gc-after-link/03-May-2024-233134

088-monitor-verification/03-May-2024-659434

090-loop-formation/03-May-2024-13596

091-override-package-private-method/03-May-2024-12833

092-locale/03-May-2024-216159

093-serialization/03-May-2024-179131

094-pattern/03-May-2024-146108

095-switch-MAX_INT/03-May-2024-5748

096-array-copy-concurrent-gc/03-May-2024-13892

097-duplicate-method/03-May-2024-107

099-vmdebug/03-May-2024-586497

100-reflect2/03-May-2024-515404

1000-non-moving-space-stress/03-May-2024-13188

1001-app-image-regions/03-May-2024-17372

1002-notify-startup/03-May-2024-186110

1003-metadata-section-strings/03-May-2024-13858

1004-checker-volatile-ref-load/03-May-2024-17778

101-fibonacci/03-May-2024-10560

102-concurrent-gc/03-May-2024-11166

103-string-append/03-May-2024-7751

104-growth-limit/03-May-2024-11373

105-invoke/03-May-2024-152108

106-exceptions2/03-May-2024-284202

107-int-math2/03-May-2024-1,2631,041

108-check-cast/03-May-2024-10070

109-suspend-check/03-May-2024-266225

110-field-access/03-May-2024-163132

111-unresolvable-exception/03-May-2024-8728

112-double-math/03-May-2024-7750

113-multidex/03-May-2024-382171

114-ParallelGC/03-May-2024-195121

115-native-bridge/03-May-2024-1,062799

116-nodex2oat/03-May-2024-9448

118-noimage-dex2oat/03-May-2024-163103

120-hashcode/03-May-2024-8556

121-modifiers/03-May-2024-784555

121-simple-suspend-check/03-May-2024-8155

122-npe/03-May-2024-705571

123-compiler-regressions-mt/03-May-2024-169127

123-inline-execute2/03-May-2024-458425

124-missing-classes/03-May-2024-13268

125-gc-and-classloading/03-May-2024-3,1183,080

126-miranda-multidex/03-May-2024-376152

127-checker-secondarydex/03-May-2024-16257

128-reg-spill-on-implicit-nullcheck/03-May-2024-9061

129-ThreadGetId/03-May-2024-141100

130-hprof/03-May-2024-297205

132-daemon-locks-shutdown/03-May-2024-9764

133-static-invoke-super/03-May-2024-13397

1336-short-finalizer-timeout/03-May-2024-197105

1337-gc-coverage/03-May-2024-193118

1338-gc-no-los/03-May-2024-10457

1339-dead-reference-safe/03-May-2024-550321

134-reg-promotion/03-May-2024-11891

135-MirandaDispatch/03-May-2024-8756

136-daemon-jni-shutdown/03-May-2024-175108

137-cfi/03-May-2024-508342

138-duplicate-classes-check/03-May-2024-12844

138-duplicate-classes-check2/03-May-2024-16761

139-register-natives/03-May-2024-221131

140-dce-regression/03-May-2024-7952

140-field-packing/03-May-2024-17486

141-class-unload/03-May-2024-765513

142-classloader2/03-May-2024-18291

143-string-value/03-May-2024-10255

144-static-field-sigquit/03-May-2024-226117

145-alloc-tracking-stress/03-May-2024-12492

146-bad-interface/03-May-2024-14964

148-multithread-gc-annotations/03-May-2024-310147

149-suspend-all-stress/03-May-2024-176104

150-loadlibrary/03-May-2024-10773

151-OpenFileLimit/03-May-2024-159104

152-dead-large-object/03-May-2024-7045

153-reference-stress/03-May-2024-11989

154-gc-loop/03-May-2024-12173

155-java-set-resolved-type/03-May-2024-18065

156-register-dex-file-multi-loader/03-May-2024-13399

157-void-class/03-May-2024-12869

158-app-image-class-table/03-May-2024-14674

159-app-image-fields/03-May-2024-2,2982,176

160-read-barrier-stress/03-May-2024-5,6565,412

161-final-abstract-class/03-May-2024-299187

162-method-resolution/03-May-2024-1,724828

163-app-image-methods/03-May-2024-230122

164-resolution-trampoline-dex-cache/03-May-2024-18873

165-lock-owner-proxy/03-May-2024-196127

166-bad-interface-super/03-May-2024-17289

167-visit-locks/03-May-2024-254151

168-vmstack-annotated/03-May-2024-294211

169-threadgroup-jni/03-May-2024-15192

170-interface-init/03-May-2024-9766

171-init-aste/03-May-2024-6722

172-app-image-twice/03-May-2024-17580

173-missing-field-type/03-May-2024-209145

174-escaping-instance-of-bad-class/03-May-2024-264204

175-alloc-big-bignums/03-May-2024-9463

176-app-image-string/03-May-2024-9550

177-visibly-initialized-deadlock/03-May-2024-14187

178-app-image-native-method/03-May-2024-1,7261,442

179-nonvirtual-jni/03-May-2024-14396

180-native-default-method/03-May-2024-11569

181-default-methods/03-May-2024-761416

182-method-linking/03-May-2024-828319

1900-track-alloc/03-May-2024-432281

1901-get-bytecodes/03-May-2024-300168

1902-suspend/03-May-2024-236130

1903-suspend-self/03-May-2024-211115

1904-double-suspend/03-May-2024-228122

1905-suspend-native/03-May-2024-238114

1906-suspend-list-me-first/03-May-2024-208114

1907-suspend-list-self-twice/03-May-2024-202106

1908-suspend-native-resume-self/03-May-2024-267140

1909-per-agent-tls/03-May-2024-373229

1910-transform-with-default/03-May-2024-293184

1911-get-local-var-table/03-May-2024-661456

1912-get-set-local-primitive/03-May-2024-987774

1913-get-set-local-objects/03-May-2024-920702

1914-get-local-instance/03-May-2024-806568

1915-get-set-local-current-thread/03-May-2024-624420

1916-get-set-current-frame/03-May-2024-666467

1917-get-stack-frame/03-May-2024-581406

1919-vminit-thread-start-timing/03-May-2024-424252

1920-suspend-native-monitor/03-May-2024-284151

1921-suspend-native-recursive-monitor/03-May-2024-293158

1922-owned-monitors-info/03-May-2024-1,3001,138

1923-frame-pop/03-May-2024-832577

1924-frame-pop-toggle/03-May-2024-886604

1925-self-frame-pop/03-May-2024-782536

1926-missed-frame-pop/03-May-2024-902618

1927-exception-event/03-May-2024-1,085823

1928-exception-event-exception/03-May-2024-765564

1929-exception-catch-exception/03-May-2024-1,365974

1930-monitor-info/03-May-2024-719528

1931-monitor-events/03-May-2024-768588

1932-monitor-events-misc/03-May-2024-1,3961,147

1933-monitor-current-contended/03-May-2024-539386

1934-jvmti-signal-thread/03-May-2024-964729

1935-get-set-current-frame-jit/03-May-2024-686498

1936-thread-end-events/03-May-2024-402260

1937-transform-soft-fail/03-May-2024-299182

1938-transform-abstract-single-impl/03-May-2024-285187

1939-proxy-frames/03-May-2024-774540

1940-ddms-ext/03-May-2024-660498

1941-dispose-stress/03-May-2024-527349

1942-suspend-raw-monitor-exit/03-May-2024-285151

1943-suspend-raw-monitor-wait/03-May-2024-277141

1945-proxy-method-arguments/03-May-2024-340233

1946-list-descriptors/03-May-2024-339214

1947-breakpoint-redefine-deopt/03-May-2024-536369

1948-obsolete-const-method-handle/03-May-2024-578299

1949-short-dex-file/03-May-2024-374219

1950-unprepared-transform/03-May-2024-412270

1951-monitor-enter-no-suspend/03-May-2024-322174

1953-pop-frame/03-May-2024-1,8871,403

1954-pop-frame-jit/03-May-2024-1,8201,357

1955-pop-frame-jit-called/03-May-2024-1,8191,356

1956-pop-frame-jit-calling/03-May-2024-1,8191,356

1957-error-ext/03-May-2024-405259

1958-transform-try-jit/03-May-2024-314192

1959-redefine-object-instrument/03-May-2024-486344

1960-checker-bounds-codegen/03-May-2024-15785

1960-obsolete-jit-multithread-native/03-May-2024-554391

1961-checker-loop-vectorizer/03-May-2024-13486

1961-obsolete-jit-multithread/03-May-2024-508372

1962-multi-thread-events/03-May-2024-270171

1963-add-to-dex-classloader-in-memory/03-May-2024-638430

1964-add-to-dex-classloader-file/03-May-2024-809547

1965-get-set-local-primitive-no-tables/03-May-2024-1,261990

1966-get-set-local-objects-no-table/03-May-2024-1,205938

1967-get-set-local-bad-slot/03-May-2024-852639

1968-force-early-return/03-May-2024-1,6961,277

1969-force-early-return-void/03-May-2024-1,9841,529

1970-force-early-return-long/03-May-2024-1,7061,290

1971-multi-force-early-return/03-May-2024-699463

1972-jni-id-swap-indices/03-May-2024-221146

1973-jni-id-swap-pointer/03-May-2024-14798

1974-resize-array/03-May-2024-1,009776

1975-hello-structural-transformation/03-May-2024-736532

1976-hello-structural-static-methods/03-May-2024-628435

1977-hello-structural-obsolescence/03-May-2024-330203

1978-regular-obsolete-then-structural-obsolescence/03-May-2024-436275

1979-threaded-structural-transformation/03-May-2024-391266

1980-obsolete-object-cleared/03-May-2024-1,035900

1981-structural-redef-private-method-handles/03-May-2024-684499

1982-no-virtuals-structural-redefinition/03-May-2024-433302

1983-structural-redefinition-failures/03-May-2024-415286

1984-structural-redefine-field-trace/03-May-2024-438288

1985-structural-redefine-stack-scope/03-May-2024-348230

1986-structural-redefine-multi-thread-stack-scope/03-May-2024-310213

1987-structural-redefine-recursive-stack-scope/03-May-2024-284190

1988-multi-structural-redefine/03-May-2024-335209

1989-transform-bad-monitor/03-May-2024-310196

1990-structural-bad-verify/03-May-2024-332171

1991-hello-structural-retransform/03-May-2024-283170

1992-retransform-no-such-field/03-May-2024-293178

1993-fallback-non-structural/03-May-2024-294177

1994-final-virtual-structural/03-May-2024-297173

1995-final-virtual-structural-multithread/03-May-2024-381237

1996-final-override-virtual-structural/03-May-2024-304187

1997-structural-shadow-method/03-May-2024-290177

1998-structural-shadow-field/03-May-2024-269163

1999-virtual-structural/03-May-2024-293178

2000-virtual-list-structural/03-May-2024-314196

2001-virtual-structural-multithread/03-May-2024-418250

2002-virtual-structural-initializing/03-May-2024-348193

2003-double-virtual-structural/03-May-2024-338210

2004-double-virtual-structural-abstract/03-May-2024-321197

2005-pause-all-redefine-multithreaded/03-May-2024-603366

2006-virtual-structural-finalizing/03-May-2024-304178

2007-virtual-structural-finalizable/03-May-2024-309174

2008-redefine-then-old-reflect-field/03-May-2024-289180

2009-structural-local-ref/03-May-2024-429261

201-built-in-except-detail-messages/03-May-2024-521407

2011-stack-walk-concurrent-instrument/03-May-2024-215154

2012-structural-redefinition-failures-jni-id/03-May-2024-423284

2019-constantcalculationsinking/03-May-2024-273214

202-thread-oome/03-May-2024-7348

2020-InvokeVirtual-Inlining/03-May-2024-169111

2021-InvokeStatic-Inlining/03-May-2024-12993

2022-Invariantloops/03-May-2024-9365

2023-InvariantLoops_typecast/03-May-2024-12490

2024-InvariantNegativeLoop/03-May-2024-9566

2025-ChangedArrayValue/03-May-2024-9965

2026-DifferentMemoryLSCouples/03-May-2024-9568

2027-TwiceTheSameMemoryCouple/03-May-2024-8559

2028-MultiBackward/03-May-2024-9567

2029-contended-monitors/03-May-2024-301239

203-multi-checkpoint/03-May-2024-203137

2030-long-running-child/03-May-2024-11080

2031-zygote-compiled-frame-deopt/03-May-2024-496332

2032-default-method-private-override/03-May-2024-194128

2033-shutdown-mechanics/03-May-2024-191112

2034-spaces-in-SimpleName/03-May-2024-13064

2035-structural-native-method/03-May-2024-319163

2036-jni-filechannel/03-May-2024-11165

2036-structural-subclass-shadow/03-May-2024-331186

2037-thread-name-inherit/03-May-2024-259188

2038-hiddenapi-jvmti-ext/03-May-2024-291159

2039-load-transform-larger/03-May-2024-306170

2040-huge-native-alloc/03-May-2024-261172

2041-bad-cleaner/03-May-2024-200107

2042-checker-dce-always-throw/03-May-2024-611262

2042-reference-processing/03-May-2024-363285

2043-reference-pauses/03-May-2024-351245

2044-get-stack-traces/03-May-2024-143101

2045-uffd-kernelfault/03-May-2024-11160

2046-checker-comparison/03-May-2024-488328

2047-checker-const-string-length/03-May-2024-274105

2230-profile-save-hotness/03-May-2024-170117

2231-checker-heap-poisoning/03-May-2024-21255

2232-write-metrics-to-log/03-May-2024-9752

2233-checker-remove-loop-suspend-check/03-May-2024-13370

2234-checker-remove-entry-suspendcheck/03-May-2024-11160

2235-JdkUnsafeTest/03-May-2024-646501

2236-JdkUnsafeGetLong-regression/03-May-2024-9666

2237-checker-inline-multidex/03-May-2024-14756

2238-checker-polymorphic-recursive-inlining/03-May-2024-23991

2239-varhandle-perf/03-May-2024-773500

2240-tracing-non-invokable-method/03-May-2024-14577

2241-checker-inline-try-catch/03-May-2024-353265

2242-checker-lse-acquire-release-operations/03-May-2024-752275

2243-checker-not-inline-into-throw/03-May-2024-10669

2243-single-step-default/03-May-2024-269149

2244-checker-remove-try-boundary/03-May-2024-408172

2245-checker-smali-instance-of-comparison/03-May-2024-7246

2246-trace-stream/03-May-2024-745564

2247-checker-write-barrier-elimination/03-May-2024-379175

2248-checker-smali-remove-try-until-the-end/03-May-2024-6945

2249-checker-return-try-boundary-exit-in-loop/03-May-2024-11569

2250-inline-throw-into-try/03-May-2024-10876

2251-checker-irreducible-loop-do-not-inline/03-May-2024-13084

2252-rem-optimization-dividend-divisor/03-May-2024-8354

2253-checker-devirtualize-always-throws/03-May-2024-9559

2254-checker-not-var-analyzed-pathological/03-May-2024-166103

2254-class-value-before-and-after-u/03-May-2024-9164

2255-checker-branch-redirection/03-May-2024-330192

2256-checker-vector-replacement/03-May-2024-11258

2257-checker-constant-folding-before-codegen/03-May-2024-10560

2258-checker-valid-rti/03-May-2024-10961

2259-checker-code-sinking-infinite-try-catch/03-May-2024-10765

2260-checker-inline-unimplemented-intrinsics/03-May-2024-14495

2261-badcleaner-in-systemcleaner/03-May-2024-180104

2262-checker-return-sinking/03-May-2024-18091

2262-default-conflict-methods/03-May-2024-195115

2262-miranda-methods/03-May-2024-231131

2263-method-trace-jit/03-May-2024-1,3871,175

300-package-override/03-May-2024-14768

301-abstract-protected/03-May-2024-8148

302-float-conversion/03-May-2024-11577

303-verification-stress/03-May-2024-16683

304-method-tracing/03-May-2024-11769

305-other-fault-handler/03-May-2024-178115

370-dex-v37/03-May-2024-5620

401-optimizing-compiler/03-May-2024-303227

402-optimizing-control-flow/03-May-2024-13391

403-optimizing-long/03-May-2024-161108

404-optimizing-allocator/03-May-2024-210171

405-optimizing-long-allocator/03-May-2024-216176

406-fields/03-May-2024-312232

407-arrays/03-May-2024-406300

408-move-bug/03-May-2024-11477

409-materialized-condition/03-May-2024-203140

410-floats/03-May-2024-184135

411-checker-hdiv-hrem-const/03-May-2024-1,9921,018

411-checker-hdiv-hrem-pow2/03-May-2024-1,499851

411-checker-instruct-simplifier-hrem/03-May-2024-890322

411-optimizing-arith/03-May-2024-1,4141,049

412-new-array/03-May-2024-896711

413-regalloc-regression/03-May-2024-8659

414-static-fields/03-May-2024-386266

416-optimizing-arith-not/03-May-2024-9866

418-const-string/03-May-2024-7547

419-long-parameter/03-May-2024-8054

420-const-class/03-May-2024-13899

421-exceptions/03-May-2024-130101

421-large-frame/03-May-2024-1,0871,053

422-instanceof/03-May-2024-11481

422-type-conversion/03-May-2024-736605

423-invoke-interface/03-May-2024-165136

424-checkcast/03-May-2024-11780

425-invoke-super/03-May-2024-157115

426-monitor/03-May-2024-10272

427-bitwise/03-May-2024-277210

427-bounds/03-May-2024-9662

429-ssa-builder/03-May-2024-9561

430-live-register-slow-path/03-May-2024-8451

431-type-propagation/03-May-2024-7551

432-optimizing-cmp/03-May-2024-303241

433-gvn/03-May-2024-8456

434-invoke-direct/03-May-2024-9954

434-shifter-operand/03-May-2024-7650

435-new-instance/03-May-2024-17488

435-try-finally-without-catch/03-May-2024-11480

436-rem-float/03-May-2024-308267

436-shift-constant/03-May-2024-8658

437-inline/03-May-2024-14798

438-volatile/03-May-2024-9766

439-npe/03-May-2024-1,072978

439-swap-double/03-May-2024-9663

440-stmp/03-May-2024-9566

441-checker-inliner/03-May-2024-315151

442-checker-constant-folding/03-May-2024-2,5311,076

443-not-bool-inline/03-May-2024-7850

444-checker-nce/03-May-2024-312184

445-checker-licm/03-May-2024-316159

446-checker-inliner2/03-May-2024-11965

447-checker-inliner3/03-May-2024-12476

448-multiple-returns/03-May-2024-7853

449-checker-bce/03-May-2024-1,975857

449-checker-bce-rem/03-May-2024-708301

450-checker-types/03-May-2024-827428

451-regression-add-float/03-May-2024-11783

451-spill-splot/03-May-2024-148113

452-multiple-returns2/03-May-2024-7349

453-not-byte/03-May-2024-5632

454-get-vreg/03-May-2024-230152

455-checker-gvn/03-May-2024-17989

456-baseline-array-set/03-May-2024-7952

457-regs/03-May-2024-318210

458-checker-instruct-simplification/03-May-2024-3,8761,428

458-long-to-fpu/03-May-2024-8658

459-dead-phi/03-May-2024-7248

460-multiple-returns3/03-May-2024-7349

461-get-reference-vreg/03-May-2024-210147

462-checker-inlining-dex-files/03-May-2024-270103

463-checker-boolean-simplifier/03-May-2024-618348

464-checker-inline-sharpen-calls/03-May-2024-11161

465-checker-clinit-gvn/03-May-2024-12572

466-get-live-vreg/03-May-2024-236162

467-regalloc-pair/03-May-2024-9973

468-checker-bool-simplif-regression/03-May-2024-9061

469-condition-materialization/03-May-2024-9356

470-huge-method/03-May-2024-2,0772,048

471-deopt-environment/03-May-2024-9355

471-uninitialized-locals/03-May-2024-6135

472-type-propagation/03-May-2024-8256

472-unreachable-if-regression/03-May-2024-8961

473-checker-inliner-constants/03-May-2024-12268

473-remove-dead-block/03-May-2024-9059

474-checker-boolean-input/03-May-2024-15484

474-fp-sub-neg/03-May-2024-142107

475-regression-inliner-ids/03-May-2024-10975

475-simplify-mul-zero/03-May-2024-7247

476-checker-ctor-fence-redun-elim/03-May-2024-892457

476-checker-ctor-memory-barrier/03-May-2024-324108

476-clinit-inline-static-invoke/03-May-2024-9662

477-checker-bound-type/03-May-2024-18484

477-long-2-float-convers-precision/03-May-2024-8450

478-checker-clinit-check-pruning/03-May-2024-752325

478-checker-inline-noreturn/03-May-2024-10967

478-checker-inliner-nested-loop/03-May-2024-10569

479-regression-implicit-null-check/03-May-2024-9554

480-checker-dead-blocks/03-May-2024-244114

481-regression-phi-cond/03-May-2024-9663

482-checker-loop-back-edge-use/03-May-2024-252109

483-dce-block/03-May-2024-10563

484-checker-register-hints/03-May-2024-287207

485-checker-dce-loop-update/03-May-2024-315247

485-checker-dce-switch/03-May-2024-239162

486-checker-must-do-null-check/03-May-2024-10063

487-checker-inline-calls/03-May-2024-10466

488-checker-inline-recursive-calls/03-May-2024-10873

489-current-method-regression/03-May-2024-8152

490-checker-inline/03-May-2024-9961

491-current-method/03-May-2024-11576

492-checker-inline-invoke-interface/03-May-2024-10563

493-checker-inline-invoke-interface/03-May-2024-10267

494-checker-instanceof-tests/03-May-2024-270159

495-checker-checkcast-tests/03-May-2024-278185

496-checker-inlining-class-loader/03-May-2024-215118

497-inlining-and-class-loader/03-May-2024-309217

498-type-propagation/03-May-2024-6239

499-bce-phi-array-length/03-May-2024-10973

500-instanceof/03-May-2024-7750

501-null-constant-dce/03-May-2024-7147

501-regression-packed-switch/03-May-2024-9565

503-dead-instructions/03-May-2024-10677

504-regression-baseline-entry/03-May-2024-6339

505-simplifier-type-propagation/03-May-2024-8456

506-verify-aput/03-May-2024-8962

507-boolean-test/03-May-2024-7247

507-referrer/03-May-2024-9753

508-checker-disassembly/03-May-2024-7645

508-referrer-method/03-May-2024-16463

509-pre-header/03-May-2024-7148

510-checker-try-catch/03-May-2024-2,5251,892

511-clinit-interface/03-May-2024-5430

513-array-deopt/03-May-2024-9962

514-shifts/03-May-2024-151111

515-dce-dominator/03-May-2024-6946

516-dead-move-result/03-May-2024-5734

517-checker-builder-fallthrough/03-May-2024-10465

518-null-array-get/03-May-2024-266210

519-bound-load-class/03-May-2024-8559

520-equivalent-phi/03-May-2024-6744

521-checker-array-set-null/03-May-2024-12763

521-regression-integer-field-set/03-May-2024-9260

522-checker-regression-monitor-exit/03-May-2024-12590

523-checker-can-throw-regression/03-May-2024-9061

524-boolean-simplifier-regression/03-May-2024-8354

525-checker-arrays-fields1/03-May-2024-760441

525-checker-arrays-fields2/03-May-2024-760441

526-checker-caller-callee-regs/03-May-2024-13258

526-long-regalloc/03-May-2024-11473

527-checker-array-access-simd/03-May-2024-47284

527-checker-array-access-split/03-May-2024-727130

528-long-hint/03-May-2024-9058

529-checker-unresolved/03-May-2024-362200

529-long-split/03-May-2024-227112

530-checker-instance-of-simplifier/03-May-2024-169158

530-checker-loops-try-catch/03-May-2024-1,607515

530-checker-loops1/03-May-2024-871505

530-checker-loops2/03-May-2024-1,306716

530-checker-loops3/03-May-2024-461209

530-checker-loops4/03-May-2024-420212

530-checker-loops5/03-May-2024-235119

530-checker-lse/03-May-2024-4,5611,821

530-checker-lse-ctor-fences/03-May-2024-240130

530-checker-lse-simd/03-May-2024-336146

530-checker-lse-try-catch/03-May-2024-484244

530-checker-lse3/03-May-2024-222177

530-checker-peel-unroll/03-May-2024-1,652490

530-checker-regression-reftyp-final/03-May-2024-12676

530-instanceof-checkcast/03-May-2024-292213

530-regression-lse/03-May-2024-10069

531-regression-debugphi/03-May-2024-144107

532-checker-nonnull-arrayset/03-May-2024-8849

533-regression-debugphi/03-May-2024-9664

534-checker-bce-deoptimization/03-May-2024-187119

535-deopt-and-inlining/03-May-2024-10066

535-regression-const-val/03-May-2024-6037

536-checker-intrinsic-optimization/03-May-2024-488222

536-checker-needs-access-check/03-May-2024-298154

537-checker-arraycopy/03-May-2024-14786

537-checker-debuggable/03-May-2024-6437

537-checker-inline-and-unverified/03-May-2024-15880

537-checker-jump-over-jump/03-May-2024-11856

538-checker-embed-constants/03-May-2024-800289

540-checker-rtp-bug/03-May-2024-15186

541-regression-inlined-deopt/03-May-2024-9459

542-bitfield-rotates/03-May-2024-375276

542-inline-trycatch/03-May-2024-172122

542-unresolved-access-check/03-May-2024-300187

543-checker-dce-trycatch/03-May-2024-398281

543-env-long-ref/03-May-2024-13183

545-tracing-and-jit/03-May-2024-296246

546-regression-simplify-catch/03-May-2024-12981

547-regression-trycatch-critic-edge/03-May-2024-8150

548-checker-inlining-and-dce/03-May-2024-13474

549-checker-types-merge/03-May-2024-17789

550-checker-multiply-accumulate/03-May-2024-606169

550-checker-regression-wide-store/03-May-2024-12384

550-new-instance-clinit/03-May-2024-7954

551-checker-clinit/03-May-2024-14081

551-checker-shifter-operand/03-May-2024-1,159370

551-implicit-null-checks/03-May-2024-11786

551-invoke-super/03-May-2024-10473

552-checker-primitive-typeprop/03-May-2024-529409

552-checker-sharpening/03-May-2024-24892

552-checker-x86-avx2-bit-manipulation/03-May-2024-272120

552-invoke-non-existent-super/03-May-2024-10171

553-invoke-super/03-May-2024-9752

554-checker-rtp-checkcast/03-May-2024-12074

555-UnsafeGetLong-regression/03-May-2024-9968

556-invoke-super/03-May-2024-9752

557-checker-instruct-simplifier-ror/03-May-2024-632148

557-checker-ref-equivalent/03-May-2024-10267

558-switch/03-May-2024-8055

559-bce-ssa/03-May-2024-7751

559-checker-irreducible-loop/03-May-2024-697610

559-checker-rtp-ifnotnull/03-May-2024-10157

560-packed-switch/03-May-2024-7650

561-divrem/03-May-2024-13491

561-shared-slowpaths/03-May-2024-200146

562-bce-preheader/03-May-2024-198122

562-checker-no-intermediate/03-May-2024-14950

563-checker-fakestring/03-May-2024-652498

563-checker-invoke-super/03-May-2024-8756

564-checker-bitcount/03-May-2024-247171

564-checker-inline-loop/03-May-2024-10859

564-checker-irreducible-loop/03-May-2024-9163

564-checker-negbitwise/03-May-2024-33878

565-checker-condition-liveness/03-May-2024-24171

565-checker-doublenegbitwise/03-May-2024-891700

565-checker-irreducible-loop/03-May-2024-143106

566-checker-codegen-select/03-May-2024-13980

566-polymorphic-inlining/03-May-2024-309199

567-checker-builder-intrinsics/03-May-2024-3,2581,613

568-checker-onebit/03-May-2024-152103

569-checker-pattern-replacement/03-May-2024-1,683530

570-checker-osr/03-May-2024-629426

570-checker-osr-locals/03-May-2024-187120

570-checker-select/03-May-2024-762264

571-irreducible-loop/03-May-2024-8052

572-checker-array-get-regression/03-May-2024-11058

573-checker-checkcast-regression/03-May-2024-9955

574-irreducible-and-constant-area/03-May-2024-10056

575-checker-string-init-alias/03-May-2024-149103

576-polymorphic-inlining/03-May-2024-147107

577-checker-fp2int/03-May-2024-173111

578-bce-visit/03-May-2024-10772

578-polymorphic-inlining/03-May-2024-9868

579-inline-infinite/03-May-2024-8355

580-checker-fp16/03-May-2024-569448

580-checker-round/03-May-2024-259199

580-checker-string-fact-intrinsics/03-May-2024-12364

580-crc32/03-May-2024-580471

581-checker-rtp/03-May-2024-9257

582-checker-bce-length/03-May-2024-14884

583-checker-zero/03-May-2024-7847

584-checker-div-bool/03-May-2024-8957

585-inline-unresolved/03-May-2024-7550

586-checker-null-array-get/03-May-2024-316231

587-inline-class-error/03-May-2024-13296

588-checker-irreducib-lifetime-hole/03-May-2024-158116

589-super-imt/03-May-2024-492458

590-checker-arr-set-null-regression/03-May-2024-12759

590-infinite-loop-with-nop/03-May-2024-5329

591-checker-regression-dead-loop/03-May-2024-8251

591-new-instance-string/03-May-2024-6339

592-checker-regression-bool-input/03-May-2024-11278

593-checker-boolean-2-integral-conv/03-May-2024-453290

593-checker-long-2-float-regression/03-May-2024-10869

593-checker-shift-and-simplifier/03-May-2024-13186

594-checker-array-alias/03-May-2024-304157

594-checker-irreducible-linorder/03-May-2024-150101

594-invoke-super/03-May-2024-12370

594-load-string-regression/03-May-2024-11666

595-error-class/03-May-2024-11482

595-profile-saving/03-May-2024-359239

596-app-images/03-May-2024-352223

596-checker-dead-phi/03-May-2024-11172

596-monitor-inflation/03-May-2024-170114

597-app-images-same-classloader/03-May-2024-12252

597-deopt-busy-loop/03-May-2024-371224

597-deopt-invoke-stub/03-May-2024-168113

597-deopt-new-string/03-May-2024-208129

598-checker-irreducible-dominance/03-May-2024-7846

599-checker-irreducible-loop/03-May-2024-8856

600-verifier-fails/03-May-2024-229184

601-method-access/03-May-2024-12458

602-deoptimizeable/03-May-2024-236177

603-checker-instanceof/03-May-2024-13072

604-hot-static-interface/03-May-2024-8656

605-new-string-from-bytes/03-May-2024-9059

606-erroneous-class/03-May-2024-10273

607-daemon-stress/03-May-2024-7751

608-checker-unresolved-lse/03-May-2024-12544

609-checker-inline-interface/03-May-2024-12669

609-checker-x86-bounds-check/03-May-2024-13750

610-arraycopy/03-May-2024-8961

611-checker-simplify-if/03-May-2024-336193

612-jit-dex-cache/03-May-2024-19775

613-inlining-dex-cache/03-May-2024-20175

614-checker-dump-constant-location/03-May-2024-9053

615-checker-arm64-store-zero/03-May-2024-519255

616-cha/03-May-2024-320209

616-cha-abstract/03-May-2024-226138

616-cha-interface/03-May-2024-240150

616-cha-interface-default/03-May-2024-264142

616-cha-miranda/03-May-2024-223134

616-cha-native/03-May-2024-8052

616-cha-proxy-method-inline/03-May-2024-11452

616-cha-regression-proxy-method/03-May-2024-177115

616-cha-unloading/03-May-2024-297145

617-clinit-oome/03-May-2024-13280

618-checker-induction/03-May-2024-1,094571

619-checker-current-method/03-May-2024-8050

620-checker-bce-intrinsics/03-May-2024-334189

622-checker-bce-regressions/03-May-2024-12280

622-simplifyifs-exception-edges/03-May-2024-12392

623-checker-loop-regressions/03-May-2024-1,327788

624-checker-stringops/03-May-2024-531292

625-checker-licm-regressions/03-May-2024-18498

626-checker-arm64-scratch-register/03-May-2024-1,8211,216

626-const-class-linking/03-May-2024-1,183757

626-set-resolved-string/03-May-2024-9757

627-checker-unroll/03-May-2024-16878

628-vdex/03-May-2024-10254

629-vdex-speed/03-May-2024-9449

630-safecast-array/03-May-2024-3832

631-checker-get-class/03-May-2024-16178

632-checker-char-at-bounds/03-May-2024-8855

633-checker-rtp-getclass/03-May-2024-140101

634-vdex-duplicate/03-May-2024-6915

635-checker-arm64-volatile-load-cc/03-May-2024-335266

636-arm64-veneer-pool/03-May-2024-4,2694,237

636-wrong-static-access/03-May-2024-14749

637-checker-throw-inline/03-May-2024-11165

638-checker-inline-cache-intrinsic/03-May-2024-208102

638-checker-inline-caches/03-May-2024-299112

638-no-line-number/03-May-2024-6425

639-checker-code-sinking/03-May-2024-802366

640-checker-boolean-simd/03-May-2024-17799

640-checker-integer-valueof/03-May-2024-14090

640-checker-simd/03-May-2024-1,963904

641-checker-arraycopy/03-May-2024-13180

641-irreducible-inline/03-May-2024-8557

641-iterations/03-May-2024-11981

642-fp-callees/03-May-2024-15599

643-checker-bogus-ic/03-May-2024-12060

645-checker-abs-simd/03-May-2024-557280

646-checker-arraycopy-large-cst-pos/03-May-2024-8953

646-checker-long-const-to-int/03-May-2024-11075

646-checker-simd-hadd/03-May-2024-2,701806

647-jni-get-field-id/03-May-2024-464290

647-sinking-catch/03-May-2024-8052

648-inline-caches-unresolved/03-May-2024-8023

648-many-direct-methods/03-May-2024-187103

649-vdex-duplicate-method/03-May-2024-21

650-checker-inline-access-thunks/03-May-2024-10756

652-deopt-intrinsic/03-May-2024-12168

654-checker-periodic/03-May-2024-222133

655-checker-simd-arm-opt/03-May-2024-224121

655-jit-clinit/03-May-2024-10570

656-annotation-lookup-generic-jni/03-May-2024-18966

656-checker-simd-opt/03-May-2024-483181

656-loop-deopt/03-May-2024-182115

657-branches/03-May-2024-9458

658-fp-read-barrier/03-May-2024-183139

659-unpadded-array/03-May-2024-9865

660-checker-sad/03-May-2024-842400

660-checker-simd-sad/03-May-2024-2,5971,015

660-clinit/03-May-2024-332239

660-store-8-16/03-May-2024-172131

661-checker-simd-reduc/03-May-2024-724266

661-classloader-allocator/03-May-2024-9849

661-oat-writer-layout/03-May-2024-598417

662-regression-alias/03-May-2024-12681

663-checker-select-generator/03-May-2024-437209

663-odd-dex-size/03-May-2024-4216

663-odd-dex-size2/03-May-2024-3714

663-odd-dex-size3/03-May-2024-4117

663-odd-dex-size4/03-May-2024-4117

664-aget-verifier/03-May-2024-14390

665-checker-simd-zero/03-May-2024-365157

666-dex-cache-itf/03-May-2024-162121

667-checker-simd-alignment/03-May-2024-386141

667-jit-jni-stub/03-May-2024-315188

667-out-of-bounds/03-May-2024-7852

668-aiobe/03-May-2024-7146

669-checker-break/03-May-2024-411155

670-bitstring-type-check/03-May-2024-260188

671-npe-field-opts/03-May-2024-13296

672-checker-throw-method/03-May-2024-375182

673-checker-throw-vmethod/03-May-2024-276132

674-HelloWorld-Dm/03-May-2024-9046

674-hiddenapi/03-May-2024-2,3301,596

674-hotness-compiled/03-May-2024-12274

674-vdex-uncompress/03-May-2024-8523

675-checker-unverified-method/03-May-2024-8758

676-proxy-jit-at-first-use/03-May-2024-10860

676-resolve-field-type/03-May-2024-15765

677-fsi/03-May-2024-8020

677-fsi2/03-May-2024-8744

678-quickening/03-May-2024-14686

679-locks/03-May-2024-12068

680-checker-deopt-dex-pc-0/03-May-2024-10870

682-double-catch-phi/03-May-2024-7953

683-clinit-inline-static-invoke/03-May-2024-5911

684-checker-simd-dotprod/03-May-2024-2,012738

684-select-condition/03-May-2024-12779

685-deoptimizeable/03-May-2024-299232

685-shifts/03-May-2024-158115

686-get-this/03-May-2024-9967

687-deopt/03-May-2024-10059

688-shared-library/03-May-2024-265167

689-multi-catch/03-May-2024-7752

689-zygote-jit-deopt/03-May-2024-13471

690-hiddenapi-same-name-methods/03-May-2024-368250

691-hiddenapi-proxy/03-May-2024-10949

692-vdex-inmem-loader/03-May-2024-510318

692-vdex-secondary-loader/03-May-2024-21093

693-vdex-inmem-loader-evict/03-May-2024-320210

694-clinit-jit/03-May-2024-13586

695-simplify-throws/03-May-2024-9163

696-loop/03-May-2024-8357

697-checker-string-append/03-May-2024-504394

698-selects/03-May-2024-8756

699-checker-string-append2/03-May-2024-209173

700-LoadArgRegs/03-May-2024-425381

701-easy-div-rem/03-May-2024-225146

702-LargeBranchOffset/03-May-2024-9639

703-floating-point-div/03-May-2024-142100

704-multiply-accumulate/03-May-2024-217166

705-register-conflict/03-May-2024-11990

706-checker-scheduler/03-May-2024-736182

707-checker-invalid-profile/03-May-2024-13375

708-jit-cache-churn/03-May-2024-415294

710-varhandle-creation/03-May-2024-2,5412,311

711-checker-type-conversion/03-May-2024-311202

712-varhandle-invocations/03-May-2024-8,3597,487

713-varhandle-invokers/03-May-2024-574425

714-invoke-custom-lambda-metafactory/03-May-2024-7924

715-clinit-implicit-parameter-annotations/03-May-2024-355276

716-jli-jit-samples/03-May-2024-220156

717-integer-value-of/03-May-2024-181122

718-zipfile-finalizer/03-May-2024-8552

719-varhandle-concurrency/03-May-2024-297187

720-thread-priority/03-May-2024-14188

721-osr/03-May-2024-9161

723-string-init-range/03-May-2024-9467

724-invoke-super-npe/03-May-2024-8861

725-imt-conflict-object/03-May-2024-276250

726-array-store/03-May-2024-10876

727-checker-unresolved-class/03-May-2024-1,605658

728-imt-conflict-zygote/03-May-2024-312262

729-checker-polymorphic-intrinsic/03-May-2024-10957

730-cha-deopt/03-May-2024-10469

730-checker-inlining-super/03-May-2024-9264

731-bounds-check-slow-path/03-May-2024-162126

800-smali/03-May-2024-3,0982,388

801-VoidCheckCast/03-May-2024-53

802-deoptimization/03-May-2024-211129

803-no-super/03-May-2024-4116

804-class-extends-itself/03-May-2024-12572

805-TooDeepClassInstanceOf/03-May-2024-12692

806-TooWideClassInstanceOf/03-May-2024-1,3271,288

807-method-handle-and-mr/03-May-2024-11971

808-checker-invoke-super/03-May-2024-7666

809-checker-invoke-super-bss/03-May-2024-134119

810-checker-invoke-super-default/03-May-2024-152135

811-checker-invoke-super-secondary/03-May-2024-156103

812-recursive-default/03-May-2024-8154

813-fp-args/03-May-2024-9161

814-large-field-offsets/03-May-2024-405333

815-invokeinterface-default/03-May-2024-236207

816-illegal-new-array/03-May-2024-12880

817-hiddenapi/03-May-2024-398173

818-clinit-nterp/03-May-2024-10156

819-verification-runtime/03-May-2024-6539

820-vdex-multidex/03-May-2024-6712

821-madvise-willneed/03-May-2024-9550

821-many-args/03-May-2024-148111

822-hiddenapi-future/03-May-2024-8830

823-cha-inlining/03-May-2024-210135

824-verification-rethrow/03-May-2024-6236

825-unbalanced-lock/03-May-2024-6240

826-infinite-loop/03-May-2024-7147

827-resolve-method/03-May-2024-12049

828-partial-lse/03-May-2024-9863

829-unresolved-enclosing/03-May-2024-8239

830-goto-zero/03-May-2024-7650

831-unresolved-field/03-May-2024-10561

831-unverified-bcp/03-May-2024-10354

832-cha-recursive/03-May-2024-10069

833-background-verification/03-May-2024-5,1245,037

834-lse/03-May-2024-8558

835-b216762268/03-May-2024-11988

836-32768classes/03-May-2024-53

837-deopt/03-May-2024-14094

838-override/03-May-2024-415157

839-clinit-throw/03-May-2024-11480

840-resolution/03-May-2024-440195

841-defaults/03-May-2024-177151

842-vdex-hard-failure/03-May-2024-7936

843-default-interface/03-May-2024-19974

844-exception/03-May-2024-11473

844-exception2/03-May-2024-9861

845-data-image/03-May-2024-498334

845-fast-verify/03-May-2024-9241

846-multidex-data-image/03-May-2024-14874

847-filled-new-aray/03-May-2024-4742

900-hello-plugin/03-May-2024-192114

901-hello-ti-agent/03-May-2024-520356

902-hello-transformation/03-May-2024-286171

903-hello-tagging/03-May-2024-474306

904-object-allocation/03-May-2024-417274

905-object-free/03-May-2024-470308

906-iterate-heap/03-May-2024-984762

907-get-loaded-classes/03-May-2024-267147

908-gc-start-finish/03-May-2024-267156

909-attach-agent/03-May-2024-441300

910-methods/03-May-2024-541379

911-get-stack-trace/03-May-2024-2,4191,986

912-classes/03-May-2024-1,6841,267

913-heaps/03-May-2024-2,4111,958

914-hello-obsolescence/03-May-2024-297188

915-obsolete-2/03-May-2024-345224

916-obsolete-jit/03-May-2024-412266

917-fields-transformation/03-May-2024-309193

918-fields/03-May-2024-324213

919-obsolete-fields/03-May-2024-395254

920-objects/03-May-2024-259151

921-hello-failure/03-May-2024-1,614912

922-properties/03-May-2024-397281

923-monitors/03-May-2024-511358

924-threads/03-May-2024-928696

925-threadgroups/03-May-2024-399266

926-multi-obsolescence/03-May-2024-358243

927-timers/03-May-2024-240133

928-jni-table/03-May-2024-247131

929-search/03-May-2024-17471

930-hello-retransform/03-May-2024-282173

931-agent-thread/03-May-2024-299177

932-transform-saves/03-May-2024-334206

933-misc-events/03-May-2024-19396

934-load-transform/03-May-2024-276152

935-non-retransformable/03-May-2024-301169

936-search-onload/03-May-2024-21385

937-hello-retransform-package/03-May-2024-273164

938-load-transform-bcp/03-May-2024-294170

939-hello-transformation-bcp/03-May-2024-458306

940-recursive-obsolete/03-May-2024-329215

941-recursive-obsolete-jit/03-May-2024-384254

942-private-recursive/03-May-2024-338220

943-private-recursive-jit/03-May-2024-404270

944-transform-classloaders/03-May-2024-510315

945-obsolete-native/03-May-2024-351211

946-obsolete-throw/03-May-2024-314204

947-reflect-method/03-May-2024-289178

948-change-annotations/03-May-2024-600314

949-in-memory-transform/03-May-2024-330206

950-redefine-intrinsic/03-May-2024-781456

951-threaded-obsolete/03-May-2024-322204

952-invoke-custom/03-May-2024-3,1632,459

953-invoke-polymorphic-compiler/03-May-2024-424331

954-invoke-polymorphic-verifier/03-May-2024-716602

955-methodhandles-smali/03-May-2024-275217

956-methodhandles/03-May-2024-2,0551,601

957-methodhandle-transforms/03-May-2024-1,8131,373

958-methodhandle-stackframe/03-May-2024-234143

959-invoke-polymorphic-accessors/03-May-2024-1,089945

960-default-smali/03-May-2024-1,009444

961-default-iface-resolution-gen/03-May-2024-464328

962-iface-static/03-May-2024-9527

963-default-range-smali/03-May-2024-13881

964-default-iface-init-gen/03-May-2024-509370

965-default-verify/03-May-2024-205124

966-default-conflict/03-May-2024-230143

967-default-ame/03-May-2024-277148

968-default-partial-compile-gen/03-May-2024-818620

969-iface-super/03-May-2024-425182

970-iface-super-resolution-gen/03-May-2024-767581

971-iface-super/03-May-2024-904699

972-default-imt-collision/03-May-2024-1,3391,122

972-iface-super-multidex/03-May-2024-246197

973-default-multidex/03-May-2024-12995

974-verify-interface-super/03-May-2024-10286

975-iface-private/03-May-2024-148113

976-conflict-no-methods/03-May-2024-664526

978-virtual-interface/03-May-2024-273221

979-const-method-handle/03-May-2024-730478

980-redefine-object/03-May-2024-480311

981-dedup-original-dex/03-May-2024-391238

982-ok-no-retransform/03-May-2024-243144

983-source-transform-verify/03-May-2024-466258

984-obsolete-invoke/03-May-2024-407253

985-re-obsolete/03-May-2024-437294

986-native-method-bind/03-May-2024-324207

987-agent-bind/03-May-2024-18593

988-method-trace/03-May-2024-1,7071,399

989-method-trace-throw/03-May-2024-900711

990-field-trace/03-May-2024-441327

991-field-trace-2/03-May-2024-558417

992-source-data/03-May-2024-261150

993-breakpoints/03-May-2024-2,4922,224

993-breakpoints-non-debuggable/03-May-2024-2,5262,222

994-breakpoint-line/03-May-2024-401278

995-breakpoints-throw/03-May-2024-469342

996-breakpoint-obsolete/03-May-2024-654439

997-single-step/03-May-2024-457307

998-redefine-use-after-free/03-May-2024-338185

999-redefine-hiddenapi/03-May-2024-357176

AbstractMethod/03-May-2024-3210

AllFields/03-May-2024-7624

ArrayClassWithUnresolvedComponent/03-May-2024-9377

DefaultMethods/03-May-2024-288

Dex2oatVdexPublicSdkDex/03-May-2024-152124

Dex2oatVdexTestDex/03-May-2024-8652

ErroneousA/03-May-2024-181

ErroneousB/03-May-2024-212

ErroneousInit/03-May-2024-247

ExceptionHandle/03-May-2024-4325

Extension1/03-May-2024-214

Extension2/03-May-2024-225

ForClassLoaderA/03-May-2024-3210

ForClassLoaderB/03-May-2024-3110

ForClassLoaderC/03-May-2024-3110

ForClassLoaderD/03-May-2024-288

GetMethodSignature/03-May-2024-3013

HiddenApi/03-May-2024-8818

HiddenApiSignatures/03-May-2024-13539

HiddenApiStubs/03-May-2024-4122

IMTA/03-May-2024-258

IMTB/03-May-2024-2912

ImageLayoutA/03-May-2024-224

ImageLayoutB/03-May-2024-268

Instrumentation/03-May-2024-3615

Interfaces/03-May-2024-4225

LinkageTest/03-May-2024-6758

Lookup/03-May-2024-543

Main/03-May-2024-214

ManyMethods/03-May-2024-10876

MethodTypes/03-May-2024-214

MultiDex/03-May-2024-5718

MultiDexModifiedSecondary/03-May-2024-6021

MyClass/03-May-2024-181

MyClassNatives/03-May-2024-338238

Nested/03-May-2024-236

NonStaticLeafMethods/03-May-2024-5639

Packages/03-May-2024-428

ProfileTestMultiDex/03-May-2024-501437

ProtoCompare/03-May-2024-236

ProtoCompare2/03-May-2024-236

StaticLeafMethods/03-May-2024-5437

Statics/03-May-2024-5638

StaticsFromCode/03-May-2024-246

StringLiterals/03-May-2024-4827

SuperWithAccessChecks/03-May-2024-8671

Transaction/03-May-2024-195108

VerifierDeps/03-May-2024-779665

VerifierDepsMulti/03-May-2024-2622

VerifySoftFailDuringClinit/03-May-2024-5144

XandY/03-May-2024-406

common/03-May-2024-735547

dexdump/03-May-2024-37,30336,499

dexpreopt/03-May-2024-338241

generate-boot-image/03-May-2024-192146

jvmti-common/03-May-2024-1,187801

odsign/03-May-2024-2,5041,603

testrunner/03-May-2024-1,9441,501

ti-agent/03-May-2024-5,0903,992

ti-stress/03-May-2024-912807

update-rollback/03-May-2024-290168

utils/03-May-2024-1,4991,073

Android.bpD03-May-202463.3 KiB1,9131,771

Android.run-test.bpD03-May-2024215.8 KiB6,3035,681

Android.run-test.bp.pyD03-May-20246.5 KiB175141

Android.run-test.mkD03-May-20245.6 KiB13180

OWNERSD03-May-202482 43

README.arm_fvp.mdD03-May-20242.7 KiB6647

README.atest.mdD03-May-20245.9 KiB173133

README.chroot.mdD03-May-20247.6 KiB209200

README.chroot_vm.mdD03-May-20242.3 KiB7562

README.mdD03-May-20247.5 KiB229173

art-gtests-target-chroot.xmlD03-May-20243.5 KiB5729

art-gtests-target-install-apex.xmlD03-May-20242.3 KiB4318

art-gtests-target-standalone-cts-template.xmlD03-May-20243 KiB5325

art-gtests-target-standalone-root-template.xmlD03-May-20242.3 KiB4520

art-gtests-target-standalone-template.xmlD03-May-20242.3 KiB4520

art-gtests-target-standalone-with-boot-image-template.xmlD03-May-20243.1 KiB5630

art-run-test-target-cts-template.xmlD03-May-20242.7 KiB5123

art-run-test-target-no-test-suite-tag-template.xmlD03-May-20242.1 KiB4216

art-run-test-target-slow-template.xmlD03-May-20242.4 KiB4619

art-run-test-target-template.xmlD03-May-20242.3 KiB4518

csuite-app-compile-launch.xmlD03-May-20241.9 KiB3519

default_run.pyD03-May-202448.8 KiB1,207871

knownfailures.jsonD03-May-202458.6 KiB1,5741,573

run-testD03-May-202440.2 KiB1,099932

run_test_build.pyD03-May-202420.7 KiB523378

README.arm_fvp.md

1# Testing ART on a model (QEMU or Arm FVP)
2
3This document describes how to test ART on a model - QEMU or the ARM Fixed Virtual Platform.
4
5It covers steps on how to build and run an Android system image targeting a model
6and to use it as a target platform for running ART tests via ADB in chroot mode. The guide
7covers both QEMU and the ARM Fixed Virtual Platform; the setup is very similar.
8
9More information on QEMU and Arm FVP could be found in
10{AOSP}/device/generic/goldfish/fvpbase/README.md.
11
12One would need two AOSP trees for this setup:
13 - a full stable (tagged) tree - to be used to build AOSP image for the model.
14   - android-13.0.0_r12 was tested successfully to run QEMU:
15     ```repo init  -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r12```
16 - a full or minimal tree - the one to be tested as part of ART test run.
17
18## Setting up the QEMU/Arm FVP
19
20Once a full AOSP tree is downloaded, please follow the instructions in
21${AOSP}/device/generic/goldfish/fvpbase/README.md; they should cover:
22 - fetching, configuring and building the model.
23 - building AOSP image for it.
24 - launching the model.
25
26Once the model is started and reachable via adb, ART tests could be run.
27
28Notes:
29 - fvp_mini lunch target should be used as we don't need graphics to run ART tests.
30 - 'Running the image in QEMU' mentions that a special commit should be checked out for QEMU
31   for GUI runs. Actually it is recommended to use it even for non-GUI runs (fvp_mini).
32
33### Running the Arm FVP with SVE enabled
34
35To test SVE on Arm FVP, one extra step is needed when following the instructions above;
36for QEMU run this is not needed. When launching the model some extra cmdline options should
37be provided for 'run_model':
38
39```
40export SVE_PLUGIN=${MODEL_PATH}/plugins/<os_and_toolchain>/ScalableVectorExtension.so
41$ ./device/generic/goldfish/fvpbase/run_model --plugin ${SVE_PLUGIN} -C SVE.ScalableVectorExtension.veclen=2
42```
43
44Note: SVE vector length is passed in units of 64-bit blocks. So "2" would stand
45for 128-bit vector length.
46
47## Running ART test
48
49QEMU/FVP behaves as a regular adb device so running ART tests is possible using
50the standard chroot method described in test/README.chroot.md with an additional step,
51described below. A separate AOSP tree (not the one used for the model itself), should
52be used - full or minimal.
53
54Then the regular ART testing routine should be performed; the regular "lunch"
55target ("armv8" and other targets, not "fvp-eng").
56
57```
58# Config the test run for QEMU/FVP.
59export ART_TEST_RUN_ON_ARM_FVP=true
60
61# Build, sync ART tests to the model and run, see test/README.chroot.md.
62```
63
64Note: ART scripts only support one adb device at a time. If you have other adb devices
65connected, use `export ANDROID_SERIAL=localhost:5555` to run scripts on QEMU/FVP."
66

README.atest.md

1# Running ART Tests with Atest / Trade Federation
2
3ART Testing has early support for execution in the [Trade
4Federation](https://source.android.com/devices/tech/test_infra/tradefed)
5("TradeFed") test harness, in particular via the
6[Atest](https://source.android.com/compatibility/tests/development/atest)
7command line tool.
8
9Atest conveniently takes care of building tests and their dependencies (using
10Soong, the Android build system) and executing them using Trade Federation.
11
12See also [README.md](README.md) for a general introduction to ART run-tests and
13gtests.
14
15## ART run-tests
16
17### Running ART run-tests on device
18
19ART run-tests are defined in sub-directories of `test/` starting with a number
20(e.g. `test/001-HelloWorld`). Each ART run-test is identified in the build
21system by a Soong module name following the `art-run-test-`*`<test-directory>`*
22format (e.g. `art-run-test-001-HelloWorld`).
23
24You can run a specific ART run-test on device by passing its Soong module name
25to Atest:
26```bash
27atest art-run-test-001-HelloWorld
28```
29
30To run all ART run-tests in a single command, the currently recommended way is
31to use [test mapping](#test-mapping) (see below).
32
33You can nonetheless run all supported ART run-tests with a single Atest command,
34using its support for wildcards:
35```bash
36atest art-run-test-\*
37```
38
39Note: Many ART run-tests are failing with the TradeFed harness as of March 2021,
40so the above Atest command will likely report many tests failures. The ART team
41is actively working on this issue.
42
43## ART gtests
44
45### Running ART gtests on device
46
47There are three ways to run ART gtests on device:
481. by building "standalone" ART gtests and running them against the active ART
49   APEX on the device;
502. by installing the Testing ART APEX (i.e. manually "updating" the ART APEX on
51   device); or
523. by setting up a `chroot` environment on the device, and "activating" the
53   Testing ART APEX in that environment.
54
55The first approach can be used to test the ART APEX presently residing on a
56device (either the original one, located in the "system" partition, or an
57updated package, present in the "data" partition).
58
59The second and third approaches make use of the Testing ART APEX
60(`com.android.art.testing.apex`), and were previously the only options to run
61ART gtests on device, because of build- and link-related limitations (the ART
62gtests had to be part of the ART APEX package itself to be able to build and run
63properly).
64
65### Running standalone ART gtests on device
66
67Standalone ART gtests are defined as Soong modules `art_standalone_*_tests`. You
68can run them individually with Atest, e.g:
69
70```bash
71atest art_standalone_cmdline_tests
72```
73
74You can also run all of them with a single Atest command, using its support for
75wildcards:
76
77```bash
78atest art_standalone_\*_tests
79```
80
81The previous commands build the corresponding ART gtests and their dependencies,
82dynamically link them against local ART APEX libraries (in the source tree), and
83run them on device against the active ART APEX.
84
85### Running ART gtests on device by installing the Testing ART APEX
86
87You can run ART gtests on device with the ART APEX installation strategy by
88using the following `atest` command:
89
90```bash
91atest ArtGtestsTargetInstallApex
92```
93
94This command:
951. builds the Testing ART APEX from the Android source tree (including the ART
96   gtests);
972. installs the Testing ART APEX using `adb install`;
983. reboots the device;
994. runs the tests; and
1005. uninstalls the module.
101
102You can run the tests of a single ART gtest C++ class using the
103`ArtGtestsTargetInstallApex:`*`<art-gtest-c++-class>`* syntax, e.g.:
104```bash
105atest ArtGtestsTargetInstallApex:JniInternalTest
106```
107
108This syntax also supports the use of wildcards, e.g.:
109```bash
110atest ArtGtestsTargetInstallApex:*Test*
111```
112
113You can also use Trade Federation options to run a subset of ART gtests, e.g.:
114```bash
115atest ArtGtestsTargetInstallApex -- \
116  --module ArtGtestsTargetInstallApex --test '*JniInternalTest*'
117```
118
119You can also pass option `--gtest_filter` to the gtest binary to achieve a
120similar effect:
121```bash
122atest ArtGtestsTargetInstallApex -- \
123  --test-arg com.android.tradefed.testtype.GTest:native-test-flag:"--gtest_filter=*JniInternalTest*"
124```
125
126### Running ART gtests on device using a `chroot` environment
127
128You can run ART gtests on device with the chroot-based strategy by using the
129following command:
130
131```bash
132atest ArtGtestsTargetChroot
133```
134
135This sequence:
1361. builds the Testing ART APEX from the Android source tree (including the ART
137   gtests) and all the necessary dependencies for the `chroot` environment;
1382. sets up a `chroot` environment on the device;
1393. "activates" the Testing ART APEX (and other APEXes that it depends on) in the
140   `chroot` environment;
1414. runs the tests within the `chroot` environment; and
1425. cleans up the environment (deactivates the APEXes and removes the `chroot`
143   environment).
144
145## Test Mapping
146
147ART Testing supports the execution of tests via [Test
148Mapping](https://source.android.com/compatibility/tests/development/test-mapping).
149The tests declared in ART's [TEST_MAPPING](../TEST_MAPPING) file are executed
150during pre-submit testing (when an ART changelist in Gerrit is verified by
151Treehugger) and/or post-submit testing (when a given change is merged in the
152Android code base), depending on the "test group" where a test is declared.
153
154### Running tests via Test Mapping with Atest
155
156It is possible to run tests via test mapping locally using Atest.
157
158To run all the tests declared in ART's `TEST_MAPPING` file, use the following
159command from the Android source tree top-level directory:
160```bash
161atest --test-mapping art:all
162```
163In the previous command, `art` is the (relative) path to the directory
164containing the `TEST_MAPPING` file listing the tests to run, while `all` means
165that tests declared in all [test
166groups](https://source.android.com/compatibility/tests/development/test-mapping#defining_test_groups)
167shall be run.
168
169To only run tests executed during pre-submit testing, use:
170```bash
171atest --test-mapping art:presubmit
172```
173

README.chroot.md

1# ART Chroot-Based On-Device Testing
2
3This file documents the use of a chroot environment in on-device testing of the
4Android Runtime (ART). Using a chroot allows tests to run a standalone ART from
5a locally built source tree on a device running (almost any) system image and
6does not interfere with the Runtime installed in the device's system partition.
7
8## Introduction
9
10The Android Runtime (ART) supports testing in a chroot-based environment, by
11setting up a chroot directory in a `ART_TEST_CHROOT` directory located under
12`/data/local` (e.g. `ART_TEST_CHROOT=/data/local/art-test-chroot`) on a device,
13installing ART and all other required artifacts there, and having tests use `adb
14shell chroot $ART_TEST_CHROOT <command>` to execute commands on the device
15within this environment.
16
17This way to run tests using a "standalone ART" ("guest system") only affects
18files in the data partition (the system partition and other partitions are left
19untouched) and is as independent as possible from the Android system ("host
20system") running on the device. This has some benefits:
21
22* no need to build and flash a whole device to do ART testing (or "overwriting"
23  an existing ART by syncing the system partition);
24* the possibility to use a smaller AOSP Android manifest
25  ([`master-art`](https://android.googlesource.com/platform/manifest/+/refs/heads/master-art/default.xml))
26  to build ART and the required dependencies for testing;
27* no instability due to updating/replacing ART on the system partition (a
28  functional Android Runtime is necessary to properly boot a device);
29* the possibility to have several standalone ART instances (one per directory,
30  e.g. `/data/local/art-test-chroot1`, `/data/local/art-test-chroot2`, etc.).
31
32Note that using this chroot-based approach requires root access to the device
33(i.e. be able to run `adb root` successfully).
34
35## Quick User Guide
36
370. Unset variables which are not used with the chroot-based approach (if they
38   were set previously):
39   ```bash
40   unset ART_TEST_ANDROID_ROOT
41   unset CUSTOM_TARGET_LINKER
42   unset ART_TEST_ANDROID_ART_ROOT
43   unset ART_TEST_ANDROID_RUNTIME_ROOT
44   unset ART_TEST_ANDROID_I18N_ROOT
45   unset ART_TEST_ANDROID_TZDATA_ROOT
46   ```
471. Set the chroot directory in `ART_TEST_CHROOT`:
48    ```bash
49    export ART_TEST_CHROOT=/data/local/art-test-chroot
50    ```
512. Set lunch target and ADB:
52    * With a minimal `aosp/master-art` tree:
53        1. Initialize the environment:
54            ```bash
55            export SOONG_ALLOW_MISSING_DEPENDENCIES=true
56            export BUILD_BROKEN_DISABLE_BAZEL=true
57            . ./build/envsetup.sh
58            ```
59        2. Select a lunch target corresponding to the architecture you want to
60           build and test:
61            * For (32-bit) Arm:
62                ```bash
63                lunch arm_krait-eng
64                ```
65            * For (64-bit only) Arm64:
66                ```bash
67                lunch armv8-eng
68                ```
69            * For (32- and 64-bit) Arm64:
70                ```bash
71                lunch arm_v7_v8-eng
72                ```
73            * For (32-bit) Intel x86:
74                ```bash
75                lunch silvermont-eng
76                ```
77        3. Set up the environment to use a pre-built ADB:
78            ```bash
79            export PATH="$(pwd)/prebuilts/runtime:$PATH"
80            export ADB="$ANDROID_BUILD_TOP/prebuilts/runtime/adb"
81            ```
82    * With a full Android (AOSP) `aosp/master` tree:
83        1. Initialize the environment:
84            ```bash
85            . ./build/envsetup.sh
86            ```
87        2. Select a lunch target corresponding to the architecture you want to
88           build and test:
89            * For (32-bit) Arm:
90                ```bash
91                lunch aosp_arm-eng
92                ```
93            * For (32- and 64-bit) Arm64:
94                ```bash
95                lunch aosp_arm64-eng
96                ```
97            * For (32-bit) Intel x86:
98                ```bash
99                lunch aosp_x86-eng
100                ```
101            * For (32- and 64-bit) Intel x86-64:
102                ```bash
103                lunch aosp_x86_64-eng
104                ```
105        3. Build ADB:
106            ```bash
107            m adb
108            ```
1093. Build ART and required dependencies:
110    ```bash
111    art/tools/buildbot-build.sh --target
112    ```
113    After building it is fine to see it finish with an error like:
114    ```
115    linkerconfig E [...] variableloader.cc:83] Unable to access VNDK APEX at path: <path>: No such file or directory
116    ```
1174. Clean up the device:
118    ```bash
119    art/tools/buildbot-cleanup-device.sh
120    ```
1215. Setup the device (including setting up mount points and files in the chroot
122   directory):
123    ```bash
124    art/tools/buildbot-setup-device.sh
125    ```
1266. Populate the chroot tree on the device (including "activating" APEX packages
127   in the chroot environment):
128    ```bash
129    art/tools/buildbot-sync.sh
130    ```
1317. Run ART gtests:
132    ```bash
133    art/tools/run-gtests.sh -j4
134    ```
135    * Specific tests to run can be passed on the command line, specified by
136      their absolute paths beginning with `/apex/`:
137        ```bash
138        art/tools/run-gtests.sh \
139          /apex/com.android.art/bin/art/arm64/art_cmdline_tests \
140          /apex/com.android.art/bin/art/arm64/art_dexdump_tests
141        ```
142    * Gtest options can be passed to each gtest by passing them after `--`; see
143      the following examples.
144        * To print the list of all test cases of a given gtest, use option
145          `--gtest_list_tests`:
146            ```bash
147            art/tools/run-gtests.sh \
148              /apex/com.android.art/bin/art/arm64/art_cmdline_tests \
149              -- --gtest_list_tests
150            ```
151        * To filter the test cases to execute, use option `--gtest_filter`:
152            ```bash
153            art/tools/run-gtests.sh \
154              /apex/com.android.art/bin/art/arm64/art_cmdline_tests \
155              -- --gtest_filter="*TestJdwp*"
156            ```
157        * To see all the options supported by a gtest, use option `--help`:
158            ```bash
159            art/tools/run-gtests.sh \
160              /apex/com.android.art/bin/art/arm64/art_cmdline_tests \
161              -- --help
162            ```
163    * Note: Some test cases of `art_runtime_tests` defined in
164    `art/runtime/gc/space/image_space_test.cc` may fail when using the full AOSP
165    tree (b/119815008).
166        * Workaround: Run `m clean-oat-host` before the build step
167        (`art/tools/buildbot-build.sh --target`) above.
168    * Note: The `-j` option of script `art/tools/run-gtests.sh` is not honored
169      yet (b/129930445). However, gtests themselves support parallel execution,
170      which can be specified via the gtest option `-j`:
171        ```bash
172        art/tools/run-gtests.sh -- -j4
173        ```
1748. Run ART run-tests:
175    * On a 64-bit target:
176        ```bash
177        art/test/testrunner/testrunner.py --target --64
178        ```
179    * On a 32-bit target:
180        ```bash
181        art/test/testrunner/testrunner.py --target --32
182        ```
1839. Run Libcore tests:
184    * On a 64-bit target:
185        ```bash
186        art/tools/run-libcore-tests.sh --mode=device --variant=X64
187        ```
188    * On a 32-bit target:
189        ```bash
190        art/tools/run-libcore-tests.sh --mode=device --variant=X32
191        ```
19210. Run JDWP tests:
193    * On a 64-bit target:
194        ```bash
195        art/tools/run-libjdwp-tests.sh --mode=device --variant=X64
196        ```
197    * On a 32-bit target:
198        ```bash
199        art/tools/run-libjdwp-tests.sh --mode=device --variant=X32
200        ```
20111. Tear down device setup:
202    ```bash
203    art/tools/buildbot-teardown-device.sh
204    ```
20512. Clean up the device:
206    ```bash
207    art/tools/buildbot-cleanup-device.sh
208    ```
209

README.chroot_vm.md

1# ART chroot-based testing on a Linux VM
2
3This doc describes how to set up a Linux VM and how to run ART tests on it.
4
5## Set up the VM
6
7Use script art/build/buildbot-vm.sh. It has various commands (actions) described
8below. First, set up some environment variables used by the script (change as
9you see fit):
10```
11export ART_TEST_SSH_USER=ubuntu
12export ART_TEST_SSH_HOST=localhost
13export ART_TEST_SSH_PORT=10001
14```
15Create the VM (download it and do some initial setup):
16```
17art/tools/buildbot-vm.sh create
18```
19Boot the VM (login is `$ART_TEST_SSH_USER`, password is `ubuntu`):
20```
21art/tools/buildbot-vm.sh boot
22```
23Configure SSH (enter `yes` to add VM to `known_hosts` and then the password):
24```
25art/tools/buildbot-vm.sh setup-ssh
26```
27Now you have the shell (no need to enter password every time):
28```
29art/tools/buildbot-vm.sh connect
30```
31To power off the VM, do:
32```
33art/tools/buildbot-vm.sh quit
34```
35To speed up SSH access, set `UseDNS no` in /etc/ssh/sshd_config on the VM (and
36apply other tweaks described in https://jrs-s.net/2017/07/01/slow-ssh-logins).
37
38# Run ART tests
39```
40This is done in the same way as you would run tests in chroot on device (except
41for a few extra environment variables):
42
43export ANDROID_SERIAL=nonexistent
44export ART_TEST_SSH_USER=ubuntu
45export ART_TEST_SSH_HOST=localhost
46export ART_TEST_SSH_PORT=10001
47export ART_TEST_ON_VM=true
48
49. ./build/envsetup.sh
50lunch armv8-eng  # or aosp_riscv64-userdebug, etc.
51art/tools/buildbot-build.sh --target # --installclean
52
53art/tools/buildbot-cleanup-device.sh
54
55# The following two steps can be skipped for faster iteration, but it doesn't
56# always track and update dependencies correctly (e.g. if only an assembly file
57# has been modified).
58art/tools/buildbot-setup-device.sh
59art/tools/buildbot-sync.sh
60
61art/test/run-test --chroot $ART_TEST_CHROOT --64 --interpreter -O 001-HelloWorld
62art/test.py --target -r --ndebug --no-image --64 --interpreter  # specify tests
63art/tools/run-gtests.sh
64
65art/tools/buildbot-cleanup-device.sh
66```
67Both test.py and run-test scripts can be used. Tweak options as necessary.
68
69# Limitations
70
71Limitations are mostly related to the absence of system properties on the Linux.
72They are not really needed for ART tests, but they are used for test-related
73things, e.g. to find out if the tests should run in debug configuration (option
74`ro.debuggable`). Therefore debug configuration is currently broken.
75

README.md

1# ART Testing
2
3There are two suites of tests in the Android Runtime (ART):
4* _ART run-tests_: Tests of the ART runtime using Dex bytecode (mostly written
5  in Java).
6* _ART gtests_: C++ tests exercising various aspects of ART.
7
8## ART run-tests
9
10ART run-tests are tests exercising the runtime using Dex bytecode. They are
11written in Java and/or [Smali](https://github.com/JesusFreke/smali)
12(compiled/assembled as Dex bytecode) and sometimes native code (written as C/C++
13testing libraries). Some tests also make use of the
14[Jasmin](http://jasmin.sourceforge.net/) assembler or the
15[ASM](https://asm.ow2.io/) bytecode manipulation tool. Run-tests are
16executed on the ART runtime (`dalvikvm`), possibly preceded by a
17pre-optimization of the Dex code (using `dex2oat`).
18
19The run-tests are identified by directories in this `test` directory, named with
20a numeric prefix and containing an `info.txt` file. For most run tests, the
21sources are in the `src` subdirectory. Sources found in the `src2` directory are
22compiled separately but to the same output directory; this can be used to
23exercise "API mismatch" situations by replacing class files created in the first
24pass. The `src-ex` directory is built separately, and is intended for exercising
25class loaders.  Resources can be stored in the `res` directory, which is
26distributed together with the executable files.
27
28The run-tests logic lives in the `test/run-test` Bash script. The execution of a
29run-test has three main parts: building the test, running the test, and checking
30the test's output. By default, these three steps are implemented by three Bash
31scripts located in the `test/etc` directory (`default-build`, `default-run`, and
32`default-check`). These scripts rely on environment variables set by
33`test/run-test`.
34
35The default logic for all of these these steps (build, run, check) is overridden
36if the test's directory contains a Bash script named after the step
37(i.e. `build`, `run`, or `check`). Note that the default logic of the "run" step
38is actually implemented in the "JAR runner" (`test/etc/run-test-jar`), invoked
39by `test/etc/default-run`.
40
41After the execution of a run-test, the check step's default behavior
42(implemented in `test/etc/default-check`) is to respectively compare its
43standard output and standard error with the contents of the
44`expected-stdout.txt` and `expected-stderr.txt` files contained in the test's
45directory; any mismatch triggers a test failure.
46
47The `test/run-test` script handles the execution of a single run-test in a given
48configuration. The Python script `test/testrunner/testrunner.py` is a convenient
49script handling the construction and execution of multiple tests in one
50configuration or more.
51
52To see the invocation options supported by `run-test` and `testrunner.py`, run
53these commands from the Android source top-level directory:
54```sh
55art/test/run-test --help
56```
57```sh
58art/test/testrunner/testrunner.py --help
59```
60
61### Checker tests
62
63Some ART run-tests, known as "Checker tests", perform additional checks on ART's
64compiler. They are identified by their name, which match the
65`^[0-9]+-checker-.*` regular expression (e.g. `004-checker-UnsafeTest18`).
66
67Checker assertions are annotations in a run-test's (Java and Smali) source files
68verifying the behavior of the ART compiler when compiling the corresponding Dex
69code. They are checked by the `checker` tool (see [directory
70`art/tools/checker`](https://cs.android.com/android/platform/superproject/+/master:art/tools/checker/))
71against a c1visualizer-style (`.cfg`) file emitted by `dex2oat`, containing
72control-flow graphs (CFGs) for compiled methods at each step (pass) in the
73compiler's pipeline, as well as the emitted assembly code.
74
75## ART gtests
76
77ART gtests are written in C++ using the [Google
78Test](https://github.com/google/googletest) framework. These tests exercise
79various aspects of the runtime (the logic in `libart`, `libart-compiler`, etc.)
80and its binaries (`dalvikvm`, `dex2oat`, `oatdump`, etc.). Some of them are used
81as unit tests to verify a particular construct in ART. These tests may depend on
82some test Dex files and core images.
83
84ART gtests are defined in various directories within the ART project (usually in
85the same directory as the code they exercise). Their source files usually end
86with the suffix `_test.cc`. The construction logic of these tests is implemented
87in ART's build system (`Android.bp` and `Android*.mk` files). On host, these
88gtests can be run by executing `m test-art-host-gtest`. On device, the
89recommended approach is to run these tests in a chroot environment (see
90`README.chroot.md` in this directory).
91
92
93# Test execution
94
95All tests in either suite can be run using the `art/test.py`
96script. Additionally, run-tests can be run individually. All of the tests can be
97run on the build host, on a USB-attached device, or using the build host
98"reference implementation".
99
100ART also supports running target (device) tests in a chroot environment (see
101`README.chroot.md` in this directory). This is currently the recommended way to
102run tests on target (rather than using `art/test.py --target`).
103
104To see command flags run:
105
106```sh
107$ art/test.py -h
108```
109
110## Building tests
111
112In general all tests require some dependencies to be built before they can be run.
113In general you can pass the `--build-dependencies` flag (also available as short
114option -b) to `art/test.py` program to automatically build required dependencies.
115One can also directly use the various `test-art-...-dependencies` targets listed
116below.
117
118## Running all tests on the build host
119
120```sh
121$ # Build test files
122$ m test-art-host-run-test-dependencies
123$ # Run the tests
124$ art/test.py --host
125```
126
127Or:
128
129```
130$ art/test.py -b --host
131```
132
133## Running all tests on the target device
134
135```sh
136$ # Build test files
137$ m test-art-target-run-test-dependencies
138$ # Run the tests
139$ art/test.py --target
140```
141
142Or:
143
144```
145$ art/test.py -b --target
146```
147
148## Running all gtests on the build host
149
150```sh
151$ art/test.py --host -g
152```
153
154## Running all gtests on the target device
155
156```sh
157$ art/test.py --target -g
158```
159
160## Running all run-tests on the build host
161
162```sh
163$ # Build test files
164$ m test-art-host-run-test-dependencies
165$ art/test.py --host -r
166```
167
168Or:
169
170```
171$ art/test.py -b --host -r
172```
173
174## Running all run-tests on the target device
175
176```sh
177$ art/test.py --target -r
178```
179
180## Running one run-test on the build host
181
182```sh
183$ # Build test files
184$ m test-art-host-run-test-dependencies
185$ # Run the tests
186$ art/test.py --host -r -t 001-HelloWorld
187```
188
189Or:
190
191```
192$ art/test.py -b --host -r -t 001-HelloWorld
193```
194
195## Running one run-test on the target device
196
197```sh
198$ art/test.py --target -r -t 001-HelloWorld
199```
200
201## Running one gtest on the build host
202
203```sh
204$ m test-art-host-gtest-art_runtime_tests
205```
206
207Note: Although this is a build command, it actually builds the test with
208dependencies and runs the test.
209
210If you want to run the test with more options, use the following commands
211instead. Note that you need to run the test with the command above at least once
212before you run the commands below.
213
214```sh
215$ find out/host/ -type f -name art_runtime_tests  # Find the path of the test.
216$ out/host/linux-x86/nativetest/art_runtime_tests/art_runtime_tests
217```
218
219Add "--no_isolate" to run the tests one by one in single process (disable forking).
220Add "--gtest_filter=..." to select specific sub-test(s) to run.
221Prefix by "gdb --args " to run the test in gdb.
222
223# ART Continuous Integration
224
225Both ART run-tests and gtests are run continuously as part of [ART's continuous
226integration](https://ci.chromium.org/p/art/g/luci/console). In addition, two
227other test suites are run continuously on this service: Libcore tests and JDWP
228tests.
229