diff options
author | Neil Williams <neil.williams@linaro.org> | 2018-07-25 15:02:17 +0100 |
---|---|---|
committer | RĂ©mi Duraffort <remi.duraffort@linaro.org> | 2018-09-18 17:15:06 +0000 |
commit | 0cc3653f99693bf4221e984b8b19393fda09e89e (patch) | |
tree | 93f9689031e353c52d9fdb9a27a11939229f7319 | |
parent | c6a0bb0e6edd1e70a9542fca0ef9d1e6dbb4cf4c (diff) |
Allow LXC for FRDM-K64F IoT device
Provide support for admin operations in an LXC to fix
problems when running a lot of IoT jobs.
Signed-off-by: Neil Williams <neil.williams@linaro.org>
-rw-r--r-- | lava_dispatcher/test/pipeline_refs/frdm-k64f-lxc.yaml | 62 | ||||
-rw-r--r-- | lava_dispatcher/test/sample_jobs/frdm-k64f-lxc.yaml | 97 | ||||
-rw-r--r-- | lava_dispatcher/test/test_lxc.py | 9 | ||||
-rw-r--r-- | lava_scheduler_app/tests/device-types/frdm-k64f.jinja2 | 2 |
4 files changed, 170 insertions, 0 deletions
diff --git a/lava_dispatcher/test/pipeline_refs/frdm-k64f-lxc.yaml b/lava_dispatcher/test/pipeline_refs/frdm-k64f-lxc.yaml new file mode 100644 index 000000000..2174daa1b --- /dev/null +++ b/lava_dispatcher/test/pipeline_refs/frdm-k64f-lxc.yaml @@ -0,0 +1,62 @@ +- class: actions.deploy.lxc.LxcAction + name: lxc-deploy + pipeline: + - {class: actions.deploy.lxc.LxcCreateAction, name: lxc-create-action} + - {class: actions.deploy.lxc.LxcCreateUdevRuleAction, name: lxc-create-udev-rule-action} + - {class: actions.boot.lxc.LxcStartAction, name: boot-lxc} + - {class: actions.deploy.lxc.LxcAptUpdateAction, name: lxc-apt-update} + - {class: actions.deploy.lxc.LxcAptInstallAction, name: lxc-apt-install} + - {class: actions.boot.lxc.LxcStopAction, name: lxc-stop} + - {class: actions.deploy.environment.DeployDeviceEnvironment, name: deploy-device-env} + - class: actions.deploy.overlay.OverlayAction + name: lava-overlay + pipeline: + - {class: actions.deploy.overlay.VlandOverlayAction, name: lava-vland-overlay} + - {class: actions.deploy.overlay.MultinodeOverlayAction, name: lava-multinode-overlay} + - class: actions.deploy.testdef.TestDefinitionAction + name: test-definition + pipeline: + - {class: actions.deploy.testdef.InlineRepoAction, name: inline-repo-action} + - {class: actions.deploy.testdef.TestOverlayAction, name: test-overlay} + - {class: actions.deploy.testdef.TestInstallAction, name: test-install-overlay} + - {class: actions.deploy.testdef.TestRunnerAction, name: test-runscript-overlay} + - {class: actions.deploy.overlay.CompressOverlay, name: compress-overlay} + - {class: actions.deploy.overlay.PersistentNFSOverlay, name: persistent-nfs-overlay} + - {class: actions.deploy.apply_overlay.ApplyLxcOverlay, name: apply-lxc-overlay} +- class: actions.boot.lxc.BootLxcAction + name: lxc-boot + pipeline: + - {class: actions.boot.lxc.LxcStartAction, name: boot-lxc} + - {class: actions.boot.lxc.LxcAddStaticDevices, name: lxc-add-static} + - {class: connections.lxc.ConnectLxc, name: connect-lxc} + - {class: shell.ExpectShellSession, name: expect-shell-connection} + - {class: actions.boot.environment.ExportDeviceEnvironment, name: export-device-env} +- class: actions.test.shell.TestShellRetry + name: lava-test-retry + pipeline: + - {class: actions.test.shell.TestShellAction, name: lava-test-shell} +- class: actions.deploy.image.DeployImagesAction + name: deployimages + pipeline: + - class: actions.deploy.download.DownloaderAction + name: download-retry + pipeline: + - {class: actions.deploy.download.HttpDownloadAction, name: http-download} +- class: actions.boot.cmsis_dap.BootCMSIS + name: boot-cmsis + pipeline: + - class: actions.boot.cmsis_dap.BootCMSISRetry + name: boot-cmsis-retry + pipeline: + - {class: actions.boot.cmsis_dap.FlashCMSISAction, name: flash-cmsis} + - {class: utils.udev.WaitUSBSerialDeviceAction, name: wait-usb-serial} + - {class: connections.serial.ConnectDevice, name: connect-device} +- class: actions.test.monitor.TestMonitorRetry + name: lava-test-monitor-retry + pipeline: + - {class: actions.test.monitor.TestMonitorAction, name: lava-test-monitor} +- class: power.FinalizeAction + name: finalize + pipeline: + - {class: power.PowerOff, name: power-off} + - {class: power.ReadFeedback, name: read-feedback} diff --git a/lava_dispatcher/test/sample_jobs/frdm-k64f-lxc.yaml b/lava_dispatcher/test/sample_jobs/frdm-k64f-lxc.yaml new file mode 100644 index 000000000..c486e5bc4 --- /dev/null +++ b/lava_dispatcher/test/sample_jobs/frdm-k64f-lxc.yaml @@ -0,0 +1,97 @@ +# Zephyr JOB definition for QEMU +device_type: frdm-k64f +job_name: frdm-k64f-zephyr-latency-benchmark + +timeouts: + job: + minutes: 6 + action: + minutes: 3 + actions: + wait-usb-device: + seconds: 40 + +priority: medium +visibility: public + +metadata: + source: https://git.linaro.org/lava/lava-lab.git + path: shared/health-checks/frdm-k64f.yaml + +protocols: + lava-lxc: + name: lxc-frdm-k64f-test + template: debian + distribution: debian + release: stretch + mirror: http://mirror.bytemark.co.uk/debian + +actions: + +- deploy: + namespace: tlxc + timeout: + minutes: 5 + to: lxc + packages: + - git + - python3 + - python3-pexpect + - telnet + os: debian + +- boot: + namespace: tlxc + prompts: + - 'root@(.*):' + timeout: + minutes: 5 + method: lxc + +- test: + namespace: tlxc + timeout: + minutes: 5 + definitions: + - repository: + metadata: + format: Lava-Test Test Definition 1.0 + name: apache-server + description: "server installation" + os: + - debian + scope: + - functional + run: + steps: + - git clone git://git.linaro.org/lava/lava-lab.git + - ls -d /lava-* + from: inline + name: apache-server + path: inline/apache-server.yaml + +- deploy: + namespace: monitor + timeout: + minutes: 3 + to: tmpfs + images: + zephyr: + url: http://images.validation.linaro.org/functional-test-images/frdm-k64f/latency_measure/zephyr.bin + +- boot: + namespace: monitor + method: cmsis-dap + timeout: + minutes: 10 + +- test: + namespace: monitor + monitors: + - name: tests + start: Nanokernel Latency Benchmark + end: PROJECT EXECUTION SUCCESSFUL + pattern: '(?P<test_case_id>\d+ *- [^-]+) (?P<measurement>\d+) tcs = [0-9]+ nsec' + fixupdict: + PASS: pass + FAIL: fail diff --git a/lava_dispatcher/test/test_lxc.py b/lava_dispatcher/test/test_lxc.py index fba6e1230..68867a6b4 100644 --- a/lava_dispatcher/test/test_lxc.py +++ b/lava_dispatcher/test/test_lxc.py @@ -250,3 +250,12 @@ class TestLxcWithDevices(StdoutTestCase): job = self.factory.create_adb_nuc_job('sample_jobs/adb-nuc.yaml') description_ref = self.pipeline_reference('adb-nuc.yaml', job=job) self.assertEqual(description_ref, job.pipeline.describe(False)) + + def test_iot_lxc(self): + self.factory = Factory() + job = self.factory.create_job('frdm-k64f-01.jinja2', 'sample_jobs/frdm-k64f-lxc.yaml') + job.validate() + self.assertIsNotNone([action for action in job.pipeline.actions if action.name == 'lxc-deploy']) + self.assertIsNotNone([action for action in job.pipeline.actions if action.name == 'lxc-boot']) + description_ref = self.pipeline_reference('frdm-k64f-lxc.yaml', job=job) + self.assertEqual(description_ref, job.pipeline.describe(False)) diff --git a/lava_scheduler_app/tests/device-types/frdm-k64f.jinja2 b/lava_scheduler_app/tests/device-types/frdm-k64f.jinja2 index b0dbf4d32..0f304b8ae 100644 --- a/lava_scheduler_app/tests/device-types/frdm-k64f.jinja2 +++ b/lava_scheduler_app/tests/device-types/frdm-k64f.jinja2 @@ -8,6 +8,7 @@ usb_product_id: '0204' actions: deploy: methods: + lxc: image: parameters: @@ -16,6 +17,7 @@ actions: serial: ssh: methods: + lxc: pyocd: parameters: command: |