Hi,<br><br>I just committed the code I had on my local repository to my branch:<br><a href="https://svn.blender.org/svnroot/bf-blender/branches/soc-2009-jaguarandi/test">https://svn.blender.org/svnroot/bf-blender/branches/soc-2009-jaguarandi/test</a><br>
<br>=== design/concepts ===<br>I will briefly described the created code/design:<br><br>The script uses 4 concepts:<br> *machine: current machine (configured on config.py)<br> *build: a blender binary (*.bin) (given in the path as argument to the program) <br>
*case: a .blend scene (*.blend) (given in the path as argument to the program)<br> later this could be extended to receive a test-case description (and implement other types of tests)<br>
<br>And "test-run", which is the result of running a build against a scene on a given machine<br>test-run results are saved on: run/machine_hash/build_hash/case_hash/(*/result.xml/1.png)<br>and save information like:<br>
time, stderr, stdout, exit_code, image result<br>(eg. of stored content: <a href="http://andresp.no-ip.org/soc2009/btest/html/jaguarandi/l67KsT0MD9mp/ASfrwRWIFwAl/">http://andresp.no-ip.org/soc2009/btest/html/jaguarandi/l67KsT0MD9mp/ASfrwRWIFwAl/</a>)<br>
<br><br>At the moment the program finds the builds/cases to run by recursively finding files matching *.bin, *.blend<br><br>as so running the program to test case can be as simple as:<br>blendertest.py --update <path_with_cases> <path_with_builds><br>
Tests are only run if there was no result before, so theres no problem in selecting only the new scenes/builds<br>Also theres no problem in changing scenes and builds from path to path.. because it uses a hash based on files content.<br>
<br>Also considering the test-run output is organized with hashs from "machine/build/scene" merging dirs from diferent persons shouldn't be a problem.<br><br>blendertest.py --html <path_with_cases> <path_to_builds> > html/comparison.html<br>
Can be used to make the html preview visible on the link:<br><a href="http://andresp.no-ip.org/soc2009/btest/html/render.html">http://andresp.no-ip.org/soc2009/btest/html/render.html</a><br><br>The html output uses css's class so its probably easy to make a css for nicer look.<br>
<br>=== code organization ===<br>
blendertest.py: parse arguments and load test cases and builds<br>
Test.py: code related to test-running<br>html.py: code used to convert the test-runs to an html page with results / comparisons tables<br>
persistent.py: loads and saves data to/from xml<br>
util.py: misc stuff<br>config.py: configuration<br>
<br><br>=== scope ===<br>For now this has been created to help measuring my SoC results, as long thats archieved I am happy!<br>Of course it would be nice to have this improved (later or by someone else) to be more usable.<br>
<br>This week I will work on exporting statistics out of the raytracer, and finding good scenes to measure raytrace performance.<br><br><br>--<br>André<br>