Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
49
sources/meta-arm/documentation/oeqa-fvp.md
Normal file
49
sources/meta-arm/documentation/oeqa-fvp.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# OEQA on Arm FVPs
|
||||
|
||||
OE-Core's [oeqa][OEQA] framework provides a method of performing runtime tests on machines using the `testimage` Yocto task. meta-arm has good support for writing test cases against [Arm FVPs][FVP], meaning the [runfvp][RUNFVP] boot configuration can be re-used.
|
||||
|
||||
Tests can be configured to run automatically post-build by setting the variable `TESTIMAGE_AUTO="1"`, e.g. in your Kas file or local.conf.
|
||||
|
||||
meta-arm provides the OEFVPTarget which must be set up in the machine configuration:
|
||||
```
|
||||
TEST_TARGET = "OEFVPTarget"
|
||||
TEST_SERVER_IP = "127.0.0.1"
|
||||
TEST_TARGET_IP = "127.0.0.1:2222"
|
||||
IMAGE_FEATURES:append = " ssh-server-dropbear"
|
||||
FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "2222=22"
|
||||
FVP_CONSOLES[default] = "terminal_0"
|
||||
FVP_CONSOLES[tf-a] = "s_terminal_0"
|
||||
```
|
||||
|
||||
The test target also generates a log file with the prefix 'fvp_log' in the image recipe's `${WORKDIR}/testimage` containing the FVP's stdout.
|
||||
|
||||
OEFVPTarget supports two different test interfaces - SSH and pexpect.
|
||||
|
||||
## SSH
|
||||
|
||||
As in OEQA in OE-core, tests cases can run commands on the machine using SSH. It therefore requires that an SSH server is installed in the image.
|
||||
|
||||
This uses the `run` method on the target, e.g:
|
||||
```
|
||||
(status, output) = self.target.run('uname -a')
|
||||
```
|
||||
which executes a single command on the target (using `ssh -c`) and returns the status code and the output. It is therefore useful for running tests in a Linux environment.
|
||||
|
||||
For examples of test cases, see meta/lib/oeqa/runtime/cases in OE-Core. The majority of test cases depend on `ssh.SSHTest.test_ssh`, which first validates that the SSH connection is functioning.
|
||||
|
||||
## pexpect
|
||||
|
||||
To support firmware and baremetal testing, OEFVPTarget also allows test cases to make assertions against one or more consoles using the pexpect library.
|
||||
|
||||
Internally, this test target launches a [Pexpect][PEXPECT] instance for each entry in FVP_CONSOLES which can be used with the provided alias. The whole Pexpect API is exposed on the target, where the alias is always passed as the first argument, e.g.:
|
||||
```
|
||||
self.target.expect('default', r'root@.*\:~#', timeout=30)
|
||||
self.assertNotIn(b'ERROR:', self.target.before('tf-a'))
|
||||
```
|
||||
|
||||
For an example of a full test case, see meta-arm/lib/oeqa/runtime/cases/linuxboot.py This test case can be used to minimally verify that a machine boots to a Linux shell. The default timeout is 10 minutes, but this can be configured with the variable TEST_FVP_LINUX_BOOT_TIMEOUT, which expects a value in seconds.
|
||||
|
||||
[OEQA]: https://docs.yoctoproject.org/test-manual/intro.html
|
||||
[FVP]: https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
||||
[RUNFVP]: runfvp.md
|
||||
[PEXPECT]: https://pexpect.readthedocs.io/en/stable/overview.html
|
||||
Reference in New Issue
Block a user