Andy Doan andy.doan@linaro.org writes:
On 11/12/2012 06:52 AM, Senthil Kumaran S wrote:
Hi,
On Monday 12 November 2012 05:40 PM, Senthil Kumaran S wrote:
I just pushed in support for pulling from bzr branches. The last thing pending is, support for pulling specific revisions.
Support for pulling specific revisions from the repository which holds test definitions is pushed in! Use the job file attached in this email to check this feature.
I just spent a little time looking at the branch and have a few comments:
= the action changes:
We now have:
"command": "lava_test_shell", "parameters": { "testdef_repos": [ {"repo1" :
"git://git.linaro.org/people/stylesen/sampletestdefs.git", "testdef1": {"test": "testdef.yaml", "files": ["testsample.sh", "tester.sh"]}, "testdef2": {"test": "testdef.yaml", "files": ["testsample.sh", "tester.sh"]} }, {"repo2" : "git://git.linaro.org/people/stylesen/sampletestdefs.git", "testdef": {"test": "testdef.yaml", "files": ["testsample.sh", "tester.sh"]} }], "timeout": 1800 }
There are 2 things I don't like. The "testdefX" thing and the "files". I see where you are coming from on the "files" piece, but I think we should just pull in the whole repository for the test. I see how you are trying to eliminate copying the same stuff multiple times. However, we can probably be smart and have a directory on the target that has a single copy of each repo and then do symlinks to it for each test.
Or just not bother trying to be smart (I expect the large majority of lava_test_shell actions that we execute to specify only one test).
I had always envisioned that we would just clone the testdef containing repository onto the board. Basically I think we should aim for the simplest case: that, for example, the PMWG just need to drop a testdef.yaml file into http://git.linaro.org/gitweb?p=tools/pm-qa.git%3Ba=tree to and put git://git.linaro.org/tools/pm-qa.git into the job json in the appropriate place. This means that we should just copy all files in the branch across and that we should have a default location for the testdef YAML. Sorry if I missed a chance to make this clear earlier!
This would then allow us to do a definition like:
"command": "lava_test_shell", "parameters": { "testdef_repos": [ { "git-repo" : "foo.git", "testdefs": [ "testdef1.yaml", "t2.yaml" ] ] }], "timeout": 1800 }
= _get_test_def_repo: as noted in my proposal, lets not try and guess between git/bzr. The code we have here misses things like cloning a repo using HTTP which would be hard to guess about.
+1
= dict.get(key) logic: Most of the dispatcher uses dict[key]. Lets change to use that to keep things consistent.
= _configure_target: The testdef_repos and testdef_urls snippets are making this function grow pretty large. Let's break those out into their own functions.