Commit Graph

6373 Commits

Author SHA1 Message Date
Joshua Watt
8ae00cf20d bitbake: hashserv: tests: Add external database tests
Adds support for running the hash equivalence test suite against an
external hash equivalence implementation.

(Bitbake rev: c1fbc3f68b94905d19ffcf4a6da5b27f0bf14599)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:33:02 +00:00
Joshua Watt
732ff20cf9 bitbake: asyncrpc: Add context manager API
Adds context manager API for the asyncrcp client class which allow
writing code that will automatically close the connection like so:

    with hashserv.create_client(address) as client:
       ...

Rework the bitbake-hashclient tool and PR server to use this new API to
fix warnings about unclosed event loops when exiting

(Bitbake rev: d01d684a0f6398270fe35ed59b7d28f3fd9b7e41)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:33:02 +00:00
Joshua Watt
2484bd8931 bitbake: hashserv: Add websocket connection implementation
Adds support to the hash equivalence client and server to communicate
over websockets. Since websockets are message orientated instead of
stream orientated, and new connection class is needed to handle them.

Note that websocket support does require the 3rd party websockets python
module be installed on the host, but it should not be required unless
websockets are actually being used.

(Bitbake rev: 56dd2fdbfb6350a9eef43a12aa529c8637887a7e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:33:02 +00:00
Joshua Watt
8f8501ed40 bitbake: asyncrpc: Abstract sockets
Rewrites the asyncrpc client and server code to make it possible to have
other transport backends that are not stream based (e.g. websockets
which are message based). The connection handling classes are now shared
between both the client and server to make it easier to implement new
transport mechanisms

(Bitbake rev: 2aaeae53696e4c2f13a169830c3b7089cbad6eca)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:33:02 +00:00
Alassane Yattara
2378e4bdfa bitbake: toaster: Bug-fix webdriver No parameter named options
Change options to chrome_options

(Bitbake rev: 99305c25fafa61064a1bb0849616e4627e3453d7)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:06:59 +00:00
Alassane Yattara
707ffa79af bitbake: toaster: Test jumbotron links visible and clickable
Test that the followings link are visible and clickable:
 - OpenEmbedded
 - BitBake
 - Yocto Project
 - Read the Toaster manual
 - Contribute to Toaster

 - Fixed typo: using instead of usign line:97
 - Remove whitespace

(Bitbake rev: d4c35eaff3c152ee864a886aac8ad5476f7f29f7)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:03:24 +00:00
Alassane Yattara
6031006582 bitbake: toaster: Test documentation link in landing header is displayed
- check that the documentation link is visible
- check browser open new tab toaster manual when clicking on the documentation link

(Bitbake rev: befe970fcc7742cf266e03849be36c733bb09de6)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:03:24 +00:00
Alassane Yattara
b1156a1a1b bitbake: toaster: Check info_sign is visible and clickable in landing page
Check the information icon is visible and clickable
Also if popup appearing when clicked and contain "Toaster version information"

(Bitbake rev: 0508fd74ebd43359473a9718edf0d146002041ad)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:03:24 +00:00
Alassane Yattara
0f12b4f389 bitbake: toaster: Added pytest.ini file
The main reason for using pytest is to be able to generate a positive test report
using the pytest-html plugin.

Integrating Pytest with Tox is a straightforward process, this can be
done using tox.ini instead of pytest.ini used to configure pytest, that
is another reason for using pytest. Tox is a tool that automates testing
across different virtual environments, it can help ensure application
will be tested against multiple Python versions and environments.
https://github.com/pytest-dev/pytest/blob/main/tox.ini

Generated reports create a historical record of test results over time.
This can help track the progress of the application's stability and quality

Documentation and Transparency: Test reports provide us a clear and detailed
documentation of the test results. They show what tests were executed,
which ones passed, and which ones failed. This transparency is critical
for understanding the current state of the application and its test coverage.

Communication: Test reports are an effective means of communication among community
to understand the testing progress and results.

Debugging, Troubleshooting Historical Tracking and Regression Testing:
In case of test failures, a detailed test report can be invaluable for debugging.
It provides information about the specific test case that failed,
the input data used, and any error messages.

(Bitbake rev: 6ba046b8d0d821e304c14b78ef6b00945e0ab453)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:18 +00:00
Alassane Yattara
8b957cf1fe bitbake: toaster: fixed: Tests fail when executed one after the other out of sequence
As mentionned in earlier commit, pytest-django takes a conservative approach
to enabling database access. By default our tests will fail if they try to access
the database, Only if we explicitly request database access will this be allowed,
using pytest marks to tell pytest-django our test needs database access.

A side effect of pytest mark, is test_case method marked is execute out of
scope of its module class, which create an inconsistance sequence and make fails
followings tests.

The scope of the ordering is global per default, e.g. tests with lower ordinal
numbers are always executed before tests with higher numbers in the same test session,
regardless of the module and class they reside in. This can be changed by using
the --order-scope option from module pytest-order.

To fix that i added execution order to tests suite using pytest-order.

(Bitbake rev: 8bf32459ab6d8ce7632fca0a4ce0f3aecc7495c2)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:18 +00:00
Alassane Yattara
5e46a34555 bitbake: toaster: Bug-fix django.db.utils.IntegrityError: Problem installing fixture
toastergui-unittest-data.xml fixture contains a release objects with
name="master" or an release with same name seem existing
- Change release name and fix bitbakeversion instead of bitbake_version

(Bitbake rev: 36b48905ea26e5173b5ab2369b90952bc13e9c0d)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:18 +00:00
Alassane Yattara
dcb6a5cca6 bitbake: toaster: fixed pytest error: Database access not allowed, use the "django_db"
Pytest failed on functional/test_functional_basic because database access not allowed
- we should use "django_db" fixture to allowed db access

Note: Pytest-django takes a conservative approach to enabling database access.
By default your tests will fail if they try to access the database.
Only if you explicitly request database access will this be allowed.

https://pytest-django.readthedocs.io/en/latest/helpers.html#pytest-mark-django-db-request-database-access

(Bitbake rev: 5f92a6b13cdea26b26ff939e9a3f746f7d0937b7)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:18 +00:00
Alassane Yattara
20705f46af bitbake: toaster: Bug-fix pytest and Failed: Database access not allowed
Remove load and create build environment from tests/functional/functional_helpers
- Testcases in the FunctionalTestCase do not require a build process,
- Also marked setUpClass or class with pytest django_db, db ... not
  working, as declared above of file functional_helpers.py, The database access
  process runs as an external process, separate from the test case process
  and outside the context of pytest.

(Bitbake rev: 35c02c26541c05a8d147f41d0855e09d8fba1a83)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:18 +00:00
Alassane Yattara
f8ee2cb52e bitbake: toaster: Update orm.models to catch error ProcessLookupError
- catch error ProcessLookupError and logs it

(Bitbake rev: a61a5f47dc56daafa9089adaad388b3c0b59155d)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 17:01:17 +00:00
Alassane Yattara
d34591ae7b bitbake: toaster: Add toaster-tests-requirements.txt to add pytest and some plugins
The pytest framework makes it easy to write small, readable tests, and can scale
to support complex functional testing for applications and libraries.
- Pytest-html is a plugin for pytest that generates a HTML report for test results.
- Pytest-django allows us to test Django project/applications with the pytest testing tool.
- Pytest-env is a pytest plugin that enables us to set environment variables in a pytest.ini or pyproject.toml file
- Pytest-metadata is a plugin for pytest that provides access to test session metadata, required by pytest-html plugin
to provides metadata information in the HTML report like below:

Python 3.10.12
Platform Linux-6.2.0-35-generic-x86_64-with-glibc2.35
Packages:
    - pytest: 7.4.2
    - pluggy: 1.3.0
Plugins	:
    - django: 4.5.2
    - metadata: 3.0.0
    - order: 1.1.0
    - html: 4.0.2
    - env: 1.1.0

To make difference between bitbake and toaster python requirements,
a dedicated requirements file is created for toaster in root of toaster dir.

(Bitbake rev: 804d17df22391b2d18a68d8cb05a04841d4e551b)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 16:59:37 +00:00
Richard Purdie
6f427822e8 bitbake: runqueue: Fix errors when using -S printdiff
When running printdiff, messages like:

"Can't find a task we're supposed to have written out?"

might be shown. This happens when hashequivalence is enabled and is due
to the use of "hash" when "unihash" should be used (which defaults back
to hash). Changing this fixed various errors oe-selftest highlighted.

Also print the task ID when erroring about a missing task as it aids
debugging.

(Bitbake rev: e7783bbe0559abb91f5038cf83575c0f25138af2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 11:28:16 +00:00
Richard Purdie
a4734d6b6a bitbake: runqueue: Fix runall option for setscene tasks
If --runall is used with setscene tasks, it will still skip them if it
can. By marking the tasks as targets, this avoids that skipping
and means --runall deploy_source_date_epoch works as expected for
example.

(Bitbake rev: 8c6cd1e8dd224bc1cc92736cbb7e113fd1fb5aae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-09 11:28:16 +00:00
Marlon Rodriguez Garcia
6eb23b311d bitbake: toaster: replace deprecated tags ifequal and ifnotequal
Tags ifequal and ifnotequal are deprecated and were removed on version 3.1
https://django.readthedocs.io/en/stable/releases/3.1.html#deprecated-features-3-1

(Bitbake rev: d6dd2d091c18a888a237d986ae2bd6dae068be5a)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-08 18:59:02 +00:00
Etienne Cordonnier
f1b0ab7e4b bitbake: bitbake-worker: add header with length of message
The IPC mechanism between runqueue.py and bitbake-worker is currently
not scalable:

The data is sent with the format <tag>pickled-data</tag>, and bitbake-worker
has no information about the size of the message. Therefore, the bitbake-worker
is calling select() and read() in a loop, and then calling "self.queue.find(b"</" + item + b">")"
for each chunk received.

This does not scale, because queue.find has a linear complexity relative to the size of the queue,
and workerdata messages get very big e.g. for builds which reference a lot of files in SRC_URI.
The number of chunks varies, but on my test system a lot of chunks of 65536 bytes are sent, and each
iteration takes 0.1 seconds, making the transfer of the "workerdata" data very slow (on my test setup
35 seconds before this fix, and 1.5 seconds after this fix).

This commit adds a 4 bytes header after <tag>, so that bitbake-worker knows how many bytes need to be
received, and does not need to constantly search the whole queue for </tag>.

(Bitbake rev: 595176d6be95a9c4718d3a40499d1eb576b535f5)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-06 16:45:11 +00:00
Marlon Rodriguez Garcia
6745d5eb7c bitbake: toaster: add tox.ini file to execute test suite
Updated tox file to fix enviroments variables.
to run tox use the following command:
tox -e env_name -c /path/to/file/tox.ini
See tox cli https://tox.wiki/en/latest/cli_interface.html
The variable env_name is linked to the python versions (py38, py39, py310).
If env_name option is not set,  the test suite will run for all indicated versions.

It was also modified the webdriver options for chrome to run selenium test in console because of the error detected in the previous test run
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
  (session not created: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

(Bitbake rev: 11dfd7c05642269b7a8bff2918667348d041ec79)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>

Changes in v2
- Updated variable path BUILDDIR and EVENTREPLAY_DIR to use enviroment value
- Updated toaster-requirements.txt file path
- Removed flake8
- Added webdriver options to chrome

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-30 22:24:32 +00:00
Alassane Yattara
7e0cce4f6b bitbake: toaster: Write logs to BUILDDIR/toaster_logs
Fixes "2efb14648 toaster: Monitoring - implement Django logging system" when
running in a container.

When running in a container, the previous approach of using BASE_DIR
is not a writable path. Also, we really do not want to be writing logs into
the source tree, as the BASE_DIR was resolving to bitbake/lib/toaster/logs

Since Toaster is only ever running in an environment where oe-init-buildenv
or similar has been sourced, we should instead write the logs to BUILDDIR.

Using BUILDDIR to logs make path writable but django-log-viewer does'nt manage
to write logs using an absolute path as BUILDDIR, where the existing toaster_ui.log
was already being written.

Also drop the /logs/ directory, as it has not been created which also breaks
in a container environment

To handle the constraints linked to django-log-viewer and /logs/, we've updated
bitbake/bin/toaster to create a toaster_logs/ directory in BUILDDIR if it doesn't exist,
when toaster starts up.

Also manage to set BUILDDIR/toaster_logs/ as default location for toaster logs.

(Bitbake rev: efbd9d54f57be7a7a10f0b56e7e62c25974e99e6)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Tested-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-27 08:32:29 +01:00
Ragesh Nair
eadd4605da bitbake: fetch2/git: fix lfs fetch with destsuffix param
Pre-fetching of LFS blobs now also works if a destsuffix parameter is
supplied.

This also fixes issues with Yocto Kirkstone (and newer) builds, where
fetching the LFS blobs is retried unsuccessfully during do_unpack, as
network access is blocked for any task other than do_fetch.

(Bitbake rev: e411dc07d032be6811d0393c50a06fc28e669b24)

Signed-off-by: Ragesh Nair <ragesh.nair@duagon.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Chris Laplante
c4205d2455 bitbake: codeparser: add missing 'import os'
(Bitbake rev: 302969885d37a76edec3aa79181e98f8d7e28021)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Chris Laplante
9ddd559091 bitbake: runqueue: set has 'add', not 'append' method
Discovered via pylint

(Bitbake rev: 1a353cda696b7f59386ad2d78a57005b90a37da4)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Alassane Yattara
0a55156ca0 bitbake: Toaster: bug-fix on tests.views.test_views.py
- Update toastergui/fixtures/toastergui-unittest-data.xml to added tow distro
objects. Test fail because distro table was empty

(Bitbake rev: 0487970d0e762fad021bdfb53ccbd4c75098c7dd)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Alassane Yattara
01e68702fe bitbake: Toaster: bug-fix on tests/views/test_views.py
- Create a tmp file for base recipe, otherwise test fail it doesn't exist

(Bitbake rev: e865f6dc7c7c4f0b447806d525cd69e72c290800)

Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Alassane Yattara
2403af6533 bitbake: Toaster: bug-fix on custom image test cases
To test custom image creation, a file for base_recipe should exists otherwise test fail,
User we need to build a base image first, that will create a file for base_recipe, which take a while.

To avoid test dependencies between test and run build, i create a tmp file for base recipe.

Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 99c24df73831a72f311090b3aebcf3cc4e86851a)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Alassane Yattara
b879dc5d9a bitbake: Toaster: bug-fix on /toastermain/logs.py
- Update /toastermain/logs.py to fix:
AttributeError: 'NoneType' object has no attribute 'view_name'

Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 307f40fc83a0e3d530bf934ef4aefd8e15cf27de)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Alexander Kanavin
3daf36c629 bitbake: runqueue.py: clarify that 'closest' signature means 'most recent' (and not closest in its content)
This is printed by 'bitbake -S printdiff' and more accurately reflects what
the code does.

Most of the time the most recent item should be what the user wants to see when debugging sstate
misses, but there could also be printdiff-all (print differences with all
matching sstate objects), or printdiff-N (N most recent, and not just the latest).

(Bitbake rev: 315f48f965a54da5cec92908d91aa61c2d450add)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
BELHADJ SALEM Talel
33503a6b16 bitbake: Fix find_bbfiles string endswith call
(Bitbake rev: 5f742591b251b6a5302ab07fe6b809c2863c3c70)

Signed-off-by: Talel BELHAJSALEM <bhstalel@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Pavel Zhukov
695ba46528 bitbake: tests/fetch.py: Add tests to cover multiple branch/name parameters
Create repository with few branches and test if fetcher can work
with such repository as PREMIRROR

(Bitbake rev: a1737610e5d5b61e126ec3632d7f27b337a87818)

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 11:46:36 +01:00
Chris Laplante
2460c1b3ec bitbake: codeparser: replace deprecated ast.Str and 's'
These have been deprecated since 3.8

(Bitbake rev: 5419a8473d6d4cd1d01537de68ad8d72cf5be0b2)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
e0e0a3f510 bitbake: Toaster: Fixed javascript issue on tests.browser.test_js_unit_tests
- Update /toastergui/static/js/projectpage.js to fix following
javascript issue that make fail test_js_unit_tests.
Uncaught TypeError: Cannot read properties of null (reading 'name')

Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 87f5987e22b3d1c05b29a25ef354ecd63ac9e1df)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
50d88674b2 bitbake: Toaster: Bug-fix failure on tests.browser.test_layerdetails_page
Call wait_until_visible before send_keys to be sure inputs is visible otherwise
we get followings error: selenium.common.exceptions.WebDriverException -> Message: element not interactable
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: 8d671e50036acb0e65c90a07f757e066c0463113)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Alassane Yattara
7774bab05f bitbake: toaster: bug-fix on tests.browser.test_most_recent_builds_states
Fixed errors that make test_most_recent_builds_states failed.
Signed-off-by Alassane Yattara <alassane.yattara@savoirfairelinux.com>

