)]}'
{
  "commit": "ebd453d32fe1abcf1fb1a047dbcd6151558a117e",
  "tree": "24284dad4cada7c5c40e6d53cff57edeb0dd808e",
  "parents": [
    "346890158e5cc8e39c6065a330a475e3e311eada"
  ],
  "author": {
    "name": "Gabe Black",
    "email": "gabeblack@google.com",
    "time": "Thu Jun 07 22:10:58 2018 -0700"
  },
  "committer": {
    "name": "Gabe Black",
    "email": "gabeblack@google.com",
    "time": "Thu Jun 07 22:23:05 2018 -0700"
  },
  "message": "systemc: Add a script which automates building and running tests.\n\nThe only required option for the script is the path to a build\ndirectory, for instance build/ARM. It uses that when running scons and\nwhen referring to generated files (like the built versions of the\ntests). It uses the location of the script itself to find source files,\nlike the \"golden\" version of outputs.\n\nThis script runs tests in three phases, compilation, running, and\nthen verification. By default, all three phases are run for all tests,\nbut which phases run and how they work can be customized by specifying\nthem explicitly on the command line with the --phase option.\n\nEach time the --phase option shows up on the command line, it should\nbe followed by the name of the phase being specified. That both\ndeclares that that phase should be run, and also that any subsequent\noptions apply to that phase, at least until the next --phase option.\n\nCurrently, only the \"compile\" and \"execute\" phases are implemented, and\nonly the \"compile\" phase has been tested at all or has any options\ndefined. The \"compile\" phase simply takes all the options it was given\nand pass them on to scons. The \"verify\" phase simply prints a message\nwhich says what it would have verified.\n\nThe script can list the available tests with the --list option, as\ndetermined by the json systemc test manifest file which scons can\ngenerate, and which the script can refresh if passed the --update-json\noption. You can also specify what \"flavor\" of build you want to do, ie\nopt, debug, fast, etc., with the --flavor option. Only one flavor can\nbe tested at a time, but that should be the desired behavior most of\nthe time. If multiple flavors need to be tested, the script can be\ninvoked multiple times.\n\nFinally, there is a --filter option which accepts a python expression\nas a string. That expression is evaluated in the namespace of the\nproperties of each test in the json file, and if it returns true then\nthat test is run. For instance, to verify only compile_only tests, you\nwould use:\n\nsystemc/tests/verify.py build/ARM --filter \u0027compile_only\u0027\n\nTo test only compile_only tests named bob, you would run this:\n\nsystemc/tests/verify.py build/ARM --filter \\\n    \u0027compile_only \u0026\u0026 name \u003d\"bob\"\u0027\n\nAlso included is a simple config.py which is the beginning of a config\nwhich will run the systemc regression tests. Right now, all it knows\nhow to do is run sc_main.\n\nChange-Id: I62666be8b1622d1355153e623b4274a939507e44\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e2dd558cccd59d7edf42e12bb6341906378f87c",
      "new_mode": 33261,
      "new_path": "src/systemc/tests/config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83ee6141b2bb68575fa30c5c8d361e70c2c87413",
      "new_mode": 33261,
      "new_path": "src/systemc/tests/verify.py"
    }
  ]
}
