)]}'
{
  "log": [
    {
      "commit": "1282f3805b1b6f50761f3e136d569e85dbda7090",
      "tree": "eaf74fab46eb96d51e327676e734a139afbe5fef",
      "parents": [
        "7f0473851d9a8d5644fde8c483390a985c238433"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 21 20:22:12 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 23 19:22:50 2021 +0000"
      },
      "message": "Add sampling support in the metrics reporter\n\nThe sample rate percentage can be configured via 2 runtime\nflags (MetricsReportingMods and MetricsReportingNumMods).\n\nA runtime session will report metrics if and only if its\nsession id % MetricsReportingNumMods \u003c MetricsReportingMods.\n\nA value of 0 on the mods will effectively disable reporting,\nwhile configuring MetricsReportingMods to be equal to the\nMetricsReportingNumMods will enable reporting in all cases.\n\nTest: gtest\nBug: 170149255\nChange-Id: Ie1353e4fc0ff695fc627696145d95e9ccd3c6a94\n"
    },
    {
      "commit": "27dc87782f68bebae95c4ab87fe21bb638008a96",
      "tree": "d8e7e5920ad38afb01b6c2bd81be6e632683f895",
      "parents": [
        "41b1892c043a301f86ca1c6b887c796fbc098669"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Fri Mar 12 21:23:42 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 15 20:44:56 2021 +0000"
      },
      "message": "Revert^2 \"[metrics] Always enable background thread\"\n\nHaving the thread enabled in some cases and not in others was causing\nissues this tests. To avoid needing to handle multiple configurations,\nthis CL enables the background reporting thread always. In general,\nmetrics reporting will be enabled, so this better reflects the default\nstate of things.\n\nThis reverts commit 3f64940d7c6ce4d3f06ea5dbe195c244ca7a8fbc.\nReason for revert: Deflaking tests\n\nThe issue was that sometimes the metrics background thread would start\nlate and get captured by the thread life cycle callbacks instead of\nthe correct thread. The fix is to request a synchronous metrics report\nbefore starting the test, which forces us to wait until the metrics\nthread is up and running.\n\nTest: ./test.py --run-test --host\nTest: art_runtime_tests \\\n    --gtest_filter\u003d\"ThreadLifecycleCallbackRuntimeCallbacksTest.*\"\nBug: 170149255\nChange-Id: I007437abd1a3404960f79cf1596c95b8da917286\n"
    },
    {
      "commit": "3f64940d7c6ce4d3f06ea5dbe195c244ca7a8fbc",
      "tree": "f1327c304c823a17a52cc5e645e7ad7d28714511",
      "parents": [
        "f622d89e27fb0ad0bbf8de2ea1f9cd3ba5f36e24"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 12 16:40:34 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 12 16:41:05 2021 +0000"
      },
      "message": "Revert \"[metrics] Always enable background thread\"\n\nThis reverts commit 6660e3bd463535ea6aefebc3288ac3f17fbd99fd.\n\nBug: 170149255\n\nReason for revert: Test ThreadLifecycleCallbackJava flakey.\n\nChange-Id: Ib118654c414c27bd71d7ad3e19e1fab2d06347c7\n"
    },
    {
      "commit": "6660e3bd463535ea6aefebc3288ac3f17fbd99fd",
      "tree": "91b4a6ee0c1c611163a2d77b905daac51da8d94f",
      "parents": [
        "34ce1b8a86f1be2142f019ab291b7445db5c4305"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Mar 09 13:51:58 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 11 18:55:15 2021 +0000"
      },
      "message": "[metrics] Always enable background thread\n\nHaving the thread enabled in some cases and not in others was causing\nissues this tests. To avoid needing to handle multiple configurations,\nthis CL enables the background reporting thread always. In general,\nmetrics reporting will be enabled, so this better reflects the default\nstate of things.\n\nTest: ./test.py --run-test --host\nBug: 170149255\nChange-Id: I5100e0da1a7d264ebdd1bfe60f08171ffa5b73b1\n"
    },
    {
      "commit": "87531a628e3a4d63fe6995350e6d94773c76c805",
      "tree": "072cc0c18fb6abbcbe92940c6c795f031b927320",
      "parents": [
        "e8657bfb9946306d48e850d308cfb9ab2b79dbd6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 04 15:36:55 2021 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 05 15:11:56 2021 +0000"
      },
      "message": "Aesthetic changes in generated ART run-test Blueprint files.\n\nTest: Run `art/test/utils/regen-test-files` and check Blueprint files\nBug: 147814778\nChange-Id: I51dc20a7c7f26df163ab2de4fb33675740728a2f\n"
    },
    {
      "commit": "9150de6901996679c0ea6b34e74c8ddcc718d309",
      "tree": "496386b00b2a1b0b3bfbc36b09cf8083e3922f9b",
      "parents": [
        "8da26145fba859a5aba047f6280568565ffb8bfc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:22:24 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 02 07:18:14 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to art\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  adbconnection/Android.bp\n  benchmark/Android.bp\n  build/Android.bp\n  build/Android.cpplint.mk\n  build/Android.gtest.mk\n  build/apex/Android.bp\n  build/boot/Android.bp\n  build/sdk/Android.bp\n  cmdline/Android.bp\n  compiler/Android.bp\n  dalvikvm/Android.bp\n  dex2oat/Android.bp\n  dexdump/Android.bp\n  dexlayout/Android.bp\n  dexlist/Android.bp\n  dexoptanalyzer/Android.bp\n  disassembler/Android.bp\n  dt_fd_forward/export/Android.bp\n  imgdiag/Android.bp\n  libartbase/Android.bp\n  libartpalette/Android.bp\n  libartservice/Android.bp\n  libartservice/tests/Android.bp\n  libarttools/Android.bp\n  libdexfile/Android.bp\n  libelffile/Android.bp\n  libnativebridge/Android.bp\n  libnativebridge/tests/Android.bp\n  libnativeloader/Android.bp\n  libnativeloader/test/Android.bp\n  libnativeloader/test/Android.mk\n  libprofile/Android.bp\n  oatdump/Android.bp\n  odrefresh/Android.bp\n  perfetto_hprof/Android.bp\n  profman/Android.bp\n  runtime/Android.bp\n  simulator/Android.bp\n  test/001-HelloWorld/Android.bp\n  test/001-Main/Android.bp\n  test/002-sleep/Android.bp\n  test/004-InterfaceTest/Android.bp\n  test/004-SignalTest/Android.bp\n  test/004-UnsafeTest/Android.bp\n  test/004-checker-UnsafeTest18/Android.bp\n  test/006-args/Android.bp\n  test/007-count10/Android.bp\n  test/009-instanceof/Android.bp\n  test/010-instance/Android.bp\n  test/011-array-copy/Android.bp\n  test/012-math/Android.bp\n  test/013-math2/Android.bp\n  test/014-math3/Android.bp\n  test/015-switch/Android.bp\n  test/016-intern/Android.bp\n  test/017-float/Android.bp\n  test/018-stack-overflow/Android.bp\n  test/019-wrong-array-type/Android.bp\n  test/020-string/Android.bp\n  test/021-string2/Android.bp\n  test/022-interface/Android.bp\n  test/025-access-controller/Android.bp\n  test/026-access/Android.bp\n  test/027-arithmetic/Android.bp\n  test/028-array-write/Android.bp\n  test/029-assert/Android.bp\n  test/030-bad-finalizer/Android.bp\n  test/033-class-init-deadlock/Android.bp\n  test/034-call-null/Android.bp\n  test/035-enum/Android.bp\n  test/036-finalizer/Android.bp\n  test/037-inherit/Android.bp\n  test/038-inner-null/Android.bp\n  test/039-join-main/Android.bp\n  test/040-miranda/Android.bp\n  test/041-narrowing/Android.bp\n  test/043-privates/Android.bp\n  test/044-proxy/Android.bp\n  test/045-reflect-array/Android.bp\n  test/046-reflect/Android.bp\n  test/047-returns/Android.bp\n  test/048-reflect-v8/Android.bp\n  test/049-show-object/Android.bp\n  test/050-sync-test/Android.bp\n  test/051-thread/Android.bp\n  test/052-verifier-fun/Android.bp\n  test/053-wait-some/Android.bp\n  test/054-uncaught/Android.bp\n  test/055-enum-performance/Android.bp\n  test/058-enum-order/Android.bp\n  test/059-finalizer-throw/Android.bp\n  test/061-out-of-memory/Android.bp\n  test/062-character-encodings/Android.bp\n  test/063-process-manager/Android.bp\n  test/067-preemptive-unpark/Android.bp\n  test/070-nio-buffer/Android.bp\n  test/072-precise-gc/Android.bp\n  test/072-reachability-fence/Android.bp\n  test/074-gc-thrash/Android.bp\n  test/076-boolean-put/Android.bp\n  test/078-polymorphic-virtual/Android.bp\n  test/079-phantom/Android.bp\n  test/080-oom-fragmentation/Android.bp\n  test/080-oom-throw-with-finalizer/Android.bp\n  test/080-oom-throw/Android.bp\n  test/081-hot-exceptions/Android.bp\n  test/082-inline-execute/Android.bp\n  test/083-compiler-regressions/Android.bp\n  test/084-class-init/Android.bp\n  test/086-null-super/Android.bp\n  test/087-gc-after-link/Android.bp\n  test/090-loop-formation/Android.bp\n  test/092-locale/Android.bp\n  test/093-serialization/Android.bp\n  test/094-pattern/Android.bp\n  test/095-switch-MAX_INT/Android.bp\n  test/096-array-copy-concurrent-gc/Android.bp\n  test/098-ddmc/Android.bp\n  test/099-vmdebug/Android.bp\n  test/100-reflect2/Android.bp\n  test/1004-checker-volatile-ref-load/Android.bp\n  test/101-fibonacci/Android.bp\n  test/102-concurrent-gc/Android.bp\n  test/103-string-append/Android.bp\n  test/104-growth-limit/Android.bp\n  test/105-invoke/Android.bp\n  test/106-exceptions2/Android.bp\n  test/107-int-math2/Android.bp\n  test/108-check-cast/Android.bp\n  test/109-suspend-check/Android.bp\n  test/110-field-access/Android.bp\n  test/112-double-math/Android.bp\n  test/114-ParallelGC/Android.bp\n  test/115-native-bridge/Android.bp\n  test/116-nodex2oat/Android.bp\n  test/120-hashcode/Android.bp\n  test/121-simple-suspend-check/Android.bp\n  test/122-npe/Android.bp\n  test/123-compiler-regressions-mt/Android.bp\n  test/123-inline-execute2/Android.bp\n  test/125-gc-and-classloading/Android.bp\n  test/128-reg-spill-on-implicit-nullcheck/Android.bp\n  test/129-ThreadGetId/Android.bp\n  test/132-daemon-locks-shutdown/Android.bp\n  test/133-static-invoke-super/Android.bp\n  test/1336-short-finalizer-timeout/Android.bp\n  test/1337-gc-coverage/Android.bp\n  test/1339-dead-reference-safe/Android.bp\n  test/136-daemon-jni-shutdown/Android.bp\n  test/139-register-natives/Android.bp\n  test/140-dce-regression/Android.bp\n  test/140-field-packing/Android.bp\n  test/143-string-value/Android.bp\n  test/144-static-field-sigquit/Android.bp\n  test/148-multithread-gc-annotations/Android.bp\n  test/149-suspend-all-stress/Android.bp\n  test/150-loadlibrary/Android.bp\n  test/151-OpenFileLimit/Android.bp\n  test/152-dead-large-object/Android.bp\n  test/153-reference-stress/Android.bp\n  test/154-gc-loop/Android.bp\n  test/156-register-dex-file-multi-loader/Android.bp\n  test/158-app-image-class-table/Android.bp\n  test/159-app-image-fields/Android.bp\n  test/163-app-image-methods/Android.bp\n  test/165-lock-owner-proxy/Android.bp\n  test/168-vmstack-annotated/Android.bp\n  test/169-threadgroup-jni/Android.bp\n  test/170-interface-init/Android.bp\n  test/172-app-image-twice/Android.bp\n  test/174-escaping-instance-of-bad-class/Android.bp\n  test/175-alloc-big-bignums/Android.bp\n  test/176-app-image-string/Android.bp\n  test/177-visibly-initialized-deadlock/Android.bp\n  test/178-app-image-native-method/Android.bp\n  test/179-nonvirtual-jni/Android.bp\n  test/1900-track-alloc/Android.bp\n  test/1901-get-bytecodes/Android.bp\n  test/1902-suspend/Android.bp\n  test/1903-suspend-self/Android.bp\n  test/1904-double-suspend/Android.bp\n  test/1905-suspend-native/Android.bp\n  test/1906-suspend-list-me-first/Android.bp\n  test/1907-suspend-list-self-twice/Android.bp\n  test/1908-suspend-native-resume-self/Android.bp\n  test/1909-per-agent-tls/Android.bp\n  test/1910-transform-with-default/Android.bp\n  test/1911-get-local-var-table/Android.bp\n  test/1912-get-set-local-primitive/Android.bp\n  test/1913-get-set-local-objects/Android.bp\n  test/1914-get-local-instance/Android.bp\n  test/1915-get-set-local-current-thread/Android.bp\n  test/1916-get-set-current-frame/Android.bp\n  test/1917-get-stack-frame/Android.bp\n  test/1919-vminit-thread-start-timing/Android.bp\n  test/1920-suspend-native-monitor/Android.bp\n  test/1921-suspend-native-recursive-monitor/Android.bp\n  test/1922-owned-monitors-info/Android.bp\n  test/1923-frame-pop/Android.bp\n  test/1924-frame-pop-toggle/Android.bp\n  test/1925-self-frame-pop/Android.bp\n  test/1926-missed-frame-pop/Android.bp\n  test/1927-exception-event/Android.bp\n  test/1928-exception-event-exception/Android.bp\n  test/1930-monitor-info/Android.bp\n  test/1931-monitor-events/Android.bp\n  test/1932-monitor-events-misc/Android.bp\n  test/1933-monitor-current-contended/Android.bp\n  test/1934-jvmti-signal-thread/Android.bp\n  test/1935-get-set-current-frame-jit/Android.bp\n  test/1936-thread-end-events/Android.bp\n  test/1937-transform-soft-fail/Android.bp\n  test/1938-transform-abstract-single-impl/Android.bp\n  test/1939-proxy-frames/Android.bp\n  test/1941-dispose-stress/Android.bp\n  test/1942-suspend-raw-monitor-exit/Android.bp\n  test/1943-suspend-raw-monitor-wait/Android.bp\n  test/1945-proxy-method-arguments/Android.bp\n  test/1947-breakpoint-redefine-deopt/Android.bp\n  test/1949-short-dex-file/Android.bp\n  test/1951-monitor-enter-no-suspend/Android.bp\n  test/1953-pop-frame/Android.bp\n  test/1954-pop-frame-jit/Android.bp\n  test/1955-pop-frame-jit-called/Android.bp\n  test/1956-pop-frame-jit-calling/Android.bp\n  test/1957-error-ext/Android.bp\n  test/1958-transform-try-jit/Android.bp\n  test/1959-redefine-object-instrument/Android.bp\n  test/1960-checker-bounds-codegen/Android.bp\n  test/1960-obsolete-jit-multithread-native/Android.bp\n  test/1961-checker-loop-vectorizer/Android.bp\n  test/1961-obsolete-jit-multithread/Android.bp\n  test/1962-multi-thread-events/Android.bp\n  test/1963-add-to-dex-classloader-in-memory/Android.bp\n  test/1967-get-set-local-bad-slot/Android.bp\n  test/1968-force-early-return/Android.bp\n  test/1969-force-early-return-void/Android.bp\n  test/1970-force-early-return-long/Android.bp\n  test/1971-multi-force-early-return/Android.bp\n  test/1972-jni-id-swap-indices/Android.bp\n  test/1973-jni-id-swap-pointer/Android.bp\n  test/1974-resize-array/Android.bp\n  test/1975-hello-structural-transformation/Android.bp\n  test/1976-hello-structural-static-methods/Android.bp\n  test/1977-hello-structural-obsolescence/Android.bp\n  test/1978-regular-obsolete-then-structural-obsolescence/Android.bp\n  test/1979-threaded-structural-transformation/Android.bp\n  test/1980-obsolete-object-cleared/Android.bp\n  test/1982-no-virtuals-structural-redefinition/Android.bp\n  test/1984-structural-redefine-field-trace/Android.bp\n  test/1985-structural-redefine-stack-scope/Android.bp\n  test/1986-structural-redefine-multi-thread-stack-scope/Android.bp\n  test/1987-structural-redefine-recursive-stack-scope/Android.bp\n  test/1988-multi-structural-redefine/Android.bp\n  test/1989-transform-bad-monitor/Android.bp\n  test/1990-structural-bad-verify/Android.bp\n  test/1991-hello-structural-retransform/Android.bp\n  test/1992-retransform-no-such-field/Android.bp\n  test/1993-fallback-non-structural/Android.bp\n  test/1994-final-virtual-structural/Android.bp\n  test/1995-final-virtual-structural-multithread/Android.bp\n  test/1996-final-override-virtual-structural/Android.bp\n  test/1997-structural-shadow-method/Android.bp\n  test/1998-structural-shadow-field/Android.bp\n  test/1999-virtual-structural/Android.bp\n  test/2003-double-virtual-structural/Android.bp\n  test/2004-double-virtual-structural-abstract/Android.bp\n  test/2005-pause-all-redefine-multithreaded/Android.bp\n  test/2008-redefine-then-old-reflect-field/Android.bp\n  test/201-built-in-except-detail-messages/Android.bp\n  test/2011-stack-walk-concurrent-instrument/Android.bp\n  test/2019-constantcalculationsinking/Android.bp\n  test/202-thread-oome/Android.bp\n  test/2020-InvokeVirtual-Inlining/Android.bp\n  test/2021-InvokeStatic-Inlining/Android.bp\n  test/2022-Invariantloops/Android.bp\n  test/2023-InvariantLoops_typecast/Android.bp\n  test/2024-InvariantNegativeLoop/Android.bp\n  test/2025-ChangedArrayValue/Android.bp\n  test/2026-DifferentMemoryLSCouples/Android.bp\n  test/2027-TwiceTheSameMemoryCouple/Android.bp\n  test/2028-MultiBackward/Android.bp\n  test/2029-contended-monitors/Android.bp\n  test/203-multi-checkpoint/Android.bp\n  test/2030-long-running-child/Android.bp\n  test/2031-zygote-compiled-frame-deopt/Android.bp\n  test/2033-shutdown-mechanics/Android.bp\n  test/2036-jni-filechannel/Android.bp\n  test/2037-thread-name-inherit/Android.bp\n  test/2231-checker-heap-poisoning/Android.bp\n  test/2232-write-metrics-to-log/Android.bp\n  test/300-package-override/Android.bp\n  test/301-abstract-protected/Android.bp\n  test/302-float-conversion/Android.bp\n  test/304-method-tracing/Android.bp\n  test/305-other-fault-handler/Android.bp\n  test/401-optimizing-compiler/Android.bp\n  test/402-optimizing-control-flow/Android.bp\n  test/403-optimizing-long/Android.bp\n  test/404-optimizing-allocator/Android.bp\n  test/405-optimizing-long-allocator/Android.bp\n  test/406-fields/Android.bp\n  test/407-arrays/Android.bp\n  test/408-move-bug/Android.bp\n  test/409-materialized-condition/Android.bp\n  test/410-floats/Android.bp\n  test/411-checker-hdiv-hrem-const/Android.bp\n  test/411-checker-hdiv-hrem-pow2/Android.bp\n  test/411-checker-instruct-simplifier-hrem/Android.bp\n  test/411-optimizing-arith/Android.bp\n  test/413-regalloc-regression/Android.bp\n  test/414-static-fields/Android.bp\n  test/418-const-string/Android.bp\n  test/419-long-parameter/Android.bp\n  test/420-const-class/Android.bp\n  test/421-exceptions/Android.bp\n  test/421-large-frame/Android.bp\n  test/422-instanceof/Android.bp\n  test/422-type-conversion/Android.bp\n  test/423-invoke-interface/Android.bp\n  test/424-checkcast/Android.bp\n  test/426-monitor/Android.bp\n  test/427-bitwise/Android.bp\n  test/427-bounds/Android.bp\n  test/429-ssa-builder/Android.bp\n  test/430-live-register-slow-path/Android.bp\n  test/433-gvn/Android.bp\n  test/434-shifter-operand/Android.bp\n  test/435-try-finally-without-catch/Android.bp\n  test/436-rem-float/Android.bp\n  test/436-shift-constant/Android.bp\n  test/437-inline/Android.bp\n  test/438-volatile/Android.bp\n  test/439-npe/Android.bp\n  test/439-swap-double/Android.bp\n  test/440-stmp/Android.bp\n  test/441-checker-inliner/Android.bp\n  test/443-not-bool-inline/Android.bp\n  test/444-checker-nce/Android.bp\n  test/445-checker-licm/Android.bp\n  test/446-checker-inliner2/Android.bp\n  test/447-checker-inliner3/Android.bp\n  test/449-checker-bce-rem/Android.bp\n  test/449-checker-bce/Android.bp\n  test/450-checker-types/Android.bp\n  test/451-regression-add-float/Android.bp\n  test/451-spill-splot/Android.bp\n  test/454-get-vreg/Android.bp\n  test/455-checker-gvn/Android.bp\n  test/456-baseline-array-set/Android.bp\n  test/458-long-to-fpu/Android.bp\n  test/461-get-reference-vreg/Android.bp\n  test/464-checker-inline-sharpen-calls/Android.bp\n  test/465-checker-clinit-gvn/Android.bp\n  test/466-get-live-vreg/Android.bp\n  test/469-condition-materialization/Android.bp\n  test/470-huge-method/Android.bp\n  test/471-deopt-environment/Android.bp\n  test/472-type-propagation/Android.bp\n  test/473-checker-inliner-constants/Android.bp\n  test/473-remove-dead-block/Android.bp\n  test/474-checker-boolean-input/Android.bp\n  test/474-fp-sub-neg/Android.bp\n  test/475-simplify-mul-zero/Android.bp\n  test/476-checker-ctor-fence-redun-elim/Android.bp\n  test/476-checker-ctor-memory-barrier/Android.bp\n  test/476-clinit-inline-static-invoke/Android.bp\n  test/477-checker-bound-type/Android.bp\n  test/477-long-2-float-convers-precision/Android.bp\n  test/478-checker-clinit-check-pruning/Android.bp\n  test/478-checker-inline-noreturn/Android.bp\n  test/478-checker-inliner-nested-loop/Android.bp\n  test/479-regression-implicit-null-check/Android.bp\n  test/480-checker-dead-blocks/Android.bp\n  test/481-regression-phi-cond/Android.bp\n  test/482-checker-loop-back-edge-use/Android.bp\n  test/483-dce-block/Android.bp\n  test/485-checker-dce-switch/Android.bp\n  test/486-checker-must-do-null-check/Android.bp\n  test/487-checker-inline-calls/Android.bp\n  test/488-checker-inline-recursive-calls/Android.bp\n  test/489-current-method-regression/Android.bp\n  test/490-checker-inline/Android.bp\n  test/491-current-method/Android.bp\n  test/492-checker-inline-invoke-interface/Android.bp\n  test/493-checker-inline-invoke-interface/Android.bp\n  test/494-checker-instanceof-tests/Android.bp\n  test/495-checker-checkcast-tests/Android.bp\n  test/496-checker-inlining-class-loader/Android.bp\n  test/497-inlining-and-class-loader/Android.bp\n  test/499-bce-phi-array-length/Android.bp\n  test/500-instanceof/Android.bp\n  test/505-simplifier-type-propagation/Android.bp\n  test/507-boolean-test/Android.bp\n  test/507-referrer/Android.bp\n  test/508-checker-disassembly/Android.bp\n  test/508-referrer-method/Android.bp\n  test/513-array-deopt/Android.bp\n  test/514-shifts/Android.bp\n  test/519-bound-load-class/Android.bp\n  test/521-checker-array-set-null/Android.bp\n  test/521-regression-integer-field-set/Android.bp\n  test/524-boolean-simplifier-regression/Android.bp\n  test/525-checker-arrays-fields1/Android.bp\n  test/525-checker-arrays-fields2/Android.bp\n  test/526-checker-caller-callee-regs/Android.bp\n  test/526-long-regalloc/Android.bp\n  test/527-checker-array-access-simd/Android.bp\n  test/527-checker-array-access-split/Android.bp\n  test/528-long-hint/Android.bp\n  test/529-long-split/Android.bp\n  test/530-checker-loops1/Android.bp\n  test/530-checker-loops2/Android.bp\n  test/530-checker-loops3/Android.bp\n  test/530-checker-loops4/Android.bp\n  test/530-checker-loops5/Android.bp\n  test/530-checker-lse-ctor-fences/Android.bp\n  test/530-checker-lse-simd/Android.bp\n  test/530-checker-lse/Android.bp\n  test/530-checker-lse2/Android.bp\n  test/530-instanceof-checkcast/Android.bp\n  test/530-regression-lse/Android.bp\n  test/532-checker-nonnull-arrayset/Android.bp\n  test/534-checker-bce-deoptimization/Android.bp\n  test/535-deopt-and-inlining/Android.bp\n  test/536-checker-intrinsic-optimization/Android.bp\n  test/537-checker-arraycopy/Android.bp\n  test/537-checker-jump-over-jump/Android.bp\n  test/538-checker-embed-constants/Android.bp\n  test/540-checker-rtp-bug/Android.bp\n  test/542-bitfield-rotates/Android.bp\n  test/542-inline-trycatch/Android.bp\n  test/542-unresolved-access-check/Android.bp\n  test/545-tracing-and-jit/Android.bp\n  test/548-checker-inlining-and-dce/Android.bp\n  test/549-checker-types-merge/Android.bp\n  test/550-checker-multiply-accumulate/Android.bp\n  test/550-new-instance-clinit/Android.bp\n  test/551-checker-clinit/Android.bp\n  test/551-checker-shifter-operand/Android.bp\n  test/551-implicit-null-checks/Android.bp\n  test/552-checker-sharpening/Android.bp\n  test/552-checker-x86-avx2-bit-manipulation/Android.bp\n  test/554-checker-rtp-checkcast/Android.bp\n  test/555-UnsafeGetLong-regression/Android.bp\n  test/557-checker-instruct-simplifier-ror/Android.bp\n  test/558-switch/Android.bp\n  test/559-bce-ssa/Android.bp\n  test/559-checker-rtp-ifnotnull/Android.bp\n  test/560-packed-switch/Android.bp\n  test/561-divrem/Android.bp\n  test/561-shared-slowpaths/Android.bp\n  test/562-bce-preheader/Android.bp\n  test/562-checker-no-intermediate/Android.bp\n  test/563-checker-invoke-super/Android.bp\n  test/564-checker-bitcount/Android.bp\n  test/564-checker-inline-loop/Android.bp\n  test/564-checker-negbitwise/Android.bp\n  test/565-checker-condition-liveness/Android.bp\n  test/566-checker-codegen-select/Android.bp\n  test/566-polymorphic-inlining/Android.bp\n  test/567-checker-builder-intrinsics/Android.bp\n  test/568-checker-onebit/Android.bp\n  test/570-checker-select/Android.bp\n  test/572-checker-array-get-regression/Android.bp\n  test/573-checker-checkcast-regression/Android.bp\n  test/576-polymorphic-inlining/Android.bp\n  test/577-checker-fp2int/Android.bp\n  test/578-bce-visit/Android.bp\n  test/578-polymorphic-inlining/Android.bp\n  test/579-inline-infinite/Android.bp\n  test/580-checker-round/Android.bp\n  test/580-crc32/Android.bp\n  test/581-rtp/Android.bp\n  test/582-checker-bce-length/Android.bp\n  test/583-checker-zero/Android.bp\n  test/584-checker-div-bool/Android.bp\n  test/589-super-imt/Android.bp\n  test/590-checker-arr-set-null-regression/Android.bp\n  test/591-checker-regression-dead-loop/Android.bp\n  test/593-checker-long-2-float-regression/Android.bp\n  test/594-checker-array-alias/Android.bp\n  test/594-load-string-regression/Android.bp\n  test/595-profile-saving/Android.bp\n  test/597-deopt-busy-loop/Android.bp\n  test/597-deopt-invoke-stub/Android.bp\n  test/597-deopt-new-string/Android.bp\n  test/602-deoptimizeable/Android.bp\n  test/603-checker-instanceof/Android.bp\n  test/604-hot-static-interface/Android.bp\n  test/605-new-string-from-bytes/Android.bp\n  test/607-daemon-stress/Android.bp\n  test/609-checker-inline-interface/Android.bp\n  test/609-checker-x86-bounds-check/Android.bp\n  test/610-arraycopy/Android.bp\n  test/611-checker-simplify-if/Android.bp\n  test/614-checker-dump-constant-location/Android.bp\n  test/615-checker-arm64-store-zero/Android.bp\n  test/616-cha-abstract/Android.bp\n  test/616-cha-interface/Android.bp\n  test/616-cha-miranda/Android.bp\n  test/616-cha-native/Android.bp\n  test/616-cha-regression-proxy-method/Android.bp\n  test/616-cha/Android.bp\n  test/617-clinit-oome/Android.bp\n  test/618-checker-induction/Android.bp\n  test/619-checker-current-method/Android.bp\n  test/620-checker-bce-intrinsics/Android.bp\n  test/622-checker-bce-regressions/Android.bp\n  test/623-checker-loop-regressions/Android.bp\n  test/625-checker-licm-regressions/Android.bp\n  test/626-set-resolved-string/Android.bp\n  test/627-checker-unroll/Android.bp\n  test/628-vdex/Android.bp\n  test/629-vdex-speed/Android.bp\n  test/631-checker-get-class/Android.bp\n  test/632-checker-char-at-bounds/Android.bp\n  test/635-checker-arm64-volatile-load-cc/Android.bp\n  test/636-arm64-veneer-pool/Android.bp\n  test/637-checker-throw-inline/Android.bp\n  test/638-checker-inline-cache-intrinsic/Android.bp\n  test/639-checker-code-sinking/Android.bp\n  test/640-checker-boolean-simd/Android.bp\n  test/640-checker-integer-valueof/Android.bp\n  test/640-checker-simd/Android.bp\n  test/641-checker-arraycopy/Android.bp\n  test/641-iterations/Android.bp\n  test/642-fp-callees/Android.bp\n  test/643-checker-bogus-ic/Android.bp\n  test/645-checker-abs-simd/Android.bp\n  test/646-checker-arraycopy-large-cst-pos/Android.bp\n  test/646-checker-long-const-to-int/Android.bp\n  test/646-checker-simd-hadd/Android.bp\n  test/647-jni-get-field-id/Android.bp\n  test/650-checker-inline-access-thunks/Android.bp\n  test/652-deopt-intrinsic/Android.bp\n  test/654-checker-periodic/Android.bp\n  test/655-checker-simd-arm-opt/Android.bp\n  test/655-jit-clinit/Android.bp\n  test/656-checker-simd-opt/Android.bp\n  test/656-loop-deopt/Android.bp\n  test/657-branches/Android.bp\n  test/658-fp-read-barrier/Android.bp\n  test/660-checker-sad/Android.bp\n  test/660-checker-simd-sad/Android.bp\n  test/660-clinit/Android.bp\n  test/661-checker-simd-reduc/Android.bp\n  test/661-oat-writer-layout/Android.bp\n  test/662-regression-alias/Android.bp\n  test/664-aget-verifier/Android.bp\n  test/665-checker-simd-zero/Android.bp\n  test/666-dex-cache-itf/Android.bp\n  test/667-checker-simd-alignment/Android.bp\n  test/667-jit-jni-stub/Android.bp\n  test/667-out-of-bounds/Android.bp\n  test/669-checker-break/Android.bp\n  test/671-npe-field-opts/Android.bp\n  test/672-checker-throw-method/Android.bp\n  test/673-checker-throw-vmethod/Android.bp\n  test/674-HelloWorld-Dm/Android.bp\n  test/674-hotness-compiled/Android.bp\n  test/676-proxy-jit-at-first-use/Android.bp\n  test/677-fsi2/Android.bp\n  test/679-locks/Android.bp\n  test/680-checker-deopt-dex-pc-0/Android.bp\n  test/680-sink-regression/Android.bp\n  test/684-checker-simd-dotprod/Android.bp\n  test/684-select-condition/Android.bp\n  test/685-deoptimizeable/Android.bp\n  test/687-deopt/Android.bp\n  test/689-multi-catch/Android.bp\n  test/689-zygote-jit-deopt/Android.bp\n  test/693-vdex-inmem-loader-evict/Android.bp\n  test/694-clinit-jit/Android.bp\n  test/695-simplify-throws/Android.bp\n  test/696-loop/Android.bp\n  test/697-checker-string-append/Android.bp\n  test/698-selects/Android.bp\n  test/700-LoadArgRegs/Android.bp\n  test/703-floating-point-div/Android.bp\n  test/704-multiply-accumulate/Android.bp\n  test/705-register-conflict/Android.bp\n  test/707-checker-invalid-profile/Android.bp\n  test/708-jit-cache-churn/Android.bp\n  test/711-checker-type-conversion/Android.bp\n  test/717-integer-value-of/Android.bp\n  test/718-zipfile-finalizer/Android.bp\n  test/720-thread-priority/Android.bp\n  test/721-osr/Android.bp\n  test/726-array-store/Android.bp\n  test/728-imt-conflict-zygote/Android.bp\n  test/805-TooDeepClassInstanceOf/Android.bp\n  test/806-TooWideClassInstanceOf/Android.bp\n  test/812-recursive-default/Android.bp\n  test/813-fp-args/Android.bp\n  test/814-large-field-offsets/Android.bp\n  test/815-invokeinterface-default/Android.bp\n  test/818-clinit-nterp/Android.bp\n  test/900-hello-plugin/Android.bp\n  test/901-hello-ti-agent/Android.bp\n  test/902-hello-transformation/Android.bp\n  test/903-hello-tagging/Android.bp\n  test/904-object-allocation/Android.bp\n  test/905-object-free/Android.bp\n  test/906-iterate-heap/Android.bp\n  test/907-get-loaded-classes/Android.bp\n  test/908-gc-start-finish/Android.bp\n  test/910-methods/Android.bp\n  test/911-get-stack-trace/Android.bp\n  test/913-heaps/Android.bp\n  test/914-hello-obsolescence/Android.bp\n  test/915-obsolete-2/Android.bp\n  test/916-obsolete-jit/Android.bp\n  test/917-fields-transformation/Android.bp\n  test/918-fields/Android.bp\n  test/919-obsolete-fields/Android.bp\n  test/920-objects/Android.bp\n  test/921-hello-failure/Android.bp\n  test/922-properties/Android.bp\n  test/923-monitors/Android.bp\n  test/924-threads/Android.bp\n  test/925-threadgroups/Android.bp\n  test/926-multi-obsolescence/Android.bp\n  test/927-timers/Android.bp\n  test/928-jni-table/Android.bp\n  test/930-hello-retransform/Android.bp\n  test/931-agent-thread/Android.bp\n  test/932-transform-saves/Android.bp\n  test/933-misc-events/Android.bp\n  test/937-hello-retransform-package/Android.bp\n  test/939-hello-transformation-bcp/Android.bp\n  test/940-recursive-obsolete/Android.bp\n  test/941-recursive-obsolete-jit/Android.bp\n  test/942-private-recursive/Android.bp\n  test/943-private-recursive-jit/Android.bp\n  test/944-transform-classloaders/Android.bp\n  test/945-obsolete-native/Android.bp\n  test/946-obsolete-throw/Android.bp\n  test/947-reflect-method/Android.bp\n  test/949-in-memory-transform/Android.bp\n  test/950-redefine-intrinsic/Android.bp\n  test/951-threaded-obsolete/Android.bp\n  test/963-default-range-smali/Android.bp\n  test/982-ok-no-retransform/Android.bp\n  test/983-source-transform-verify/Android.bp\n  test/984-obsolete-invoke/Android.bp\n  test/985-re-obsolete/Android.bp\n  test/986-native-method-bind/Android.bp\n  test/987-agent-bind/Android.bp\n  test/988-method-trace/Android.bp\n  test/989-method-trace-throw/Android.bp\n  test/990-field-trace/Android.bp\n  test/991-field-trace-2/Android.bp\n  test/992-source-data/Android.bp\n  test/993-breakpoints/Android.bp\n  test/994-breakpoint-line/Android.bp\n  test/995-breakpoints-throw/Android.bp\n  test/996-breakpoint-obsolete/Android.bp\n  test/997-single-step/Android.bp\n  test/Android.bp\n  tools/Android.bp\n  tools/ahat/Android.bp\n  tools/ahat/Android.mk\n  tools/art_verifier/Android.bp\n  tools/cpp-define-generator/Android.bp\n  tools/dexanalyze/Android.bp\n  tools/dexfuzz/Android.bp\n  tools/dmtracedump/Android.bp\n  tools/hiddenapi/Android.bp\n  tools/jfuzz/Android.bp\n  tools/jvmti-agents/breakpoint-logger/Android.bp\n  tools/jvmti-agents/chain-agents/Android.bp\n  tools/jvmti-agents/dump-jvmti-state/Android.bp\n  tools/jvmti-agents/enable-vlog/Android.bp\n  tools/jvmti-agents/field-counts/Android.bp\n  tools/jvmti-agents/field-null-percent/Android.bp\n  tools/jvmti-agents/jit-load/Android.bp\n  tools/jvmti-agents/list-extensions/Android.bp\n  tools/jvmti-agents/simple-force-redefine/Android.bp\n  tools/jvmti-agents/simple-profile/Android.bp\n  tools/jvmti-agents/ti-alloc-sample/Android.bp\n  tools/jvmti-agents/ti-fast/Android.bp\n  tools/jvmti-agents/titrace/Android.bp\n  tools/jvmti-agents/wrapagentproperties/Android.bp\n  tools/signal_dumper/Android.bp\n  tools/tracefast-plugin/Android.bp\n  tools/veridex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  sigchainlib/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-GPL-2.0\nto:\n  Android.bp\n  Android.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  dt_fd_forward/Android.bp\n  openjdkjvmti/Android.bp\n\nAdded SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  openjdkjvm/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: If775045c12955fa6d72d40ccf2a09beef93d1699\nMerged-in: If775045c12955fa6d72d40ccf2a09beef93d1699\n"
    },
    {
      "commit": "b15e8797d2ca6fb480a940887c66dd2aae7c9065",
      "tree": "23bd6e44c31b45fde7d92bbe7620329a61c1fcf5",
      "parents": [
        "79bf0b8e9c704e63029bb3badf9c4872484a827b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 28 12:20:59 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 10 09:46:01 2020 +0000"
      },
      "message": "Verify ART run-tests\u0027 standard output and standard error separately.\n\nIntroduce expected standard error files for ART run-tests. Collect\ntests\u0027 standard output and standard error separately and check them\nagainst the corresponding expectation file.\n\nTest: Run ART run-tests on host and device using `testrunner.py`.\nTest: atest --test-mapping art:all\nTest: atest --test-mapping cts/hostsidetests/jvmti:all\nBug: 171865375\nBug: 147812905\nChange-Id: Ie95bec4a4684ff6791d464124ce8976339432d1f\n"
    },
    {
      "commit": "a073f46104fbce0482fb759d5ccfb32ee39cc973",
      "tree": "985538ce69fa4d9253725cddaca936ddc3eaea86",
      "parents": [
        "5a19854c682a994729f704806d6c0de1de349631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 28 12:48:24 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 05 18:15:49 2020 +0000"
      },
      "message": "Rename ART run-tests `expected.txt` files as `expected-stdout.txt`.\n\nThis is in preparation for the addition of `expected-stderr.txt` files\nin all ART run-test directories, which will record the expected\nstandard error for each of these tests, and which will be verified\nalong with `expected-stdout.txt`.\n\nTest: Run ART run-tests on host and device using `testrunner.py`.\nTest: atest --test-mapping art:all\nBug: 171865375\nBug: 147812905\nChange-Id: I37e3c4b8409475790e2fc63514cdf57156d47ff4\n"
    },
    {
      "commit": "4258f9e2f19016e04a71ec2b5349b707f8f47a18",
      "tree": "bd587ca13be99c9c8e1d2781719b75a887ca5897",
      "parents": [
        "4b9f86bd04a905e6ee6eaf5363b0967315136096"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 13 12:10:59 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 14 08:01:06 2020 +0000"
      },
      "message": "Only tag supported ART run-tests as part of `art-target-run-test`.\n\nAll ART (target) run-tests supported at the build-level have been\ntagged as part of the `art-target-run-test` TradeFed test suite;\nhowever, only a part of them are actually expected to suceed at run\ntime at the moment, meaning that many tests are currently failing on\nthe postsubmit configuration running tests tagged as\n`art-target-run-test` (currently running only on crosshatch devices).\n\nTo avoid this, use a different test configuration template for test\nexpected to succeed and for test expected to fail, and only have the\nformer test configuration template tag the test as part of the\n`art-target-run-test` test suite.\n\nTest: atest --test-mapping art:all\nTest: Rely on ATP post-submit testing\nBug: 152374989\nBug: 147812905\nChange-Id: I29ecc1d3021765cb5467f3a6f4e9d64afc4caead\n"
    },
    {
      "commit": "6b0b2e711fdb9a1852705318dda2b5139d30f7a5",
      "tree": "6300c21da263373f4a286ae55e9f5b88a09f3965",
      "parents": [
        "6f0c8b976ac84215129fe7cca0b0ef26d9af0554"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 08 16:36:13 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 09 10:21:47 2020 +0000"
      },
      "message": "Rename the expected-output text file in built TradeFed ART run-tests.\n\nTest suite packages (e.g. `android-mts.zip`) flatten tests artifacts\ninto a single `testcases` directory, therefore each included file must\nhave a unique name. Have the build system rename every `expected.txt`\nfile to a unique name when building TradeFed-style ART run-tests.\n\nTest: atest art-run-test-001-HelloWorld\nBug: 147812905\nChange-Id: I0d433d0a611cb5214ae366e2c1af214e41c127f0\n"
    },
    {
      "commit": "01e5698d5440c2665b7ab6dd924985843be161a2",
      "tree": "580cb03de99c1e7d1c552c9e18e30b1ee9030ca6",
      "parents": [
        "eaf3a920817fcf3b85d80eb16eb2fe91831e1fb9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 10 12:28:01 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 03 19:11:02 2020 +0000"
      },
      "message": "Add Soong module definitions for ART run-tests with default build rules.\n\nIntroduce new Bash script `test/utils/regen-test-files` and use it\nto generate a set of initial Soong module definitions for some ART\nrun-tests matching these conditions:\n1. using default build rules (defined in `test/etc/default-build`), as\n   per the `test/run-test` script;\n2. consisting only of Java source files contained in their `src`\n   directory;\n3. containing no additional build complexity.\n\nAlso disable ErrorProne checks for ART run-tests on `errorprone`\nbuilds.\n\nTest: m $(find art/test \\\n              -regextype egrep \\\n              -regex \u0027art/test/[0-9]{3,}-.*/Android.bp\u0027 \\\n              -printf \u0027%P\\n\u0027 \\\n            | sed -r \u0027s,(.*)/Android.bp,art-run-test-\\1,\u0027 \\\n            | sort)\nTest: m javac-check $(find art/test \\\n                          -regextype egrep \\\n                          -regex \u0027art/test/[0-9]{3,}-.*/Android.bp\u0027 \\\n                          -printf \u0027%P\\n\u0027 \\\n                        | sed -r \u0027s,(.*)/Android.bp,art-run-test-\\1,\u0027 \\\n                        | sort) RUN_ERROR_PRONE\u003dtrue\nBug: 147814778\nChange-Id: Ife6b045a88bd18b06a3fc202f3d226e27e0fc03d\n"
    },
    {
      "commit": "80777ed308b965175223455d738c890618a008b5",
      "tree": "ba8f6f8575f2a2a9d4157db7678328f4572d2458",
      "parents": [
        "c4cc618ad864c1f943daaef26914463d92d46ca0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 17:07:33 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 18 20:05:06 2019 +0000"
      },
      "message": "Revert^2 \"Make sure all runtime threads are in the System thread group.\"\n\nThis reverts commit 9ca8b2bf46978e3a5698f8a27b48aa7eff3514df.\n\nThe test 2005 exposed an ABA race which could cause the test to\nsometimes fail with CHECK failures or GC corruption.\n\nReason for revert: Fixed issue causing ABA race in PreObjectAlloc with\n                   test.\nTest: ./test.py --host --debug-gc\nBug: 146178357\n\nChange-Id: If265f765e0c1e692755904b4c40bbc718d98f065\n"
    },
    {
      "commit": "9ca8b2bf46978e3a5698f8a27b48aa7eff3514df",
      "tree": "4cca6a368f6adaee51360c819156ed4cd2e37e31",
      "parents": [
        "d03f8e63e6167af9148bc2ce374fd579e9a16202"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 08:36:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 08:37:33 2019 +0000"
      },
      "message": "Revert \"Make sure all runtime threads are in the System thread group.\"\n\nThis reverts commit 0e01c8d3f3c2d7cc4ac2cf5cf01ae913a4c6181e.\n\nBug: 146178357\nReason for revert: Breaks on debug-gc\n\nChange-Id: I2a305a271ef50263c2a722114f686a478d931c22\n"
    },
    {
      "commit": "0e01c8d3f3c2d7cc4ac2cf5cf01ae913a4c6181e",
      "tree": "81d5237a7aed99844527163d4739a64a60a1f96d",
      "parents": [
        "daad67f72f1d26fdb759326e504d540eab1e1392"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 13 14:26:09 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 17 03:25:23 2019 +0000"
      },
      "message": "Make sure all runtime threads are in the System thread group.\n\nWe want to be sure that one can suspend every thread in the \u0027main\u0027\nThreadGroup without affecting the ability of the runtime to perform\nnormal actions. Previously the jit thread-pool created threads in the\n\u0027main\u0027 thread group. Since some debugger actions can wait until all\njit threads are in a known good state, pausing all threads in the main\nthread-group can cause deadlocks.  To fix this we make the ThreadPool\ncreate all threads in the system thread-group.\n\nTo test this we perform structural redefinition with all threads\nexcept the main one suspended. Previously this would deadlock if run\nwith --jit, as we will pause the jit before performing redefinition.\n\nTest: ./test.py --host --jit\nTest: ./test.py --host\nBug: 146178357\nChange-Id: Ifcb0f29613d2fc22ca7913d4868a1e425b0bee5b\n"
    },
    {
      "commit": "8ea9b3711a5cc6c2d9ec4fe1e57e8c36fc62bced",
      "tree": "77ec6a1b7c2864f8e05f4a35d92abf0689b6d837",
      "parents": [
        "9d4fb714d84031f136bd1d5f0b70d53e710e5abf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 04 15:52:41 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 04 23:02:16 2019 +0000"
      },
      "message": "Use j.l.ThreadGroup class directly for GetThreadGroupInfo\n\nWe were using the class of the input to GetThreadGroupInfo in some\nsituations. This could lead to us reading the wrong field or not\nfinding expected fields. Change to always directly use the\nj.l.ThreadGroup class from WellKnownClasses. Also use some handles in\nthis function.\n\nTest: ./test.py --host\nBug: 140521090\nChange-Id: I3560662718311ccc0fa9b906f178407350ce9960\n"
    },
    {
      "commit": "21b0c29e6a7e5a9d2d31db27aea2fa8615d56f3b",
      "tree": "c3ef02e266924d482825e7bf07e95b7638c396d6",
      "parents": [
        "5df5acf4dc296d22a868a7c5010a7f5cf2350539"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 20 16:55:25 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 24 08:51:03 2017 -0700"
      },
      "message": "Remove unneeded shims and jni binding code\n\nBug: 37522517\nTest: ./test/testrunner/testrunner.py --host -j40\nChange-Id: I8670ab1bbf4b906c47d4edb2ad7349f9505da94a\n"
    },
    {
      "commit": "3ea3d5ca4420c98a3de51f638d3222c6696bc3e6",
      "tree": "310a5616d5d0ed2571dca8ddf0505db8ea8112e5",
      "parents": [
        "a8380240c8c9752c8b43926f677adcac11c2f52f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:36:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:47:24 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (3/3)\n\nAdd missing Main classes.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: I600dd5563e44604bd7b61c7d381f0a7d92db278a\n"
    },
    {
      "commit": "a8380240c8c9752c8b43926f677adcac11c2f52f",
      "tree": "29aab241dbc797839e327cffcd0b762df7282221",
      "parents": [
        "4665167ddc34008dfa78a2873685fe7a98772eab"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:18:45 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:46:32 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (2/3)\n\nMove refactored tests into their final places. Add a host java\nlibrary that includes those test files.\n\nThis is a follow-up to CL I740731c3af793521c5a859ef4a1f0ae94d2e1c19\nand must be used together with it.\n\nBug: 32072923\nTest: None\nChange-Id: I20b6070eb6bdd4b7a0bf42046302bafa10eee54f\n"
    },
    {
      "commit": "4665167ddc34008dfa78a2873685fe7a98772eab",
      "tree": "9af21169db0e6de2496b2946861436a9ecaf72e3",
      "parents": [
        "2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:00:04 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:44:55 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (1/3)\n\nPut (most) tests into a new package and give them dedicated\nclass names (Test9XY).\n\nNOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE DIRECTORY STRUCTURE\n      AND FILE NAMES!\n\nBug: 32072923\nTest: None\nChange-Id: I291b0543f7782914e446a74f0d9037020c88e5b5\n"
    },
    {
      "commit": "2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623",
      "tree": "ff8c0e57713c76b72885f352511c512831bddc86",
      "parents": [
        "672082ab6edf7c12a1d7b1d9303aa0aa4fcce089"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:28:48 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:32:09 2017 -0700"
      },
      "message": "ART: Add JVMTI test shim\n\nAdd shim to expose basic native binding methods.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: Ifcb9e3f66fce8002dd7d5ecb4de1729ab8939d0d\n"
    },
    {
      "commit": "027444b64dd52e1d2beea7aa525fbb8146a516bc",
      "tree": "ae746f4ee59787cae3f38e8f1c3c72e81e6fa693",
      "parents": [
        "5b92c48f99391ae764e1699a22881f9d5cbce721"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 31 12:49:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 31 19:44:26 2017 -0700"
      },
      "message": "ART: TI Agent test library refactor\n\nMore refactoring, lowering the reliance on ART-provided functionality\nand adding a library that includes all the code that can run without\nART.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: I67d84056a6fd7722c58855fccbdea3f6869b2efb\n"
    },
    {
      "commit": "3f46c96568bef650ba6d9ce6ac8835d30877f243",
      "tree": "86b0e0d10999dd4c7b525b1e4e2db3ab1703cbe0",
      "parents": [
        "02311bd39d64b1417e8580c2a993620c2234254d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 30 10:26:59 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 30 16:58:56 2017 -0700"
      },
      "message": "ART: Refactor JVMTI run tests\n\nIn preparation for code deduplication with CTS.\n\nBug: 32072923\nTest: m\nChange-Id: Ibbe005c94252bd29eae7f88aad301b0b20ddb80d\n"
    },
    {
      "commit": "5e03a305edafb49a34b436d9a858281e53d390f2",
      "tree": "97b34d7eb5ab9b1408325c7d8f9085c9f6f6cf67",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 13 13:10:00 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 14 08:18:08 2017 -0700"
      },
      "message": "ART: Refactor libopenjdkjvmti\n\nMove jvmti.h to its own folder and fix up include setup.\n\nBug: 31455788\nTest: m\nChange-Id: I5beb66fc5d0178746216f61f9214cda54fc2c7ac\n"
    },
    {
      "commit": "e4893eecf908b769e4e4148dc926c592dafc6533",
      "tree": "0cb8aafcb739da7b752952e42f3902aed8704e6e",
      "parents": [
        "2811b6ea22f89034bf15d5968441a6d650abf920"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 09 15:28:53 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 13:43:15 2017 -0800"
      },
      "message": "Remove unneeded build files\n\nAlso make run-test default to assuming java8 language source.\n\nTest: mma -j40 test-art-host\nTest: ./test/run-test --host --build-with-javac-dx 001-HelloWorld\nChange-Id: Id10b0539d919802985a373b1720534735c32434b\n"
    },
    {
      "commit": "4471e4f7c5874bdaf93762b6047d4a4bebc465df",
      "tree": "b4fb94ac604334a59046db0acc5ee6c6360c311b",
      "parents": [
        "b78a8af993e877d74c5938f65f95feaf2fa01321"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 30 16:40:49 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 03 15:10:38 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Give JIT thread pool workers a peer\"\"\n\nThis reverts commit 9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3.\n\nAccept a live Java thread for the JIT, and adjust the tests\naccordingly.\n\nBug: 31684920\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host\nChange-Id: I92cbae1eaae05711b9069335cf1a5f7eb58b9fd8\n"
    },
    {
      "commit": "01fd70b531a8bd8ebb2238f20c3e651f6b065285",
      "tree": "7f4f6a9514638aafbd8fa94791676567f1bb0c3c",
      "parents": [
        "5ea54a33a81ce48156fbb2685e9a61d0748644dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 10:03:08 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 11:38:25 2017 -0800"
      },
      "message": "ART: Remove experimental flags for plugins and agents\n\nRemove experimental flags guarding plugins and agents.\n\nPartial revert of commit 7233c7e752c0d26387d143ee74420e9cd1f09390.\nPartial revert of commit 185d134a3b43ab7529053e965917e0fa74bceba4.\n\nBug: 31455788\nTest: m test-art-host\nChange-Id: I11a19f24b88ced8da7a28e2cb7a2f602aab884a8\n"
    },
    {
      "commit": "53ae7803b20650b7f36c0564dbcdc3115f399cba",
      "tree": "6a163440ef06130506a0fcf21ac82d935a09dd1e",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 21:13:46 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 15:33:25 2017 -0800"
      },
      "message": "ART: Refactor TI tests\n\nAdd a helper to explicitly bind native methods in a given class,\nusing dlsym to look up C functions in the local environment.\n\nAdd a callback helper that hooks VmInit and calls the above function\non the Main class. Use the callback helper before calling the test-\ndefined or shared minimal OnLoad function.\n\nAdd a binder helper that immediately binds the Main functions. Use\nthe helper before calling the test-defined OnAttach function.\n\nRemove System.loadLibrary from tests. Instead rely on the explicit\nbinding.\n\nIn preparation for making the tests functional on device.\n\nTest: m test-art-host\nChange-Id: I12e68f070e8c6331e51d3a1fa4b9ebd8f28dfce6\n"
    },
    {
      "commit": "d18d9e2a94445d4b42e4bc6f0e642e6f76b4706d",
      "tree": "86b1d2c3cd0a12161778109733eec5366ebabae2",
      "parents": [
        "ce27739a1207c530c0ecebaefef80652f401f2d1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 16 16:08:45 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 14:40:16 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Add ThreadGroup API support\"\"\n\nThis reverts commit 87071bfb6c1b708bdfa2a5f91d4744667b3a0443.\n\nAdd an ObjectLock, which corresponds to the synchronized(this)\nimplementation on the Java side. Wait for the expected five\nchild threads in the root group before running the actual\nchild test.\n\nBug: 31455788\nChange-Id: Ib7a065d6a11f06f0325e3a8db040629f3ca69407\nTest: m test-art-host-run-test-925-threadgroups\n"
    },
    {
      "commit": "87071bfb6c1b708bdfa2a5f91d4744667b3a0443",
      "tree": "50cbb5cf4eefe7ae8459603411a92fe2ac459b6d",
      "parents": [
        "4cddd03950bb21e950afd72cad87e963bc53ea10"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 10:27:16 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 10:29:39 2017 +0000"
      },
      "message": "Revert \"ART: Add ThreadGroup API support\"\n\nTest fails\n\nBug: 31455788\n\nThis reverts commit 02afcde4132070d925838bc09c0f24d1bd45273d.\n\nChange-Id: I470becb29fda54db0db6f764a83efc926badb555\n"
    },
    {
      "commit": "02afcde4132070d925838bc09c0f24d1bd45273d",
      "tree": "8dd0640405ad747b8721db8fbffe5f5d5622f35e",
      "parents": [
        "7e25123127b0b02678a5101d0faa18b65895d723"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 17:34:39 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 08:51:24 2017 -0800"
      },
      "message": "ART: Add ThreadGroup API support\n\nAdd support for GetThreadGroupInfo, GetThreadGroupChildren and\nGetTopThreadGroups. Add tests.\n\nBug: 31455788\nTest: m test-art-host-run-test-925-threadgroups\nChange-Id: I56809c95dfd2666c2e18769a8960d6b1604274b4\n"
    }
  ]
}
