Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #1

Closed
wants to merge 171 commits into from
Closed

test #1

wants to merge 171 commits into from

Conversation

dofmind
Copy link
Owner

@dofmind dofmind commented Oct 5, 2023

No description provided.

Fixes: eclipse-bluechi#591

When an anonymous node has been disconnected in the controller
and the cleanup has been done, a log statement was made afterwards.
This statement differed based on the node name. Since the node
instance has been cleaned up (freed), but not set to NULL, valgrind
reported this as an invalid read. Moved the log statements
accordingly.

Signed-off-by: Michael Engel <[email protected]>
engelmi and others added 26 commits October 9, 2023 16:35
The getting started page now provides a guide to setup
BlueChi for single and multiple nodes. Also, examples
on how to use BlueChi have been added - from getting
information using bluechictl to a full example of how
to use BlueChi's proxy service feature.

Signed-off-by: Michael Engel <[email protected]>
Renames bluechi RPM to bluechi-controller, which better describes the
content of the package.

Signed-off-by: Martin Perina <[email protected]>
Moves bluechi snapshot builds from mperina/hirte-snapshot repo to
@centos-sig-automotive/bluechi-snapshot repo.

Signed-off-by: Martin Perina <[email protected]>
In the error cases in this function a file descriptor is getting leaked,
use steal_fd and cleanup_fd to alleviate this. Found by gcc's
-fanalyzer.

Signed-off-by: Eric Curtin <[email protected]>
Add skipper environment configuration
Skip git config operation when running the containerized build
Add strato-skipper to the requirements.txt file
Update the tests README

Signed-off-by: Ygal Blum <[email protected]>
The current architecture overview of BlueChi uses
bluechi instead of bluechi-controller. Since the
diagram wasn't in the drawio xml, it has been
recreated.

Signed-off-by: Michael Engel <[email protected]>
Fixes: eclipse-bluechi#566

Adds the missing api examples for rust on how to
use BlueChi's D-Bus API.

Signed-off-by: Michael Engel <[email protected]>
[WIP]
When running tmt gcda and gcno files are created. This files necessary for later code coverage.
So before the container destroyed we need to extract this files to the local machine.

Related: eclipse-bluechi#397
Signed-off-by: Artiom Divak <[email protected]>
Added arguments for meson so the gcda files will be saved in /var/tmp/bluechi-coverage.
Also bluechi.spec.in will add the /var/tmp/bluechi-coverage.

Signed-off-by: Artiom Divak <[email protected]>

Add path for gcda files

Added arguments for meson so the gcda files will be saved in /var/tmp/bluechi-coverage.
Also bluechi.spec.in will add the /var/tmp/bluechi-coverage.

Signed-off-by: Artiom Divak <[email protected]>
Each test case should have unique UUID to help with traceability of test runs.
With UUID for each test case, it is easier to follow trends in stability over time.

Signed-off-by: Pavol Brilla <[email protected]>
thanks this makes sense

Co-authored-by: Michael Engel <[email protected]>
Signed-off-by: Pavol Brilla <[email protected]>
We were setting up specific network range for integration tests, but we
were not using it directly within any test. So we can remove that
specific network setup and rely on the default.

Signed-off-by: Martin Perina <[email protected]>
Running integration tests with `-v` option provides nice summary with
each test execution time and result at the end of the run, so we should
suggest using this option everywhere in the documentation.

Signed-off-by: Martin Perina <[email protected]>
Use only `shell` to indicate that code block should use shell syntax
highlighting.

Signed-off-by: Martin Perina <[email protected]>
1. Mention all environment variables, which are used within integration
   tests and could be changed by users, in `tests/plans/tier0.fmf`
2. Mention using `-e` to change environment variable value for an
   integration tests run in the documentation

Signed-off-by: Martin Perina <[email protected]>
When we build RPMs with coverage support (which we do only when we want
to generate code coverage report), it's easier to add bluechi-coverage
RPM as a dependency to other RPMs than passing coverage support to the
container file and installing bluechi-coverage RPM according to the
coverage support enablement.

Signed-off-by: Martin Perina <[email protected]>
BlueChi Tester, its purpose is to create tests that can disrupt or
diminish the functionality of the BlueChi controller.

Signed-off-by: Douglas Schilling Landgraf <[email protected]>
Signed-off-by: Michael Engel <[email protected]>
Related to: eclipse-bluechi#604

Added the gcc option -fanalyzer as configurable meson option
(default: false) to ensure higher code quality. Default is
set to false and no integration into CI is done since it can
also result in false-positives. Therefore, the developer has
to decide which issue to tackle.

Signed-off-by: Michael Engel <[email protected]>
Fixes: eclipse-bluechi#415

