On Tue, 27 Aug 2013 14:34:09 +0300 Fathi Boudra fathi.boudra@linaro.org wrote:
On 27 August 2013 14:17, Neil Williams codehelp@debian.org wrote:
It is up to the test writer to put the reboots in the right places. What we do need to do is document that this is done by having more than one lava_test_shell blocks in the JSON instead of trying to do the reboot in the YAML.
bootchart is just a use-case. it needs to set up the OS, reboot to collect data, finally test results are available.
That is just what LAVA does with two lava_test_shell blocks.
Maybe my solution with two test definitions is the right way to do it after all. Ideally we could also have a separate action to just install packages in the test image, but I think the overhead of using a separate lava-test-shell test definition is low enough.
That can just as easily be a single YAML file.
+1 for a single yaml file.
I think it's better to keep it at the test definition level. We produce a limited set of rootfs/images, we won't be able to produce test images on demand because there's unlimited possibilities.
It seems also more logical to me. Since the test doesn't know which image is used, it's up to the test to set up its prerequisite like dependencies and then run the test itself.
So, for completeness, that works out as:
A YAML file called installer.yaml with install: deps: - bootchart
or, if the test image doesn't raise a usable network interface by default: run: steps: - lava-test-case network-up --shell ifconfig eth0 up - lava-test-case package-update --shell apt-get update - lava-test-case package-install --shell apt-get -y install bootchart
or similar.
A YAML file called parser.yaml with:
run: steps: - lava-test-case bootchart-run --shell ./run-bootchart-parser.sh
(Contents of run-bootchart-parser.sh TBD)
A single JSON file with a snippet:
{ "command": "lava_test_shell", "parameters": { "testdef_repos": [ { "git-repo": "git://git.linaro.org/people/foobar/bootchart-yaml.git", "testdef": "installer.yaml" } ], "timeout": 900 } }, { "command": "lava_test_shell", "parameters": { "testdef_repos": [ { "git-repo": "git://git.linaro.org/people/foobar/bootchart-yaml.git", "testdef": "parser.yaml" } ], "timeout": 900 } },
All of that is already supported.
The one thing which needs better documentation is that the use of more than one lava_test_shell command block in the JSON causes a reboot between actions when adding to the testdef_repos array does not:
{ "command": "lava_test_shell", "parameters": { "testdef_repos": [ { "git-repo": "git://git.linaro.org/people/foobar/bootchart-yaml.git", "testdef": "installer.yaml" }, { "git-repo": "git://git.linaro.org/people/foobar/bootchart-yaml.git", "testdef": "parser.yaml" } ], "timeout": 900 } },