)]}'
{
  "log": [
    {
      "commit": "e059238fbc2ca3806d20895bd87d1e3ebfe0d4ee",
      "tree": "7b8c44040a65b8d387319725d7392cd01acd64ca",
      "parents": [
        "427766c709b762f01f2bb92143bf33ece1c88290"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 30 14:08:03 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 30 14:57:43 2018 -0800"
      },
      "message": "Make test 924 more consistent.\n\nTest 924 was flaking due to relying on timing between threads and\nshort time windows. This lengthens the time windows and tries to test\nfor the desired state more directly\n\nTest: stress --cpu 100 \u0026;\n      while ./test/run-test --host 924; do; done\nBug: 62117833\n\nChange-Id: I5119255afbd793ae92358250281b77c783381b2d\n"
    },
    {
      "commit": "597adad749499bc2da85851273e7623f6b249d1e",
      "tree": "bfffea7ce878acb28bc53ac7e8e72325103e97cd",
      "parents": [
        "445e0ec3724b7f4f36bbd218f67a2c9bfbea7669"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 16 16:11:42 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 17 10:29:22 2017 -0700"
      },
      "message": "Fix GetThreadState with threads in kNative.\n\nWe were always returning JVMTI_THREAD_STATE_WAITING for threads in the\nkNative state. To prevent any similar problems from happening in the\nfuture we changed it so all thread-states are explicitly enumerated\nand handled in a switch statement.\n\nTest: ./test.py --host -j50\nBug: 67784165\nChange-Id: I6646b36aa36cb4671bf95777aefc5c88b659e90f\n"
    },
    {
      "commit": "ba461c3c5b588b0b65d3cc99aa12fe46a673962c",
      "tree": "c21c70e45fd0426a0a284d2801f1668ee47e44a9",
      "parents": [
        "0ac2e5c1013cb41d73aa87c885fd99d4e5eb7d11"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 22 14:19:18 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 22 14:19:18 2017 -0700"
      },
      "message": "Ensure GetThreadState works with Thread subtypes\n\nWe were incorrectly assuming that Thread has no subclasses. This is\nnot accurate.\n\nBug: 66704836\nTest: ./test.py --host -j50\nChange-Id: I4abd85b6c4e6add6d62854adb4f8912777292315\n"
    },
    {
      "commit": "ed3a357e6b28dbc00a60b72af8bb846775348172",
      "tree": "ee94b390cabe28db2bc13f5e6d900a666e39d8a4",
      "parents": [
        "e8f48da635c4d07bbe431e5819da8e1fad91a8ef"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 20 11:42:12 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 20 22:04:36 2017 +0000"
      },
      "message": "Make test 924 less flaky.\n\nGetThreadState on threads blocked on monitors can be affected by GC\nand other internals. This is because internal suspension of threads\nmarks them as Runnable. To make this test not observe this as much we\nmake it call GetThreadState multiple times and use the most common\nresult as the threads current state.\n\nBug: 62117833\nBug: 63903050\nTest: stress --cpu 64 \u0026\n      while ./test/run-test --host 924; do ; done\n\nChange-Id: Iaa38cb58386416a72a6bb3c26ed90f4b8b623d1b\n"
    },
    {
      "commit": "21b0c29e6a7e5a9d2d31db27aea2fa8615d56f3b",
      "tree": "c3ef02e266924d482825e7bf07e95b7638c396d6",
      "parents": [
        "5df5acf4dc296d22a868a7c5010a7f5cf2350539"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 20 16:55:25 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 24 08:51:03 2017 -0700"
      },
      "message": "Remove unneeded shims and jni binding code\n\nBug: 37522517\nTest: ./test/testrunner/testrunner.py --host -j40\nChange-Id: I8670ab1bbf4b906c47d4edb2ad7349f9505da94a\n"
    },
    {
      "commit": "447c1af5187ea23b8bd045a84fd332dd6a284fe0",
      "tree": "630c84dbae2a199ae15e67febeb7b8c0a2613d9d",
      "parents": [
        "741a81af441cbcb7255229bf250bc009d2894e92"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 12 08:42:16 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 18 16:17:58 2017 -0700"
      },
      "message": "ART: Refactor run-test 924\n\nMove testing to a dedicated thread to have a known thread name.\nChange event reporting to be Java-side. Use Java-side thread list\n(from Thread.getAllStackTraces) as comparison for minimal expected\nset of threads.\n\nBug: 32072923\nTest: art/test/testrunner/testrunner.py -b --host -t 924\nChange-Id: I238ffc202e42eea8d1788137715188d3dfbcc8fb\n"
    },
    {
      "commit": "3ea3d5ca4420c98a3de51f638d3222c6696bc3e6",
      "tree": "310a5616d5d0ed2571dca8ddf0505db8ea8112e5",
      "parents": [
        "a8380240c8c9752c8b43926f677adcac11c2f52f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:36:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:47:24 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (3/3)\n\nAdd missing Main classes.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: I600dd5563e44604bd7b61c7d381f0a7d92db278a\n"
    },
    {
      "commit": "a8380240c8c9752c8b43926f677adcac11c2f52f",
      "tree": "29aab241dbc797839e327cffcd0b762df7282221",
      "parents": [
        "4665167ddc34008dfa78a2873685fe7a98772eab"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:18:45 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:46:32 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (2/3)\n\nMove refactored tests into their final places. Add a host java\nlibrary that includes those test files.\n\nThis is a follow-up to CL I740731c3af793521c5a859ef4a1f0ae94d2e1c19\nand must be used together with it.\n\nBug: 32072923\nTest: None\nChange-Id: I20b6070eb6bdd4b7a0bf42046302bafa10eee54f\n"
    },
    {
      "commit": "4665167ddc34008dfa78a2873685fe7a98772eab",
      "tree": "9af21169db0e6de2496b2946861436a9ecaf72e3",
      "parents": [
        "2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:00:04 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:44:55 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (1/3)\n\nPut (most) tests into a new package and give them dedicated\nclass names (Test9XY).\n\nNOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE DIRECTORY STRUCTURE\n      AND FILE NAMES!\n\nBug: 32072923\nTest: None\nChange-Id: I291b0543f7782914e446a74f0d9037020c88e5b5\n"
    },
    {
      "commit": "2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623",
      "tree": "ff8c0e57713c76b72885f352511c512831bddc86",
      "parents": [
        "672082ab6edf7c12a1d7b1d9303aa0aa4fcce089"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:28:48 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:32:09 2017 -0700"
      },
      "message": "ART: Add JVMTI test shim\n\nAdd shim to expose basic native binding methods.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: Ifcb9e3f66fce8002dd7d5ecb4de1729ab8939d0d\n"
    },
    {
      "commit": "db6c2ab29ef6ebe89c9ea43dae3b899a935fa74e",
      "tree": "0adb8cd725bc82f7aade936a804b25a21c7927f9",
      "parents": [
        "bf57b2b7eeec03dd5c0afd772e1f2e742cdb3cc0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 17:28:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 17:28:32 2017 -0700"
      },
      "message": "ART: Fix GetThreadInfo\n\nFix the retrieval of the context classloader. Make sure to have\nthe field from the Thread class, don\u0027t look into a subclass.\n\nAdd caching for the field. Also fix the usage restriction of the\nfunction, which is only valid during the Live phase.\n\nBug: 36654185\nTest: ./test.py --host -r -t 924\nChange-Id: I5cce41b31c32e59c80bb7c3afa03e8b0975ec54e\n"
    },
    {
      "commit": "d59695c324f949115a609948a893ef8a9bdbca9f",
      "tree": "50af6ec60ac94551ce21ed10d04f079aec96d315",
      "parents": [
        "41d82634a7a90559c9d47ba1baa9a1ea0a3d314a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 09 10:21:58 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 09 10:21:58 2017 -0800"
      },
      "message": "ART: Make test 924 more robust\n\nTo avoid rare scheduling issues, add a loop checking the Java-side\nThread state.\n\nBug: 35987799\nTest: m test-art-host-run-test-924-threads\nChange-Id: I0433d6f09684579ca1c03d335674a8013da05034\n"
    },
    {
      "commit": "4471e4f7c5874bdaf93762b6047d4a4bebc465df",
      "tree": "b4fb94ac604334a59046db0acc5ee6c6360c311b",
      "parents": [
        "b78a8af993e877d74c5938f65f95feaf2fa01321"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 30 16:40:49 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 03 15:10:38 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Give JIT thread pool workers a peer\"\"\n\nThis reverts commit 9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3.\n\nAccept a live Java thread for the JIT, and adjust the tests\naccordingly.\n\nBug: 31684920\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host\nChange-Id: I92cbae1eaae05711b9069335cf1a5f7eb58b9fd8\n"
    },
    {
      "commit": "eafaf57557939bcabeb7a7388fb4951e74661a53",
      "tree": "c540c5d06e483b2903d767db40064fdd6ae30786",
      "parents": [
        "a90b3dd3f22ce0674970365a5903571276a8fc01"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 12:34:15 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 21:10:38 2017 -0800"
      },
      "message": "ART: Add ThreadStart \u0026 ThreadEnd\n\nAdd support for ThreadStart and ThreadEnd events. Add tests.\n\nBug: 31684920\nTest: m test-art-host-run-test-924-threads\nChange-Id: I516993402747ffdc9a7d66985b21b95c059be107\n"
    },
    {
      "commit": "53ae7803b20650b7f36c0564dbcdc3115f399cba",
      "tree": "6a163440ef06130506a0fcf21ac82d935a09dd1e",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 21:13:46 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 15:33:25 2017 -0800"
      },
      "message": "ART: Refactor TI tests\n\nAdd a helper to explicitly bind native methods in a given class,\nusing dlsym to look up C functions in the local environment.\n\nAdd a callback helper that hooks VmInit and calls the above function\non the Main class. Use the callback helper before calling the test-\ndefined or shared minimal OnLoad function.\n\nAdd a binder helper that immediately binds the Main functions. Use\nthe helper before calling the test-defined OnAttach function.\n\nRemove System.loadLibrary from tests. Instead rely on the explicit\nbinding.\n\nIn preparation for making the tests functional on device.\n\nTest: m test-art-host\nChange-Id: I12e68f070e8c6331e51d3a1fa4b9ebd8f28dfce6\n"
    },
    {
      "commit": "7b3b326158676a89bc27639b829a3e1746f8c988",
      "tree": "009db3e2e6377e6018a40a8935a518ddfc3e3bdd",
      "parents": [
        "2c19ea93088d7cd187524f49137417279e99096d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 20:40:42 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 20:46:54 2017 -0800"
      },
      "message": "ART: Add tests for TLS\n\nWire up the functions. Actually add tests to 924-threads.\n\nBug: 31684593\nTest: m test-art-host-run-test-924-threads\nChange-Id: Ie4966a57633188fb75278d6bf4bdeb0ff2cd25aa\n"
    },
    {
      "commit": "8580744607a963d408956c3eb712b0e070c139b0",
      "tree": "0071b21c9cd903ab43589dac4d0faf66935201be",
      "parents": [
        "2db7a1d7d691b567942081c3c4934db59e83d38e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 14:40:58 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 16:19:15 2017 -0800"
      },
      "message": "ART: Add GetAllThreads\n\nAdd support for GetAllThreads. Add a test.\n\nBug: 31684593\nTest: m test-art-host-run-test-924-threads\nChange-Id: I7068dd4d3700a32a87a44d38590e53df0bd238c7\n"
    },
    {
      "commit": "72c19834136c81eace33687e06f5daf92a5a7583",
      "tree": "a952e25333ff345c2be7f2184a8fe0af0bacba95",
      "parents": [
        "88a17bce58505f87c2d35414d781d68ec63f794b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 13:22:16 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 18:00:09 2017 -0800"
      },
      "message": "ART: Add GetThreadState\n\nAdd support for GetThreadState. Add test.\n\nBug: 31684593\nTest: m test-art-host-run-test-924-threads\nChange-Id: I67a240c711e1165cfb72a856fc59ca69abaec3f6\n"
    },
    {
      "commit": "af13ab9586cebbfc40204179e2dd0986cc14dd84",
      "tree": "124f8733cfb66aae2a5ddad9e58df52f96cdbed2",
      "parents": [
        "8fdba845ffeb516aa0ede900def3a833861eff15"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 11 20:57:40 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 10:01:16 2017 -0800"
      },
      "message": "ART: Add GetCurrentThread and GetThreadInfo\n\nAdd support for GetCurrentThread and GetThreadInfo. Add tests.\n\nBug: 31684593\nTest: m test-art-host-run-test-924-threads\nChange-Id: Ic2bc4c9b5c283e4eefe4075b6abe251b8be499c8\n"
    }
  ]
}