Added an integration test to validate that collecting metrics
for the start time of a unit works as expected.

Signed-off-by: Michael Engel <[email protected]>
In order to ensure every integration test has an ID linked to
it, a CI step executes a dry run for the generation and checks
the result.

Signed-off-by: Michael Engel <[email protected]>
engelmi and others added 27 commits February 14, 2024 12:04
Relates to: eclipse-bluechi#662

Preparation work for multihost support by exchanging the term
container with machine in classes and functions in the integration
tests.

Signed-off-by: Michael Engel <[email protected]>
It can happen that provisioning, preparing or executing
the integration tests fails, e.g. failed to pull the
container image due to an infra outage. The finish step
of tmt, however, always gets executed. In order to avoid
failing the finish step, check for existing .info files
and skip if none are found.

Signed-off-by: Michael Engel <[email protected]>
Updates GH actions to latest releases to fix following warning:

```
Node.js 16 actions are deprecated. Please update the following
actions to use Node.js 20
```

Signed-off-by: Martin Perina <[email protected]>
Relates to: eclipse-bluechi#662

Introduce a client class in integration tests to add an abstraction
layer between tests and the used provision method - containerized or
multiple hosts connected to via SSH.

Signed-off-by: Michael Engel <[email protected]>
Relates to: eclipse-bluechi#678

Moved loading the config file specified by CLI option to the function
loading the complete config and updated unit tests accordingly. This
way loading configuration from all sources is encapsulated in a
single function.

Signed-off-by: Michael Engel <[email protected]>
Fixes following warning:

  warning: bogus date in %changelog: Mon Jan 17 2024

Signed-off-by: Martin Perina <[email protected]>
Prior to the patch .gcda files from unit tests execution are packaged
into bluechi-coverage and later merged with integration test .gcda file
to create unified code coverage report.
As a part of this patch we generate code coverage info file for unit
tests and package this info into bluechi-coverage, which simplifies
generating unified code coverage report.

Signed-off-by: Martin Perina <[email protected]>
Relates to: eclipse-bluechi#662

Further preparatory work for multihost testing. Encapsulate commands
for systemctl and bluechictl in dedicated classes, increasing the
reusability and readability. An instance of the systemctl class is
provided by both, controller and agent machine. Only the controller
can use bluechictl, however.

Signed-off-by: Michael Engel <[email protected]>
urllib3 logs in DEBUG level contains too much information, which we
don't need in integration tests, so let's force th level to INFO

Signed-off-by: Martin Perina <[email protected]>
bluchictl and systemctl modules contains multiline string using
backslash which added unnecessary white spaces:

    ... finished with result '0'             and output:

Signed-off-by: Martin Perina <[email protected]>
Tests, bluechi-controller, bluechi-agent and bluechictl provides both
short (-h) and long (--help) option and those options provides some
content.

Signed-off-by: Martin Perina <[email protected]>
Tests, that bluechi-controller, bluechi-agent and bluechi-ctl contains
-v and --version options and that the version returned aligns with RPM
package version.

Signed-off-by: Martin Perina <[email protected]>
Make sure, that RPM release for snapshot builds is properly passed to
the build, so this release can be reported correctly in command line
tools.

Fixes: eclipse-bluechi#753
Signed-off-by: Martin Perina <[email protected]>
We have a test to verify bluechictl can enable disabled service. This
commit also add test if bluechictl can disable enabled service.

Signed-off-by: Martin Perina <[email protected]>
Adds an integration test which checks that metrics are enabled and
disabled correctly back-and-forth

Signed-off-by: Mark Kemel <[email protected]>
Tests if bluechictl version aligns with the version provided by RPM
package.

Signed-off-by: Martin Perina <[email protected]>
systemctl stop will fail only if service doesn't exist or if it's
prohibited to stop the service. To detect, that for example service
crash during stop operation, we need to check Result property of the
service after stop operation.

Signed-off-by: Martin Perina <[email protected]>
Adds usage of SystemCtl class in test.py module, which allows additional
logging and also detection of stop service failures.

Signed-off-by: Martin Perina <[email protected]>
…ring logs

Bluechi services are being stopped at the end of each test to be able to
collect logs or code coverage data. If bluechi service was stopped with
failure (for example due to core-dump), we need to fail the test.
Also if there is an error during logs gathering, we should fail the
test.
This adds public APIs to set controller host, port and address to the
bluechi-agent.

Because it's possible to change the host, port and address used by agent
to connect controller on the fly using these APIs, the agent can
reconnect to controller of new node without restarting when the node
of working bluechi controller is changed.

If reconnect is true, try to reconnect to new bluechi-controller right
now.

Signed-off-by: Joonyoung Shim <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants