)]}'
{
  "log": [
    {
      "commit": "059210dd634396b9a8d8b2cefb8637791894cb3c",
      "tree": "267dd5cf3c0cced92e8d98573b66eaf0360bfafe",
      "parents": [
        "95bb995004cb8241196390ba1680811b7a428770"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 26 20:52:44 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Aug 29 11:44:21 2021 +0000"
      },
      "message": "Make smali compilations deterministic\n\nThe smali compilation in run-tests are non-deterministic.\nHowever, we don\u0027t observe that much, as most tests are\ndex-merged by D8 which normalize it back to deterministic.\n\nThe non-determinism is only observed for few tests where\nwell-intended short-cut bypasses the dex merger.  Let\u0027s\nremove that short-cut to get deterministic build output.\n\nAlso pass the proper test\u0027s API level to the dex merger.\nThis avoids bumping dex file version to maximum as side\neffect of the no-op merge.  It also avoids excessive log\nspam as the previous input was invalid.  And it avoids\nbumping the dex file version to max for tests that need\nmerge, which gives us more version variety for tests.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: I4af262aef3305a90d8cb8d14d87f7c52b9dd734a\n"
    },
    {
      "commit": "054c8008272861c4c2a845424a3be6705f884d93",
      "tree": "1ff9f5ca393947efcf9d36a3ad91307bcbfec075",
      "parents": [
        "b91dad2b98e8c562aed7c4471615d7c325756c08"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 13 12:41:57 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 20 15:43:08 2021 +0100"
      },
      "message": "More run-test build determinism tweaks\n\nEnsure 089 build script \"passes\" (i.e. expected error is seen).\nThis was the only (intentionally) failing test.\n\nUse more of prebuilt tools rather than system tools.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: I1401edb363312105ecc0da5a5ec41b8be5420798\n"
    },
    {
      "commit": "b15e8797d2ca6fb480a940887c66dd2aae7c9065",
      "tree": "23bd6e44c31b45fde7d92bbe7620329a61c1fcf5",
      "parents": [
        "79bf0b8e9c704e63029bb3badf9c4872484a827b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 28 12:20:59 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 10 09:46:01 2020 +0000"
      },
      "message": "Verify ART run-tests\u0027 standard output and standard error separately.\n\nIntroduce expected standard error files for ART run-tests. Collect\ntests\u0027 standard output and standard error separately and check them\nagainst the corresponding expectation file.\n\nTest: Run ART run-tests on host and device using `testrunner.py`.\nTest: atest --test-mapping art:all\nTest: atest --test-mapping cts/hostsidetests/jvmti:all\nBug: 171865375\nBug: 147812905\nChange-Id: Ie95bec4a4684ff6791d464124ce8976339432d1f\n"
    },
    {
      "commit": "a073f46104fbce0482fb759d5ccfb32ee39cc973",
      "tree": "985538ce69fa4d9253725cddaca936ddc3eaea86",
      "parents": [
        "5a19854c682a994729f704806d6c0de1de349631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 28 12:48:24 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 05 18:15:49 2020 +0000"
      },
      "message": "Rename ART run-tests `expected.txt` files as `expected-stdout.txt`.\n\nThis is in preparation for the addition of `expected-stderr.txt` files\nin all ART run-test directories, which will record the expected\nstandard error for each of these tests, and which will be verified\nalong with `expected-stdout.txt`.\n\nTest: Run ART run-tests on host and device using `testrunner.py`.\nTest: atest --test-mapping art:all\nBug: 171865375\nBug: 147812905\nChange-Id: I37e3c4b8409475790e2fc63514cdf57156d47ff4\n"
    },
    {
      "commit": "1c993cd041b3ac6a52dffae11e341759fe71e01f",
      "tree": "777e2766e457b6f149618d117bd7678e0fe53698",
      "parents": [
        "4a88a5af7417d9dc0bfe37cffd92a253531c8f30"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 28 09:30:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 29 13:14:25 2020 +0000"
      },
      "message": "Revert^2 \"Throw ClassFormatError for unsupported default methods.\"\n\nThis reverts commit 09261a8c5cd36a8c7a1ae5107da554dd35008b97.\n\nFixed redefine-stress failures. Worked around CTS failures\nby reducing the cases where we throw the ClassFormatError.\n\nTest: 180-native-default-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: testrunner.py --host --optimizing --redefine-stress \\\n      --debug --debugggable --cdex-fast\nTest: cts-tradefed run cts --m vm-tests-tf\nBug: 157170505\nBug: 157718952\nChange-Id: I95264af9041836fd6bc54e85263e2a405e877d30\n"
    },
    {
      "commit": "09261a8c5cd36a8c7a1ae5107da554dd35008b97",
      "tree": "93c1dfdb1d13bf4933ccbfbb7f4bcaaa01408242",
      "parents": [
        "03a322dcc15561931ed188f4d69f3ef577e26560"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 27 21:09:27 2020 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 28 01:28:37 2020 +0000"
      },
      "message": "Revert \"Throw ClassFormatError for unsupported default methods.\"\n\nThis reverts commit adf0f2e55c285f3fbe0a70c218a8f267029e736c.\n\nBug: 157170505\nBug: 157575227\n\nReason for revert: b/157575227\n\nChange-Id: Ibc0aa5505a59deed717555441a9723b5b6561115\n"
    },
    {
      "commit": "adf0f2e55c285f3fbe0a70c218a8f267029e736c",
      "tree": "18b773b3cf5ced23fb46dddcf34112424f7a66f2",
      "parents": [
        "50df0c4c892b9afff626605fff36c9e476eb5bfd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:47:21 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 27 08:43:33 2020 +0000"
      },
      "message": "Throw ClassFormatError for unsupported default methods.\n\nFix DCHECK() failure for copied native default methods.\nFor dex file version 37+ we reject the dex file.\nFor older versions, throw the ClassFormatError like the RI.\n\nTest: 180-native-default-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 157170505\nChange-Id: I5d2aefdcbf0b807c1cb482d0fda2e77316783cb4\n"
    }
  ]
}
