)]}'
{
  "log": [
    {
      "commit": "33e60030419660fad6f57f2cd9dbc4177f146f59",
      "tree": "c1409df747a18200cbd845fd50ef89a1a50d0a26",
      "parents": [
        "99b5e1fcdeacfd5fb28a6a293056a1a11bd7e34a"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Thu Feb 25 22:48:19 2021 -0800"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Sat Feb 27 02:13:34 2021 +0000"
      },
      "message": "Documentation: Wholesale update of sphinx config/scripts\n\nNewer versions of Sphinx (espescially v3.0+) break compatibility quite\nseverely against older kernel versions such as this. There are a very\nlarge number of changes needed to get even rudimentary compilation\nworking again.\n\nInstead of manually cherry-picking all of the changes, update just the\nsphinx configs and scripts by copying the respective files from the\nlatest upstream version. There\u0027ll still be a fairly sizeable number of\nwarnings and errors with sufficiently new sphinx versions, but at least\nit\u0027ll build. (The KUnit pages seem to come out okay, at least).\n\nChange-Id: I7077c30695e14a72a4d5570cd8412dcf9cd60bb3\n"
    },
    {
      "commit": "99b5e1fcdeacfd5fb28a6a293056a1a11bd7e34a",
      "tree": "a81bc683e2e53070933bda669383fae65f6c14a5",
      "parents": [
        "53393b9ba8cfd5ea46972ec675ab92d8f4315f60"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Feb 02 19:26:44 2021 -0800"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Feb 02 19:29:16 2021 -0800"
      },
      "message": "kunit: alpha: transition: fix build breakage in example and boilerplate\n\nCommit 53393b9ba8cf (\"kunit: alpha: transition: make kunit_test_suites()\ntake pointers\") made kunit_test_suites() work more like how upstream\nbehaves.\n\nBut it did not include a change to update the example test and the\nboilerplate generation (kunit.py new) to add \"\u0026\".\nFix that.\n\nTested the example test as well this time and it works:\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [PASSED] example:example_simple_test\n\u003e [PASSED] example:example_mock_test\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFixes: 53393b9ba8cf (\"kunit: alpha: transition: make kunit_test_suites() take pointers\")\nChange-Id: I0c882c00f7d263aa9e186971c9c577544c1668f5\n"
    },
    {
      "commit": "53393b9ba8cfd5ea46972ec675ab92d8f4315f60",
      "tree": "b4aedd9c7663b06debf7ed885bb13f035d422646",
      "parents": [
        "3b69acec71997857bf15219b4f65ac6fcab56c73"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Wed Jan 27 13:13:51 2021 -0800"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Wed Jan 27 13:13:51 2021 -0800"
      },
      "message": "kunit: alpha: transition: make kunit_test_suites() take pointers\n\nTL;DR make this work\n  kunit_test_suites(\u0026test_test_module);\n\nIn commit 86ff26500ecb (\"kunit: add kunit/Kconfig and \u003ckunit/test.h\u003e to\nease upgrade from alpha\"), we added a #define of kunit_test_suites to\nmodule_test.\n\nThis isn\u0027t quite correct since kunit_test_suites() takes its args by\npointer.\n\nAnd given how the module_test() macro is written, we can\u0027t reuse it.\nSo rewrite a version of module_test() that uses __COUNTER__ to generate\nunique variable names instead of pasting the suite\u0027s var name.\n\nAlso add a line\n  #define kunit_test_suite module_test\nsince kunit_test_suite() is sadly still around upstream and has the same\nsemantics as module_test*\n\nIt\u0027s defined as\n  #define kunit_test_suite(suite)\tkunit_test_suites(\u0026suite)\n\nChange-Id: Ia661924b25ad0f86f0b8c8712780f58db837774b\n"
    },
    {
      "commit": "3b69acec71997857bf15219b4f65ac6fcab56c73",
      "tree": "1038d47d1c3bdc171c2ee56ab7aed54ed1018bf5",
      "parents": [
        "2660ba2f38e429a1a36df0d594f3fedaaf86cec2"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Oct 06 20:09:55 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Jan 11 21:04:57 2021 +0000"
      },
      "message": "kunit: transition: add macro for defining struct kunit_suite/test_module\n\nChange-Id: Id890f16eedf54ef4db325207ce7ab6620ea638d1\n"
    },
    {
      "commit": "2660ba2f38e429a1a36df0d594f3fedaaf86cec2",
      "tree": "93ad1b76d935cd5c4b1e7b84b547c88f6cd20c5b",
      "parents": [
        "abd28ce2c82febb8246cf63d9073d010712a9f6e"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Oct 06 20:05:22 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Jan 11 21:04:49 2021 +0000"
      },
      "message": "kunit: transition: add macro for defining struct kunit_case/test_case\n\nChange-Id: I0bed03ff0934fb4402ee4cd81f5c75c13f0042ef\n"
    },
    {
      "commit": "abd28ce2c82febb8246cf63d9073d010712a9f6e",
      "tree": "dfed0426d9d468328c7a45a86dacb4800c7cb60b",
      "parents": [
        "7ac17c3a64d2ee1e0cd8f13971c5a931903bcb0f"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Oct 06 19:41:38 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Jan 11 21:04:40 2021 +0000"
      },
      "message": "kunit: transition: add macro for defining struct kunit_resource/test_resource\n\nChange-Id: I00532f95a806e029c6ac5410f6e3cac3e2506c18\n"
    },
    {
      "commit": "7ac17c3a64d2ee1e0cd8f13971c5a931903bcb0f",
      "tree": "1d6548c91c27189ab7a35671ba72ad5958a5d5b1",
      "parents": [
        "86ff26500ecb2c018575fdaa88096f6127d4c908"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Tue Oct 06 16:28:33 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Jan 11 21:04:28 2021 +0000"
      },
      "message": "kunit: transition: add Kconfig option for test.h to use upstream names, start impl\n\nStart with just changing `struct test` to `struct kunit`.\n\nIf this was defined as `typedef struct test test;` then a simple\n`typedef test kunit.` would have sufficed.\n\nBut alas, there\u0027s no way to make `struct kunit` actually refer to\n`struct test`.\nSo we define a KUNIT_T macro used by all internal files.\n(We use a _T suffix so we can use KUNIT_CASE_T instead of KUNIT_CASE)\n\nSince the type is passed into several macros, this requires reworking\nthem to expand their arguments before trying to concatenate them.\n\nUsers can now add\n  CONFIG_KUNIT_USE_UPSTREAM_NAMES\u003dy\nto their kunitconfig to build their code with the new names.\n(Or change the default to \u0027y\u0027 when their code is ready).\n\nChange-Id: Ie77fe1d731843b91c7cd2b2dc36e2cf74fadcc34\n"
    },
    {
      "commit": "86ff26500ecb2c018575fdaa88096f6127d4c908",
      "tree": "93020bac4df198af6d1e07335f631f93c5e3874c",
      "parents": [
        "784a94ee088501b00a1d15333e676d9338b8d09a"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Oct 05 16:21:27 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Mon Jan 11 21:04:10 2021 +0000"
      },
      "message": "kunit: add kunit/Kconfig and \u003ckunit/test.h\u003e to ease upgrade from alpha\n\nProvide macros to allow using KUNIT_EXPECT_EQ instead of EXPECT_EQ, etc.\nAnd add a Kconfig to allow users to modernize their KConfig.\n\nUpdate the example and template tests.\n\nWith this, the code can compile with a kunitconfig of\n  CONFIG_KUNIT\u003dy\n  CONFIG_KUNIT_TEST\u003dy\n  CONFIG_KUNIT_EXAMPLE_TEST\u003dy\nwhich is exactly what the upstream version would use.\n\nUnfortunately we can\u0027t have \"struct kunit\" map back to \"struct test\"\nStuff that isn\u0027t upstream like \u003ctest/mock.h\u003e wasn\u0027t touched.\n\nThis should hopefully make it easier for alpha users to do partial,\nsimple migrations now.\nAnd it should make it a bit clearer what\u0027s not upstream.\n\nChange-Id: I9b13a871e527125e40969beefbc939f4c9e0801d\n"
    },
    {
      "commit": "784a94ee088501b00a1d15333e676d9338b8d09a",
      "tree": "21cd5fdd43665b984dfa969eb0f716c8cb4e6916",
      "parents": [
        "57ca8666097ae867b283ac7d4465603892279c99"
      ],
      "author": {
        "name": "David Chiang",
        "email": "davidchiang@google.com",
        "time": "Wed Oct 14 21:08:16 2020 +0800"
      },
      "committer": {
        "name": "David Chiang",
        "email": "davidchiang@google.com",
        "time": "Wed Oct 14 21:08:16 2020 +0800"
      },
      "message": "kunit: test: fix uninitialized spinlock in test\n\nThe lock in struct test is never initialized. Fix it.\n\nGoogle-Bug-Id: 170828691\nSigned-off-by: David Chiang \u003cdavidchiang@google.com\u003e\nChange-Id: Ide1615a5edcc370da63e9261869312f59a882c9f\n"
    },
    {
      "commit": "57ca8666097ae867b283ac7d4465603892279c99",
      "tree": "853796b27b3e1b9aaa8c1a57aa69afb43ada372b",
      "parents": [
        "474573591402061e44e4453ebc8cde9a8bc01337"
      ],
      "author": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Fri Jul 31 10:46:45 2020 -0700"
      },
      "committer": {
        "name": "Daniel Latypov",
        "email": "dlatypov@google.com",
        "time": "Fri Jul 31 10:53:56 2020 -0700"
      },
      "message": "kunit: test.h: fix format string for ASSERT_NOT_ERR_OR_NULL\n\ndavidchiang@ pointed out the format string differs from\nEXPECT_NOT_ERR_OR_NULL.\n\nThe latter correctly uses %s while this uses %ld, producing stuff like\n\u003e Asserted ptr is not error, but is: 1887632768\nThis was missed in 1304e037936b2 which added the strerror_r() call.\n\nFixing that, the two macros are again identical in all the ways we expect.\n\nChange-Id: I8af8e5ba2770e92f8d4fe1967091256f2c74a252\nSigned-off-by: Daniel Latypov \u003cdlatypov@google.com\u003e\n"
    },
    {
      "commit": "474573591402061e44e4453ebc8cde9a8bc01337",
      "tree": "8a85a2f2594652d8369dfaf7b9e377306a9717d8",
      "parents": [
        "b42657acf34d2a045f6a15f5e71082c45c524d36"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Fri Apr 03 20:14:25 2020 -0700"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Fri Apr 03 20:14:25 2020 -0700"
      },
      "message": "kunit: kunit_tool: Allow .kunitconfig to disable config items\n\n[This is a backport of\nhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id\u003d97752c39bdaeea990260d3111250f6c861519808\n]\n\nRework kunit_tool in order to allow .kunitconfig files to better enforce\nthat disabled items in .kunitconfig are disabled in the generated\n.config.\n\nPreviously, kunit_tool simply enforced that any line present in\n.kunitconfig was also present in .config, but this could cause problems\nif a config option was disabled in .kunitconfig, but not listed in\n.config due to (for example) having disabled dependencies.\n\nTo fix this, re-work the parser to track config names and values, and\nrequire values to match unless they are explicitly disabled with the\n\"CONFIG_x is not set\" comment (or by setting its value to \u0027n\u0027). Those\n\"disabled\" values will pass validation if omitted from the .config, but\nnot if they have a different value.\n\nSigned-off-by: David Gow \u003cdavidgow@google.com\u003e\nChange-Id: I984c459682af33cc77e1b1ee1a19636e301284c5\n"
    },
    {
      "commit": "b42657acf34d2a045f6a15f5e71082c45c524d36",
      "tree": "0705b5f3561e4b1ac51d9cb4342a1dc020aecced",
      "parents": [
        "b8d286e00bbf722c1ba0334ccd457786bab3bddc"
      ],
      "author": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Wed Oct 02 16:35:41 2019 -0700"
      },
      "committer": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Thu Oct 03 10:52:18 2019 -0700"
      },
      "message": "kunit: Fix platform mock to enable calling driver-\u003eremove.\n\nSet up the minimal links between device and driver structs\nin of_fake_probe_platform that enable the driver core code\nto successfully call driver-\u003eremove on the fake-probed driver.\n\nSigned-off-by: Iurii Zaikin \u003cyzaikin@google.com\u003e\nChange-Id: I9fa73166e7b139e705f871aa85482f56e2afd3dd\n"
    },
    {
      "commit": "b8d286e00bbf722c1ba0334ccd457786bab3bddc",
      "tree": "4f4a3b9abd4b5e6cbf8196f4dd2c913e96eab6eb",
      "parents": [
        "64fb3962c0805c9c9ea9c43169aefb5a3aa240a2"
      ],
      "author": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Fri Sep 20 15:15:11 2019 -0700"
      },
      "committer": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Fri Sep 20 15:15:11 2019 -0700"
      },
      "message": "kunit: mock: added bool matchers\n\nAdded matchers for bool parameters.\n\nSigned-off-by: Sagi Shahar \u003csagis@google.com\u003e\nChange-Id: I39e3d52251338e8cd937698b2941184fa6e876f2\n"
    },
    {
      "commit": "64fb3962c0805c9c9ea9c43169aefb5a3aa240a2",
      "tree": "e904d19630a515692be14f4a72db26892ea50561",
      "parents": [
        "12ef96ed5c7ea005abffc829457796b9fb20505d"
      ],
      "author": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Wed Sep 18 17:00:06 2019 -0700"
      },
      "committer": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Wed Sep 18 17:00:06 2019 -0700"
      },
      "message": "kunit: Fix memory leak in test_stream_append\n\nget_string() returns a new allocated string which needs to be freed after use.\n\nSigned-off-by: Sagi Shahar \u003csagis@google.com\u003e\nChange-Id: I0df8b379445a077500aa4ec9a6177ea440a0925d\n"
    },
    {
      "commit": "12ef96ed5c7ea005abffc829457796b9fb20505d",
      "tree": "9ccdc94a664767b3df32d12e82bca2fc933fd5b3",
      "parents": [
        "5416e625d867a65e29982d625b369eb2d3cfdeca"
      ],
      "author": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Tue Sep 17 14:10:52 2019 -0700"
      },
      "committer": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Tue Sep 17 14:10:52 2019 -0700"
      },
      "message": "kunit_tool: Fix error log typo in kunit_parser.py\n\nRemoved duplicate \"unable\" from log string.\n\nSigned-off-by: Sagi Shahar \u003csagis@google.com\u003e\nChange-Id: I183610e36bf4a5f80457d20cdaffdc51d21c02b0\n"
    },
    {
      "commit": "5416e625d867a65e29982d625b369eb2d3cfdeca",
      "tree": "b3ad56e0eb7f10123277ad8d4b6233bfb33aaca5",
      "parents": [
        "233e42f0c8d1a7e22de5d3825d2852e2bdd4cbee"
      ],
      "author": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Mon Sep 16 16:33:58 2019 -0700"
      },
      "committer": {
        "name": "Sagi Shahar",
        "email": "sagis@google.com",
        "time": "Mon Sep 16 16:33:58 2019 -0700"
      },
      "message": "kunit: mock: added bool_return\n\nAdded mock action for returning bool value from mocked functions.\n\nSigned-off-by: Sagi Shahar \u003csagis@google.com\u003e\nChange-Id: I43af257f5756dacbacf2c04d74dfcca7fa872b49\n"
    },
    {
      "commit": "233e42f0c8d1a7e22de5d3825d2852e2bdd4cbee",
      "tree": "21b17927bc9e27cdaa0385eb28abc2a0dc476136",
      "parents": [
        "d896ec4445b7bc94b049ec56694ce6b6a5f673b3"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Fri Aug 30 14:56:55 2019 -0700"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Thu Sep 05 13:21:42 2019 -0700"
      },
      "message": "kunit: Add \u0027kunit_shutdown\u0027 option\n\nThis adds a new kernel command-line option, \u0027kunit_shutdown\u0027, which\nshuts the kernel down (halts the machine) after tests are complete.\n\nIt also updates kunit_tool to use this option, and recognise the kernel\nshutting down as the end of the test.\n\nChange-Id: I5b2b25d767f7af4d80c0bc4ae2967bfaf18c73b0\nSigned-off-by: David Gow \u003cdavidgow@google.com\u003e\n"
    },
    {
      "commit": "d896ec4445b7bc94b049ec56694ce6b6a5f673b3",
      "tree": "aa2fa85326a793c97794e053973778745589ef12",
      "parents": [
        "1caa886bb9487d7f1d089f76c45e4e7bca3067a4"
      ],
      "author": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Fri Aug 09 14:21:47 2019 -0700"
      },
      "committer": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Mon Aug 26 22:05:30 2019 +0000"
      },
      "message": "kunit: Add compound matchers.\n\nImplements and, or, not matchers which perform\nthe respective logical operations on the inner matchers.\n\nSigned-off-by: Iurii Zaikin \u003cyzaikin@google.com\u003e\nChange-Id: I60ba93366216855eb616db3fe10c0534ab042145\n"
    },
    {
      "commit": "1caa886bb9487d7f1d089f76c45e4e7bca3067a4",
      "tree": "5cea0371e3f18fcc539ee82a08ae939ba110f5f6",
      "parents": [
        "66f6b9786c3f91ae6b3bb295f5ea9224b0b06c6b"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Mon Aug 26 11:14:47 2019 -0700"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Mon Aug 26 13:56:19 2019 -0700"
      },
      "message": "Documentation: kunit: Add an explicit \"run\" arguement to the \"Getting Started\" guide.\n\nThis was missing, and causing some confusion. kunit_tool does require\nthe \"run\" argument to run tests.\n\nChange-Id: I942cf420b609f2eba723126755b3156624103218\n"
    },
    {
      "commit": "66f6b9786c3f91ae6b3bb295f5ea9224b0b06c6b",
      "tree": "c8f5a733eac6a7638fe74a7b95994cd67b8b85c2",
      "parents": [
        "e96c281ae9c41e3bacd44c962d36f130951297c8"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Mon Jul 08 16:33:21 2019 -0700"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Wed Jul 10 16:28:49 2019 +0000"
      },
      "message": "arch: um: Mock the _relaxed versions for read*/write*\n\nThis change adds mocks the _relaxed versions of the read/write{b,w,l,q}\nfunctions for user-mode Linux (UML). This allows these to be used in\nKUnit tests.\n\nChange-Id: I78242f2a25b99fb6d73a6d7e0e6b1209572b7d4c\nSigned-off-by: David Gow \u003cdavidgow@google.com\u003e\nGoogle-Bug-Id: 136604342\n"
    },
    {
      "commit": "e96c281ae9c41e3bacd44c962d36f130951297c8",
      "tree": "ffd0851caadf3cd89241e398ecac3eb0ac8c4325",
      "parents": [
        "f941c1ae2e26579b7c923326eb5766105969505f"
      ],
      "author": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Wed Jul 03 13:24:28 2019 -0700"
      },
      "committer": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Tue Jul 09 10:24:36 2019 -0700"
      },
      "message": "kunit_tool: add error log to tests in kunit_test.py\n\nAdded \u0027returnValue.info\u0027 to tests as the \u0027message\u0027 argument\nwhen asserting that build_reconfig() was successful. This way\nit shows up as AssertionError, making debugging easier when\nthose particular tests fail.\n\nSigned-off-by: Darya Verzhbinsky \u003cdaryaver@google.com\u003e\nSigned-off-by: Maria Del Carmen Ignacio \u003cmariaignacio@google.com\u003e\nChange-Id: I7d278f70bc6664573dca934033029769c8861536\n"
    },
    {
      "commit": "f941c1ae2e26579b7c923326eb5766105969505f",
      "tree": "905840ff31c4383155b09e958e266187c78965f2",
      "parents": [
        "0f5a70dc5fb91eb95fe03bddeee0f7cb26428178"
      ],
      "author": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Fri Jun 28 09:36:11 2019 -0700"
      },
      "committer": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Mon Jul 01 16:44:48 2019 -0700"
      },
      "message": "kunit_tool: add tests for method build_reconfig()\n\nadded tests for build_reconfig() and build_config() - tested for\nmake_olddefconfig() adding and deleting lines from the .config\nfile.\n\nSigned-off-by: Darya Verzhbinsky \u003cdaryaver@google.com\u003e\nSigned-off-by: Maria Del Carmen Ignacio \u003cmariaignacio@google.com\u003e\nChange-Id: Id29559f67beb86fb4504d14016a1c4e9a00e9667\n"
    },
    {
      "commit": "0f5a70dc5fb91eb95fe03bddeee0f7cb26428178",
      "tree": "eba497bc56559f207384ca6bf8ccbd41b1a3e747",
      "parents": [
        "535394beb227d2a992fbe7a54bc3b69ef20c9ca2"
      ],
      "author": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Tue Jun 25 11:14:56 2019 -0700"
      },
      "committer": {
        "name": "Darya Verzhbinsky",
        "email": "daryaver@google.com",
        "time": "Fri Jun 28 16:32:25 2019 +0000"
      },
      "message": "kunit_tool: added tests for throw_error_if_not_subset()\n\nAdded tests to make sure method correctly throws exception if the first\nparam is not a subset of the second param.\n\nSigned-off-by: Maria Del Carmen Ignacio \u003cmariaignacio@google.com\u003e\nSigned-off-by: Darya Verzhbinsky \u003cdaryaver@google.com\u003e\nChange-Id: I651d96fbb8e59be03eba82bb2330336018493f6e\n"
    },
    {
      "commit": "535394beb227d2a992fbe7a54bc3b69ef20c9ca2",
      "tree": "3aecb8432ff646b3de7d93e992bf32bfbeaa2a0d",
      "parents": [
        "62100f2546edfc85708dd30320a8b51d1f272e6b"
      ],
      "author": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Thu Jun 27 10:59:09 2019 -0700"
      },
      "committer": {
        "name": "David Gow",
        "email": "davidgow@google.com",
        "time": "Thu Jun 27 16:18:47 2019 -0700"
      },
      "message": "kunit_tool: Move log printing out of kunit_parser\n\nCurrently, kunit_parser will print a test log in parse_run_tests. This\nmeans that, in kunit_test, there is a lot of confusing output from the\nincluded test logs.\n\nThis change makes kunit_parser write its log to a string, which may then\noptinally be printed by its caller. In this case, we make the main\n\u0027kunit.py\u0027 print out the test log when running tests, but to not make\nkunit_test do so, as to not clutter the unittest output.\n\nIn doing this, the kunit_parser.TestResult type is changed to a class\n(with an additional \u0027pretty_log\u0027 function which writes to\nTestResult.log_lines), replacing the old namedtuple\nimplemenatation. There is also an additional\nTestResult.print_pretty_log() function to print this log.\n\nSigned-off-by: David Gow \u003cdavidgow@google.com\u003e\nChange-Id: Ib6c70f9749cf3daf513c150d472b58903aff0202\n"
    },
    {
      "commit": "62100f2546edfc85708dd30320a8b51d1f272e6b",
      "tree": "2bb7c854396f38e3672cfca9864f22d01cfff4a7",
      "parents": [
        "69a5a9a427759226a481427a97ce4bf853f40395"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Jun 20 16:39:32 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Jun 20 16:43:06 2019 -0700"
      },
      "message": "kunit_tool: fix type error in exception rethrow\n\nFix an incorrect concatanation of a string with an exception when\nrethrowing an OSError as a ConfigError.\n\nReported-by: Rebecca Chen \u003crechen@google.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: Ib8a76f5d59dabe318835386f5e90afb7acc55480\n"
    },
    {
      "commit": "69a5a9a427759226a481427a97ce4bf853f40395",
      "tree": "c33de4e069e7119a67b0e60195bb12043b503c89",
      "parents": [
        "4c35e02d048a9d83618ca7a26e0b7f18455426ba"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Jun 17 16:41:52 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Jun 17 16:47:36 2019 -0700"
      },
      "message": "kunit: test: fix incorrect KUnit log prefix\n\n00ab351275786418b766fca296b61217bf59447c (kunit: test: port test abort\nsupport to x86) incorrectly changed the KUnit log prefix from \"kunit\" to\n\"test\" which made the kunit_tool unable to parse the raw logs. This\nfixes that.\n\nGoogle-Bug-Id: 135477354\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: I0d0c4e10d2672b1bfa2434153e9253df171a5041\n"
    },
    {
      "commit": "4c35e02d048a9d83618ca7a26e0b7f18455426ba",
      "tree": "b362e27e2549a2bf97fa304613941052e716281b",
      "parents": [
        "bcc16668fd0b7e09f46ef77ac760c508c1595651",
        "00ab351275786418b766fca296b61217bf59447c"
      ],
      "author": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Fri May 17 23:21:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 17 23:21:40 2019 +0000"
      },
      "message": "Merge \"kunit: test: port test abort support to x86\" into kunit/alpha/master"
    },
    {
      "commit": "00ab351275786418b766fca296b61217bf59447c",
      "tree": "eb6bbabc4490e05788594952922355424a2021e2",
      "parents": [
        "f192c1881e0d58be78e30cb0fbc6c29968bc0c79"
      ],
      "author": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Fri Apr 19 18:24:29 2019 -0700"
      },
      "committer": {
        "name": "Iurii Zaikin",
        "email": "yzaikin@google.com",
        "time": "Mon May 13 12:50:24 2019 -0700"
      },
      "message": "kunit: test: port test abort support to x86\n\nFixes alignment issue with linker section based\nregistering of test modules.\nAdds support for abort function.\nBased on commit kunit: test: add support for test abort\n(\"668e156c851bdb4f152ee86ffafe07898f64ad09\").\n\nGoogle-Bug-Id: 116155953\nSigned-off-by: Iurii Zaikin \u003cyzaikin@google.com\u003e\nChange-Id: Ic028ba95333c957def32587b8832337f823dbb90\n"
    },
    {
      "commit": "bcc16668fd0b7e09f46ef77ac760c508c1595651",
      "tree": "c8655fb3c968203ee4a5784fb7d192c23be21444",
      "parents": [
        "5ed82f22e28e15f4b8b6f898777092c145106af1"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Apr 30 14:55:36 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Apr 30 14:55:36 2019 -0700"
      },
      "message": "kunit: tool: make exit status non-zero for any type of failure\n\nPreviously, exit statuses were only non-zero (1) for test failures, but\nnot for config failures or build failures; this caused Prow to make\nthings which should have been failures looks like successes, so make all\nfailures exit with a non-zero status.\n\nGoogle-Bug-Id: 131624679\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: I0ffa95af9994879348c95e03c028b36a4024cd5f\n"
    },
    {
      "commit": "5ed82f22e28e15f4b8b6f898777092c145106af1",
      "tree": "e6f6c85760411c5c9ab084c19b62aa221447c2b6",
      "parents": [
        "7ca0a6db721e452d8e3622122bcb5c7add0abb66"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Apr 26 17:23:01 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Apr 26 17:43:58 2019 -0700"
      },
      "message": "kunit: tool: add support for building kernel with additional threads\n\nAllows the user to specify how many threads to be used for building the\nkernel as part of building and running tests.\n\nGoogle-Bug-Id: 131440297\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: If1c10b7e122b5863b7e07f467c7008d3e6397336\n"
    },
    {
      "commit": "7ca0a6db721e452d8e3622122bcb5c7add0abb66",
      "tree": "390bfb2894eff21e783ec6451e52c11932a522b1",
      "parents": [
        "f192c1881e0d58be78e30cb0fbc6c29968bc0c79"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Apr 26 17:06:54 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Apr 26 17:10:38 2019 -0700"
      },
      "message": "kunit: tool: fix invalid attribute access on build failure\n\nOn a recent failed run we got the following error:\n\nTraceback (most recent call last):\n  File \"./tools/testing/kunit/kunit.py\", line 123, in \u003cmodule\u003e\n    main(sys.argv[1:], kunit_kernel.LinuxSourceTree())\n  File \"./tools/testing/kunit/kunit.py\", line 116, in main\n    result \u003d run_tests(linux, request)\n  File \"./tools/testing/kunit/kunit.py\", line 39, in run_tests\n    build_result \u003d linux.build_um_kernel()\n  File \"/home/prow/go/src/github.com/kunit-review.googlesource.com/linux/tools/testing/kunit/kunit_kernel.py\", line 146, in build_um_kernel\n    return BuildResult(BuildStatus.FAILURE, e.message)\nAttributeError: \u0027BuildError\u0027 object has no attribute \u0027message\u0027\n\nThis fixes the invalid attribute access.\n\nGoogle-Bug-Id: 131438303\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: I09b0d493250d686989cbf726dc3e9a4805b7ef94\n"
    },
    {
      "commit": "f192c1881e0d58be78e30cb0fbc6c29968bc0c79",
      "tree": "a73aaad64ab6135a9747170bcba0894e9b8d0883",
      "parents": [
        "ba42266fd0d4cdc9820f48d878669cb9d02b00eb"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Mar 26 22:42:10 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Mar 26 22:51:30 2019 -0700"
      },
      "message": "kunit: tool: fixed issue introduced by improve error messages for invalid kconfigs\n\n1996e6ba3efce20a6a64c527024acbd484db2f9d (\"kunit: test: improve error\nmessages for invalid kconfigs\",\nhttps://kunit.googlesource.com/linux/+/1996e6ba3efce20a6a64c527024acbd484db2f9d)\nbroke kunit_tool when trying to build a kernel with an invalid config.\n\nGoogle-Bug-Id: 129365734\nChange-Id: Ib23456a0a976b5da6d00586db7d6b534a3adbe78\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "ba42266fd0d4cdc9820f48d878669cb9d02b00eb",
      "tree": "c53c9f831834ae6856be377abea57e3d8e867475",
      "parents": [
        "1996e6ba3efce20a6a64c527024acbd484db2f9d"
      ],
      "author": {
        "name": "Eric Chiang",
        "email": "ericchiang@google.com",
        "time": "Fri Mar 15 12:44:48 2019 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Mar 26 21:39:06 2019 +0000"
      },
      "message": "kunit: Documentation: fix typo and includes in getting started guide\n\nSigned-off-by: Eric Chiang \u003cericchiang@google.com\u003e\nChange-Id: I803c0467d85eb14c5b682a46ab7e10942dbc9bde\n"
    },
    {
      "commit": "1996e6ba3efce20a6a64c527024acbd484db2f9d",
      "tree": "88eed3522bdab0b9ca1121367f48a8c579367734",
      "parents": [
        "93787af080c8491ffa7ba0b49147413c01bb61de"
      ],
      "author": {
        "name": "Eric Chiang",
        "email": "ericchiang@google.com",
        "time": "Thu Mar 14 15:39:51 2019 -0700"
      },
      "committer": {
        "name": "Eric Chiang",
        "email": "ericchiang@google.com",
        "time": "Thu Mar 14 15:53:37 2019 -0700"
      },
      "message": "kunit: test: improve error messages for invalid kconfigs\n\nWas trying to port an existing kunitconfig to the alpha branch and found\nthe error pretty opaque:\n\n\t$ ./tools/testing/kunit/kunit.py run --raw_output\n\tRegenerating .config ...\n\tERROR:root:Provided Kconfig is not contained in validated .config!\n\nInclude the missing fields in the error message:\n\n\t$ ./tools/testing/kunit/kunit.py run --raw_output\n\tRegenerating .config ...\n\tERROR:root:Provided Kconfig contains fields not in validated\n\t.config: CONFIG_KUNIT\u003dy, CONFIG_KUNIT_TEST\u003dy,\n\tCONFIG_KUNIT_EXAMPLE_TEST\u003dy\n\nSigned-off-by: Eric Chiang \u003cericchiang@google.com\u003e\nChange-Id: I04bf8cff499fd3e548a6a8da7ff3ea65e44a0161\n"
    },
    {
      "commit": "93787af080c8491ffa7ba0b49147413c01bb61de",
      "tree": "b31398174e1a5e19b387d825f91350b97c7f479c",
      "parents": [
        "1304e037936b2e3ca459e0ff91b026ea39331323"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Feb 26 17:41:39 2019 -0800"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Feb 26 17:47:47 2019 -0800"
      },
      "message": "kunit: tool: fixed test broken by system.exit(1)\n\n4691404d5f6b86c05061961ccbb3603980559c4e (\"kunit.py : Exit with exit\ncode of 1 when all tests do not pass.\",\nhttps://kunit.googlesource.com/linux/+/4691404d5f6b86c05061961ccbb3603980559c4e)\nbroke kunit_tool unit tests by making kunit_tool do a system.exit(1) on\na failure.\n\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: I87ed68609f485e592cd2e5584baf4f5ad879a968\n"
    },
    {
      "commit": "1304e037936b2e3ca459e0ff91b026ea39331323",
      "tree": "384640459120ce0d3e0cfe9cb87d45ad0ae12486",
      "parents": [
        "b9bd9a9dbe1175090ecb397b1e714b98013c5c84"
      ],
      "author": {
        "name": "Mike Krinkin",
        "email": "krinkin@google.com",
        "time": "Mon Jan 28 17:28:35 2019 +0000"
      },
      "committer": {
        "name": "Mike Krinkin",
        "email": "krinkin@google.com",
        "time": "Thu Jan 31 12:54:23 2019 +0000"
      },
      "message": "kunit: test: implement formatters for error codes\n\nFormatters convert integer error codes to their menmonic\nstring representation. For example, for error code 1 we will\nget string \"EPERM\".\n\nAdditionally this change also adds test macroses and modifies\nexisting macroses to use the newly introduced library where\nit\u0027s appropriate, so that error messages for failed tests\ncontain mnemonic representations instead of just error codes.\n\nOne note about the implementation is that it basically hardcodes\nmapping between error codes and their string representation. An\nobvious downside of the approach is that if at some point error\ncodes are changed (or new error codes are introduced) the\nlibrary implementation need to be changed as well.\n\nAssumption here that error codes do not change very often as\nuser space depends on values of some error codes returned by\nkernel. This reasoning however doesn\u0027t apply to newly added\nerrors.\n\nGoogle-Bug-Id: 118506277\nChange-Id: If0628de9db9727e61d0bb8e8d6a9e53afb51baaf\nSigned-off-by: Mike Krinkin \u003ckrinkin@google.com\u003e\n"
    },
    {
      "commit": "b9bd9a9dbe1175090ecb397b1e714b98013c5c84",
      "tree": "b2918b54603152f96d64e88ab981a815c8ef553c",
      "parents": [
        "4691404d5f6b86c05061961ccbb3603980559c4e"
      ],
      "author": {
        "name": "Mike Krinkin",
        "email": "krinkin@google.com",
        "time": "Tue Jan 15 19:46:25 2019 +0000"
      },
      "committer": {
        "name": "Mike Krinkin",
        "email": "krinkin@google.com",
        "time": "Tue Jan 15 19:47:48 2019 +0000"
      },
      "message": "Include kunit.py command in the documentation\n\nTo test that KUnit environment is setup and configured correctly\nwe should run \"./tools/testing/kunit/kunit.py run\" command. This\nchange adds the missing \"run\" part.\n\nGoogle-Bug-Id: 122898129\nChange-Id: I4ade52d24d08cb67fdd3cecbaeb22dd2dc11e3ca\nSigned-off-by: Mike Krinkin \u003ckrinkin@google.com\u003e\n"
    },
    {
      "commit": "4691404d5f6b86c05061961ccbb3603980559c4e",
      "tree": "bac5021fd739ea90b15807dfc2c2b460ad16a6c9",
      "parents": [
        "ccab9cef697157ac8de511c710ac51bbf8835dac"
      ],
      "author": {
        "name": "Avi Kondareddy",
        "email": "avikr@google.com",
        "time": "Thu Dec 06 15:00:55 2018 -0800"
      },
      "committer": {
        "name": "Avi Kondareddy",
        "email": "avikr@google.com",
        "time": "Fri Dec 07 00:33:16 2018 +0000"
      },
      "message": "kunit.py : Exit with exit code of 1 when all tests do not pass.\n\nProw Presubmit determines success of presubmit job based on exit code of\nscript. Reporting to gerrit currently indicates a success for\nfailures if bad exit code is not explicitly returned.\n\nAlternatively, this could be handled in the test script but would\ndepend on the output format of kunit.py and need to be adjusted\naccordingly.\n\nChange-Id: I9ef2e3ed61ff6e2bca4dcddf99380dbe0275e9dd\nSigned-off-by: Avi Kondareddy \u003cavikr@google.com\u003e\n"
    },
    {
      "commit": "ccab9cef697157ac8de511c710ac51bbf8835dac",
      "tree": "743e7e4f75ab65f46642db4a4cb6d12e956f9ef7",
      "parents": [
        "8a91f169762377c485e4841575467ff7bb5e98b6"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Nov 19 16:27:39 2018 -0800"
      },
      "committer": {
        "name": "Avi Kondareddy",
        "email": "avikr@google.com",
        "time": "Tue Dec 04 11:47:33 2018 -0800"
      },
      "message": "kunit: test: add test managed resource tests\n\nTests how tests interact with test managed resources in their lifetime.\n\nChange-Id: I0b18cb37d1fa5b1b378fa656f88713191e732656\nSigned-off-by: Avinash Kondareddy \u003cavikr@google.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "8a91f169762377c485e4841575467ff7bb5e98b6",
      "tree": "024cbcd27686016081110877b725626e7844c69a",
      "parents": [
        "b16a719a020d7546a729c109981568ad366f0851"
      ],
      "author": {
        "name": "Arturo Gomez Diaz",
        "email": "arturogomez@google.com",
        "time": "Wed Nov 28 16:16:58 2018 -0800"
      },
      "committer": {
        "name": "Arturo Gomez Diaz",
        "email": "arturogomez@google.com",
        "time": "Wed Nov 28 16:30:24 2018 -0800"
      },
      "message": "kunit: mock: add failed expectation to output message\n\nGoogle-Bug-Id: 113272313\nSigned-off-by: Arturo Gomez \u003carturogomez@google.com\u003e\nChange-Id: I7678e58bbf3cedd06e495e482a3f4ce588171f4d\n"
    },
    {
      "commit": "b16a719a020d7546a729c109981568ad366f0851",
      "tree": "0fb59eaf658c902a019c9655da28137e0e6c3e8b",
      "parents": [
        "c54af688ebcdc3c04a5d92bb2327cf5443b01842"
      ],
      "author": {
        "name": "linxinan",
        "email": "linxinan@google.com",
        "time": "Tue Nov 13 14:33:31 2018 +0900"
      },
      "committer": {
        "name": "Xinan Lin",
        "email": "linxinan@google.com",
        "time": "Tue Nov 20 01:25:50 2018 +0000"
      },
      "message": "kunit: mock: print the mock method name when the return value is missing\n\n1. not check the type of retval, the return from the mock method.\n2. abort the test and output the mock method name in the error message, if the return value is empty.\n\nGoogle-Bug-Id: 110154346\nSigned-off-by: Lin Xinan \u003clinxinan@google.com\u003e\nChange-Id: Ife1ac37153284e2583c0e5c13ada6288cd5c2cfe\n"
    },
    {
      "commit": "c54af688ebcdc3c04a5d92bb2327cf5443b01842",
      "tree": "1a04c2cfc40eb129628e612ce9628f9a06c0a890",
      "parents": [
        "acd43862aadd57af08559c441231a752580e850f"
      ],
      "author": {
        "name": "Lin Xinan",
        "email": "linxinan@google.com",
        "time": "Mon Oct 15 01:02:55 2018 -0400"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:47 2018 -0700"
      },
      "message": "kunit: print the mock function and input parameters in the failure\nmessage of EXPECT_CALL.\n\nTo store the mock function and its input, we add a new field to\nthe mock_expectation. The change in include/test/mock.h is brought\nfrom Google-Bug-Id(113269240#4, by Daniel Latypov).\n\nGoogle-Bug-Id: 113269240\nSigned-off-by: Lin Xinan \u003clinxinan@google.com\u003e\nChange-Id: Ia4aaa0c1c4125c7c3205c15eeaa9c6000063642f\n"
    },
    {
      "commit": "acd43862aadd57af08559c441231a752580e850f",
      "tree": "c20799b21d57f0db384ed18b3bd9d613a08c3bfc",
      "parents": [
        "2d5620f0c8df0ec6d39c41013b224f0b5a1009a5"
      ],
      "author": {
        "name": "Avi Kondareddy",
        "email": "avikr@google.com",
        "time": "Wed Oct 10 16:59:00 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "kunit_tool: update to support kunit_watcher\n\nReturn objects when building config, building kernel, and parsing\ntest log in order to provide full context of kunit run.\n\nChange-Id: If410ac7e2b747c80c952fd2a9983bb2f4577fd33\nGoogle-Bug-Id: 116626752\nSigned-off-by: Avi Kondareddy \u003cavikr@google.com\u003e\n"
    },
    {
      "commit": "2d5620f0c8df0ec6d39c41013b224f0b5a1009a5",
      "tree": "711ff44c3b820600912fa3c6f5b30a46f854aac2",
      "parents": [
        "231ce7363e738d0fe5bc3d718578d39bd794a8e8"
      ],
      "author": {
        "name": "Pallav Agarwal",
        "email": "pallavag@google.com",
        "time": "Mon Oct 08 13:55:43 2018 +0530"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "kunit_tool: add support to print only sample test\n\nAdd a new flag - --print_test_only that only outputs the sample -test.c\nfile to stdout. This is to facilitate the creation of the corresponding\nvim plugin.\n\nChange-Id: Id7b212337472aff27037f00f824f757663f89159\nGoogle-Bug-Id: 117337457\nSigned-off-by: Pallav Agarwal \u003cpallavag@google.com\u003e\n"
    },
    {
      "commit": "231ce7363e738d0fe5bc3d718578d39bd794a8e8",
      "tree": "d23954546b785a77fc42331fa377f764eee9c76d",
      "parents": [
        "a263cc6f22ad2fc00d22de9fad386e504cc4c691"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Oct 09 16:47:44 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "init: main: fix ifdef in init/main.c\n\nApparently I was not thinking straight when I wrote\n3ca6801f967518d92d2b68bedec00ab5d253a12d (init: main: add KUnit to\nkernel init) and I put an ifdef in init/main.c. This fixes that.\n\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nSqaush: 3ca6801f967518d92d2b68bedec00ab5d253a12d\nChange-Id: I6d47c163fdf57f5e83a4eb9479397e6d656025ac\n"
    },
    {
      "commit": "a263cc6f22ad2fc00d22de9fad386e504cc4c691",
      "tree": "20da3eb2146ad4e4d4ea8fb57128bfc724b1093b",
      "parents": [
        "0faa8b8c3888f939b12cc11fd864fea39eed3df0"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Oct 08 16:06:10 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "kunit: test: fix Makefile CONFIG_ for death test\n\nIn c911639be3c420546384b906e8704dfe281c9af3 (kunit: test: move death\ntest to its own KUnit config), I accidentally included the new death\ntest into the old CONFIG_TEST_TEST config instead of the new\nCONFIG_TEST_DEATH_TEST config created for it; this fixes that.\n\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nGoogle-Bug-Id: 116313114\nSquash: c911639be3c420546384b906e8704dfe281c9af3\nChange-Id: I1a9354b87eab64dba72385a8b16b560e160d3c2e\n"
    },
    {
      "commit": "0faa8b8c3888f939b12cc11fd864fea39eed3df0",
      "tree": "1e42c8066118dab173df87f64221b5c0933c104e",
      "parents": [
        "643f3a460920ccc7cf41d920e8819639784ee2ae"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Oct 05 10:48:28 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "kunit_tool: added option for creating KUnit test skeletons\n\nAdds command to kunit.py which allows a user to specify a file to test,\nwhich will then print out the boilerplate needed to create a KUnit test.\n\nChange-Id: I2505462e9f60d5d6975da422b9c0bed367791d5f\nGoogle-Bug-Id: 117125357\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "643f3a460920ccc7cf41d920e8819639784ee2ae",
      "tree": "ea2536808d8f67c924d59adad635eded388b4769",
      "parents": [
        "d42e03b322687545a7c69d68a63c3653cdbfc763"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Oct 02 14:04:35 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:46 2018 -0700"
      },
      "message": "kunit_tool: refactored kunit_tool for adding subcommands\n\nCleaned up kunit_tool a bit to make adding subcommands easier. Also\nadded some tests.\n\nGoogle-Bug-Id: 117125357\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: Ic032bb64c33f6f9a70b51a191caa7019eecdff02\n"
    },
    {
      "commit": "d42e03b322687545a7c69d68a63c3653cdbfc763",
      "tree": "9c9dba076e6663988da162b7d4069631acb64715",
      "parents": [
        "ab1c2237c71b40b8ee101a3dc108c4b5d84e37ca"
      ],
      "author": {
        "name": "Avi Kondareddy",
        "email": "avikr@google.com",
        "time": "Mon Oct 01 14:24:07 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:45 2018 -0700"
      },
      "message": "kunit.py: handle timeout\n\nMake kunit_kernel.py terminate process and append timeout status to log\non timeout.\nMake kunit_parser.py handle timeout case when parsing and displaying\noutput.\n\nSigned-off-by: Avi Kondareddy \u003cavikr@google.com\u003e\nGoogle-Bug-Id: 116318265\nChange-Id: Ieb4190586e69c70b3c754d21e40f7e80593323d5\n"
    },
    {
      "commit": "ab1c2237c71b40b8ee101a3dc108c4b5d84e37ca",
      "tree": "c9a8c42e4fa6ec6a7fb046cb9e1715a4f5150924",
      "parents": [
        "8d8814ae854b54f6afa7011c8d67106fd4e7dabc"
      ],
      "author": {
        "name": "Harshal Tushar Lehri",
        "email": "halehri@google.com",
        "time": "Mon Oct 01 09:07:33 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:45 2018 -0700"
      },
      "message": "kunit: mock : Add three Cardinality expectation macro helpers.\n\n- AtLeast : An expectation is called at least n times.\n- AtMost : An expectation is called at most n times.\n- Between : An expectation is called beween n to m(inclusive) times.\n\nChange-Id: Ic1d96efce855495c8484512161a58df95cd93658\nSigned-off-by: Harshal Tushar Lehri \u003chalehri@google.com\u003e\n"
    },
    {
      "commit": "8d8814ae854b54f6afa7011c8d67106fd4e7dabc",
      "tree": "3661b1fbab9b593820b701121380879214d74f3f",
      "parents": [
        "e7076f9f4e81e6d51eafe8684a7cd290586bf434"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Sep 25 15:22:11 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "kunit: test: move death test to its own KUnit config\n\nKUnit\u0027s death test is not hermetic and can affect behavior of other\ntests (http://b/116313114#comment8); that being said, there is not\nreally any way to make it hermetic without substantially changing how\nKUnit works (b/116655541), and the test has proven very useful. Thus,\nthis commit moves it to its own Kconfig, so we can run other tests\neither with it or without it.\n\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nGoogle-Bug-Id: 116313114\nChange-Id: I23c6e36834cc56a67ea589c67003fe4f031cb6db\n"
    },
    {
      "commit": "e7076f9f4e81e6d51eafe8684a7cd290586bf434",
      "tree": "b6c2868f62338c5d59d41f0412a898eb0301bf9b",
      "parents": [
        "38bfc36eaa1ae6c44735940481d1e9a46e60f991"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Sep 19 18:55:14 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "init: main: add KUnit to kernel init\n\nRemove KUnit from init calls entirely, instead call directly from\nkernel_init().\n\nChange-Id: I9d62fa64356f7971e24cd4a9651f6e9c38bf9e3b\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "38bfc36eaa1ae6c44735940481d1e9a46e60f991",
      "tree": "70d2be6ede8d560376479fdc9ff583fc8f1ed250",
      "parents": [
        "e5438c6e1930ca11f584e13bb423c8eb76721e30"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Sep 17 18:33:34 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "kunit: test: create single dispatcher for kunit\n\nMake KUnit launch all tests instead of init system.\n\nChange-Id: If3a5b17f4e674041e16f8a81ada197e524ffeda1\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "e5438c6e1930ca11f584e13bb423c8eb76721e30",
      "tree": "2a3bdd8913907f879d9f6bc2337ba6ab18978905",
      "parents": [
        "494c9a41785847eedceb6ff9b660d0962274985b"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Sep 17 18:31:06 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "arch: um: add linker section for kunit test modules\n\nAdds a linker section to UML where KUnit can put references to its test\nmodules. This is part of transitioning it so that it is not entirely\ndependent on the init system.\n\nChange-Id: Ieacc4cf0bbb6fdc774bb7f68d61a6259055b8cb0\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "494c9a41785847eedceb6ff9b660d0962274985b",
      "tree": "ca0a6a2668a78810df1f138d3768dc427ce6bf26",
      "parents": [
        "3eb61afacb6e4dc58b8d55b98b16b6b206e49e34"
      ],
      "author": {
        "name": "Harshal Tushar Lehri",
        "email": "halehri@google.com",
        "time": "Thu Sep 13 14:12:37 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "kunit: mock : Retire expectations on saturation when they are passed to the InSequence macro.\n\nChange-Id: I22b047cb99cc3b76b153c2ab325e0108f930509d\nGoogle-Bug-Id: 115674831\nSigned-off-by: Harshal Tushar Lehri \u003chalehri@google.com\u003e\n"
    },
    {
      "commit": "3eb61afacb6e4dc58b8d55b98b16b6b206e49e34",
      "tree": "336b107806db124fc8d20b284eb8ac57ca272ecc",
      "parents": [
        "f30a27a783cd8d9161c573fa59d02a033e81252b"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 21:12:16 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:44 2018 -0700"
      },
      "message": "kunit: Documentaiton: updated download link\n\nUpdated download link for kunitconfigs.\n\nChange-Id: I85c6305276fbbb3c3c15c224cf44ede8ed680ce9\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "f30a27a783cd8d9161c573fa59d02a033e81252b",
      "tree": "391ba8b88ac697221fa0bff6bd883edfec698c9f",
      "parents": [
        "61408ca31035dd6f1e6f8176e8ec651fdcd84113"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 21:03:21 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:43 2018 -0700"
      },
      "message": "kunit: Documentation: updated documentation\n\nFixed awkward language and explained how to get a kunitconfig.\n\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\nChange-Id: I14950d3f62fbd2b5467e06e5cd73ea38a9d3d219\n"
    },
    {
      "commit": "61408ca31035dd6f1e6f8176e8ec651fdcd84113",
      "tree": "5a3eb239c8a847d49c87d61ea28e31f3160d4751",
      "parents": [
        "8b0397ef079498a75d55b5f43e71d9e8c3ad86fa"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 01:06:13 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:27:43 2018 -0700"
      },
      "message": "kunit: test: fixed HAS_IOMEM CONFIGs\n\nFixed issue which allows NO_IOMEM by default, but allows HAS_IOMEM for\nKUnit.\n\nChange-Id: I0704d2c5271d7427daf2dd0d08918f01b2321a32\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "8b0397ef079498a75d55b5f43e71d9e8c3ad86fa",
      "tree": "a8a5ef9cce33d6aea91d01f29d97d34169cb0837",
      "parents": [
        "6bd5551ce4620a1f42be69ccfb854ac03b98976c"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Aug 29 19:59:27 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:16 2018 -0700"
      },
      "message": "kunit: test: add proper CONFIGs to test/Kconfig\n\nSet natural dependencies on CONFIG_TEST; don\u0027t turn on KUnit by default.\n\nChange-Id: I113c379f76d0e90c2aacbc6fd20af7df01b91ac4\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "6bd5551ce4620a1f42be69ccfb854ac03b98976c",
      "tree": "d610cc3d590d33d67a8a7106b5a77b4839ba6497",
      "parents": [
        "fa657686b1bfaba6870ee256038d576e08aba8dc"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Aug 29 20:01:18 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: test: use strlcat in string-stream\n\nReplaces strcat with strlcat to make string-stream\u0027s concatenation a\nlittle easier to reason about.\n\nChange-Id: I050da4066b957b6c2d23978c90947e71cf1e8f48\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "fa657686b1bfaba6870ee256038d576e08aba8dc",
      "tree": "9518f270fb1c3065030c939a44c86d3a5e31714e",
      "parents": [
        "3fa5ae8ab5350eafe8b8531b9baf6ad1f9154158"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 00:24:47 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: mock: swapped out fixed width integer formatters\n\nThe kernel does not yet support fixed width integer formatters, this\nremoves them until support can be provided.\n\nChange-Id: I1667565930b47f33686cc2fc0eb1b5b2a5776157\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "3fa5ae8ab5350eafe8b8531b9baf6ad1f9154158",
      "tree": "f439cde7ea2e731ada07c2a0285763dc07552f86",
      "parents": [
        "5b1f170ac9f6fdc26e6d7b8985dfe1f94423c4e0"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 01:31:05 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: Documentation: Fixed non-ASCII character\n\nThis removes a non-ASCII character that was accidentally introduced.\n\nChange-Id: I1eb992a42309abe89de7041cbabcc71c1e8ece72\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "5b1f170ac9f6fdc26e6d7b8985dfe1f94423c4e0",
      "tree": "463d96d5358612b0bf0ccd140cc442d99e8e7ad8",
      "parents": [
        "ee116741ec9d37bf8cab8769aea67c33f3212522"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 01:40:14 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: added missing newlines\n\nAdds missing newlines to ends of files.\n\nChange-Id: I7764fceb9b2a9f296d0fce8b39e0fd930e66e696\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "ee116741ec9d37bf8cab8769aea67c33f3212522",
      "tree": "4fdc1383b704aacf502a0d12ad594fda2a078add",
      "parents": [
        "718efcf8d31f052642314d6852958fc27634cf42"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Aug 29 19:57:32 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: added missing SPDX headers\n\nLots of files were missing SPDX headers; this adds them in.\n\nChange-Id: I56e8897c3fff22506980559d130e43849e87b1ca\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "718efcf8d31f052642314d6852958fc27634cf42",
      "tree": "a2134ea9b0d27f04a92140861bd51589092263ea",
      "parents": [
        "bcb3916404189ee69dbf2509b0e405b5b5d1456f"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Aug 30 11:51:23 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: Documentation: Dropped bad toctree from FAQ\n\nThis removes a toctree that was making Sphinx unhappy.\n\nChange-Id: I20a199e49a965a1f056aaeedd578175c0ab9b26b\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "bcb3916404189ee69dbf2509b0e405b5b5d1456f",
      "tree": "2a1c909a41b83ff9865eab2069f8548efd1ebaa2",
      "parents": [
        "12958d21d67531d8319baf9a73441ff266929484"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Aug 07 10:50:53 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:15 2018 -0700"
      },
      "message": "kunit: added reference counting to string-stream\n\nChange-Id: If8f85562681c0b7a70661ce95d281a3525fba87f\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "12958d21d67531d8319baf9a73441ff266929484",
      "tree": "d9736b15ee7bd157d785b77c53c2291005a79733",
      "parents": [
        "f1f60aa7cb82234f1a37f029d9e40e578d2e3ee5"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Aug 07 10:39:30 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit: add locking to string-stream operations\n\nChange-Id: I6b21aceab9fe64267928aa88af709911f2724197\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "f1f60aa7cb82234f1a37f029d9e40e578d2e3ee5",
      "tree": "055d24d07f8077e556576734f032c9edff7b76d0",
      "parents": [
        "b9b6006319d59859b036a09a291a8d70df8f2e10"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Mon Jul 30 17:22:47 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit: added tests for Python Script\n\nChange-Id: I3344da596c788572ecb98ab3f82b67c45f66e944\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "b9b6006319d59859b036a09a291a8d70df8f2e10",
      "tree": "e48bd5ef330152b2b7cf60a0322513274b54b782",
      "parents": [
        "03535f4b32f2a11ba6c5bb07290995ecd77c69ac"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 31 11:44:36 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit: added file and line number to expectations\n\n- mock_validate_expectations\u0027s error message now includes this\n\n- added spacing to make error messages more legible\n\nChange-Id: I2fd975692f47a4bc25554b1c502d77792954bcc8\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "03535f4b32f2a11ba6c5bb07290995ecd77c69ac",
      "tree": "d64ea258911cd319dddb19b6f6f704c11ad4414b",
      "parents": [
        "87329e629f0a07b2974cea6c629ea94ac9e6af15"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 24 14:10:45 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit: added InSequence implementation\n\n- added prerequisite checking system\n- added macro for defining sequences\n- added tests for InSequence behaviour\n\nChange-Id: Iada5aa9ebac8403f0a948f4335e4b0962cc468f9\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "87329e629f0a07b2974cea6c629ea94ac9e6af15",
      "tree": "014adc3b987bb8e0e81dfc02e7a9c98948586686",
      "parents": [
        "9f75e6ca7b5a38f10b96b1f71e9a5af1f62edf78"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Wed Aug 01 13:57:33 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit: fix up some style and syntax\n\njust to be consistent with checkpatch style\n\nChange-Id: I3ae67202cb5203f7ee3241cabda4929510ac6a74\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "9f75e6ca7b5a38f10b96b1f71e9a5af1f62edf78",
      "tree": "691a1a6c48a5be204a2dea7aab1134bcd86c05be",
      "parents": [
        "3ccf579e452040ac22021c6d8d8be0eecfe6d25b"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 31 11:15:38 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:14 2018 -0700"
      },
      "message": "kunit.py: functional changes for testing\n\nHave the output be returned instead of printed directly so we can unit\ntest individual components.\n\nChange-Id: Id3fa29bc26b5ecb987e68be278ffde3ed0730105\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "3ccf579e452040ac22021c6d8d8be0eecfe6d25b",
      "tree": "c60eff789ac24fd74b0a678696ebb8d7898422da",
      "parents": [
        "0daadb389cd68f89c42a01be67da1d48171ac3f7"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 24 14:10:45 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:13 2018 -0700"
      },
      "message": "kunit: add parent method reference to expectation\n\nThis allows for the InSequence prereq checker to generate proper error\nmessages with the right method name in it. The prerequisite list only\nstores references to expectations so expectations should have an\ninternal reference to the method it is placed on.\n\nChange-Id: Id4c732ce2d4f2ca550c9e9a7dbb924b9f1d8d544\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "0daadb389cd68f89c42a01be67da1d48171ac3f7",
      "tree": "77b32ae0f4cfe76dd651e8875119223b9e68de57",
      "parents": [
        "cd490bf6794994cd478062ca72a421d351f64be2"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 24 14:32:01 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:13 2018 -0700"
      },
      "message": "kunit: added expectation modifier macros\n\nTimes, Never, RetireOnSaturation, Returns, ActionOnMatch\n\nChange-Id: I3324fc3db28cd230ef5688099c9bcb59fc96782c\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "cd490bf6794994cd478062ca72a421d351f64be2",
      "tree": "39448dcf4c69c76c72b3687dad599eabce7d7c58",
      "parents": [
        "10a17b28524f7fca3522373753de1c490f4cbfd5"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Tue Jul 31 10:49:33 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit: remove redundant semicolon from macro\n\nThe EXPECT_CALL(...) macro expands to an expression so it shouldn\u0027t have\na semicolon in it. The semicolon breaks functionality like\nNever(EXPECT_CALL(...)).\n\nChange-Id: I7ee3dc7b970c4a4f538d2372f00f5d4f9e82af30\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "10a17b28524f7fca3522373753de1c490f4cbfd5",
      "tree": "85569052d5b0183d3b9ed90598af094649702110",
      "parents": [
        "8f578a8bfc2796c67790b66b5af650c48e94a60a"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Thu Jul 26 10:54:27 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit: add FAQ to documentation\n\nChange-Id: I7e8340ba62cc122a8afa9a30e5915616cce9b1ed\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "8f578a8bfc2796c67790b66b5af650c48e94a60a",
      "tree": "d414db1b5f02bbbbae1237573df3fbec3abdbc83",
      "parents": [
        "a67b25ee6035b17fbb4c6a94e0d6814d7d76dfd6"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguo@google.com",
        "time": "Thu Jul 26 13:29:33 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit: check if kernel crashed during kunit\n\n- outputs error message with most recent log if KUnit crashes\nunexpectedly or does not complete\n\nChange-Id: Ic5677ab3a4fe215b9ba7c69e1d1e63a903a872af\nSigned-off-by: Felix Guo \u003cfelixguo@google.com\u003e\n"
    },
    {
      "commit": "a67b25ee6035b17fbb4c6a94e0d6814d7d76dfd6",
      "tree": "f17008bdfd02bca326521669579fd540e3fdb21e",
      "parents": [
        "5d05eaa58d28e69bd66f6df2019577437533b8ee"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 17:59:34 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "MAINTAINERS: add entry for KUnit the unit testing framework\n\nAdded myself as maintainer of KUnit, the Linux kernel\u0027s unit testing\nframework.\n\nChange-Id: I77eaebb94e6dc82798bbc97aad520b86ea86b1c9\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "5d05eaa58d28e69bd66f6df2019577437533b8ee",
      "tree": "37f60ecefb443a4648bc29a14b66ffcea5618076",
      "parents": [
        "c4ded7bf1d389a1e63c12666460794980cdc0960"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguoxiuping@gmail.com",
        "time": "Mon Jul 23 12:10:53 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit.py: improved output from python wrapper\n\n- added colors to displayed output\n- added timing and summary\n\nChange-Id: I732d4a2ec2ce9096b685490dd2359c8d60a66925\nSigned-off-by: Felix Guo \u003cfelixguoxiuping@gmail.com\u003e\n"
    },
    {
      "commit": "c4ded7bf1d389a1e63c12666460794980cdc0960",
      "tree": "995d8a2000bc52934348086b3aaa8ffea53c2602",
      "parents": [
        "078f374b155492d229b68dbe1d69ca49b12c0fcf"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguoxiuping@gmail.com",
        "time": "Thu Jul 12 10:50:43 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit: added KUnit wrapper script and simple output parser\n\nThe KUnit wrapper script interfaces with the two modules\n(kunit_config.py and kunit_kernel.py) and provides a command line\ninterface for running KUnit tests. This interface allows the caller to\nspecify options like test timeouts. The script handles configuring,\nbuilding and running the kernel and tests.\n\nThe output parser (kunit_parser.py) simply strips out all the output\nfrom the kernel that is outputted as part of it\u0027s initialization\nsequence. This ensures that only the output from KUnit is displayed\non the screen.\n\nA full version of the output is written to test.log, or can be seen by\npassing --raw_output to the wrapper script.\n\nChange-Id: I8dce28ded3aab424dd55421c74fdda7ad1d3436b\nSigned-off-by: Felix Guo \u003cfelixguoxiuping@gmail.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "078f374b155492d229b68dbe1d69ca49b12c0fcf",
      "tree": "31a12b3ed0942877477560430e050f64332ae104",
      "parents": [
        "dd1cc911099eeabe09469b88de75c72987580d89"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguoxiuping@gmail.com",
        "time": "Thu Jul 12 10:50:01 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "kunit: added Python libraries for handing KUnit config and kernel\n\nkunit_config.py:\n  - parses .config and Kconfig files\n\nkunit_kernel.py: provides helper functions to:\n  - configure the kernel using kunitconfig\n  - builds the kernel with the correct architecture\n  - provides function to invoke the kernel and stream the output back\n\nThe kernel invocation is wrapped in a subprocess call within the module\nbecause regular invocation of the kernel (./linux) may modify TTY\nsettings.\n\nChange-Id: I488d118948b3e55c351fbfbc27dcdde9364c109a\nSigned-off-by: Felix Guo \u003cfelixguoxiuping@gmail.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "dd1cc911099eeabe09469b88de75c72987580d89",
      "tree": "21521bfebee7e66f3ffec190c73f1c2c8bece73c",
      "parents": [
        "d609179db99088047fc8ff5c27f729c35314725b"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguoxiuping@gmail.com",
        "time": "Thu Jul 12 14:19:18 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:12 2018 -0700"
      },
      "message": "Documentation: kunit: adds complete documentation for KUnit\n\n- Added intro and usage guide for KUnit\n- Added API reference\n\nChange-Id: I9f0969f328a2a812677b2c5c4a3c69a049bbb551\nSigned-off-by: Felix Guo \u003cfelixguoxiuping@gmail.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "d609179db99088047fc8ff5c27f729c35314725b",
      "tree": "6d92b8ffccf3f186992c90d8682666bd9b0cd772",
      "parents": [
        "5c13d9861e5115a3f79fc477aaadb98cf90ad860"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Thu Jun 08 10:44:12 2017 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:16:11 2018 -0700"
      },
      "message": "arch: um: added stubs for mock iomem for KUnit\n\nThis mocks out some iomem functions (functions like readl and writel),\nfor mocking hardware interfaces.\n\nChange-Id: I497f7fdde61a0138dc8f751bf38544fc414896f7\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "5c13d9861e5115a3f79fc477aaadb98cf90ad860",
      "tree": "8e3fa2a39f73bc4b874a4e4f4d88f78906dd74bd",
      "parents": [
        "298d317443ff413d6866f370c81df3d0e4684c6e"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Fri Apr 06 10:33:48 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: added concept of platform mocking\n\nPlatform mocking is the mocking of all platform specific functions that\ninteract directly with hardware. In effect, this provides the ability to\nmock any hardware behavior.\n\nChange-Id: Ia632b0b7cc1e40452fcd2ff7bc90a220f8ef98c1\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "298d317443ff413d6866f370c81df3d0e4684c6e",
      "tree": "a7da1ddc6e8cf9bf63e07524d2dc5f47e22f89a1",
      "parents": [
        "290514af928b9904214deedf6d06385af3ed4a91"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Apr 11 14:28:41 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: improved sigsegv stack trace printing\n\nSacrificed the control of printing stack trace within the crash handler\nin the test runner for getting a better stack trace; this is still not\nideal, but much better than before.\n\nChange-Id: I9b58ed736733895aa3ededc3829637c4271d91c1\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "290514af928b9904214deedf6d06385af3ed4a91",
      "tree": "0cbb91cb938b4863da38565ba026eee46633142e",
      "parents": [
        "8a5d475d94e0c30ad074fd311be2e405afe7c960"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 15:08:48 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: mock: add parameter capturers\n\nAdds the concept of an argument capturer which, when used with a matcher\nin an EXPECT_CALL(...), will capture the value of the matching argument.\n\nChange-Id: I9cb7e16a29e02f02c2ba997a94fa98140519ca51\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "8a5d475d94e0c30ad074fd311be2e405afe7c960",
      "tree": "f2a2705287ee938d8fedc6cc1a007212a44e2f99",
      "parents": [
        "f495263fc6548dffcca2472e9b74a30aead67d8b"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 15:04:28 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: mock: added the concept of redirect-mockable functions\n\nSimilar to the concept of spying in Mockito\n(http://static.javadoc.io/org.mockito/mockito-core/2.20.0/org/mockito/Mockito.html#spy-T-),\nthis adds the concept of redirect-mockable function declarations which\nallow a function declared redirect-mockable to be mocked *and* to allow\nthe mock to redirect to the original function definition.\n\nChange-Id: I36577b240f72a340732ad86bdd6d8444a5546ef3\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "f495263fc6548dffcca2472e9b74a30aead67d8b",
      "tree": "8ddfe2b0b20fec3a688f7babb45886a8b1e82fd4",
      "parents": [
        "f5b5c08de4657984de7dc351590b94cf1bba5e8f"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 15:03:27 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: mock: added support for arbitrary function mocking\n\nUp to this point KUnit only supported method style function mocking\nwhere there was some type of class or context object and the function\nwas only accessed via a pointer.\n\nThis adds support for mocking any function via the __mockable attribute.\n\nChange-Id: I22f325a0fda3d16f5fb22f07332848feaa196b41\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "f5b5c08de4657984de7dc351590b94cf1bba5e8f",
      "tree": "d6faef21e46938042decc0338000278ef07492a3",
      "parents": [
        "b155a7306dc1643a15478591e045ae332890ab0c"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 15:02:23 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:23 2018 -0700"
      },
      "message": "kunit: mock: add ability to mock functions with void context\n\nAdds ability to mock functions with a void* context object.\n\nChange-Id: I1e2f6ba92809d9160b4d5b40f36f7423d3164e32\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "b155a7306dc1643a15478591e045ae332890ab0c",
      "tree": "8634540cdbb6efc4c755fbe5f2a097c91de496b8",
      "parents": [
        "1b582769af9991ce771791dab20d009bbfc501a8"
      ],
      "author": {
        "name": "Felix Guo",
        "email": "felixguoxiuping@gmail.com",
        "time": "Tue Jul 24 14:59:30 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "kunit: mock: implemented nice, strict and naggy mock distinctions\n\nNice mocks only fail when there is an expectation on a method, but none\nmatch a given call. Strict mocks only pass when there is a matching\nexpectation for every call. Naggy mocks have the same pass/fail behavior\nas nice, but report a warning in any case a strict mock would fail.\n\nChange-Id: I87017601291ba4346b6f16b77b208eeb97b7674f\nSigned-off-by: Felix Guo \u003cfelixguoxiuping@gmail.com\u003e\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "1b582769af9991ce771791dab20d009bbfc501a8",
      "tree": "7a5f12a7b53de78e16a16720165aa9266cedaba8",
      "parents": [
        "2dbb99bec842a3b7823f3a76a3e483c87f8c8009"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 14:58:13 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "kunit: mock: added parameter formatters\n\nAdded parameter formatters which provide string formatting for\nparameters that have no matchers to be matched against.\n\nChange-Id: Iafe3c676bc7cff4ec8a9d063fd17bcc99b4ded86\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "2dbb99bec842a3b7823f3a76a3e483c87f8c8009",
      "tree": "fa3da63e0db1ac74849560dad08845d58f839d43",
      "parents": [
        "bf32743ba0de209374a72699eb4d41aaeda59913"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 14:57:26 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "kunit: mock: added struct param matcher\n\nAdded parameter matcher builder for matching struct values.\n\nChange-Id: I6aa4ca9706528b30c1cf23fbf0a6c66ac6245d58\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "bf32743ba0de209374a72699eb4d41aaeda59913",
      "tree": "c45c648c6fb66b25128c4451ec99e80c4b5d6a4e",
      "parents": [
        "a56013b7a478c5e9a2ddab317afe28bf5953d020"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 24 16:37:52 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "kunit: mock: added basic mock infrastructure\n\nIntroduces basic class mocking, the ability to automatically generate a\nLinux C-style class implementation whose behavior is controlled by test\ncases, which can also set expectations on when and how mocks are called.\n\nChange-Id: Id9d535be1da95dd42844c43f6dfcca3a7441bd81\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "a56013b7a478c5e9a2ddab317afe28bf5953d020",
      "tree": "3d9fac13132f718d778f0becf0a1b8577d1af0f0",
      "parents": [
        "124e6eafd797e445496350a31b607070e09e9491"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Jul 11 15:19:02 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "kunit: mock: added parameter list minipulation macros\n\nAdds macros for parsing and manipulating parameter lists needed for\ngenerating mocks.\n\nChange-Id: I60cf255753ab656b9c50bc7da67dc1438fd8b90f\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "124e6eafd797e445496350a31b607070e09e9491",
      "tree": "ca4f2a552b666d9ea8a358025fd4e0d39725888a",
      "parents": [
        "7eb164528cb1a09ad710ab469a3078c7058e5ede"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Tue Jul 17 22:05:26 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:22 2018 -0700"
      },
      "message": "checkpatch: added support for struct MOCK(foo) syntax\n\nThis adds struct MOCK(foo) as a NonptrType so that it is recognized\ncorrectly in declarations.\n\nChange-Id: I2a3e321ef201433230c4dcfd694562194a613eef\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "7eb164528cb1a09ad710ab469a3078c7058e5ede",
      "tree": "576036295618c827561df774e6b0086e14a9a361",
      "parents": [
        "2181012b6f5a8f3fb0bea335f938535573f2837b"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Jul 23 14:51:23 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:21 2018 -0700"
      },
      "message": "kunit: test: added concept of post conditions\n\nAdds a way to specify that certain conditions must be met at the end of\na test case.\n\nChange-Id: I4f90a68bbedcbb71e2fe7a0353d22885f430f54f\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "2181012b6f5a8f3fb0bea335f938535573f2837b",
      "tree": "92a0a6742907aa6a59951e170e9affb0b35677ea",
      "parents": [
        "6db089a53ef9be8a0d465e7f81fe1cd964ba4b94"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Jul 23 14:50:38 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:21 2018 -0700"
      },
      "message": "kunit: test: added concept of initcalls\n\nAdded a way to add plugins that require a test module to be loaded\nduring initialization.\n\nChange-Id: I1d03f8249631a91b0334ccbe0b06889f3678caff\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "6db089a53ef9be8a0d465e7f81fe1cd964ba4b94",
      "tree": "fdf2ef3d07268233846bb31b94538de0606d8596",
      "parents": [
        "8ec1f5c6aa5397b36ea2387aabf99a4da7807578"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Mon Jul 23 16:45:07 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:21 2018 -0700"
      },
      "message": "kunit: test: added the concept of assertions\n\nAdded support for assertions which are like expectations except the test\nterminates if the assertion is not satisfied.\n\nChange-Id: I7fdcf4d0b602f2a5642ff50d2637e8ddd293ce7c\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "8ec1f5c6aa5397b36ea2387aabf99a4da7807578",
      "tree": "f479e334e65c073383d3e1b9bf5c3fc812aca5a0",
      "parents": [
        "08c70e23a29e936d4d2a1a967dfae8b405de632f"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Mar 28 14:30:55 2018 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:21 2018 -0700"
      },
      "message": "arch: um: added shim to trap to allow installing a fault catcher for tests\n\nAdded context to current thread that allows a test to specify that it\nwants to skip the normal checks to run an installed fault catcher.\n\nChange-Id: Ieedf354df2d0d8c924666544e280f43e621f40d1\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    },
    {
      "commit": "08c70e23a29e936d4d2a1a967dfae8b405de632f",
      "tree": "6629c1a7cb0619ff6e81aa66c94276dc45edaf9c",
      "parents": [
        "d68b42c39a59c00ac5361d10666e0e24c690a765"
      ],
      "author": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Jun 07 13:57:53 2017 -0700"
      },
      "committer": {
        "name": "Brendan Higgins",
        "email": "brendanhiggins@google.com",
        "time": "Wed Oct 24 15:11:21 2018 -0700"
      },
      "message": "kunit: test: adds KUnit, a basic unit testing library for Linux\n\nAdds the core of KUnit along with a minimal set of features. In\nparticular, this adds:\n - the base reporting infrastructure for reporting test results.\n - the concept of test modules and test cases, which is how tests are\n   specified and organized.\n - infrastructure for running test modules and cases on UML.\n - expectations, which is how properties to be verified by a test are\n   asserted.\n\nChange-Id: I61ea0abe30fd0f1679e5cd16d0c101b956380d52\nSigned-off-by: Brendan Higgins \u003cbrendanhiggins@google.com\u003e\n"
    }
  ],
  "next": "d68b42c39a59c00ac5361d10666e0e24c690a765"
}
