)]}'
{
  "log": [
    {
      "commit": "79bf0b8e9c704e63029bb3badf9c4872484a827b",
      "tree": "b5278a5439b576b67e48cefa6e42b4368d12ae9d",
      "parents": [
        "2b8d3c8060c20ea96efbbaf9d86eb7f28284dbd6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 05 14:35:20 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 06 17:42:51 2020 +0000"
      },
      "message": "Fix CTS failure on 988 due to hiddenapi\n\nhiddenapi would cause test 988 to be unable to find the\nThrowable.nativeFillInStackTrace method causing the output to be\nfiltered incorrectly. This only happens on CTS since the normal\nrun-tests are executed with those restrictions turned off.\n\nTest: atest CtsJvmtiRunTest988HostTestCases\nBug: 172354013\nChange-Id: I1d278e240c9eebb797f329fb0d1514729cd26215\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": "e85595e8edf1dade430f53e6149cffd41d74f629",
      "tree": "df6d474f41b38d1deddceb63bb6c6a5a84611cf5",
      "parents": [
        "134380d7c70d95962ed818458185e608ad17ff08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 15:54:34 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 15:54:34 2018 -0700"
      },
      "message": "Add explicit native method test to 988\n\nRealized this test doesn\u0027t include any explicit check that native\nmethods are traced correctly and this will be useful to have for\nfuture work.\n\nTest: ./test.py --host -j50\nChange-Id: I208458b6fe7d69e4d78e6757aa5ef2b437665edb\n"
    },
    {
      "commit": "c916736ca1e375c276df251446baf2ac8ff3eb13",
      "tree": "64f5243c1b95e63a24861af5508b3f71311b51c0",
      "parents": [
        "2c8206ffeb07cebe2f612b8c66c0f4f4132e2be2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 16:46:43 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Ensure proxy methods are reported by instrumentation\n\nPreviously we would not report proxy methods to instrumentation in all\ncases. Specifically if the instrumentation trampolines were not\ninstalled we would never report proxy method entry or exit. This fixes\nthat and ensures that proxy methods are always reported to\ninstrumentation regardless of what instrumentation method is being\nused. It also ensures that these methods will only ever be reported\nonce per entry.\n\nTest: ./test.py --host\nTest: ./test/testrunner/testrunner.py \\\n         --host \\\n         --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\n\nChange-Id: I78f1d4b3b3f242e8915989ab26f7c204baab08e5\n"
    },
    {
      "commit": "26ef34c01ae5db2d3c964844b3717b8974a612c9",
      "tree": "8470588d8d0601626b3524abb5fbe19386ba7fe4",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 13:32:41 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:21:52 2017 +0000"
      },
      "message": "ART: Move intrinsics definitions to runtime\n\nBug: 37538194\nTest: art/test.py --host\nChange-Id: Ic7adf5f8b14be0e1880ae898a4e199b4416a4d24\n"
    },
    {
      "commit": "df13240f4b9325b34d09e20cdac4e9a0b12ead61",
      "tree": "ed2e646165904d2e8c15210ddc84bfd98b8c8d9f",
      "parents": [
        "05727c50c8c329d03692ffe51dce453c54379d70"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 12:54:33 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 13:09:58 2017 -0700"
      },
      "message": "Send ThreadEnd after clearing ThreadGroup.\n\nThe removal of a thread from it\u0027s thread group does cause managed code\nto execute so it could cause additional events to trigger in agents,\npotentially causing deadlocks. This changes where the event is\ntriggered to put it after the thread has been removed from its group.\n\nTest: ./test.py --host -j50\nBug: 67104807\n\nChange-Id: I53f53b2823835a9629842fb5c22079b3e42042d5\n"
    },
    {
      "commit": "5995a8e51d842d4e423ac15267b7b8c103194f98",
      "tree": "a6cb1ad9f6710163af32843f7f7948eabfb9bda9",
      "parents": [
        "c4543f526754c0936ac11b791d6de510ad0aea57"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 27 17:20:50 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jul 06 11:57:24 2017 -0700"
      },
      "message": "test: Add tests for tracing compiler intrinsics\n\nEnsure that ART TI MethodEntry/MethodExit events are correctly\nreported for all intrinsics (for public api).\n\nTest: art/test/run-test --host --optimizing 988-method-trace\nChange-Id: Iab90e9cfffb3c644df7fffac26f35a66b95e299a\n"
    },
    {
      "commit": "9a70a63127c41f061fab48ffdf72b435171b40e2",
      "tree": "482c9288d9caa8a32ebb3c78ee8f207edef32869",
      "parents": [
        "f88e73f2461c54f582834bed193d76fc0dd27dd2",
        "70fbac7ac065efd11d49b7e8554f40d44f0baf72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 29 00:47:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 29 00:47:32 2017 +0000"
      },
      "message": "Merge \"Add tests 988-992 to cts\""
    },
    {
      "commit": "c38c3699b8d91c837c0e590a618aeb4860eed5cc",
      "tree": "83e300a8f9b4c065e5467f5473e25bb2451481cc",
      "parents": [
        "a26e349b960a7b4c49929a5c4bcaff56e79fbe73"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 27 15:45:14 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 28 13:48:19 2017 -0700"
      },
      "message": "Add JVMTI breakpoint and SingleStep tests\n\nTests for functionality related to the can_generate_single_step_events\nand can_generate_breakpoint_events jvmti capabilities.\n\nBug: 62821960\nTest: ./test.py --host -j40\nTest: ./test/run-test --host --jvmti-step-stress 001-HelloWorld\nTest: ./test/run-test --host --jvmti-step-stress 914\nChange-Id: Id2a4db5a6de3a97726f03f5e735c2bb77dafe4ca\n"
    },
    {
      "commit": "70fbac7ac065efd11d49b7e8554f40d44f0baf72",
      "tree": "c979b2b8ffc98e307e56faea69018f80df3aef68",
      "parents": [
        "96e3dd546cc255441fb27d456b06e2e662b5f9c8"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 23 13:17:07 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 28 11:42:06 2017 -0700"
      },
      "message": "Add tests 988-992 to cts\n\nTest: cts-tradefed\nChange-Id: Ib0c53d50ef5d4428a11d0805d7b042c95213aa33\n"
    },
    {
      "commit": "7c95849fb89ccc49d601a34d09cb629f3feb4116",
      "tree": "35cfc6c854149f26bd95185878ba8b21f863a8a7",
      "parents": [
        "084fa370a14edc43dcf8ff4e454e04c863e1a130"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 08:59:19 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 19 15:40:26 2017 -0700"
      },
      "message": "Add tests for field access and modify JVMTI callbacks\n\nTest: ./test.py --host -j40\nChange-Id: Id0af65ef217f49dbef0ff09846d69113b1c786c5\n"
    },
    {
      "commit": "8aa5270666c7bf1f588edf9b3286352ae3fa867a",
      "tree": "25b03764667575410733bd5b6e0f5507dcfe579c",
      "parents": [
        "df2898236114f8fec51afe71a3b6f31868794e1b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 12 08:48:28 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 12 16:57:40 2017 +0000"
      },
      "message": "Remove method reference from test 988\n\nIt was causing the test to fail if we tried to build it with javac-dx\ntoolchain. Rewrite it to use a normal anonymous inner class.\n\nTest: ./test/run-test --build-with-javac-dx --host 988-method-trace\nChange-Id: I1ac3b6a3db79cc9c09ee2f7e9558c278fc7fc88f\n"
    },
    {
      "commit": "b7edcda968bb0cbaa69a3ad387fcd3194f5612be",
      "tree": "50748aac195d20a7e8f6d59a6e499f3fe69418de",
      "parents": [
        "049f2a58ea9276dfd162760271ad443570f2e660"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 27 13:20:31 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 09 10:54:02 2017 -0700"
      },
      "message": "Add method tracing JVMTI callbacks\n\nAdd MethodEntryHook and MethodExitHook callbacks and associated\ncapabilities.\n\nSplit --jvmti-stress option in run-test into --jvmti-trace-stress and\n--jvmti-redefine-stress to test each different component.\n\nNB 3 differences from RI found:\n  1) RI will call methodExitHook again if the method exit hook throws\n     an exception. This can easily cause an infinite loop and the test\n     is specifically tweaked to prevent this from happening on the RI.\n  2) RI always includes the method being exited in the stack trace of\n     errors thrown in the hooks. In ART we will not include the method\n     if it is native. This is due to the way we call native methods\n     and would be extremely difficult to change.\n  3) The RI will allow exceptions thrown in the MethodEnterHook to be\n     caught by the entered method in some situations. This occurs with\n     the tryCatchExit test in 989. In ART this does not happen.\n\nBug: 34414073\nTest: ./test.py --host -j40\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 988\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 989\nTest: lunch aosp_angler-userdebug; \\\n      m -j40 droid build-art \u0026\u0026 \\\n      fastboot -w flashall \u0026\u0026 \\\n      ./test.py --target -j4\n\nChange-Id: Iab229353fae23c2ea27c2b698c831627a9f861b1\n"
    }
  ]
}
