)]}'
{
  "log": [
    {
      "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": "66474c2878e0c91fbcffba8271bc20a3cf760642",
      "tree": "29109c8ad41c6d3c26b96d69702bd23456f9ede7",
      "parents": [
        "4a128a1d33758b5c7b7179dd6779ae120453a94c"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Tue Oct 20 14:17:57 2020 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Thu Oct 22 17:39:56 2020 +0000"
      },
      "message": "Move tests using art_gtest_defaults to art-host-tests suite\n\nThe tests requires art_common to run so they are not suitable to run in\nTest Mapping or other test suites except the ones with test zip set to\nart-host-tests.\n\nBug: 169111770\nTest: none\nChange-Id: I2513a963449fa2b8ef76908a49b41a63e6c369da\n"
    },
    {
      "commit": "463d03e93071be1efe6c5b65dbf7cbbe1b793eee",
      "tree": "cae8a251b469936d056ea9efb874e3face0181c4",
      "parents": [
        "d3e1e4bf28e5507d65f21e34ba43185b80cb3ad5"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Oct 21 21:38:58 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Oct 22 17:15:28 2020 +0000"
      },
      "message": "Prevent art_cts_jvmti_test_library from depending on framework-res\n\nUsing sdk_version: \"core_current\" did not work as some of the tests\ndepend on sun.misc.Unsafe so used core_platform instead.\n\nTest: m art_cts_jvmti_test_library\nChange-Id: Ib766dcb193cc5f069bf86b44912ea4801caff0a2\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": "8d9c6048caa5ac3051e05540c04ea7cb3dfff9a7",
      "tree": "e18df218572fc3d745af384ccfa5308a352239ae",
      "parents": [
        "8b247625f58ba8a0f616594dc774089678aa57e3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 22 15:35:59 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 02 18:58:58 2020 +0000"
      },
      "message": "Add test for thread-attach naming behavior\n\nThe interaction between pthread_setname_np and AttachCurrrentThread is\nnot always obvious. Add a test to codify the interaction. Basically\nAttachCurrentThread will always override the current\npthread_setname_np thread name, including if AttachCurrentThread is\ncalled without an explicit name, in which case the pthread-name will\nbe changed to the name selected by java.\n\nTest: ./test.py --host\nBug: 168655382\nChange-Id: If0319b733dc808a4cb892b6199030657c3e69f81\n"
    },
    {
      "commit": "423aefc4be393842a88cdd554df3bb58f4b79474",
      "tree": "abd67c3f533248ecd9cb943b72977444787852a9",
      "parents": [
        "4075edd5acc75133ce7553003d1a04c6c840dd52"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 01 18:42:22 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Sep 25 11:21:26 2020 +0000"
      },
      "message": "Add ART gtests to the Mainline Test Suite (MTS).\n\nInclude the `ArtGtestsTargetInstallApex` module in the MTS test suite.\n\nAlso support multilib variants in this Soong module (using different\nsuffix per sub-architecture), which is needed on build targets with\nsecondary architectures, as the MTS test suite packaging logic\nflattens all test artifacts into a single `testcases` directory.\n\n(cherry picked from commit 8db723c5bda7dc16547a0abdacbf6f7d3ab90a54)\n\nTest: Run `m mts` and check the contents of the MTS package\n      (`out/host/linux-x86/mts/android-mts.zip`)\nBug: 167385698\nBug: 168984433\nChange-Id: I123f313db5ab32b38c2110301bb84eb208a58047\nMerged-In: I123f313db5ab32b38c2110301bb84eb208a58047\n"
    },
    {
      "commit": "f61e0617b89e4ad60373f36da56812c20a3e0b20",
      "tree": "8bf61be41baaebf680e3048fdc3a1bb27e6ebf94",
      "parents": [
        "1d4f009209c35e91c41c915e21e3b59a731925f8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 14 16:13:35 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 17 16:08:12 2020 +0000"
      },
      "message": "Add test module for running gtests in chroot.\n\nBug: 147819342\nBug: 147821328\nTest: atest ArtGtestsTargetInstallApex\nTest: atest ArtGtestsTargetChroot\nChange-Id: If4efdfa9fe52e4ddb5c6a3ed409a27935b17cebf\n"
    },
    {
      "commit": "00381bf2b88a6cb980c2f882c6eb8fdc70ea6168",
      "tree": "9d910a8e80d60cf5879ec1c592cae9e416db3303",
      "parents": [
        "8d8380a2fafef53836127a79bc772f0d1ff41df0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 01 17:28:11 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 15 08:18:56 2020 +0000"
      },
      "message": "Add ART run-tests to the Mainline Test Suite (MTS).\n\nNote: For simplicity, all ART run-tests supported at the build level\nare included in MTS, even ones which are currently known to fail at\nrun-time -- we can filter the tests to execute at the test plan level\nif needed.\n\nTest: Run `m mts` and check the contents of the MTS package\n      (`out/host/linux-x86/mts/android-mts.zip`)\nBug: 167385698\nChange-Id: I47013a92cdda0dd7f819eca6e644a4cb2b3c2ca5\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": "7285a4bc7337cf6382ac464b979ae5db986a2a53",
      "tree": "b2cf6bf95ec431a2f7bb0d4c049aac3b737ef43d",
      "parents": [
        "8070443ce4b31a6787c22490f18f838f8f6ed4be"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 10 13:31:35 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 10 18:18:48 2020 +0000"
      },
      "message": "Fix GetDirectBufferCapacity for zero length direct buffer\n\nIt is possible to create a direct buffer that has a null address and\nzero size, e.g. mapping a FileChannel on a zero-length file. In this\ncase, GetDirectBufferCapacity() should return zero rather than -1.\n\nBug: 122025675\nTest: art/test/run-test --host 2036-jni-filechannel\nTest: art/test.py --target -r -t 2036-jni-filechannel\nTest: art_runtime_tests\nChange-Id: If615025385a8dfad00d815da128dfde19d2ddbc2\n"
    },
    {
      "commit": "9a09e7cf11b2653e6da2b179ac03bc6bb71c81e3",
      "tree": "244a62395e55fc89c903d36c5fbdd12802a982f6",
      "parents": [
        "edda3caf7c02c241dc466ecd02a8555972c46c4d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 02 00:08:06 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 08 16:55:38 2020 +0000"
      },
      "message": "Enable host gtests in eng-prod\n\nBug: 147817558\nTest: forrest run\nChange-Id: I1c1d083545994bfe5db7ecc6ba290608d6cd8edd\n"
    },
    {
      "commit": "edda3caf7c02c241dc466ecd02a8555972c46c4d",
      "tree": "c21fa6218003389877739f67a636d75e1c1915b8",
      "parents": [
        "dd5db458831cf74ae5813d2278fbd599145c4522"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 08 00:41:08 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 08 16:05:41 2020 +0000"
      },
      "message": "Use different extension for smali test files.\n\nThe test infra just searches for and opens all .jar files.\nThe different extension effectively hides the test files from it.\n\nBug: 147817558\nBug: 160391839\nTest: m test-art-host-gtest\nChange-Id: Ida3c102008b772841076df4e374532f7845b8c61\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": "0a17b6a0e705e45cf47407d0573ef8a7fd67cd99",
      "tree": "9b864aae8d952fc0ee2829672220774c91494303",
      "parents": [
        "b7f4d0f15f02224ce5048ba566b2dce193ee103a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 11:29:47 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 12:41:06 2020 +0000"
      },
      "message": "Revert \"Support running of host gtests in eng-prod\"\n\nThis reverts commit 22872da653053bb4b86fbef67163a9f6b7aee25b.\n\nReason for revert: Checking if this CL is cause of b/160132136\n\nBug: 147817558\nBug: 160132136\nChange-Id: Ifb6f2292292a7f69fbd0f2e9204fd37dbca84277\n"
    },
    {
      "commit": "9a0f9bae8f04c662bdcd97620641a9735066168a",
      "tree": "7beb60b8ecfdb83bd614d59ec1a9dc222e3d0134",
      "parents": [
        "79d9092bf54a195bef429b95716d983ba8eebfcc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 13 15:06:54 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Jun 27 16:12:36 2020 +0100"
      },
      "message": "Build ART run-tests using the same settings as Libcore tests.\n\nUsing:\n\n  sdk_version: \"core_platform\",\n\nin the definition of ART run-test modules does not allow us to build\nsome ART run-tests (e.g. the ones that use `sun.misc.Unsafe`).\nInstead, use:\n\n  sdk_version: \"none\",\n  system_modules: \"core-all-system-modules\",\n\nTest: m art-run-test-001-HelloWorld\nBug: b/147814778\nChange-Id: I93610bf1f74f3b7bbd8afe4616ebd59bfd5d4d0b\n"
    },
    {
      "commit": "79d9092bf54a195bef429b95716d983ba8eebfcc",
      "tree": "3455c5ed4d343bbd8532079b430ce4ae0e214ae7",
      "parents": [
        "a8049c6b4b19be3b48f364da5fd02f3380dcf90b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 04 15:41:45 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Jun 27 14:33:10 2020 +0000"
      },
      "message": "Introduce a Soong `java_defaults` module for ART run-tests.\n\nTest: atest art-run-test-001-HelloWorld\nBug: 147814778\nBug: 147812905\nChange-Id: I93655228f47a566e700f61d7040a41aceb9b5e87\n"
    },
    {
      "commit": "a8049c6b4b19be3b48f364da5fd02f3380dcf90b",
      "tree": "7dbe016424f6b65efcb531e51cbfc1a395cf1690",
      "parents": [
        "c40b151f771fd84d929fe8f7a63f42a0be188f93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 01 16:11:20 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Jun 27 14:33:10 2020 +0000"
      },
      "message": "Introduce a test configuration template for ART run-tests.\n\nTest: atest art-run-test-001-HelloWorld\nBug: 147814778\nBug: 147812905\nChange-Id: Ia32f7eb53e65156f9a4b439b49c5d3ac44c1474c\n"
    },
    {
      "commit": "22872da653053bb4b86fbef67163a9f6b7aee25b",
      "tree": "5355ac349eeb15165c6db0c17e93f1286c52a3d4",
      "parents": [
        "11303f2983bf2ef8d55870afcd0d5937f0778753"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 25 15:23:15 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 26 17:14:57 2020 +0000"
      },
      "message": "Support running of host gtests in eng-prod\n\nAdd more libraries and tools to the shared ART directory in testcases.\n\nChange the tests environment setup, so that it can find the tools.\n\nVast majority of tests pass. Some individual tests still need fixing.\n\nBug: 147817558\nTest: run gtests in forrest\nChange-Id: I3214f532436828c2a1a5a543e69d6b9bcf1e42af\n"
    },
    {
      "commit": "72cf0a827ad5e127222d59a112908348f6a55836",
      "tree": "567a2e845f85da6da5cf8c106fdf82febeddf59c",
      "parents": [
        "efc8004ea30ad6a46b7c55ddbe5fb3f086c640cc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 11 19:26:49 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 12 02:21:47 2020 +0000"
      },
      "message": "Revert \"Move ART gtests to general-tests.\"\n\nThis reverts commit 0e6d73a65e577e6416ee68490ca19ca3123f7fc6.\n\nReason for revert: I suspect it is causing failing post-submit tests \n\nChange-Id: I07bcd71537ef0cea8a1e8947b2e17a09df561a2c\n"
    },
    {
      "commit": "0e6d73a65e577e6416ee68490ca19ca3123f7fc6",
      "tree": "73eb6c20c637e08d9d9d3ba8b930a51b522fd713",
      "parents": [
        "faada5ed094a4d357882e6a4a372266c49d0b700"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 16:10:06 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 10 15:07:45 2020 +0000"
      },
      "message": "Move ART gtests to general-tests.\n\nThe size limiting bug in tradefed has been fixed.\ngeneral-tests is more appropriate target since do\nnot do any device-specific testing.\n\nBug: 147817606\nTest: atest ArtGtestsTarget --rebuild-module-info -c\nChange-Id: I745c065c293aa9bdb71de7ccdc46423302f457b0\n"
    },
    {
      "commit": "16527e892b13c9e1fb34f8d2e9993e58a72ac662",
      "tree": "05161726eb314545689ce8f7b6454217a437fe70",
      "parents": [
        "a8106bc4d8c12a4877cbab64d1dd0c1619b6ad50"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 08 09:21:12 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 09 03:01:52 2020 +0000"
      },
      "message": "Preserve JNI bindings across structural redefinition\n\nWe were incorrectly clearing the JNI bindings of native methods on\nclasses which are structurally redefined. This can cause major issues\nwith code which uses JNIEnv::RegisterNatives to setup native methods.\nThis change copies the required information from the old to the new\nmethod. Since the RegisterNatives method can be run asynchronously we\nneed to wait until we gain the final SuspendAll to actually read and\ncopy the registration.\n\nTest: ./test.py --host\nBug: 158476592\n\nChange-Id: Ie8a33234bb852a46e5275502c842553637c8a2c6\n"
    },
    {
      "commit": "4a88a5af7417d9dc0bfe37cffd92a253531c8f30",
      "tree": "6a0496ac10c62f8d183265a9d9615d5778a8c444",
      "parents": [
        "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 05 16:21:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 11:51:26 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong.\n\nThe rules have already been previously ported to soong, but they were\nonly used for atest.  Always use them to simplify the makefile.\n\nThis makes the gtest modules in .bp files depend on the needed jars,\nwhich ensures that they will be copied next to the test binary.\nThis is needed as atest can not access them in the current location.\n\nIt also simplifies the tradefed xml since the manual copying\ncan be removed for the apex-based device testing.\n\nTest: test-art-host-gtest\nTest: atest ArtGtestsTarget\nBug: 147819342\nChange-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87\n"
    },
    {
      "commit": "a2efd2aba99d23cca2087bf11978845b813a6f48",
      "tree": "03bae75d241b49f5a1f6ad570f37b1ccf3ea1834",
      "parents": [
        "ad3bbcd19d1586ee2e9734288ca4a550e634d1c9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 19 09:44:49 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 21 19:57:47 2020 +0000"
      },
      "message": "Add regression test for b/36989421\n\nThere was an old bug in some versions of art/dalvik that caused\nInvokeNonVirtual* JNI functions to call the wrong methods. Add a test\nthat the right behavior is done.\n\nNo functional change required. The behavior seems to have been fixed\nat some point.\n\nTest: ./test.py --host\nBug: 36989421\nChange-Id: Iddd518c780f01b680a4bf832a7f8ada07f19289a\n"
    },
    {
      "commit": "daee51f893902526b191b3a3c5dd179b1964a352",
      "tree": "faca774f561058f351198ce4d8efa67370851259",
      "parents": [
        "fa082fb9f60e867b5a13a63ca76791c1c12a58f5"
      ],
      "author": {
        "name": "Sooraj Sasindran",
        "email": "sasindran@google.com",
        "time": "Mon May 18 20:18:53 2020 +0000"
      },
      "committer": {
        "name": "Sooraj Sasindran",
        "email": "sasindran@google.com",
        "time": "Mon May 18 22:36:23 2020 +0000"
      },
      "message": "Revert \"Move ArtGtestsTarget to general-tests.\"\n\nThis reverts commit c6849c6805251b699b4f8d954861c325f3cb1985.\n\nReason for revert: b/156939667\n\nChange-Id: I72e8c2e0e2b3676b0a7f15e585b1bbf07193c6a5\n"
    },
    {
      "commit": "c6849c6805251b699b4f8d954861c325f3cb1985",
      "tree": "07cd74eec4819eb8e3fcdf8d0685b0fdf981fa90",
      "parents": [
        "cb782e84d28f4714a66463b4ad463cfc0b37cc1e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 16:10:06 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 18 12:36:39 2020 +0000"
      },
      "message": "Move ArtGtestsTarget to general-tests.\n\nThe size limiting bug in tradefed has been fixed.\ngeneral-tests is more appropriate target since do\nnot do any device-specific testing.\n\nTag the ART tests so they can be run from ATP.\n\nBug: 147817606\nTest: atest ArtGtestsTarget --rebuild-module-info -c\nChange-Id: Idd5f65608a51a1b145e826c2056032acdfed9b6a\n"
    },
    {
      "commit": "883c1346b87537ed93f7d4fd88bbbb041c14d320",
      "tree": "efb8205d15d677d3e3fdf90f0ae09c4a2eba9a4f",
      "parents": [
        "612809740453427ce4c9211062794dde3823ab6d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 11 23:30:29 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 18:06:16 2020 +0100"
      },
      "message": "Revert^2 \"Remove test_per_src from ART tests.\"\n\nSecond attempt at this, which fixes the asan failures.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nAdded a gtest_main.cc with the gtest isolated main function,\nand ART-specific initialization.\n\nBug: 147819342\n\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nTest: art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: I515c911bb7d44285495802fc66cd732fc8e6d8df\n"
    },
    {
      "commit": "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522",
      "tree": "4c1d538f5faf72617e9088b8f99a368b999b32dd",
      "parents": [
        "685c84775f7dfe23197b080e4730435fd80e6d27"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 00:08:42 2020 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 07:25:07 2020 +0000"
      },
      "message": "Revert \"Remove test_per_src from ART tests.\"\n\nThis reverts commit 8103e479d8f8447584582b2b70752029f7087776.\n\nReason for revert: asan run fails in multiple ways\n\nTest: ran ./art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: Ib9f2887436a664b64c6410f56a25ae2dd0e0aab4\n"
    },
    {
      "commit": "8103e479d8f8447584582b2b70752029f7087776",
      "tree": "53b2be70d195b785fc1d79b6151e42925b4981fe",
      "parents": [
        "6a8f8c52da06de506b75fa524a56a30794849261"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 21:36:49 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 07 14:45:38 2020 +0100"
      },
      "message": "Remove test_per_src from ART tests.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nBug: 147819342\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nChange-Id: Id295af00d08b24baa2e421b0f3313df0b2e56fe9\n"
    },
    {
      "commit": "672295a9e3b7481f79186b0ca7ba410e6c8eb10f",
      "tree": "9894a94a24a02b05c3375f245c962479fa43ccc4",
      "parents": [
        "5f84607854775be67a8eb2437ce1071af7d477d2"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Apr 16 21:31:17 2020 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Apr 18 04:15:29 2020 +0000"
      },
      "message": "Add test for JNI env modifications on shutdown\n\nBug: 147804269\nTest: .../testrunner.py --host -b --64 -t 2033-shutdown-mechanics\nChange-Id: Ie8bc12b94709e38dd043c644cdde3e02d96dedf1\n"
    },
    {
      "commit": "2506eff52e4f4bfb45fe074171f805a0d8996117",
      "tree": "67c5a417d723b8d1ca045601f406e2e4d1615005",
      "parents": [
        "00cb81d29a9a903aa5f72e28492415ff7b2d7f06"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Apr 07 11:32:24 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 08 08:42:22 2020 +0000"
      },
      "message": "Replace art_cts_jvmti_test_library filegroup with java_library\n\nThis is to allow the art_cts_jvmti_test_library to be exported as part\nof the ART module exports.\n\nBug: 142947124\nTest: atest -p cts/hostsidetests/jvmti\nChange-Id: I7ce0c78b8f40d928798764d74add8dbff4353af8\n"
    },
    {
      "commit": "216a6455c4baa260e07472e41e60dc30290e84c0",
      "tree": "8293ff025c90b480dd1ce3346fb6267c3c191b4a",
      "parents": [
        "b72a0941f6f97f6bbb117634a2a3d7bd5a121732"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Fri Apr 03 18:55:31 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 15:53:45 2020 +0000"
      },
      "message": "Remove libicuuc/libicui18n usage from art_gtest_defaults\n\nApparently, they are unused.\n\nBug: 138994281\nTest: m art/test\nChange-Id: I7add5d6970b08d9b6747449c0b45145cb17d38b5\n"
    },
    {
      "commit": "fdd46848364b5fdb7360cb3256bd9482d7ca3c28",
      "tree": "d3e47c9723155f6376e3782cc47658a295c1da1c",
      "parents": [
        "4ac8d96c332b014b72c2480aa1c83762e818daef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:16:12 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nChange-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\n"
    },
    {
      "commit": "e5621f552a1e3e07d2c4a5e29c0d9494b09bbffe",
      "tree": "a87aac73c93ac39447691d5f8a332338ee0e5bd0",
      "parents": [
        "e4abf13cf6b7cbc50e4e22d7b9fc6f31d0bb0ac3"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 25 10:51:14 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 27 14:29:39 2020 +0000"
      },
      "message": "Wrap expected_cts_outputs in a java_library\n\nRenamed expected_cts_outputs to expected_cts_outputs_gen and add a\njava_library called expected_cts_outputs which statically includes the\ncontents of expected_cts_outputs_gen.\n\nThis allows expected_cts_outputs to be easily added to\nart-module-tests-exports.\n\nBug: 142935992\nTest: m droid\n      manually inspect contents of CtsJvmtiDeviceRunTestAppBase to\n      ensure that they had not changed.\nChange-Id: I7c2d61e06a0388e03295ecc08958d185f3651ed2\n"
    },
    {
      "commit": "ee2571618ec960659e1326b540dcd41610f9a277",
      "tree": "a650686a2dbf0b675c5ebff48a823c82a3459ba0",
      "parents": [
        "30fd85157260c91327c6b5a0816d312dd505c0e0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 28 15:50:13 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 12 16:02:27 2020 +0000"
      },
      "message": "Revert^2 \"Support ART\u0027s target gtests in atest.\"\n\nThis reverts commit 615212399037ea41987282800f077941d7ec9f54.\n\nTest: Run the test locally\nChange-Id: I257b0cb1e4210a1d4ec3060c4470c0f8af2ee45b\n"
    },
    {
      "commit": "280e6c323419ad08860514ff8c09eefb8fc8e969",
      "tree": "db1d3d73a8c00c5df9cb8809dc3ab53e5ed09af6",
      "parents": [
        "b28e3042b1dcab32c328b356a31f6ea8b50a9f9c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 03 13:52:07 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 18:46:53 2020 +0000"
      },
      "message": "Jit-zygote compiled code isn\u0027t debuggable\n\nWe check the debuggablity of compiled code by checking to see if it\nwas compiled by the JIT. This works since we throw all precompiled\ncode out when transitioning to debuggable. Unfortunately with\njit-zygote the non-debuggable zygote methods can be incorrectly seen\nas debuggable when encountered on the stack. This can lead to\nincorrect deoptimization and other issues. To fix this we explicitly\nexclude jit-zygote code from the check.\n\nBug: 144947842\nTest: ./test.py --host\nChange-Id: I4e953f64f8261b7a16d7c3199cec89998af0c1cf\n"
    },
    {
      "commit": "615212399037ea41987282800f077941d7ec9f54",
      "tree": "15089323ce0a197c4585f9ad002beb016a247a5a",
      "parents": [
        "69efda0772090bd844ba5200e3be6c0bdf2c8aac"
      ],
      "author": {
        "name": "Paul Trautrim",
        "email": "paultrautrim@google.com",
        "time": "Thu Feb 27 01:58:43 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 27 13:02:06 2020 +0000"
      },
      "message": "Revert \"Support ART\u0027s target gtests in atest.\"\n\nThis reverts commit eac404b341e40bb72f8d79ee1d1a7173862b438e.\n\nReason for revert: Debugging test failures (b/150282462)\n\nChange-Id: I3582eeb1f121d4850209768b3a7ae8a444f0379a\n"
    },
    {
      "commit": "eac404b341e40bb72f8d79ee1d1a7173862b438e",
      "tree": "2681b43b60f8eec774e04b7200764f6bb885c8a5",
      "parents": [
        "109039edbdcf1bc9eb0b0ced334041292746526c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 16:27:43 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 25 16:37:33 2020 +0000"
      },
      "message": "Support ART\u0027s target gtests in atest.\n\nThis is first simple approach which relies on installing\nthe ART testing apex on the device and rebooting it.\nThis is not ideal if bugs prevent the device from booting.\n\nThe next goal is to run the tests in chroot without reboot.\nWe should also introduce dedicated ART gtest runner.\n\nTest: atest ArtGtestsTarget --rebuild-module-info\nTest: run on device using forrest\nBug: 147817606\nChange-Id: I3b7f66dc27a665a6971fc688f220103c6b842b57\n"
    },
    {
      "commit": "41b605c5ad4b06ea127ac56c6e3a4c92e8913efd",
      "tree": "f7b28eb11051f3faada99c11dc594cccd34a5786",
      "parents": [
        "30b38f8d01cdb4c80092638f23c61d73e0d287f4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 12:01:58 2020 +0000"
      },
      "message": "Remove MIPS support from runtime/.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876\n"
    },
    {
      "commit": "e6e634e98e03af93ee367bbdf6cfaf3673d94d14",
      "tree": "76e04418401432f4cabb7739690dedc5e174d15b",
      "parents": [
        "5e251ead219d8e9f4bb1e8c53f222f91d798d653"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 10 13:50:42 2020 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 12 00:02:04 2020 +0000"
      },
      "message": "Remove test 1944\n\nThis test checked that we would not crash due to an interaction\nbetween atexit handlers and thread suspension. The bug was fixed but\nthis test is actually rather flaky due to the inherently\nmulti-threaded nature of library unloading. Since this test isn\u0027t very\nuseful on its own and to quiet the noisy flakes we are removing the\ntest entierly.\n\nBug: 76081508\nTest: ./test.py --host\nChange-Id: I7951c671c412b6148f4c1ae54ec6c739a4aa70a2\n"
    },
    {
      "commit": "8206ae846173c98b386d56ff3f290ad74a30b291",
      "tree": "85c8ab98f5ec81addce43be6b3fd7f4297a35c9c",
      "parents": [
        "98cf82f227fa8fab694674e72a9a2ca95face4b5"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Tue Feb 11 02:33:31 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 11 22:11:46 2020 +0000"
      },
      "message": "Revert \"Fix Core Platform API JNI check\"\n\nThis reverts commit 6c56db31b8a6424680ad3836022a1d81e83dc4a9.\n\nReason for revert: potential culprit b/149238651\n\nBug: 144502743\nBug: 149238651\n\nChange-Id: I719ecaff2c9486776b165918607a2df2ee23d56d\n"
    },
    {
      "commit": "8c8f148bdde5eeb799dd802d861149b3e0f538c5",
      "tree": "c060009c0ee265f196c7b39edc2f2a6aa2696dab",
      "parents": [
        "5c33d35bf3bd0d824e94784312fe3ddb823028d1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 20:17:10 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 10 16:05:59 2020 +0000"
      },
      "message": "Add blueprint modules to generate jar files for gtests.\n\nThis will be needed to run gtests under atest.\nThe output is unused for now.\n\nSome of the tests in makefile were renamed for consistency.\n\nTest: m test-art-host-gtest\nBug: 147819342\nBug: 147817606\nChange-Id: I96db24406881a2adeeec7889f04681ae18352b16\n"
    },
    {
      "commit": "6c56db31b8a6424680ad3836022a1d81e83dc4a9",
      "tree": "ac3d7f1631de86192b116561eeb5909c88279815",
      "parents": [
        "f9dfd77182296cd9161784bc0b9babf4f22a90c7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 21 10:56:28 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Feb 03 22:43:47 2020 +0000"
      },
      "message": "Fix Core Platform API JNI check\n\nFix an inverted flag around kIsTargetBuild that broke check.\n\nSimplify SharedObjectKind\u0027s so there are only values - part of the ART\nmodule and other. Being part of the module is equivalent to\nDexDomain::CorePlatform.\n\nAdd a test for Core Platform API checks for native code. The test is\nderived from 674-hiddenapi, and separate because the existing test is\nalready complex.\n\nAdd 2030-core-platform-api-jni to the same knownfailures as\n674-hiddenapi since the newer test likely to have the same failures.\n\nBug: 128517070\nBug: 144502743\nTest: art/test/run-test --host 2030\nTest: art/test/run-test 2030\nTest: erroneous warnings gone from master\nChange-Id: I1a365a28b89bd46b3e403f6deb736f350c4baf10\n"
    },
    {
      "commit": "e91e795a77b96d58276f75b1b244a5509ef8c215",
      "tree": "d34f8164bb7adb8ed46e3c989877012555e194c3",
      "parents": [
        "aa6f6f1c86705fe3cedf929bd30d1e6f51524594"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 23 10:15:56 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 31 08:20:57 2020 +0000"
      },
      "message": "Replace instrumention id with stack pointers.\n\nReplace instrumentation ids for instrumentation frames, which are\ninherently broken (see b/72608560), and use stack addresses instead\nto properly identify which frames to pop / unwind.\n\nBug: 72608560\nBug: 148166031\n\nTest: ./art/test/testrunner/testrunner.py --trace --debuggable --ndebuggable --optimizing --interpreter --jit --debug --ndebug -j32\nTest: run-libjdwp-tests.sh\nTest: 2011-stack-walk-concurrent-instrument\nTest: ./art/test/run-test --host --dev --runtime-option -verbose:deopt,plugin --prebuild --compact-dex-level fast --jit --no-relocate --create-runner --runtime-option -Xcheck:jni 1965-get-set-local-primitive-no-tables\n      art/tools/parallel_run.py -j80 /tmp/path/to/runit.sh --out failure.txt\n\nChange-Id: I71f6e55b9da608796cd3142b147f7b50bbd292ec\n"
    },
    {
      "commit": "e8a83afa22cab1bf6a3ce6c23d9b89d37f83b343",
      "tree": "6a7a42251e074eb1dd6f9cefab49e9fc4e49273d",
      "parents": [
        "d2ac307e505f71a2d439c264cb7c5eab9bd07e13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 29 10:14:44 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 29 16:31:04 2020 +0000"
      },
      "message": "Revert^2 \"Avoid libtistress static link to art\"\n\nThis reverts commit a2a1b55064508547e6a9ce39654f9ddc434b4e32.\n\nReason for revert: The original CL should not have been\nreverted, it was not the reason for BuildBot breakage.\n\nBug: 147727942\nChange-Id: I2e82b3cfbf0cd05528e654a24319eed93859ba7c\n"
    },
    {
      "commit": "3f0dca119df45ef2a7fdfc26c070677953cfcce4",
      "tree": "ced5a8170092b728b038d1e581f061b27b315735",
      "parents": [
        "f365affd27933d1d0771d0d5064101db18c19cc2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 27 17:20:28 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 28 21:27:20 2020 +0000"
      },
      "message": "Ensure IsStructurallyRedefinable takes into account subtypes\n\nStructural-redefinition changes the addresses of the ArtFields and\nArtMethods of the class being redefined and all of its subclasses. For\nthis reason if there are JNI-ids that are pointers to these anywhere\nwe cannot allow structural redefinition of the class, even if the\npointers are for subtypes. Previously we didn\u0027t check the\nredefinability of sub-types so we could incorrectly invalidate jmethod\nor jfield IDs.\n\nTest: ./test.py --host\nBug: 148414638\nChange-Id: I8fc809a43e16d5e7938b90b00c531573a2edca00\n"
    },
    {
      "commit": "a2a1b55064508547e6a9ce39654f9ddc434b4e32",
      "tree": "d1106025e6d81dbdce878ac0303422c52247773c",
      "parents": [
        "775f6817d7d22827b858be5f5d9713137372622d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 28 09:00:07 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 28 09:00:58 2020 +0000"
      },
      "message": "Revert \"Avoid libtistress static link to art\"\n\nThis reverts commit d8309caffb3f12663e1780648ab1e4c881471c78.\n\nReason for revert: Broke several BuildBot targets.\n\nBug: 147727942\nChange-Id: I209951daa6b6232ca4fc8d172d9f8a0d50bd98b2\n"
    },
    {
      "commit": "5c7f367987080488fdb4e52a13dd92a4cafd798f",
      "tree": "ce94da08f3fe9678256d123e83920fa2f5f62fbd",
      "parents": [
        "7e2c963b572dff7aded82d5524b5ece81f7e0210"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 27 15:23:30 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 28 01:21:03 2020 +0000"
      },
      "message": "Make test 1983 more consistent\n\nOn CTS the classes we can structurally redefine might change based on\nwhat JNI id\u0027s are requested prior to the zygote-fork. This can lead to\ndifferent outcomes for this test. To prevent this don\u0027t check BCP\nclasses which are potentially structurally redefinable on CTS runs.\n\nBug: 148079561\nTest: atest CtsJvmtiRunTest1983HostTestCases\nChange-Id: Ie76686499a873240c25a98f0893f9df2fc907124\n"
    },
    {
      "commit": "d8309caffb3f12663e1780648ab1e4c881471c78",
      "tree": "bbcf3f99e36743b8dbb61b9eaaed1bad86059dd1",
      "parents": [
        "92231c5fd2060fb1290fee99fa483d9461708a53"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 21 12:27:27 2020 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 27 16:38:32 2020 +0000"
      },
      "message": "Avoid libtistress static link to art\n\nMake libtistress use shared linking and add missing libz dependency.\n\nBug: 147727942\nTest: art/test/testrunner/testrunner.py --host -j72 --redefine-stress\nTest: mmma art -j72\n\nChange-Id: I3db36dd205555eb0a94d0d56d4277ee2d9b36794\n"
    },
    {
      "commit": "e0c6d439271c94feb3fb38728d1b4743a7ed0b9e",
      "tree": "c7f9176cacb9e362d0dd3bbeabeca8b42e42d184",
      "parents": [
        "721e40283793649b4750c05da4fe972bd372f7f9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 22 22:04:20 2020 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 22 22:04:20 2020 +0000"
      },
      "message": "Revert \"Fix stack-walking race\"\n\nThis reverts commit 721e40283793649b4750c05da4fe972bd372f7f9.\n\nReason for revert: Wanted more discussion.\n\nTest: none\n\nBug: 72608560\nBug: 29259363\nBug: 148166031\nChange-Id: Id0fb201018a0d0bdca11d51ec156a41d6d7fe4ae\n"
    },
    {
      "commit": "721e40283793649b4750c05da4fe972bd372f7f9",
      "tree": "9af2c2c583900e9a35c6adf7fef277d0221c0571",
      "parents": [
        "df7e5b836e78ab38101dde45399c8de51df4042e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 14 14:45:40 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 22 21:56:30 2020 +0000"
      },
      "message": "Fix stack-walking race\n\nDuring stack walking it was possible for a walking thread to race with\nthe InstrumentationInstallStack. In this case the stack changes made\nby InstrumentationInstallStack could cause the other thread to\nincorrectly parse the stack data-structures, leading to\nfailures/crashes.\n\nTo fix this we increment an ID whenever instrumentation changes the\ninstrumentation stack. Other stack-walkers then check this id and\nrestart whenever it changes. Note that although the stack-walk\nrestarts we keep track of how many java frames we\u0027ve visited already\nand refrain from calling VisitFrame until we are at the same position\nagain. This means that as far as the Visitor writers are concerned the\nstack-walk is only done once, just like always.\n\nAdded a test (2011) that forces the race to occur.\n\nAlso Disabled Dex2oatSwapUseTest#CheckSwapUsage. It seems that the\nincrease in Thread* size has caused it to fail. Disable while we\ninvestigate. See b/29259363\n\nBug: 72608560\nBug: 29259363\nBug: 148166031\nTest: ./test.py --host\nTest: ./test/run-test --host --dev --runtime-option -verbose:deopt,plugin --prebuild --compact-dex-level fast --jit --no-relocate --create-runner --runtime-option -Xcheck:jni 1965-get-set-local-primitive-no-tables\n      parallel_run.py\nChange-Id: I77349dfc6fa860b7f007dee485e9fea1d8658090\n"
    },
    {
      "commit": "72325b603fad447082729eb43f11a8d83706bad5",
      "tree": "3546b831a215a0b1c46d77a0b38ba8aadb845b38",
      "parents": [
        "4f9d62b549ef755c5b77d09b1da2a8403f58b376"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 09 17:49:45 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 15 21:33:25 2020 +0000"
      },
      "message": "Add test for local-refs being updated by structural-redef\n\nWe don\u0027t have a good test that local-JNI-refs are correctly updated by\nstructural redefinition. This adds such a test.\n\nTest: ./test.py --host\nChange-Id: I56697fe1a4f9d726b5666c7be2d4036ee248bc58\n"
    },
    {
      "commit": "fe0ce64326bc0531616fb6b5388400cd9787370e",
      "tree": "2b176d562034d35949e9e646beec263006e29eb1",
      "parents": [
        "e8e544dc8909155560af0c7381df3833b2e7f701"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 07 13:14:18 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 15 08:24:52 2020 +0000"
      },
      "message": "Add structural redef tests to CTS\n\nThis adds structural redefinition and other JVMTI run-tests to CTS\nwhere possible.\n\nTest: atest -bit --test-mapping cts/hostsidetests/jvmti/TEST_MAPPING\nBug: 134162467\n\nChange-Id: If8e36ea8d228253928cb9b9f6a35a284250641e9\n"
    },
    {
      "commit": "4681f2034034435d47eb0b5ef03bde69a1e4dde6",
      "tree": "c12cb99d4255c16357328429eead1472fe6b60ba",
      "parents": [
        "baf938f331eac62d28a215c065e56bfc9e38a3e2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 10 09:27:57 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 13 18:37:35 2020 +0000"
      },
      "message": "Don\u0027t run AllTraces in test 911 on CTS\n\nAllTraces will (among other things) list every thread currently\nrunning. Unfortunately this means it breaks every time anyone adds a\nnew thread to the app environment. This happens somewhat regularly so\ninstead of maintaining an every-growing list of ignored threads we\nwill instead just skip this bit of the test.\n\nTest: ./test.py --host\nTest: atest CtsJvmtiRunTest911HostTestCases\nBug: 147267774\nChange-Id: I5126dd266272b44dcd00013f9b867cd3fac2bf89\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\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": "7dac864d7eae3d731eeacf55cfc7f71b4df6cee3",
      "tree": "9f27bb1c0b6f076c2dd1b721441200f9f7a78022",
      "parents": [
        "047081a1509762879a9eb51981982af65f419bac"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 06 17:09:30 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 27 10:02:22 2019 +0000"
      },
      "message": "Clean up JNI dlsym lookup trampoline.\n\nMake sure the GenericJniTrampoline recognizes the trampoline\nin primary boot image oat file. Rename that trampoline, add\na test and flag some issues in the code.\n\nTest: New test 178-app-image-native-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: testrunner.py --host -t 178-app-image-native-method\nBug: 112189621\nChange-Id: I8f8cd11998af536fd3842dd4183a25f0367655a6\n"
    },
    {
      "commit": "962a110efb2c6a2b0161f919bfd5921e3dee7168",
      "tree": "712fa25cf0ef355a419a44dccd6fcc8dfba40e32",
      "parents": [
        "831f20f06f1f3eb2230c7a2266f72bebc6232587"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 01 16:20:33 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 04 12:51:14 2019 +0000"
      },
      "message": "Restructure the contents of art/test/Android.bp.\n\nHighlight what pertains to ART gtests vs ART run-tests.\n\nTest: m\nChange-Id: Ie241dda8a2de567378a4dfd60deeee4cc67832df\n"
    },
    {
      "commit": "55eccdf61f46bd2a633f489f8d09cf78e1de1938",
      "tree": "e60d91c8fc48dfe70956ec9febd346b9dc9fcf77",
      "parents": [
        "49df715faf3700e874fbe246b339a8e426549216"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 07 13:51:13 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 07 18:59:55 2019 +0000"
      },
      "message": "Revert^4 \"Walk internal ArtField/ArtMethod pointers\"\n\nSeveral of the new tests make use of the invoke-custom opcode. This\nopcode is not supported by dexter/slicer causing the tests to fail.\n\nThis reverts commit c34eab45161c51bf63e548e44645cbcc59d01268.\n\nReason for revert: Added tests to redefine-stress known failures\nTest: ./test.py --host --redefine-stress\nBug: 134162467\n\nChange-Id: Ic1b375a0cb1e44d0252c17115af92c269fb8efc5\n"
    },
    {
      "commit": "c34eab45161c51bf63e548e44645cbcc59d01268",
      "tree": "1b2a0eb85865d2cf6b1627cb5d64869e72412505",
      "parents": [
        "623d4f1ba4f4218c5472e3d9e1e9bf707795878d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:15:53 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:16:18 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\"\n\nThis reverts commit ea2a3d949354c8b054983ba629c81bc5ff7163da.\n\nBug: 134162467\n\nReason for revert: Fails redefine stress\n\nChange-Id: If487c0bcacaf3a3f565ff475b6dad8321e3428b9\n"
    },
    {
      "commit": "ea2a3d949354c8b054983ba629c81bc5ff7163da",
      "tree": "dc94a9c92b254d3f94d96ad0dc27f195d5a7767c",
      "parents": [
        "7fca6ef7b9dbe5a54f2c93a3484035f48ebae27a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 20:34:46 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 14:21:21 2019 -0700"
      },
      "message": "Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit 712fa800b2b78e527d36c88dc369bf4b723587ea.\n\nWe incorrectly didn\u0027t check if a method was obsolete before giving its\nclass\u0027s MethodIds array. We then incorrectly used this array and the\n(placeholder) -1 index to try to find the previous method-id. Since -1\nis not a valid array index we got check failures. To fix this we\nsimply added a check that the method is not obsolete and if it is we\ngo to the slow-path.\n\nReason for revert: Fixed issue causing out-of-bounds array access\nTest: ./test.py --host --debuggable --ndebuggable\nBug: 134162467\n\nChange-Id: Iaffefeab6e889b4fb6554a11452d0af051001cb7\n"
    },
    {
      "commit": "712fa800b2b78e527d36c88dc369bf4b723587ea",
      "tree": "ccc4573a3c6bef136ef6da022350ebb5c17a1892",
      "parents": [
        "f70dfec27cae2625c199f1b8ecf1ef1f23580a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:11 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:38 2019 +0000"
      },
      "message": "Revert \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c.\n\nBug: 134162467\n\nReason for revert: Test fails on debuggable.\n\nChange-Id: I240d58fafcc7434749947330b64c67d65b9b7a1e\n"
    },
    {
      "commit": "c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c",
      "tree": "1380b353e0d3b5015c9d1ef29fd4c2534828f97b",
      "parents": [
        "8679fd5e938d7bed67d3ab67c55b7f4fb2cdd92a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 24 14:36:50 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 03 20:44:33 2019 +0000"
      },
      "message": "Walk internal ArtField/ArtMethod pointers\n\nDuring structural class redefinition we sometimes need to update some\nof the ArtMethod/ArtField pointers held by runtime frames. This adds\nsupport for doing this through a StackReflectiveHandleScope similar to\nthe StackHandleScope used for holding object references. This also\nupdates various places where reflective-handles to ArtMethods and\nArtFields are needed, for example the JniIdManager, field Read/Write\noperations and events, field resolution, and the old debugger.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I4ea73e85956a07735c6d7b125c5828a4233670bc\n"
    },
    {
      "commit": "b4abe0a193871684ec712fc00b49e9764978b7c9",
      "tree": "ad43199c8efa37e5f5cc4c6d86e72cfe0c9af899",
      "parents": [
        "f3e6c5eada7521d7c4ddc86307474f389f53081e"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri May 17 19:22:55 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 20 13:19:52 2019 +0000"
      },
      "message": "Limit visibility of ART libraries, binaries, and headers.\n\nThis simply records the visibilities necessary to keep things working - more\nwork is required to vet them.\n\nTest: m\nBug: 133140750\nChange-Id: I776d6b79c4c2b214556070c850ae5321d5f8b949\n"
    },
    {
      "commit": "4ac0e1571e015a01d75091c3daef065f9624ad77",
      "tree": "4d13edeab88bd6fd724388c48385b0c3cca4f3a8",
      "parents": [
        "5a2301d897294ff4ee6de71f459dc2566dc3fa1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "message": "Revert \"Revert \"Basic structural redefinition support\"\"\n\nThis reverts commit 5a2301d897294ff4ee6de71f459dc2566dc3fa1a.\n\nBug: 134162467\n\nReason for revert: Relanding as unclear if issue is due to topic.\n\nChange-Id: Ib1d1cf2e9132e30c9649b760ae9ae2d8ceacf843\n"
    },
    {
      "commit": "5a2301d897294ff4ee6de71f459dc2566dc3fa1a",
      "tree": "2bd06ab3f463734994b3d251f6115514520dbb3f",
      "parents": [
        "4eb6eb40e88214fcc874d93e75660cb580cb4d58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:11:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:12:13 2019 +0000"
      },
      "message": "Revert \"Basic structural redefinition support\"\n\nThis reverts commit c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c.\n\nBug: 134162467\n\nReason for revert: Breaks on redefine-stress\n\nChange-Id: I4e38da23d65b5b34b26b5ab537a3583328e078a4\n"
    },
    {
      "commit": "c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c",
      "tree": "f8647487e7465712fd73118ceb89e13167a12648",
      "parents": [
        "1ba7e8c10af4e270864a417044244d63db53ccf5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 13 10:50:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 17 23:52:12 2019 +0000"
      },
      "message": "Basic structural redefinition support\n\nThis adds basic support for adding methods and fields to already\nloaded classes using redefinition. This \u0027structural class\nredefinition\u0027 is currently limited to classes without any virtual\nmethods or instance fields. One cannot currently structurally redefine\nmultiple classes at once nor will structural redefinition trigger the\nstandard redefinition events.\n\nAfter structural redefinition all references to the old class, and its\nfields and methods are atomically updated. Any memory associated with\nthe static fields of the old class is zeroed. Offsets for field access\nmight change.  If there are any active stack frames for methods from\nthe redefined class the original (obsolete method) code will continue\nto execute. The identity hash code of the redefined class will not\nchange. Any locks being held, waited or blocked on by the old class\nwill be transferred to the new class.\n\nTo use this feature the process must be debuggable and running with\n-Xopaque-jni-ids:true.\n\nFor device testing use a wrap.sh that adds the following flags:\n\n    \u0027-Xopaque-jni-ids:true -Xcompiler-option --debuggable -XjdwpProvider:adbconnection\u0027\n\nStructural redefinition only available using the\n\"com.android.art.UNSAFE.class.structurally_redefine_class_direct\"\nextension. This will not trigger the normal class-redefinition events.\nOnly one class may be redefined at a time.\n\nNB There are still some holes in this potentially allowing obsolete\nmethods/fields to be visible. Most notably during jni-id, MethodHandle\nand VarHandle creation as well as potentially other places in the\nruntime. These holes will be closed by later CLs. Until then the\nextension to access structural class redefinition will remain tagged\nas UNSAFE.\n\nTest: ./test.py --host --all-compiler\nBug: 134162467\n\nChange-Id: I825d3a4bdb9594c0147223ae69f433ce9bbfc307\n"
    },
    {
      "commit": "fa595885339140c3507f26d93cdc6b99081e23c5",
      "tree": "19d6240afee048aa37a778f09996c6ecad5266a6",
      "parents": [
        "918e9af6a7259e7178ec10257f568a60e832a962"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 06 17:40:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 09 07:36:39 2019 +0000"
      },
      "message": "Fix setting/getting the native priority of a thread.\n\nBug: 138415922\nTest: 720-thread-priority\nChange-Id: I6e1f34fce3838b7904281be00f315e5b7ade0c78\n"
    },
    {
      "commit": "d4d6fb50b5e1552c114529854e29c3af5c4eb9c1",
      "tree": "6734ee945ffceab400b2f763134d5014d22a73d3",
      "parents": [
        "f0b1de829bfa96d7d52a57bf5fb2d84b7657e141"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 05 12:28:39 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 05 12:42:44 2019 +0100"
      },
      "message": "Set relative path to ART tests back to `art/$ISA` instead of `test/$ISA`.\n\nThis is to address run-test failures. Some of the test logic still\nrelies on finding test libraries under `/data/nativetest{,64}/art/$ISA`.\n\nThis change is a partial revert of 61f071630083775fe64d177455a056daa7071eca.\n\nTest: Run ART run-tests on device\nTest: art/build/apex/runtests.sh\nBug: 129534335\nChange-Id: I1ce241ff994bfbd789affdcccf360d6f8c62ce61\n"
    },
    {
      "commit": "61f071630083775fe64d177455a056daa7071eca",
      "tree": "4d8e610f3939ca23f588bcdffe66aa859ae1a3c5",
      "parents": [
        "81448a21dd3f2c4608496e6dc7a1f093dcccf1e0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 26 12:44:04 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 02 10:36:58 2019 +0000"
      },
      "message": "Introduce a Testing Runtime APEX (test) module including ART gtests.\n\nDefine a new flavor of the Runtime APEX, having the same contents\nas the Debug Runtime APEX plus ART gtests that have dependencies\non Runtime APEX internal libraries.\n\nPreviously, when these ART gtests were built and installed in\nthe data partition, they would depend on \"legacy\" ART internal\nlibraries being installed in the system partition (not the ones\nfrom the Runtime APEX). As we plan to remove these ART libraries\nfrom the system partition, we needed a way to be able to build\nand install device ART gtests without triggering the installation\nof these legacy ART internal libraries.\n\nThis Testing Runtime APEX is meant to be used for ART testing only,\nand should never be included in any product.\n\nThis change adds build rules for the Testing Runtime APEX (and\ncorresponding unit tests), but does not replace the Debug Runtime APEX\nfor device testing yet (this will be implemented in a follow-up\nchange).\n\nAlso rename `art_apex_test` module type as `art_apex_test_host`.\n\nTest: m com.android.runtime.testing\nTest: art/build/apex/runtests.sh\nTest: art/build/apex/art_apex_test.py\nBug: 129534335\nChange-Id: I8d70bdcf7c6253dd5bc8786a702f130d444c3cb6\n"
    },
    {
      "commit": "c14ec8facf0ea51e7531fa0acbed3410468b0356",
      "tree": "a70bc3cffcaf763e4951c96918bc6f8b25a472b3",
      "parents": [
        "147a911636402f2658ce60bd3ad62eb197b00f74"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 18 16:08:41 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 01 17:50:27 2019 +0000"
      },
      "message": "Add resize arrays JVMTI extension\n\nAs a prototype for more general object replacement functionality add a\nnew JVMTI extension that allows one to change the size of arrays. This\nextension is \u0027com.android.art.heap.change_array_size\u0027. As far as any\nJVMTI agent, JNI or Java Language code can observer this extension\natomically replaces every reference (strong and weak, global and\nlocal, etc.) with a newly allocated array with the same contents but a\ndifferent length. Internally a whole new array will be created then\nthe old array will have its contents (including lock-word) copied and\nall references to the old array will be replaced with the new array.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I92a0beabb02e0c92c8c8f9639836014ff1266878\n"
    },
    {
      "commit": "422a9ebc5b9d780a3201243f02b58652b44d9896",
      "tree": "4fcd6abe72d70358d7bf6235266ab685b61678a1",
      "parents": [
        "9f18fbc433bba51a5b81249989a8726558135528"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 12:54:07 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 16:54:29 2019 +0000"
      },
      "message": "Do not hold lock when making class visibly initialized.\n\nDoing so can lead to deadlocks.\n\nBug: 138561860\nBug: 36692143\nTest: New test 177-visibly-initialized-deadlock\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nChange-Id: I6195a4a5a7d865f90c529da684697b9a3e23ff30\n"
    },
    {
      "commit": "f3677471a58c2738a3d9dd05f07f01c18a5e61be",
      "tree": "21b4279c1077e051b84aad12da29240672f54913",
      "parents": [
        "f1468b53d0427a45011fe6446d189babe0acd6e0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 26 16:31:53 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 29 22:22:53 2019 +0000"
      },
      "message": "Add ability to switch to index ids late.\n\nIn order to support some debugging features we need to have JNI code\nmostly running with jmethodIDs and jfieldIDs as opaque indexes\ndisconnected from any underlying art data-structure pointers. For\nperformance though we want to continue to use data-structure pointers\nas these IDs when debugging is not needed. To support both\npossibilities this adds support for changing from a \u0027swapablePointer\u0027\nto either \u0027pointer\u0027 or \u0027indicies\u0027 regime at runtime.\n\nThe SwapablePointer regime still uses pointers as the ids but creates\nthe data-structures needed to ensure that we can (1) detect that the\nmethods have pointer-type IDs and (2) we can change some\nWellKnownClass internal IDs from one to the other.\n\nCurrently one must select this mode explicitly using\n\u0027-Xopaque-jni-ids:swapable\u0027. Depending on when the final jni-id-type\nis selected a small amount of extra memory is used. Currently manual\ntesting of turning the default id-type to swapable and changing to\npointer immediately after zygote-fork shows a additional 40-90 kb of\nshared zygote-heap memory.\n\nTest: ./test.py --host\nTest: m libfieldcounts; \\\n      ./tools/jvmti-agents/field-counts/count-fields.py \u0027Ljava/lang/Class;.extData:Ldalvik/system/ClassExt;\u0027 \u0027Ldalvik/system/ClassExt;.jmethodIDs:Ljava/lang/Object;\u0027 \u0027Ldalvik/system/ClassExt;.staticJfieldIDs:Ljava/lang/Object;\u0027 \u0027Ldalvik/system/ClassExt;.instanceJfieldIDs:Ljava/lang/Object;\u0027 -p `adb shell pidof com.android.deskclock`;\n      Examine output\nBug: 134162467\n\nChange-Id: I1885b10056d5dcc65dad5ae4f858ddc12ba79403\n"
    },
    {
      "commit": "4345aacf582a5206976d5bed98ab4abd7b9a8c40",
      "tree": "594191df77d214fac994b63761ac25bba257bb40",
      "parents": [
        "6b689ceb63b4fffaf0e617f7d363c841dd29e458"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 17 15:51:54 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 17:07:13 2019 +0000"
      },
      "message": "Cleanup some usages of include_dirs\n\nThe include_dirs property causes problems when unbundling as they can\ndirectly reference directories inside the runtime module repositories\nwhich will break the unbundled build as those repositories will not be\npresent. While these usages do not cause problems as they are\nreferences within the runtime module repository they need removing so\nthat the build can enforce no usage of runtime module repository paths\nin the include_dirs property.\n\nThis change:\n* Replaces include_dirs with local_include_dirs where possible.\n* Uses libnativehelper provided header libs, this is possible as they\n  have been updated to build against the NDK.\n* Adds headers for disassembler, libdexfile\n* Makes libart_runtime_headers build against NDK.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea\n"
    },
    {
      "commit": "b7c640d364d32b79cb52d04750b063667a9a0c86",
      "tree": "9caafc96879f83f8e5dd3cd45b9005be6e2b7deb",
      "parents": [
        "3ffb5b1576f8af0c361284ebd8d2d54c70ede3ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 20 15:52:13 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 10 18:33:25 2019 +0000"
      },
      "message": "JVMTI Force early return\n\nAdd support for can_force_early_return jvmti capability. This allows\none to force java frames to exit early. Exited frames have all of\ntheir normal locks released.\n\nWe implement this by modifying the existing method exit events to\nallow one to modify the exit value during the callback. This is used\nto implement ForceEarlyReturn by adding internal-only events that will\nchange the return value of methods once they return (using\nkForcePopFrame) avoiding the need to modify the actual interpreter\nvery deeply. This also makes it simple to continue to use the standard\ndeoptimization functions to force the actual return.\n\nIn order to simplify book-keeping the internal event is refcounted,\nnot associated with any specific jvmtiEnv, and only settable on\nspecific threads. The internal event is added by the ForceEarlyReturn\nfunction and then removed by the MethodExit event when we update the\nreturn value.\n\nBug: 130028055\nTest: ./test.py --host\nChange-Id: Ifa44605b4e8032605f503a654ddf4bd2fc6b60bf\n"
    },
    {
      "commit": "098e7a67588f39642567b91ecfab117dbaa84d31",
      "tree": "6bb9193916b4ee6e7998e7b707d2c326afbafd48",
      "parents": [
        "e48fd0b4780efadc6b3433fe7a56aa5be2a84325"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 21 16:57:10 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 22 03:23:26 2019 +0000"
      },
      "message": "Try to make test 1963 pass on fugu\n\nThe fugu test device we use seems to be old enough not to have a real\nmemfd_create syscall and something about the setup (probably the\nchroot) is preventing the tmpfile() fallback from working. To make the\nbot green have the test check to see if memfd_create should work and\nignore the test results if it\u0027s not.\n\nTest: ./test.py --host\nTest: Hope\nChange-Id: I21f566344047eebb7e1817eea56cc83fd0d77558\n"
    },
    {
      "commit": "639e73b5ad1d96a1e67743735a13f7a268b455aa",
      "tree": "d362fd58d8e1ab68a512f3f0f33b0fe1384e0a26",
      "parents": [
        "f03b151a9b86bc47f501ec7ea0b71d0598e90d52"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 17 21:44:36 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 20 16:13:34 2019 +0000"
      },
      "message": "Revert^2 \"Add AddToDexClassloader JVMTI extension functions\"\n\nThis reverts commit 799e536da9733ab638946f56e1ceb62d62cd3c81.\n\nIt seems that on some of our test devices the kernel does not have an\nimplementation for memfd_create. To work around this I added a basic\nwrapper that will simulate memfd_create using temp files. This should\nbe sufficient for testing. All actual devices are expected to support\nthe memfd_create syscall natively.\n\nReason for revert: Implemented fallback for memfd_create\nBug: 132699522\nBug: 132914283\nTest: ./test.py --host\n\nChange-Id: I63b36464df24193fff27624c1e2350d65545ad1d\n"
    },
    {
      "commit": "799e536da9733ab638946f56e1ceb62d62cd3c81",
      "tree": "66a8910e6e8ffd96a83b31513998dc9745209d5b",
      "parents": [
        "c5265d93c8340b3c419f7f2a7620b5279f274637"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 17 21:42:33 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 17 21:43:40 2019 +0000"
      },
      "message": "Revert \"Add AddToDexClassloader JVMTI extension functions\"\n\nThis reverts commit 92ed90ca3897ae7861b22aa12740065152839649.\n\nReason for revert: Test 1963 fails when run by chrome buildbots.\n\n\nChange-Id: Ia3a7dc64f0372da9feca9bca1a75038d3f9fb01e\nTest: None\nBug: 132699522\nBug: 132914283\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "92ed90ca3897ae7861b22aa12740065152839649",
      "tree": "fdc54a52ba79635a228b58fe2ad90c58442965b8",
      "parents": [
        "82cc9601d657965d9bff7cc0a63a603df0e1eae5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 14 14:33:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 02:35:59 2019 +0000"
      },
      "message": "Add AddToDexClassloader JVMTI extension functions\n\nIt is useful for some agents to be able to add new classes into an\nalready existing classloader. This could be used to, for example,\nhandle new lambdas added during \u0027edit-and-continue\u0027 debugging. This\nextension should eliminate the need for agents to reach into\nclass-loader internals.\n\nThese functions are:\n\n\u0027com.android.art.classloader.add_to_dex_class_loader\u0027 which has a\nsignature of jvmtiError(jvmtiEnv* env, jobject classloader, const\nchar* segment) and will add the given \u0027segment\u0027 file to the\ndalvik.system.BaseDexClassLoader \u0027loader\u0027.\n\n\u0027com.android.art.classloader.add_to_dex_class_loader_in_memory\u0027 which\nhas a signature of jvmtiError(jvmtiEnv* env, jobject classloader,\nconst unsigned char* dex, jint dex_size) and will add the dexfile\nbuffer \u0027dex\u0027 to the given dalvik.system.BaseDexClassLoader.\n\nClassLoaders that do not extend dalvik.system.BaseDexClassLoader are\nnot supported.\n\nTest: ./test.py --host\nBug: 132699522\nBug: 132914283\n\nChange-Id: I3740af4b3b06b9fa64be8ad94238256b7a43536a\n"
    },
    {
      "commit": "23ca8fbcb23fb1eb95d192995a35f4fed53bffbd",
      "tree": "106272f910aad65faec278234555efeba27464b0",
      "parents": [
        "d4f8afb4d8bc7bb5cbaf217c2f0734b880b62689"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 10 11:27:02 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 14 16:39:25 2019 +0000"
      },
      "message": "Centralize all the jvmti common test classes\n\nWe share many common JVMTI test classes between our various JVMTI\ntests. We have always shared them by simply copying the .java files to\nany tests that need them. This leads to very large code-reviews and\nrequires manual work if we ever need to update any of the helper\nfiles.\n\nTo ensure everything stays in sync this moves all classes to a single\ntest/ti-common directory that tests then contain symlinks into.\n\nTest: ./test.py --host\nChange-Id: I82238a63d281429196ed0e640e4a9ec3234d954c\n"
    },
    {
      "commit": "4060786d8fa8c0c63c751a837decce4f95a33112",
      "tree": "7ce0fcebc6399c5c672569dcf7aa3dc67d503978",
      "parents": [
        "3ff45bf767f4f1baf858e2220e36acffa97b0383"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 06 18:16:24 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 09 09:07:24 2019 +0000"
      },
      "message": "Revert^2 \"Correctly handle thread deopt with thread-specific JVMTI events\"\n\nThis reverts commit b2a8964f4218c2c52dacf599ebf5cf69f8753bf0.\n\nIt turns out that transitioning from instrumentation trampolines and\ninterpreter trampolines interacts in a racy way with single thread\ndeoptimization. This caused tests that perform this transition\nrepeatedly to be flaky when run with the --trace. Since it is expected\nto be rare that one traces at the same time they are performing JVMTI\nfunctions (since JVMTI is a superset of trace behaviors) we solved\nthis by simply not allowing the transition.\n\nReason for revert: Prevented unsafe transition between entry-exit\n                   trampolines and interpreter only.\nBug: 131865028\nBug: 132283660\nTest: ./test.py --host --trace --ntrace\nTest: echo \"#!/bin/bash\" \u003e run-one-test.sh\n      echo \"./art/test/run-test --dev --jit --trace --64 1956-pop-frame-jit-calling 2\u003e\u00261\" \u003e\u003e run-one-test.sh\n      chmod u+x run-one-test.sh\n      ./art/tools/parallel_run.py -j20 ./run-one-test.sh\n\nChange-Id: Id496b272f353a5a5e000574c107a97d67405d54b\n"
    },
    {
      "commit": "b2a8964f4218c2c52dacf599ebf5cf69f8753bf0",
      "tree": "1eb91d1e6dcdee31b5b396ee0ed8baf8c94aca96",
      "parents": [
        "c8c7e0659a76a951f3ab110ed9b7f37777448d36"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 06 18:05:55 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 06 18:05:55 2019 +0000"
      },
      "message": "Revert \"Correctly handle thread deopt with thread-specific JVMTI events\"\n\nThis reverts commit c8c7e0659a76a951f3ab110ed9b7f37777448d36.\n\nTest: none.\nReason for revert: Causes art-tracing to flake/fail pop-frame tests.\nBug: 131865028\n\nChange-Id: I16bda461da94405f372b6b0be54ac4b4efb08fda\n"
    },
    {
      "commit": "c8c7e0659a76a951f3ab110ed9b7f37777448d36",
      "tree": "8a77fac99879f781d3c4eeaa8c79b3d9eb7bbc13",
      "parents": [
        "765b2a04576f4e985a88165456f5ee55cdfe56b8"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu May 02 17:35:02 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 03 19:56:27 2019 +0000"
      },
      "message": "Correctly handle thread deopt with thread-specific JVMTI events\n\nWe were incorrectly treating some JVMTI events as still requiring\nglobal deopt even though that requirment had been lifted. This meant\nthat if one sets thread-specific event notification requests on\nmultiple threads only some of them will actually be deoptimized. This\ncould cause events to be missed if the relevant methods/threads had\nbeen jitted.\n\nTest: ./test.py --host --jit-on-first-use\nTest: ./test.py\nBug: 131865028\n\nChange-Id: Ib196faa635e61262eea7ccc576dc0d700b3e7eff\n"
    },
    {
      "commit": "68fa4ca3138a4950a33c74283488681fb602e85c",
      "tree": "eb280ba8af29b292b79b0dd24a9061c6b75c30ff",
      "parents": [
        "c5e3a52473772a6aba3a8407b0151f6046c5e21b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 16:51:13 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 20:40:13 2019 +0000"
      },
      "message": "Add debug version of libnativebridgetest.so\n\nWe need both versions and load the correct one.\n\nTest: test.py -r --ndebug -t 115\nTest: test.py -r --debug -t 115\nChange-Id: I189d4d92a7eea63d6ebd4040d12926bc0c3f1154\n"
    },
    {
      "commit": "7711c35fa603b86d520991c4e97ca297add81881",
      "tree": "ce476e232ecf0176c5c9bed81f1528a1c6801fab",
      "parents": [
        "39239870737e3669ff1f85475458e5f57ed79194"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 17:50:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 08:11:20 2019 +0000"
      },
      "message": "Fix debug/release dependencies on libartbase\n\nWe load both the debug and release build when running tests.\nThe different builds have different layout of some classes,\nwhich can currently result in random native heap corruptions.\n\nFix the build dependencies to avoid the double loading,\nand add runtime check to avoid it in the future again.\n\nTest: test.py -b --host --64\nTest: test.py -r --target -t 001-HelloWorld\nChange-Id: Ie62f91dc06209c91e25ba5f11c9d61243ac7579d\n"
    },
    {
      "commit": "b4e65074f148214a61f94c12fed54f4d113c35d6",
      "tree": "782e11fd5fd84afbd57abe94365cbbeb1e5c2fcf",
      "parents": [
        "240cb2aa3c660f070e1fb1d630e01c13ba57c194"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 25 15:10:32 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 26 22:40:02 2019 +0000"
      },
      "message": "Refactor test 1953, 1954, 1955, \u0026 1956 somewhat\n\nThese tests all use a common set of suspension triggering event code.\nThis will be useful in other tests later. To make it easier to use in\nthe future this code is separated into common ti-agent files.\n\nTest: ./test.py --host -j80\nChange-Id: I75f3fe8862c99bd32c5eabe0992fef911d7d9c56\n"
    },
    {
      "commit": "e7a33545a69fcfb3d4466e2ee2cba2a200ef990b",
      "tree": "00a3e61450c185e4730fbfbc60e74a7202babd33",
      "parents": [
        "66834468e9106e264a74766c17a0c047a3448921"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 10 14:22:49 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 10 23:29:43 2019 +0000"
      },
      "message": "Handle methods being present in multiple threads correctly\n\nWe were incorrectly removing obsolete methods from the jit too early.\nThis could cause stack walking to fail on other threads that also have\nthe same method present. This changes so we will not notify the jit of\nobsoleted methods until we have walked all threads.\n\nTest: ./test.py --host\nBug: 73333076\nChange-Id: I30b1293eaf2dac7d4af858f77e5819af2d96b429\n"
    },
    {
      "commit": "331a5e101313838189933399b2017305493f9f58",
      "tree": "5a8f391ff9e36db8965f01603e15834c800b5fc5",
      "parents": [
        "4080b8febed8b82957274882a96b2a7d8625c32e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 01 22:46:16 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 02 16:31:01 2019 +0000"
      },
      "message": "Revert^2 Verify InMemoryDexClassLoader classes in a background thread\n\nWhen dex bytecode is loaded using InMemoryDexClassLoader, automatically\nspawn a background thread which performs bytecode verification on every\nclass.\n\nThis reverts commit b4bb63aa4be80722643611fc931976b3544f14b5. This CL\nfixes a previous issue where runtime threads are not allowed to load\nclasses in debuggable mode.\n\nBug: 72131483\nChange-Id: Icdeb5be2b33ef55675e3a23886e71ce3b4b02f43\nTest: art/tools/run-libcore-tests.sh\nTest: art/test.py -b -r -t 692\n"
    },
    {
      "commit": "b4bb63aa4be80722643611fc931976b3544f14b5",
      "tree": "7982bd7e79474b24f8f258efec3ac64328b34d7e",
      "parents": [
        "71d614f12ad6da2f15e835e22fe577b2d1d86bb0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 01 19:38:10 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 01 19:38:48 2019 +0000"
      },
      "message": "Revert \"Verify InMemoryDexClassLoader classes in a background thread\"\n\nThis reverts commit d592dbe1e2b09079382713220b2ff59f02db1859.\n\nReason for revert: art buildbots crashing\n\nChange-Id: Ida6bb79cb498e708df5c535edc16e4fe9875442c\n"
    },
    {
      "commit": "d592dbe1e2b09079382713220b2ff59f02db1859",
      "tree": "0782c75d713200b1e99dee9f97b4898612b3fee3",
      "parents": [
        "0a20607d671bf001043ccb0cf156db16b4fc6bed"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 01 22:25:31 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 01 15:54:39 2019 +0000"
      },
      "message": "Verify InMemoryDexClassLoader classes in a background thread\n\nWhen dex bytecode is loaded using InMemoryDexClassLoader, automatically\nspawn a background thread which performs bytecode verification on every\nclass.\n\nBug: 72131483\nTest: art/tools/run-libcore-tests.sh\nTest: art/test.py -b -r -t 692\nChange-Id: Iad54f510de02cd073e68d775d34b7dd5bdef304e\n"
    },
    {
      "commit": "c7c5d5311501eebf791b0bca6d1e56c58b062a9c",
      "tree": "a4e7290a18db72be475c8a3c4f7a4bfae759e739",
      "parents": [
        "57975683aaa9a6b93fe7d1bf6c4f3428dcf99ab5"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Wed Feb 27 15:03:37 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 13 20:37:03 2019 +0000"
      },
      "message": "Add a filegroup and a resource jar referenced from cts/hostsidetests/jvmti\n\nBug: 122332514\nTest: treehugger\nChange-Id: I2603d43c52fc32c4ce8ffccbcc1990eecac449d1\nMerged-In: I2603d43c52fc32c4ce8ffccbcc1990eecac449d1\n"
    },
    {
      "commit": "175ce3dea89a40e68a685d7f873e8b9f082c45a6",
      "tree": "f4ba53dc33aca3ae71fd006b282a55dc926e53c9",
      "parents": [
        "cc292c611af7cdea6a2d9196fc347468b9233f71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 06 16:54:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 01:22:42 2019 +0000"
      },
      "message": "Add callback for notifying that startup is completed\n\nAdd a callback that can be called to denote that application startup\nis completed. This may affect how the profile is collected and how\nstartup related caches are managed.\n\nBug: 123377072\nBug: 120671223\nTest: test-art-host\nChange-Id: If7eb8909cc5e99082a2243b5029380244b46174d\n"
    },
    {
      "commit": "7e057ec0e023910f6bc42bc552a8463343cf346f",
      "tree": "ba7da2f763c899e4759a4c080ec7ee9cd4a005e1",
      "parents": [
        "5708376183c4e2d4456a191955c5060e404a9f0a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 04 13:11:22 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 05 16:46:57 2019 +0000"
      },
      "message": "ART: Use slicer\u0027s no-rtti library\n\nCorrectly use the library that does not require rtti.\n\nTest: mmma art/test\nTest: m test-art-host\nChange-Id: Id1199644df372c4549c645185ae065908cbef093\n"
    },
    {
      "commit": "b756f70170bdd3b89714bcfbfd5bf8b71f352124",
      "tree": "a4a8ba7ca047e970c1a37cd350df85e549877062",
      "parents": [
        "72c403b9b5027e7849a5145a0af0166f5d3d42c2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Jan 28 22:40:47 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 12 19:35:44 2019 +0900"
      },
      "message": "Rename libnativebridge-dummy-headers to libnativebridge-headers\n\nBug: 123403798\nTest: m\nChange-Id: Ia178d3cb91183ddcefafd04cb0ab31e1033710ca\n"
    },
    {
      "commit": "00fbe4fc833f680e78f692bd7fc4d41ef35f437c",
      "tree": "267cfd885e884602a4b62eb6cbe727042751cbad",
      "parents": [
        "e28c18beef88a19d3050a5c718da291343c45698"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 02 16:52:38 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 10 15:34:56 2019 -0800"
      },
      "message": "Add region padding for app images\n\nFor app images, partition the image such that no object spans cross\nregion boundaries.\n\nBug: 116059983\nBug: 116874661\nTest: test-art-host\n\nChange-Id: Iedffe9fac4b9b59f81de7dd607030ad3a8bcb602\n"
    },
    {
      "commit": "fc81d802243c7fd24b5aa63841217727594dacab",
      "tree": "7cb975ef4f99aa8a548c21c2101f34e22c8a5777",
      "parents": [
        "e352152209d7fdab4eae46cb9ad4c61c82e04598"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 13:39:05 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 15:43:20 2018 -0800"
      },
      "message": "Adjust instrumentation CHECK to be correct WRT obsolete methods\n\nSome instrumentation sanity-check code didn\u0027t take into account\nobsolete methods and so could sometimes spuriously fail if the right\nsequence of redefines and deoptimizations occur.\n\nThis can occur if one tries debugging a test using inline-mockito, for\nexample.\n\nTest: atest -wbit RecentsAnimationTest and attach debugger with\n      breakpoint in test\nTest: ./test.py --host\n\nBug: 120630577\n\nChange-Id: Iaeb79aebb084990b397e59f56a186e0feaffd654\n"
    }
  ],
  "next": "12dd9aee74a588bf31f151cebba930849b4baceb"
}
