)]}'
{
  "log": [
    {
      "commit": "c93b7d35fa33720bf6c2e5852b879946f3fb5c54",
      "tree": "dafd63363b6c972bdc05d08ad3baa6c2df4aa7be",
      "parents": [
        "b7f12466ae1b55525d260591cba1e762e63de433"
      ],
      "author": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Mon Nov 26 17:55:36 2012 -0800"
      },
      "committer": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Mon Nov 26 17:55:36 2012 -0800"
      },
      "message": "Add run_test_list, simple version\n"
    },
    {
      "commit": "69ca4d6f9345e031b701d0ea62e5bcfed66139d6",
      "tree": "f38bf5368e140026c0c1337723e58ea8d910eb91",
      "parents": [
        "afcf467ee2c362c8e7445d84a61467e191bf5ceb"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Nov 15 11:50:22 2012 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Nov 15 11:50:22 2012 -0800"
      },
      "message": "Support active connect, overwrite log\n\nAdded options:\n  --switch-ip   If set, actively connect to this switch on controller-port\n  --log-append  Append to existing log\n\nThe default log file generation behavior has changed.  By default, now\nover-write the existing log.  To have the old append behavior, use the\n--log-append option.\n\nActive switch connections have been tested, but not exhaustively.  It\nshold still be considered experimental.  The old behavior (listen for\nswitch connections) should be unchanged.\n"
    },
    {
      "commit": "51590f6dcaf651356a63d8a5449a885a7acfbca8",
      "tree": "f3879c3e5b6da4cca9ce3f52504c6b6736607629",
      "parents": [
        "8260a2dd049a2dc9976ad23b935a7cb948b09714"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Oct 09 15:06:29 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Oct 09 15:06:29 2012 -0700"
      },
      "message": "add platforms dir to the pythonpath\n"
    },
    {
      "commit": "8260a2dd049a2dc9976ad23b935a7cb948b09714",
      "tree": "4c506cc2f171153a90473f67ae80d87b5e761f58",
      "parents": [
        "e703c6801ddb686e042bc82589e1ae4a7a4b1a41"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Oct 09 14:58:35 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Oct 09 14:58:35 2012 -0700"
      },
      "message": "add --priority option for minimum test priority\n"
    },
    {
      "commit": "e703c6801ddb686e042bc82589e1ae4a7a4b1a41",
      "tree": "b1b5baf8e137b8adeb15936f143dcb0dc18b96c7",
      "parents": [
        "1a8d5aab3d18952a4d03e166e1c9a39b64dbad5a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Oct 08 15:45:24 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Oct 08 15:45:51 2012 -0700"
      },
      "message": "add short option -v for --verbose\n"
    },
    {
      "commit": "483e15412b1c3902ec398cdaa7c79d9cec147d76",
      "tree": "302725431e1f75b7e72397c621bd1039e4bf053e",
      "parents": [
        "b90a1c4dfc0cfe40251187124ff89d7651f2755d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 09:29:39 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:21 2012 -0700"
      },
      "message": "remove test_dir from the platform import path\n\nAll python files under test_dir are considered tests.\n"
    },
    {
      "commit": "477f4817eedc0ef6306459de1f88d77739bee7cf",
      "tree": "2133c905fdd5da93949bd4cc8bb343be93370b1c",
      "parents": [
        "d1d9c287220588b5e8cff337f4f136ab9660a235"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 22:49:00 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 12:30:31 2012 -0700"
      },
      "message": "add a global config dictionary\n\nThere was no need for each test module to keep a copy for itself. This means we\ncan also get rid of test_set_init.\n"
    },
    {
      "commit": "d1d9c287220588b5e8cff337f4f136ab9660a235",
      "tree": "3b5439219990b915babac00fae72ae4b6eb9b1b9",
      "parents": [
        "15f64de4174aeba38652a360d480e7567b2ea531"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 22:07:10 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:34 2012 -0700"
      },
      "message": "define priorities as a property on the test class\n\nThis is just cleaner than keeping a global dictionary.\n"
    },
    {
      "commit": "15f64de4174aeba38652a360d480e7567b2ea531",
      "tree": "d8d9d104a55fc038aa31190c21b6df1e63c53be6",
      "parents": [
        "943be671b60dfcce829f177984c8ae82e0925fa8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 21:25:57 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:34 2012 -0700"
      },
      "message": "centralize test-spec parsing and matching\n\nThis cleans up the code and fixes inconsistencies between different users of\nthe test-spec.\n"
    },
    {
      "commit": "943be671b60dfcce829f177984c8ae82e0925fa8",
      "tree": "cd8ccbc34053a2b5e9eaefd0ed9456855c09d1fb",
      "parents": [
        "7bfaeb42d985cd7168001f376bca615ae314ffa3"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 19:20:16 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:34 2012 -0700"
      },
      "message": "simplify test list generation\n\nos.walk is used instead of find/grep. All python files in the test directory\nare imported and used as modules if they define a subclass of\nunittest.TestCase. A single datastructure of tests cases is produced instead of\ntwo.\n"
    },
    {
      "commit": "a92f2526be41f5334728f36be4b6d6dd4db6f46e",
      "tree": "fdddd0d859e98741cc87b1b4b5cfbcfb65e05d6f",
      "parents": [
        "5bd6cf94def52d433139d430cc34a6c1c49f8fd8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 18:11:04 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:34 2012 -0700"
      },
      "message": "remove unnecessary uses of eval\n\nThere are easier ways to do everything that was being done with eval.\n"
    },
    {
      "commit": "5bd6cf94def52d433139d430cc34a6c1c49f8fd8",
      "tree": "aa1acfca857ee652ec3f66cc90e9eea2c028349a",
      "parents": [
        "9a00381ec150547bc039a60b5c5f0269bc0a8dfb"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 17:57:24 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:31 2012 -0700"
      },
      "message": "fix SIGINT handling\n"
    },
    {
      "commit": "b0470146defb891d7428b781b1539b9db65ee9fd",
      "tree": "494f58297e022836fe6bc2679b383ff000dba3df",
      "parents": [
        "2a3bbb4f5d7e1cdd48704a53d8d8f22c5590abbc"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 15:50:35 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 17:28:05 2012 -0700"
      },
      "message": "exit with a nice error message when missing message classes\n"
    },
    {
      "commit": "fadf3459b641ddadf1cf2d9cd17f0b75580dc8ba",
      "tree": "a78e75430ecd3b10495fc39dc4d8f5dc15d12a4d",
      "parents": [
        "ac2da802cf0a04fae33f486513fecaa6aa39340d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 16:23:37 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 16:23:37 2012 -0700"
      },
      "message": "fix import path issues when running from a symlink\n"
    },
    {
      "commit": "e284b6bfcebcfd7782431ecfda3d570f9281401a",
      "tree": "36b3c4fe37bb0ea46f69e2cc69e7a328f64be517",
      "parents": [
        "da3b5ad89ce995cbc3a08dfff06dcb4f66f85578"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 09:19:58 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 10:15:33 2012 -0700"
      },
      "message": "move oft script to the top level\n"
    }
  ]
}
