Conversation
|
I've run this with my test tree and got this report: There are 2 lines because they were with kernels built with gcc and clang. The rk3399-gru-kevin results are missing due to some infrastructure error (console was down), next round should have them in principle. Some sample jobs in LAVA: |
6fb632f to
0c334e8
Compare
0c334e8 to
3ed50c0
Compare
|
This change (specifically the last patch) is also using a modified buildroot ramdisk. What's missing in our buildroot images, and shouldn't we just update them instead? |
|
The Ultimately I think the "baseline" test plan should replace our current "boot" tests (see thread on the mailing list). We can keep 2 separate rootfs images until that happens. I've found that the |
|
OK, thanks for the clarification. I think getting merging boot and baseline (or getting rid of boot) is the right strategy. So, I'm fine with this change, but I'd prefer to keep everything that's staging only in the last patch. As I pointed out above, it's not quite a clean separation. |
3ed50c0 to
7c94c60
Compare
|
@khilman So if I understand correctly what you mean, you prefer to have the I was initially planning to add a config fragment in buildroot to add bootrr and may other small things if necessary and keep building 2 flavours for each architecture, with and without this fragment. That's why I added the In any case I'll update this PR once other things it depends up have been resolved, I'll add a checklist to keep track of them. |
7c94c60 to
53306f4
Compare
|
There's a small issue with how test results from LAVA callbacks are stored in the database: the test suite results are converted into a test group containing some results, but it doesn't take into account the case where there are several test suites in a single job or if the test suite doesn't have the same name as the test plan. In this case, the plan is "baseline" and the test suite is "bootrr", so the results are stored as "bootrr" rather than "baseline". This needs to be fixed so the plan name is used instead, and if there are several test suites in the job (or if subsequent jobs send more results for the same test plan) then the results for each test suite should be kept within a separate group. |
53306f4 to
f47f3df
Compare
785467e to
d896732
Compare
8a32dc9 to
1626085
Compare
|
The backend has been fixed to handle LAVA jobs with test suites that have a different name than the test plan, or multiple test suites. @khilman I think it's best to keep building 2 flavours of buildroot during the transition phase between boot and baseline: the one used for current boot tests, and a "baseline" one with extra scripts installed for |
1626085 to
f8adb58
Compare
|
@gctucker: OK with me to have both.
|
3004a63 to
86d43dd
Compare
86d43dd to
4a1936b
Compare
|
Tested OK on staging with buildroot file systems from here: Sample boot and baseline runs: |
|
Email report for the baseline test plan showing no failures: |
|
@khilman The "base" version of the file system failed for However the "baseline" seems to have worked, so maybe that was a glitch in the Jenkins job. All the other combinations worked. |
|
For the record, this is how the Jenkins job is configured to run the build script for staging.kernelci.org, with PARAM_ARCH and PARAM_VARIANT set as Matrix axis values: Values for Values for |
I ran a build again this morning and it failed in the same way, for some reason the "base" fragment fails with risc-v but not the "baseline" one o.O |
jenkins/buildroot-builder.sh
Outdated
| variant=${2:-base} | ||
|
|
||
| # Build | ||
| ./configs/frags/build ${arch} ${variant} |
There was a problem hiding this comment.
The arg order is important here, we want options from $arch to override options from $variant (especially when variant == base) so this should be:
./configs/frags/build ${variant} ${arch}
4a1936b to
6772571
Compare
|
OK thanks @khilman, the latest update of this PR worked. I've now changed the staging Jenkins config to this: |
f5f8068 to
8ff2501
Compare
Add arch and frag arguments on the command line rather than relying on the environment variables. Default to "base" for the fragment as this is how KernelCI's buildroot build script works. Also use the fragment name in the path when uploading the rootfs binaries to the storage server. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Add "set -e" to abort the script when any comand fails, typically if the build fails to avoid silently uploading any previous rootfs. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Add a "baseline" test plan intended to ultimately replace "boot" tests. This starts by using bootrr to verify that all the expected device drivers have been intialised correctly, to strike a good compromise between runtime and test coverage. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Add a definition for the buildroot_baseline_ramdisk rootfs as well as the baseline test plan and enable it on rk3399-gru-kevin and rk3288-veyron-jaq. These devices have a dedicated script in bootrr to look for specific device drivers and run a good series of checks. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Enable the baseline test plan to run in lab-collabora. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Tweak timeouts and add baseline reports for gtucker's tree. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Enable sending baseline email reports to the regular kernelci-build-reports mailing list for mainline and next. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
8ff2501 to
b05e507
Compare
|
All the builds passed, I also added a step to delete the output directory before starting each buildroot build to avoid hard to track issues. The binaries can be found here: Email reports for boot and baseline using these file systems: |
|
Updated Jenkins job script, for the record: #!/bin/bash
set -e
rm -rf kernelci-core
git clone --depth 1 --branch staging.kernelci.org https://github.com/kernelci/kernelci-core
export PATH=$PWD/kernelci-core:$PATH
rm -rf output
./kernelci-core/jenkins/buildroot-builder.sh $ARCH $FRAG |
This is an initial PR to start adding the new
baselinetest plan. See previous thread on the mailing list for some background:https://groups.io/g/kernelci/topic/29693068
Initially this would be to run
bootrron a few platforms with a dedicated script to check the device drivers are initialised properly on them. Then it would be necessary to have a way to automatically determine the expected devices in order to scale better with the number of platforms tested on kernelci.org, probably by reading the device tree or some other info which the kernel itself uses to load drivers and probe devices.Another part of this test plan would be to look for kernel errors rather than plainly relying on LAVA's attempt to reach a login prompt.
This PR relies on the
bootrrscripts to be added to abuildrootimage, so it depends on the following ones to be resolved first:google,kevinscript inbootrrGoogle kevin fixes linux-msm/bootrr#24make installinbootrrT14637 fix install directory bootrr#1bootrrpackage to buildroot T14637 add bootrr buildroot#3bootrrin Jenkins and use it on staging