(Bitbake rev: d34d1f58bd30b998ffaef2e91f02a26ca06c2745)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
480aeaff08 bitbake: toaster: fixed functional test
Updated functional test file to fix url access and added waiting time after click operations
to allow following elements to be available for tests, this will needed to be revisited
when autobuilder is ready

(Bitbake rev: fa30af75b3b7d37215f2615aa4b458525fce509e)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
06f2cf81f4 bitbake: toaster: update jquery version 2.0.3 -> 3.7.1
Updated jquery version from 2.0.3 to 3.7.1
https://blog.jquery.com/2023/08/28/jquery-3-7-1-released-reliable-table-row-dimensions/

(Bitbake rev: 8490844a0304ca2af2ee6c5700790121cccf0a13)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:33 +01:00
Marlon Rodriguez Garcia
ae269e191b bitbake: toaster: Update bootstrap version to 3.4.1
Update bootstrap version to 3.4.1 to fix incompatibility issues and security vulnerabilities
Files base, base_specific and js-unit-test were updated to match new versions of files

(Bitbake rev: 046bbe22f7144efa02fc33fec9c933c2e97e0ba7)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:31 +01:00
Marlon Rodriguez Garcia
5ed3a577cc bitbake: toaster: updated bootstrap version 3.3.6 -> 3.3.7
Updated bootstrap from version 3.3.6 to 3.3.7 to fix compatibility errors
https://github.com/twbs/bootstrap/issues/16834

