)]}'
{
  "log": [
    {
      "commit": "5cb7ed32e786dca734c86a8115c1430dba44eccb",
      "tree": "66eef78e075f1733917c4931a9b1c4df5c3447b9",
      "parents": [
        "6614f9767beea888f9298dcacfcd76b97782816c"
      ],
      "author": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Fri Aug 17 18:11:01 2012 +0000"
      },
      "committer": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Fri Aug 17 18:11:01 2012 +0000"
      },
      "message": "Added option \"--minsize\"\n\n  The \u0027minsize\u0027 parameter specifies the minimum allowable packet size on the dataplane.\n  All test packet sizes use this as the floor.\n  The default is 0.\n"
    },
    {
      "commit": "6614f9767beea888f9298dcacfcd76b97782816c",
      "tree": "fb17060258d60875ccb8221cddc0ed8b9f5c786d",
      "parents": [
        "50051c7e9cd9e208f4a081674f5e557791c51fdd"
      ],
      "author": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Thu Aug 16 13:27:18 2012 -0700"
      },
      "committer": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Thu Aug 16 13:27:18 2012 -0700"
      },
      "message": "- Added \"--list-test-names\" option.\n\n  This option prints only the list of tests, without documentation.\n"
    },
    {
      "commit": "d895fcb24c236c8b4737220e6f15c3c0f84e2205",
      "tree": "abf14ccc1c552e94a61109dd720599434b100501",
      "parents": [
        "941d1dd39104433aafb4b2942871daec59bb2c79"
      ],
      "author": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Wed Aug 01 19:09:55 2012 -0700"
      },
      "committer": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Wed Aug 01 19:10:24 2012 -0700"
      },
      "message": "oft frequently hangs on error exit\n"
    },
    {
      "commit": "941d1dd39104433aafb4b2942871daec59bb2c79",
      "tree": "f38db48ce399e50fad64ee631768f28a2241e16b",
      "parents": [
        "1aeccc4649697803a7aefe4624e5d106653ec640"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 30 14:27:53 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 30 14:29:54 2012 -0700"
      },
      "message": "add platform_args to config dictionary and add a short option alias\n"
    },
    {
      "commit": "1aeccc4649697803a7aefe4624e5d106653ec640",
      "tree": "c9b223da3b334485b8916129ce6bdfa31477c66a",
      "parents": [
        "51c23b377a9e6c4f8de0653056f787fd825ecbee"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Sun Jul 29 17:58:10 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Sun Jul 29 17:58:10 2012 -0700"
      },
      "message": "default to listening on INADDR_ANY\n"
    },
    {
      "commit": "e55abf725e212af6708e7cbed639fbf451537662",
      "tree": "28ad8c71352d9ea8d5474faae661c0b71aca90f1",
      "parents": [
        "c8aaa3e5376205cee5094d8c0d6dcb23cba8ea40"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jul 26 20:11:42 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jul 26 20:11:42 2012 -0700"
      },
      "message": "add --default-timeout option\n"
    },
    {
      "commit": "17cdb12b642280be8525186fb12d8fc7641a5fd9",
      "tree": "399ff35ca8727104ebe5810c6a5d631bd59ee226",
      "parents": [
        "f261a10c57ade1a05a7466cc4bf50238e9c2b6c8",
        "ef2fc7e6550f7728d3ce60b630e085306069bddd"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Jul 25 13:41:53 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Jul 25 13:41:53 2012 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:floodlight/oftest\n"
    },
    {
      "commit": "f261a10c57ade1a05a7466cc4bf50238e9c2b6c8",
      "tree": "5d55068bf5cb8c6ea1c828f58586564d11150ff9",
      "parents": [
        "031373ca0dd8c4b8ecb821b7dd18a48340b61d29"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Jul 25 13:41:38 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Jul 25 13:41:38 2012 -0700"
      },
      "message": "add -T alias for --test-spec\n"
    },
    {
      "commit": "ef2fc7e6550f7728d3ce60b630e085306069bddd",
      "tree": "83f3cd04667de1cc0ad294679030d0d633cc7429",
      "parents": [
        "f7c413134a02a807d50880196a9e2b3e73a382ca"
      ],
      "author": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Mon Jul 23 15:16:47 2012 -0700"
      },
      "committer": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Mon Jul 23 15:16:47 2012 -0700"
      },
      "message": "Added command line option \"--platform-args\".\nThis allows arguments to be passed to the platform config file for additional\nprocessing.\n"
    },
    {
      "commit": "9a84a4f2197ad5ca6ea53823724de4b8c214e529",
      "tree": "34a85d8949cc4d093272190bb0608f5d3f6389f2",
      "parents": [
        "50d42eb224fe4159c6cc5652f2f6c387f498b031"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 17 12:27:42 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 17 12:27:42 2012 -0700"
      },
      "message": "add --fail-skipped option\n"
    },
    {
      "commit": "50d42eb224fe4159c6cc5652f2f6c387f498b031",
      "tree": "1eacf7e76062c3e0b00f1c9b88192efba17a8b3a",
      "parents": [
        "28dd03d6c5d04808f2b4642d91147703500a3302"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 16 11:57:03 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 16 11:57:03 2012 -0700"
      },
      "message": "return error status on test errors as well as failures\n"
    },
    {
      "commit": "ee57ad0d1ea11442a51dbe314fe872c48e664ee9",
      "tree": "242d9879200749ea50a41192d673fed34144688d",
      "parents": [
        "9aca199e38890652679287dc5b2ff93cfa2ac6a0"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jul 13 15:40:36 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jul 13 15:40:36 2012 -0700"
      },
      "message": "add an option to allow running as non-root\n"
    },
    {
      "commit": "6a1ecb8edd10f2874cc1ceb991c9b46454b1ad0e",
      "tree": "751035c6fce7770d40f4e74a02c8d69695458d5f",
      "parents": [
        "9d7330a9a5253ceede764e0d812f404c1c4c1831"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 10 18:59:44 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 10 18:59:44 2012 -0700"
      },
      "message": "exit(1) if a test failed\n"
    },
    {
      "commit": "9d7330a9a5253ceede764e0d812f404c1c4c1831",
      "tree": "c900cdd07270277a03d06a6f8b34f4cc9998a5a8",
      "parents": [
        "6b452bccc97e2b21f2c5ee4529d181f22d5ef6f4"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 10 14:37:44 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jul 10 14:37:44 2012 -0700"
      },
      "message": "default test_dir to directory containing oft\n\nThis avoids long runs of find(1) when oft looks for test files.\n"
    },
    {
      "commit": "6b452bccc97e2b21f2c5ee4529d181f22d5ef6f4",
      "tree": "f4f8a6ab3e8a3937d0e0970c23f6f16c729422c8",
      "parents": [
        "520e415a8f4d16b5440e0cef20b3064cfe5983bf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:52:21 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:52:21 2012 -0700"
      },
      "message": "support running oft from any working directory\n"
    },
    {
      "commit": "520e415a8f4d16b5440e0cef20b3064cfe5983bf",
      "tree": "06fed710f68154ea6583904e0dcbc8bc13f7e2a4",
      "parents": [
        "1fac154b8aeaa1039d3ed24ca989fad15c82e9bd"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:18:16 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:18:16 2012 -0700"
      },
      "message": "simplify searching for testcase classes\n"
    },
    {
      "commit": "1fac154b8aeaa1039d3ed24ca989fad15c82e9bd",
      "tree": "c5eea03e0f2162bffa49660d407cbab01b8a8ab2",
      "parents": [
        "ef403e5ee91fec738e3c884db0210121065a16de"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:10:45 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 16:11:29 2012 -0700"
      },
      "message": "clean up getting test module name\n"
    },
    {
      "commit": "ef403e5ee91fec738e3c884db0210121065a16de",
      "tree": "ee122c1aabaf410f6481746369526eed892aabbd",
      "parents": [
        "398780430d7f222b07ee9cf3e4c1e2a90dda84e7"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 14:59:43 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 14:59:43 2012 -0700"
      },
      "message": "ignore fewer exceptions\n"
    },
    {
      "commit": "398780430d7f222b07ee9cf3e4c1e2a90dda84e7",
      "tree": "ee2a2b59968a99858f23c0b1f04b9fe242338765",
      "parents": [
        "3978f24c0b64a8e4d51ef75beda47998c4583bb0"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 14:45:35 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Jul 09 14:45:35 2012 -0700"
      },
      "message": "supporting running from source tree\n"
    },
    {
      "commit": "7f8dba807072e183587fbc1a9d8f770708d15e5f",
      "tree": "71c08f682bd9cb026e9257e9d3ebcd65c8dfdf38",
      "parents": [
        "3e28dea42ffd2d7fd88392f24705f9f5a8b2fee3"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Apr 12 12:58:52 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Apr 12 12:58:52 2012 -0700"
      },
      "message": "Added report for number of tests to list\n"
    },
    {
      "commit": "d15bed5cfd7a485dd1103a66368da0805fea46af",
      "tree": "0d2f0c278b03dc9f6a9cda97b21a7d30b5c6729d",
      "parents": [
        "9bc61c6c579e9e6d4cd886c08fb09e2e63c9c18d"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Apr 04 10:39:52 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Apr 04 10:39:52 2012 -0700"
      },
      "message": "Updated profile processing\n\nProfiles _must_ be placed in the profiles directory now.  They\nshould be referred to as --profile\u003dfoo where the file profiles/foo.py\nexists.\n\nAdded profiles/noing.py for the \"no IN_PORT output action supported\".\n\nAdded .gitignore.\n"
    },
    {
      "commit": "d7c80d158949d528bad73d9dca8adface5bb8860",
      "tree": "65c907496a40795397baffe41206ac35da3a935e",
      "parents": [
        "07e8f5f7ba1cf7505a55c104bac4fe1d18e014b5"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 03 15:20:57 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 03 15:23:36 2012 -0700"
      },
      "message": "Added switch profile command option\n\nAdded --profile command line argument.  If present, it must specify\na python file which is imported.  Currently the only profile related\ncode is a variable called skip_test_list which gives a list of tests\nthat should _not_ be run for the platform.  Only the test names\nare currently checked; test-module checking is not checked.\n\nA sample profile file is also included.\n"
    },
    {
      "commit": "cfa172f4af6efbd3a76be423a9f300b8a773ad40",
      "tree": "20b5801f15b878a536131713bbb1045b92079c05",
      "parents": [
        "f6e76c0368357f2854208744aa66dae8d77d72e8"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 23 12:03:00 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 23 12:03:00 2012 -0700"
      },
      "message": "Added L2 dest modify + VLAN modify test\n\nMoved egr_count calculation down into flow_test_match; defaults to 1\nfor existing calls.\n"
    },
    {
      "commit": "f6e76c0368357f2854208744aa66dae8d77d72e8",
      "tree": "81f69a2019eb2764de5d8298b40195afbd6cdb03",
      "parents": [
        "3bb8b1b1d10dd5c9f5dda2713d31de64f50b96d5"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 23 10:56:12 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 23 10:56:12 2012 -0700"
      },
      "message": "Added L2 modify + MC tests and support\n\nAdded support to flow_match_test (and flow_match_test_port_pair)\nto send generate flows/packets for multiple output port actions.\n\nAdded test cases for L2SrcModMC, L2DstModMC, L2SrcDstModMC which\nmodify and send to multiple output ports\n\nUse egr_count to modify the number of output ports via test params.\n\nAdded warning to comments that test params need to be proper\nPython identifiers.\n"
    },
    {
      "commit": "830b44153279f760fded6870c3f9d2c75587af97",
      "tree": "0156e14368fdb96d2d28439384975246f5618b16",
      "parents": [
        "cf26b7a4bd60f6b47709aa34f33aac48e7ab0b61"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Aug 23 22:49:21 2011 -0700"
      },
      "committer": {
        "name": "Ed Swierk",
        "email": "eswierk@bigswitch.com",
        "time": "Tue Mar 20 11:13:44 2012 -0700"
      },
      "message": "Do not add non-default tests when module specified\n"
    },
    {
      "commit": "cf26b7a4bd60f6b47709aa34f33aac48e7ab0b61",
      "tree": "444688861823fe6ff85e4f5ff2f60239e95020e0",
      "parents": [
        "836e5bd85531c1bf7ba7e7a73c7358ad732b7d1c"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Aug 05 10:15:35 2011 -0700"
      },
      "committer": {
        "name": "Ed Swierk",
        "email": "eswierk@bigswitch.com",
        "time": "Tue Mar 20 11:13:44 2012 -0700"
      },
      "message": "Added relax option to oftest\n\nThis option relaxes restrictions around receiving unexpected packets.\nIt\u0027s main use case is in evironments where in-band control is enabled and\nas a consequence packets are forwarded to dataplane ports.\n"
    },
    {
      "commit": "ba3745c94f562b2f89c6b7a6df7a9a7e945f4e4e",
      "tree": "10a769ec1d8586aa2d718ca36d92c637f6f23062",
      "parents": [
        "ba4fd4f4f94bd2d75146164cbdfc4dc1ffd51cf0"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Jul 21 21:51:08 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Jul 21 21:51:08 2010 -0700"
      },
      "message": "Added skip message support\n\nEmit message to stderr when skipping a test depending on verbosity\nlevel.  Report number of tests skipped at end of test run.\n"
    },
    {
      "commit": "7aa0b812d021528e789c362d3f389679692b31b6",
      "tree": "614fc8a6f414871a5cbe9739503f95e6794968fb",
      "parents": [
        "10275aa7caa78e1a77dff2a88e5f1c32be2212f8"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Tue Jul 20 14:51:41 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Tue Jul 20 14:51:41 2010 -0700"
      },
      "message": "Grammar correction\n"
    },
    {
      "commit": "ac25cf34a443faa1c5b21e8fa839d0ac56fb7109",
      "tree": "0dc800203ffbcb1f7103ffda3ffcabcfd8e00e89",
      "parents": [
        "8f91a5b6eeb2c3faf0ebcdef197c0c82d08990fa"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Tue Jul 20 14:08:28 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Tue Jul 20 14:08:28 2010 -0700"
      },
      "message": "Added --test-params command line option\nFilter # file names\nCheck if running as Main to allow easier imports\n"
    },
    {
      "commit": "551befadb763269637cb38372400a31ad1a2ee1f",
      "tree": "b75ed8840a4b9b85756eb3055154035a3b6408e1",
      "parents": [
        "f36f108e0710024135a0f2b7c4cc6ed69f1455ca"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Jul 15 17:05:32 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Jul 15 17:05:32 2010 -0700"
      },
      "message": "Some major restructuring\n\nUpdated README with some warnings.\nAdded data-plane-only class to allow controlling the dataplane\nports without needing a controller connection.\nSubclassed this to allow sending only a packet without doing\nany flow mods; both tagged or untagged.\nAdded the ability to pass a parameter to a test through th\nconfig structure.  Use --param\u003dN.\nUsed the above to set the VLAN id in a tagged pkt in the new test.\nBreak up description/name in --list when name is long\n\nRestructured pktact.py into different routines, moving a lot of\nthe base functionality into testutils.py.  This allows packet\nmodification tests to be done independently.\n\nIn the process, added support for using tagged and untagged\npackets in the tests.  Several tests remain to be implemented.\n"
    },
    {
      "commit": "c24aaaeb82c71c000e6c21b1dd63e62e7b004716",
      "tree": "615d5316e657ca2e359db40168100934f7f396d6",
      "parents": [
        "8b886b16b434476a9c1c0063e35c6bcc9c30392e"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Jul 08 14:05:24 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Jul 08 14:05:24 2010 -0700"
      },
      "message": "Added per-test priority support\n\nIn each module, a variable test_prio[] may be added which\nis indexed by the test name.\n\nCurrently the only application of this is to exclude tests\nfrom the \"default\" set of tests that are run:  If a test\nhas a negative priority, then it is not run by default.  This\naddresses the issue with \"fill exact match table\" taking almost\nan hour to run.\n"
    },
    {
      "commit": "02eca0bcaec4f28d914dd0fb63d7ab34f38c5679",
      "tree": "754a36e01d9b51600401869fca93c9edb6fa3288",
      "parents": [
        "f8e80dd88f1ead8f403097180f9c83fad1d561e0"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Apr 15 16:09:43 2010 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Apr 15 16:09:43 2010 -0700"
      },
      "message": "Merge resolution and scapy check\n"
    },
    {
      "commit": "446c143accbc42632cdd2d5ce0e58dad09540399",
      "tree": "84db00e3fc3068037659ba16bbbe91f2ee4f328a",
      "parents": [
        "88f709d85ba4950bc22d1edd84933a2512c235a2"
      ],
      "author": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:43:27 2010 -0700"
      },
      "committer": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:43:27 2010 -0700"
      },
      "message": "Exit and print help if not started with root privileges\n"
    },
    {
      "commit": "88f709d85ba4950bc22d1edd84933a2512c235a2",
      "tree": "74ca167a9d04f99500f37eb156771aadfabe09f8",
      "parents": [
        "824504ec6276e02e039be5096518d8bd1913e0df"
      ],
      "author": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:29:56 2010 -0700"
      },
      "committer": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:29:56 2010 -0700"
      },
      "message": "Fix typo\n"
    },
    {
      "commit": "824504ec6276e02e039be5096518d8bd1913e0df",
      "tree": "a11c2bb9f2472a72965d519f0a5a49af0d5b1c07",
      "parents": [
        "8dbfea5cf229ade6af18ebe01e2408a8ce0227f4"
      ],
      "author": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:21:37 2010 -0700"
      },
      "committer": {
        "name": "Brandon Heller",
        "email": "brandonh@stanford.edu",
        "time": "Thu Apr 01 12:21:37 2010 -0700"
      },
      "message": "Fix --list help text\n"
    },
    {
      "commit": "79f3608496bd5c1f10b5414e787407d00bc23a50",
      "tree": "c78c70781ad2ccd8de3bc809be441f38ad0e891a",
      "parents": [
        "b21c7222b747558f9cf6eca587019df3561735fe"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Mar 11 16:53:53 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Thu Mar 11 16:53:53 2010 -0800"
      },
      "message": "Updated README; added test descriptions to --list\n"
    },
    {
      "commit": "de2a639e0b2ccec1b367604d7eed9711183abc35",
      "tree": "8e085e0795ff92c864fa6270549ed30063f99c05",
      "parents": [
        "11e598b47c15de2aef5be45b9acabee0dee53b55"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 10 13:56:51 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 10 13:56:51 2010 -0800"
      },
      "message": "Ignore tmp files\n"
    },
    {
      "commit": "1a88c12344b8e76a1a7a620809bcc61abafb3db6",
      "tree": "61b60733044348a214e4cdcf83acf10f1a207e48",
      "parents": [
        "6ce963aef617e2cfd52c966d374f78cf466c9337"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sun Mar 07 22:00:20 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sun Mar 07 22:00:20 2010 -0800"
      },
      "message": "Comment changes\n"
    },
    {
      "commit": "88fc880c14f6f11f53277c9978627f05f1b232e1",
      "tree": "307ffde4aadb756186c8887222da36d7a23b9b1a",
      "parents": [
        "2f820be0471d1e249a71b6f27432b589de1854fb"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sun Mar 07 11:37:52 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sun Mar 07 11:37:52 2010 -0800"
      },
      "message": "Support logging to console\n"
    },
    {
      "commit": "673e085388eaab2f11936cefcc1a06c77c963bf4",
      "tree": "5e1ccc182edbe0a22757cd627e78a86d2e3a3506",
      "parents": [
        "2c0dba3b10266936d137c8756ef5dbc41a48a67f"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sat Mar 06 23:09:23 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sat Mar 06 23:09:23 2010 -0800"
      },
      "message": "Added install to Makefile\nUpdated README\nUpdated doc for test_spec\n"
    },
    {
      "commit": "2c0dba3b10266936d137c8756ef5dbc41a48a67f",
      "tree": "924417aa0c787ab2312751904e0c22eca92fe0c1",
      "parents": [
        "52f6444dcad3650d6eb0844ac140d69295335b5d"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sat Mar 06 22:47:06 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Sat Mar 06 22:47:06 2010 -0800"
      },
      "message": "Setup and test spec implementation\n\nSetup now installs code as normal conventions:\ncd oftest/src/python\npython setup.py install\n\nSee basic.py for recommended import conventions\n\nCommand line parsing significantly updated; allow --test-spec\nto indicate a module or specific tests to include.\n"
    },
    {
      "commit": "52f6444dcad3650d6eb0844ac140d69295335b5d",
      "tree": "fbbc02177b2b083b346b3ca92a3f1cb51019440f",
      "parents": [
        "60a8d7a25ab60d68466ee5cedea5f085c66b81d4"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 03 15:32:41 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 03 15:32:41 2010 -0800"
      },
      "message": "Added comments about running locally\n"
    },
    {
      "commit": "4837010d858480e186a9aeb7b28dc2555db307d3",
      "tree": "57c9b4cb88846f288949fa0b53b66619f5b0352e",
      "parents": [
        "ea8ad807a0eef55315a251e055405ecdcc4fec41"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 03 15:17:33 2010 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dtalayco@stanford.edu",
        "time": "Wed Mar 03 15:17:33 2010 -0800"
      },
      "message": "Major overhaul of oftest command interface\n\nAdded tests/oft as top level executable\n\nSupport command line options for many config params\n\nUse logging module for output\n\nGot rid of oft_config.py; consolidate configuration in\noft (top level script) and pass around as a dictionary\n\nAdd oft_assert.py (the one useful piece of oft_config that\nremained).\n"
    }
  ]
}
