1. Get permission to schedule tests on validation.linaro.org: Click "sign in" at top right of the website, select launchpad.net log in option, ensure that your name, username, and email address are checked, and sign in. Then, contact the validation team, and ask them to add the correct permissions to your account. 2. Install the lava client tools: sudo add-apt-repository ppa:linaro-validation/ppa sudo apt-get update sudo apt-get install lava-scheduler-tool lava-dashboard-tool 3. Create an Authorization Token on validation.linaro.org: Click "API" -> "Tokens" -> "create" (on right) -> "Create Token" -> "Toggle" A long token string should be displayed. 4. Install the token on you machine: lava-tool auth-add https://USERID@validation.linaro.org/lava-server/RPC2/ 5. Create a personal test stream to store your test results: This may not be necessary if you wish to post your results to one of the existing streams on validation.linaro.org. lava-dashboard-tool make-stream \ --dashboard-url http://validation.linaro.org/lava-server/RPC2/ \ /anonymous/USERNAME/ 6. Create a job file: This example just runs the 'stream' basic test which is built into lava-test. You need to select suitable rootfs and hwpack tar files. It's easiest to select some from releases.linaro.org or snapshots.linaro.org. Beware that not all images work - you can get a clue about recent images from the validation.linaro.org home page. ---jobfile1.json----------------------------- { "job_name": "foo", "device_type": "panda", "timeout": 18000, "actions": [ { "command": "deploy_linaro_image", "parameters": { "rootfs": "ROOTFS-URL-HERE", "hwpack": "HWPACK-URL-HERE" } }, { "command": "lava_test_install", "parameters": { "tests": ["stream"] } }, { "command": "boot_linaro_image" }, { "command": "lava_test_run", "parameters": { "test_name": "stream" } }, { "command": "submit_results", "parameters": { "server": "http://validation.linaro.org/lava-server/RPC2/", "stream": "/anonymous/USERNAME/" } } ] } -------------------------------------- 7. Submit the test to the LAVA scheduler lava-tool submit-job \ https://USERID@validation.linaro.org/lava-server/RPC2/ \ jobfile1.json ============== If you want to run a custom test not pre-installed with lava-test, i.e. an "Out-of-Tree Test", this can be done too. 1. Wrap up your testsuite in a tar file with a simple script This can look like whatever you like, it just needs to do the right thing when invoked. 2. Post your testfile to a public place. people.linaro.org is a good place. 3. Create a "Test Definition File". This gives what commands need to be executed to install and launch your test file. So, for example, this installs bzr, downloads and untars a file, runs a script, and uses the standard regex for recognising PASS or FAIL lines: --simple-oot-test.json-------------------------------------- { "format": "Lava-Test Test Definition 1.0", "test_id": "mwhudson-dummy", "install": { "deps": ["bzr"] "url": http://people.linaro.org/..." "steps": ["bzr branch ....", "tar xf ...."], }, "run": { "steps": ["mytestdir/go-script some parameters"] }, "parse": { "native": true } } ------------------------------------------------ 4. Create a job file. This is exactly the same as the job file above, but references the definition file: --jobfile2.json---------------------------------- { "job_name": "foo", "device_type": "panda", "timeout": 18000, "actions": [ { "command": "deploy_linaro_image", "parameters": { "rootfs": "ROOTFS_URL_HERE", "hwpack": "HWPACK_URL_HERE" } }, { "command": "lava_test_install", "parameters": { "tests": ["my-out-of-tree-test"], "register": ["http://people.linaro.org/..../simple-oot-test.json"] } }, { "command": "boot_linaro_image" }, { "command": "lava_test_run", "parameters": { "test_name": "my-out-of-tree-test" } }, { "command": "submit_results", "parameters": { "server": "http://validation.linaro.org/lava-server/RPC2/", "stream": "/anonymous/USERNAME/" } } ] } ------------------------------------------------ 5. Submit the job, as before. lava-tool submit-job \ https://USERID@validation.linaro.org/lava-server/RPC2/ \ jobfile2.json