(Bitbake rev: 5254e826877e416364f498f8d320b99970ea162d)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-17 11:41:28 +01:00
Alberto Pianon
ef3e46afd9 bitbake: fetch2: Add API for upstream source tracing
This patch adds an API to bb.fetch2 to enable users to plug in an unpack
tracer that can trace each source file back to its corresponding
upstream source url, even when multiple upstream sources are combined
together in the same unpack directory. This may be required for software
composition analysis, license compliance, and detailed SBoM generation.

This patch provides only the needed hooks in bb.fetch2 code and a dummy
abstract class defining the API; users may load their own unpack tracer
class by setting the BB_UNPACK_TRACER_CLASS config parameter.

(Bitbake rev: 05051152cc42acc52bcf9af9a696f632fac4307f)

Signed-off-by: Alberto Pianon <alberto@pianon.eu>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-15 09:12:43 +01:00
Joshua Watt
b026e816f7 bitbake: hashserv: Add API to clean unused entries
Adds an API to remove unused entries in the outhash database based on
age and if they are referenced by any unihash

(Bitbake rev: a169ac523d166c6cbba918b152a76782176c3e88)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
cc218dd108 bitbake: hashserv: Extend get_outhash API to optionally include unihash
Extends the get_outhash API with a flag indicating whether to include
the unihash in the output. This is means that the query doesn't require
the unihash entry to be present to return a result

