34b4f1cb | 19-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
scripts: unit-test: Make valgrind exit failure on error
By default valgrind exits with the exit status of the process under examination. From the manual[1]:
> --error-exitcode=<number> [default: 0
scripts: unit-test: Make valgrind exit failure on error
By default valgrind exits with the exit status of the process under examination. From the manual[1]:
> --error-exitcode=<number> [default: 0] > > Specifies an alternative exit code to return if Valgrind reported any > errors in the run. When set to the default value (zero), the return > value from Valgrind will always be the return value of the process > being simulated. When set to a nonzero value, that value is returned > instead, if Valgrind detects any errors. This is useful for using > Valgrind as part of an automated test suite, since it makes it easy > to detect test cases for which Valgrind has reported errors, just > by inspecting return codes. When set to a nonzero value and Valgrind > detects no error, the return value of Valgrind will be the return > value of the program being simulated.
[1]: https://valgrind.org/docs/manual/manual-core.html#manual-core.options
The default value of 0 is not actually useful for CI, where we want it to bubble up a failure if poor behavior is detected.
Change-Id: I6e7c56b9ccee5c8f9c5234df19ab84009868ff88 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
8bf1ecd7 | 16-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
scripts: unit-test: Constrain test setups to current project
self.package now reflects the top-level meson project name. Using this, prevent incorrect propagation of configuration into subprojects u
scripts: unit-test: Constrain test setups to current project
self.package now reflects the top-level meson project name. Using this, prevent incorrect propagation of configuration into subprojects using the usual meson scope syntax.
Further, now that we're using the scope syntax, meson outputs a different error message:
``` $ meson test --setup=stdplus:__likely_not_a_setup__ -C build __likely_not_a_test__ Unknown test setup 'stdplus:__likely_not_a_setup__'. ```
Adjust the regex that performs the setup error test.
Change-Id: Ia15c0406323f025fff318cb1c1e4a92605d19c96 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
fdfd8d48 | 15-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
scripts: unit-test: Replace outdated timeout logic
Back in 2019 William added a new code-path for exploiting a meson project's 'valgrind' test setup, if one existed[1]:
[1]: https://github.com/open
scripts: unit-test: Replace outdated timeout logic
Back in 2019 William added a new code-path for exploiting a meson project's 'valgrind' test setup, if one existed[1]:
[1]: https://github.com/openbmc/openbmc-build-scripts/commit/49d4e594e8959cd8764
At the time, the behavior of `meson test -t 0 ...` was to immediately terminate. This was useful in the context of testing whether a project provided the a particular test setup, as we could invoke `meson test -t 0 --setup=<name>` without any significant impact on CI execution time.
However, as of meson 0.57.0 the behavior of `meson test -t 0` changed[2]:
> test() timeout and timeout_multiplier value <= 0 > > test(..., timeout: 0), or negative value, used to abort the test > immediately but now instead allow infinite duration. Note that > omitting the timeout keyword argument still defaults to 30s timeout. > > Likewise, add_test_setup(..., timeout_multiplier: 0), or meson test > --timeout-multiplier 0, or negative value, disable tests timeout.
[2]: https://mesonbuild.com/Release-notes-for-0-57-0.html#test-timeout-and-timeout_multiplier-value-0
The consequence of the change is that the test for the existence of the named setup in the project now executes the test suite with timeouts disabled when the named setup is provided by the project at hand.
Further, having established that the named setup is supported by the project, the script then executes the test suite _again_[^1].
A useful observation at this point is the the output from the following set of commands, using stdplus[3] as an example:
``` $ meson test --setup=__likely_not_a_setup__ -C build __likely_not_a_test__ Test setup '__likely_not_a_setup__' not found from project 'stdplus'. $ meson test --setup=valgrind -C build __likely_not_a_test__ ERROR: *:__likely_not_a_test__ test name does not match any test ```
[3]: https://github.com/openbmc/stdplus
Using an unlikely test name we make it likely that we error out in the case where the named test setup is supported by the project. We use this as a substitute for the old behavior of `-t 0`.
[^1]: Though at least it sets a timeout multiplier of 10, rather than disabling the timeout.
Tested: Ran the CI container against:
- entity-manager, which does not define a 'valgrind' test setup - stdplus, which does define a 'valgrind' test setup
Verified that `meson test` was invoked with `--wrapper valgrind` for entity-manager, and `--setup valgrind` for stdplus.
Change-Id: I78090716dd2842e6f4485a69f353d15ca11b62d1 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
bf83a1b3 | 15-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
scripts: unit-test: Derive package name from meson.build
The implementation for package name derivation implemented in BuildSystem.__init__() simply takes the basename of the directory containing th
scripts: unit-test: Derive package name from meson.build
The implementation for package name derivation implemented in BuildSystem.__init__() simply takes the basename of the directory containing the source code if another name isn't supplied.
For meson builds we can make a smarter choice, and the result is that we can lift the requirement that the directory be named after the project. This is helpful for some workflows where the CI container is run locally.
By introspecting the build configuration we can extract the meson project name. Defining the package name as the project name is useful for meson command invocations. For example, the project name can be used to specify constraints on build variables (`-D<project>:werror=false`) and test setups (`--setup=<project>:valgrind`), preventing configuration from incorrectly propagating into other (sub)projects.
Override the package name once the build configuration is available.
Change-Id: I52dc03253a54589cba0ff2fae5ddba2a74d458ba Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
88dd7929 | 02-May-2024 |
Jonathan Doman <jonathan.doman@intel.com> |
Capture stderr from docker build
BuildKit sends build messages to stderr and python `sh` does nothing with it. Redirect stderr to our custom printer function to put everything in the same stream.
C
Capture stderr from docker build
BuildKit sends build messages to stderr and python `sh` does nothing with it. Redirect stderr to our custom printer function to put everything in the same stream.
Change-Id: Id862154be7ef845a758c5f2248f47a8c6d4de7e2 Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
show more ...
|
abb106a9 | 04-Apr-2024 |
Ed Tanous <ed@tanous.net> |
Update nghttp2 1.57->1.61
Change-Id: I8491dd58fb4f197c127624119a67ee0814363935 Signed-off-by: Ed Tanous <ed@tanous.net> |
f9df2daf | 08-Apr-2024 |
Andrew Geissler <geissonator@yahoo.com> |
build-unit-test-docker:eslint: pin to v8.56.0
The new v9.0 release change the API and our existing use of it no longer works with an error like this:
``` Invalid option '--eslintrc' - perhaps you m
build-unit-test-docker:eslint: pin to v8.56.0
The new v9.0 release change the API and our existing use of it no longer works with an error like this:
``` Invalid option '--eslintrc' - perhaps you meant '--ignore'? ```
Until we have some time to sort this out, move us back to the previous release.
Change-Id: Ieed62b82bb3870c22bb377f562fb75b148395cee Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
ac912df8 | 01-Apr-2024 |
Patrick Williams <patrick@stwcx.xyz> |
jenkins: use uploader for validation
In order to determine if a user is authorized for CI, we look them up in Gerrit groups. We should use the uploader for this and not the owner, because otherwise
jenkins: use uploader for validation
In order to determine if a user is authorized for CI, we look them up in Gerrit groups. We should use the uploader for this and not the owner, because otherwise anyone with a Gerrit account could forge a patch-set that was created by an authorized committer and get Jenkins to do the testing (when it should not have been).
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I4fc8415dee35004ebb68b2aea040be27bf521168
show more ...
|
25ba1e2f | 24-Mar-2024 |
William A. Kennington III <wak@google.com> |
build-unit-test-docker: Protobuf versions should match
The python protobuf version should match the compiler and library version, or else we will run into API issues.
Change-Id: Iba9472123734cb1015
build-unit-test-docker: Protobuf versions should match
The python protobuf version should match the compiler and library version, or else we will run into API issues.
Change-Id: Iba9472123734cb1015c0d2f0dc72bd18be660355 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
176b9eba | 11-Mar-2024 |
Ed Tanous <ed@tanous.net> |
Remove valgrind-dbgsym
This package doesn't seem to exist anymore and results in
```base: E: Unable to locate package valgrind-dbgsym```
when trying to build.
From the ubuntu maintainers, this do
Remove valgrind-dbgsym
This package doesn't seem to exist anymore and results in
```base: E: Unable to locate package valgrind-dbgsym```
when trying to build.
From the ubuntu maintainers, this doesn't seem necessary anymore
``` If you are on Ubuntu Jammy (22.04) or later, you do not need to worry about installing debug symbol packages anymore. The Ubuntu project maintains a Debuginfod server, and GDB and other debuginfo-consumer applications support it out of the box. For more information about it, please refer to this page.
If you are on Ubuntu Noble (24.04) or later, Debuginfod is the preferred method as the following information is outdated and, due to a new format for the sources.list entries being moved to the deb822 format.
https://wiki.ubuntu.com/Debug%20Symbol%20Packages#Debuginfod ```
Change-Id: Ib7d221763b30d433c19cfad7fe3b8462ffcb7383 Signed-off-by: Ed Tanous <ed@tanous.net> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
2b2f4f17 | 11-Mar-2024 |
Andrew Geissler <geissonator@yahoo.com> |
userid-validation: add triple crown
CLA recently submitted and accepted
Change-Id: I2e29af28dc4273e5f8a95903f9145ef77c44df6c Signed-off-by: Andrew Geissler <geissonator@yahoo.com> |
3eafe347 | 14-Feb-2024 |
Rahul Maheshwari <rahulmaheshwari@in.ibm.com> |
Adding libdbus-glib-1-2 install to fix Firefox installation issue
Installing libdbus-glib-1-2 facilitates a smooth and functional Firefox experience on Linux systems. With this change robot GUI test
Adding libdbus-glib-1-2 install to fix Firefox installation issue
Installing libdbus-glib-1-2 facilitates a smooth and functional Firefox experience on Linux systems. With this change robot GUI test cases would again start working fine.
Change-Id: I808a54d75e3b6b92f284920ba2cf5fad648dee22 Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
show more ...
|
ab4fee83 | 31-Jan-2024 |
Jonathan Doman <jonathan.doman@intel.com> |
build-unit-test-docker: Run ldconfig
The preinstalled packages are copied to /usr/local but ld is not aware of these libraries until ldconfig is run. This makes the container more useful for interac
build-unit-test-docker: Run ldconfig
The preinstalled packages are copied to /usr/local but ld is not aware of these libraries until ldconfig is run. This makes the container more useful for interactive use out of the box.
Tested: == Before == docker$ ldd /usr/local/lib/libboost_coroutine.so | grep 'not found' libboost_context.so.1.84.0 => not found
== After == docker$ ldd /usr/local/lib/libboost_coroutine.so | grep 'not found' docker$
Change-Id: I3f6508ad6068df03206b6c405532c0230dd95d8d Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
show more ...
|
83d69a2a | 24-Jan-2024 |
Paul Fertser <fercerpav@gmail.com> |
ci: fix gagar-in group name
The original group name gager-in had a typo so it was renamed on Gerrit and now needs to be fixed here to allow CI.
Change-Id: I3adcd8e710fe6eb3a49535f084d2e9a004aab3ff
ci: fix gagar-in group name
The original group name gager-in had a typo so it was renamed on Gerrit and now needs to be fixed here to allow CI.
Change-Id: I3adcd8e710fe6eb3a49535f084d2e9a004aab3ff Signed-off-by: Paul Fertser <fercerpav@gmail.com>
show more ...
|
7cb69957 | 17-Jan-2024 |
Andrew Geissler <geissonator@yahoo.com> |
build-qemu-robot-docker: pin robotframework to v6
A new major release of the robotframework was recently released (v7). This new release appears to not be playing well with our jenkins code update j
build-qemu-robot-docker: pin robotframework to v6
A new major release of the robotframework was recently released (v7). This new release appears to not be playing well with our jenkins code update job. The robot plugin is showing the following fail:
``` Archiving artifacts Robot results publisher started... -Parsing output xml: Done! -Copying log files to build dir: Done! -Assigning results to build: ERROR: Build step failed with exception java.lang.NullPointerException Build step 'Publish Robot Framework test results' marked build as failure ```
Until we understand this better, pin our CI to the v6 level
Change-Id: Ibe4f11a04fa8af5c435a02635916106c59419196 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
308091da | 12-Jan-2024 |
Andrew Geissler <geissonator@yahoo.com> |
userid-validation: adapt to new gerrit email permission
The latest gerrit no longer allows users without account modification permissions to look up users with secondary email addresses. So if someo
userid-validation: adapt to new gerrit email permission
The latest gerrit no longer allows users without account modification permissions to look up users with secondary email addresses. So if someone uploads a commit to gerrit using a secondary email, this script no longer can determine if they are approved.
Utilize the gerrit query command to look up the username of a commit.
Tested: - Confirmed that with this change that a previously failing autobump commit was properly given the ok-to-test +1
Change-Id: Ia44149bb4605261bb3451d4f491051df7fd0bbd4 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
7d88622f | 12-Jan-2024 |
Andrew Geissler <geissonator@yahoo.com> |
userid-validation: add Plexus to approved companies
CLA has been submitted and uploaded to google drive
Change-Id: Ic5ea03aa9373ce1479e62a464bc06f7fb1adde33 Signed-off-by: Andrew Geissler <geissona
userid-validation: add Plexus to approved companies
CLA has been submitted and uploaded to google drive
Change-Id: Ic5ea03aa9373ce1479e62a464bc06f7fb1adde33 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
1d5e00de | 11-Jan-2024 |
Jonathan Doman <jonathan.doman@intel.com> |
format-code: don't spellcheck the commit author's name
Use the git-log --format option to only dump the "raw body (unwrapped subject and body)", and omit the "commit"/"Author:"/"Date:" lines which c
format-code: don't spellcheck the commit author's name
Use the git-log --format option to only dump the "raw body (unwrapped subject and body)", and omit the "commit"/"Author:"/"Date:" lines which can trigger false positives.
Tested: `format-code.sh --enable commit_spelling` doesn't reject my commits :)
Change-Id: Ic03c1c9703a91dab9f268f5f7bbca29cabeeb067 Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
show more ...
|
7c95a37c | 05-Jan-2024 |
Patrick Williams <patrick@stwcx.xyz> |
build-unit-test-docker: ubuntu: switch to noble numbat
The clang-17 package in manic is pinned back at 17.0.2, while the latest release is 17.0.6. There are some subtle bug fixes around type parsin
build-unit-test-docker: ubuntu: switch to noble numbat
The clang-17 package in manic is pinned back at 17.0.2, while the latest release is 17.0.6. There are some subtle bug fixes around type parsing, which are especially useful for clang-format. Upgrade the distro so we can get these fixes.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I53dce7c01bc04cbff193fd660984f2eb985be91a
show more ...
|
05806f5e | 07-Jan-2024 |
Andrew Geissler <geissonator@yahoo.com> |
boost: move to 1.84.0
Change-Id: I68100ca862c86324297fd46f3254674ec7a4fe41 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> |
38b46870 | 07-Jan-2024 |
Andrew Geissler <geissonator@yahoo.com> |
boost: move download to github
Boost is having significant issues hosting on jfrog. Move to github. The current patch is not applying cleanly so remove that until we can figure it out. Getting most
boost: move download to github
Boost is having significant issues hosting on jfrog. Move to github. The current patch is not applying cleanly so remove that until we can figure it out. Getting most repos to build is better then none at this point (the patch was for bmcweb)
https://lists.boost.org/Archives/boost/2024/01/255654.php
Change-Id: I594eac7666f96a7ec7f6991270d140357cf43aaf Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
910732cd | 02-Jan-2024 |
Ed Tanous <ed@tanous.net> |
Run commit checkers in CI
71b73249a30d589c97e15b387d4a18e8e6b795a9 Made the change that format-code is only run on repos that have the appropriate files. Because commit messages don't have a "file"
Run commit checkers in CI
71b73249a30d589c97e15b387d4a18e8e6b795a9 Made the change that format-code is only run on repos that have the appropriate files. Because commit messages don't have a "file" in the normal sense, .git/COMMIT_EDITMSG was used instead. While this buffer file contains the last commit message that was written, it only works on repos that have had a commit done on them. For developers, this gives the expected result, where commit message tools are run. For CI, where the repos never had a commit message interaction, this leads to the commit message runners never being run.
This commit moves the file check to .git (ie, that this is a git repo) which should match everything. This was arguably better than adding a "run all the time" mechanism specific to commit messages.
Tested: Removing .git/COMMIT_EDITMSG on master and running a build shows commit checks not run when run against master.
Running format-code.sh against this patch now shows commit tools run in all cases.
Signed-off-by: Ed Tanous <ed@tanous.net> Change-Id: Ia596689b2ba220fc1dd17b713143ffc3fc96364f
show more ...
|
0b1b8ecb | 25-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
format-code: revert inadvertent changes
This partially reverts commit 2612b36b4cdeeb143b6d2cc9ef14dfc84f492ba5.
Some changes got merged in unintentionally that disabled big portions of the format t
format-code: revert inadvertent changes
This partially reverts commit 2612b36b4cdeeb143b6d2cc9ef14dfc84f492ba5.
Some changes got merged in unintentionally that disabled big portions of the format tool. Reset those back to the previous state.
Change-Id: I47f0094ecec0ed670944736fe8f56a4084594d07
show more ...
|
2612b36b | 21-Dec-2023 |
Andrew Jeffery <andrew@aj.id.au> |
OWNERS: Update Andrew's preferred email
We're having some grief with non-preferred emails in Gerrit[1]. I now prefer project-related content goes to my work email address, so use my non-preferred em
OWNERS: Update Andrew's preferred email
We're having some grief with non-preferred emails in Gerrit[1]. I now prefer project-related content goes to my work email address, so use my non-preferred email to implement the switch.
[1]: https://issues.gerritcodereview.com/issues/317345953
Change-Id: I1e17c560fd170304229c634f560dec59528e6e41 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
ac9c9c73 | 07-Dec-2023 |
Lei YU <yulei.sh@bytedance.com> |
unit-test: meson: Use clang-tidy-fix
In meson 1.3.0 `clang-tidy-fix` target is added if `.clang-tidy` file exists. This could be used to run clang-tidy with the fixes applied to the source code.
Ch
unit-test: meson: Use clang-tidy-fix
In meson 1.3.0 `clang-tidy-fix` target is added if `.clang-tidy` file exists. This could be used to run clang-tidy with the fixes applied to the source code.
Change the unit-test script to use `clang-tidy-fix` for meson projects.
Tested: Manually verify in a meson proejct that the `clang-tidy` check fixes the code if issues are found.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: Ic6e1c6253b7fba075c26d9aad607854b49be9b23
show more ...
|