(Bitbake rev: b8d6abfeb4a0765727a62b3d8d83276335c7c7d6)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Joshua Watt
61f5c32308 bitbake: hashserv: Add remove API
Adds a `remove` API to the client and server that can be used to remove
hash equivalence entries that match a particular critera

(Bitbake rev: 861d068b3a9fb5e91a01dbec54996a5a6f93ef29)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09 15:48:44 +01:00
Richard Purdie
b8b5c786e7 bitbake: selftest/fetch: Ensure top level directory timestamp doesn't break test
The infrastructure changes highlighed an issue where the top level directory
mtime stamp isn't included in the tarballs. This isn't an issue the test is
meant to check for so ignore it.

(Bitbake rev: 5a1e5b8dc55d6bb4d93bac3492f8c43ff957e712)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Alassane Yattara
78b02e1845 bitbake: toaster: Monitoring - implement Django logging system
(Bitbake rev: 2efb146480ee46c0463d9edb71bf1c03ce15bcf2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Marlon Rodriguez Garcia
3ac4694fc3 bitbake: toaster: update selenium version and code syntax
Updated selenium version to latest 4.13.0, changed selenum specific version syntax elements to accomplish test success

(Bitbake rev: 868c88a249ef4b9fe5a891e76e25e054e4fcd994)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-06 11:42:46 +01:00
Julien Stephan
8eeb58cf4a bitbake: bitbake: cooker: add a new function to retrieve task signatures
adding a new command in cooker to compute and get task signatures

this commit also add the associated command and event needed to get the
signatures using tinfoil

(Bitbake rev: 05c15162de90c41dad67e37a95ec9fdb440a7864)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-28 12:38:26 +01:00
Matthias Schnelte
6cb490713e bitbake: fetch2: Adds vscode devcontainer support
Visual studio code is injecting a git credential helper
into every dev container. This helper is forwarding the git credentials
from the host into the container.

In order for this helper to work the REMOTE_CONTAINERS_IPC
needs to be available in the environment for all git operations
that require authentication.

(Bitbake rev: 612bdf09416ff96d08b22cf92b077516d23d0963)

Signed-off-by: Matthias Schnelte <develop@schnelte.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:38:45 +01:00
Ross Burton
362c70a993 bitbake: bitbake/lib: spawn server/worker using the current Python interpreter
The user may have invoked ./bin/bitbake using a different Python
interpreter than whatever python3 is on $PATH (for example, explicitly
using a different version).  However, as the server and workers are
spawned directly they'll use the hashbang and thus a different Python.

We also ensure that argv[0] is set to sys.executable instead of
'bitbake-server' or 'bitbake-worker', so that sys.executable is set to
the right value inside the child.  Without this the server won't be
able to start any workers.

(Bitbake rev: b44d5d2a53d3082c8ce94e09c0cf833e33e25aec)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00
Peter Kjellerstedt
c7f99d688c bitbake: tinfoil: Do not fail when logging is disabled and full config is used
If Tinfoil is initialized with setup_logging = False and
Tinfoil.prepare() is called with config_only = False, then it fails
because self.localhandlers is only initialized when
setup_logging = True.

This is seen with, e.g., `bitbake-getvar -q -r busybox MACHINE`:

  Traceback (most recent call last):
    File ".../bitbake/bin/bitbake-getvar", line 41, in <module>
      tinfoil.prepare(quiet=2)
    File ".../bitbake/lib/bb/tinfoil.py", line 390, in prepare
      for handler in self.localhandlers:
  AttributeError: 'Tinfoil' object has no attribute 'localhandlers'.
  Did you mean: 'oldhandlers'?

(Bitbake rev: 616101ddb630e2c9975022068b52a87c4cf647f6)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:37:17 +01:00