Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
8840793
apply patch with adaptions from ITF to run EB Linux
lurtz Jul 2, 2026
3898a5d
Add network device to architecture dependent parameters
lurtz Jul 2, 2026
a2516b4
Somehow use EB Linux in test
lurtz Jul 2, 2026
f181495
directly use py_itf_test for running eb corbos linux image
lurtz Jul 3, 2026
dfd95c7
use same itf hash as declared with version
lurtz Jul 3, 2026
8ad6cc4
remove unused file
lurtz Jul 3, 2026
ff31795
single location for all ebclfsa targets
lurtz Jul 3, 2026
18e270d
put most reference_integration dependencies into extra file
lurtz Jul 3, 2026
11c5def
Merge remote-tracking branch 'origin/main' into make-qemu-linux-plugi…
lurtz Jul 14, 2026
ab9f5be
unify qemu image type determination
lurtz Jul 14, 2026
2d53560
move EB Linux specific settings out of the plugin
lurtz Jul 14, 2026
805165d
remove non essential qemu parameters
lurtz Jul 14, 2026
70c2f56
more simplification
lurtz Jul 14, 2026
9d2fffb
kind of QNX support for linux_qemu plugin
lurtz Jul 14, 2026
b328ac2
move architecture dependent QEMU parameters to map
lurtz Jul 14, 2026
6f7032e
reintroduce some QEMU parameters with comments for reason
lurtz Jul 14, 2026
63346de
make kernel commandline optional
lurtz Jul 14, 2026
94a2162
fix running QNX via linux_qemu plugin
lurtz Jul 14, 2026
ee10669
simplify QEMU acceleration
lurtz Jul 14, 2026
2efed81
unify machine and kernel_machine
lurtz Jul 15, 2026
f353628
always add machine flag
lurtz Jul 15, 2026
91d0065
simplify qemu command line creation
lurtz Jul 15, 2026
8c61a75
make image parameter optional
lurtz Jul 15, 2026
60a673e
remove qemu boot mode
lurtz Jul 15, 2026
21367fc
simplify disk image code
lurtz Jul 15, 2026
6629033
Align seed drive logic with that of the image
lurtz Jul 15, 2026
1937361
remove unused members and functions
lurtz Jul 15, 2026
e0879dd
remove reference_integration dependency
lurtz Jul 15, 2026
0ace1ee
remove leftovers
lurtz Jul 15, 2026
c618f12
minimize lock file changes
lurtz Jul 15, 2026
1404ed9
install aarch64 qemu for integration tests
lurtz Jul 15, 2026
e0ac51f
only build Ebclfsa image when explicitly needed
lurtz Jul 15, 2026
663f0ce
Only build EB Linux image when requested
lurtz Jul 16, 2026
ada9ab0
Merge remote-tracking branch 'origin/main' into make-qemu-linux-plugi…
lurtz Jul 24, 2026
ed74c1b
simplify and speedup SSH retry logic
lurtz Jul 24, 2026
f91040e
Merge branch 'main' into make-qemu-linux-plugin-more-generic
lurtz Aug 4, 2026
9c8cb48
Use improved itf qemu plugin (#4)
lurtz Aug 12, 2026
465c8b7
remove unused file
lurtz Aug 12, 2026
3996a68
Merge remote-tracking branch 'origin/main' into make-qemu-linux-plugi…
lurtz Aug 12, 2026
2980db0
remove wasting image copy
lurtz Aug 12, 2026
f76a26a
install guestfish for Linux integration tests
lurtz Aug 12, 2026
fa1eb64
tag rootfs as manual
lurtz Aug 12, 2026
a6f1d60
tag ebclfsa as manual
lurtz Aug 12, 2026
7b161ad
attempt to fix building the images
lurtz Aug 13, 2026
7100db3
ci: allow unprivileged user namespaces for qemu integration
lurtz Aug 13, 2026
ebb85f0
ci: run CopyFilesOntoImage outside sandbox in qemu job
lurtz Aug 13, 2026
38e242d
ci: pin supermin kernel and libguestfs runtime dirs
lurtz Aug 13, 2026
8baa979
ci: pass libguestfs env via bazel action_env
lurtz Aug 13, 2026
4dc2fdf
ci: use fixed libguestfs appliance for overlay actions
lurtz Aug 13, 2026
1f22998
ci: build fixed appliance with LIBGUESTFS_PATH unset
lurtz Aug 13, 2026
6fd8402
ci: make runner kernel readable for supermin
lurtz Aug 13, 2026
9060d12
ci: increase qemu pre-test ping timeout in score_itf
lurtz Aug 13, 2026
effe0a2
use most recent branch revision
lurtz Aug 13, 2026
3c6253f
small workflow simplification
lurtz Aug 13, 2026
ce282b3
more workflow simplification
lurtz Aug 13, 2026
85f451a
remove make-fixed-appliance
lurtz Aug 13, 2026
22e700f
remove strategy for CopyFilesOntoImage
lurtz Aug 13, 2026
e66d60d
make job abort if image cannot be made readable
lurtz Aug 13, 2026
e299b49
use build_image.sh from ITF
lurtz Aug 13, 2026
1d3d8ae
explicitly enable root
lurtz Aug 13, 2026
ad1c5fd
bump ITF again
lurtz Aug 14, 2026
9690b61
Merge branch 'main' into make-qemu-linux-plugin-more-generic
lurtz Aug 14, 2026
859b68d
use images defines by os_images
lurtz Aug 18, 2026
aeca93a
remove leftovers
lurtz Aug 18, 2026
bd73738
use main branch from os_images
lurtz Aug 18, 2026
276e8c3
bump score_itf version
lurtz Aug 18, 2026
a8766c3
Merge remote-tracking branch 'origin/main' into make-qemu-linux-plugi…
lurtz Aug 18, 2026
0e26c42
remove download of Ubuntu and EBclfsa
lurtz Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ RUN if [ "$USERNAME" != "vscode" ]; then \
&& chmod 0440 /etc/sudoers.d/${USERNAME}; \
fi

RUN apt-get update && apt-get install -y qemu-system-x86 iputils-ping tcpdump cloud-image-utils
RUN apt-get update && apt-get install -y qemu-system-x86 iputils-ping tcpdump cloud-image-utils libguestfs-tools linux-image-$(uname -r) \
&& chmod o+r /boot/vmlinuz-*

# Set the default user for the container
USER ${USERNAME}
12 changes: 10 additions & 2 deletions .github/workflows/build_and_test_host.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
- name: Install tools needed for ITF tests
run: |
sudo apt-get update
sudo apt-get install -y qemu-system-x86 iputils-ping tcpdump cloud-image-utils
sudo apt-get install -y qemu-system-x86 qemu-system-arm iputils-ping tcpdump cloud-image-utils libguestfs-tools
- name: Allow linux-sandbox
uses: eclipse-score/cicd-actions/unblock-user-namespace-for-linux-sandbox@212bbf86267e9381da9d2daf962d12f6feafbc90 # v0.0.2
- run: df -h
Expand All @@ -76,8 +76,16 @@ jobs:
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Allow unprivileged user namespaces
run: |
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
- name: Allow supermin to read kernel
run: |
sudo chmod a+r /boot/vmlinuz-$(uname -r)
- name: Run Linux QEMU integration tests
run: |
bazel test --config=qemu-integration //quality/... //tests/integration_test/...
bazel test \
--config=qemu-integration \
//quality/... //tests/integration_test/...
- run: df -h
if: always()
18 changes: 12 additions & 6 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -263,16 +263,22 @@ http_archive(
# ============================================================================
# Integration Testing
# ============================================================================
bazel_dep(name = "os_images", version = "1.0", dev_dependency = True)
bazel_dep(name = "score_itf", version = "0.5.0", dev_dependency = True)
bazel_dep(name = "score_rules_imagefs", version = "0.0.4", dev_dependency = True)

http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
git_override(
module_name = "score_itf",
commit = "15891e79da565fa6b038fbf22074b86fd9bc55a1",
patch_strip = 1,
patches = ["//:third_party/score_itf-qemu-ping-timeout.patch"],
remote = "https://github.com/elektrobit-contrib/eclipse-score_itf.git",
)
Comment on lines +270 to +276

http_file(
name = "ubuntu_24_04_cloudimg",
downloaded_file_path = "noble-minimal-cloudimg-amd64.img",
integrity = "sha256-vZAj5xt7tb3tFOT7DJmODZPXFJ6QVsPmi0b/kJfdF9U=",
url = "https://cloud-images.ubuntu.com/minimal/releases/noble/release-20260626/ubuntu-24.04-minimal-cloudimg-amd64.img",
git_override(
module_name = "os_images",
commit = "a024787e2ddb4ceed6ac6fe63b3847ab937c0b5d",
remote = "https://github.com/eclipse-score/os_images.git",
)

imagefs = use_extension("@score_rules_imagefs//extensions:imagefs.bzl", "imagefs", dev_dependency = True)
Expand Down
24 changes: 22 additions & 2 deletions MODULE.bazel.lock

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ path = [
"tests/integration_test/vsomeip.json",
"tests/benchmarks/config/benchmark_mw_com_config.json",
"tests/tc8_conformance/**/*.json",
"quality/integration_testing/environments/qnx8_qemu/qemu_config.json",
"quality/integration_testing/environments/ubuntu24_04_qemu/*"
"quality/integration_testing/environments/qnx8_qemu/qemu_config.json"
]
SPDX-FileCopyrightText = "Copyright (c) 2026 Contributors to the Eclipse Foundation"
SPDX-License-Identifier = "Apache-2.0"
4 changes: 2 additions & 2 deletions quality/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ Integration tests are enabled only for QEMU-backed runs:

### filesystem tar

The tests and their data are packaged into a filesystem tar and either build into (Docker) the image or uploaded after image startup.
The tests and their data are packaged into a filesystem tar and overlaid onto the QEMU rootfs image before test execution.

### What Runs in QEMU

#### Linux QEMU

If QEMU is selected, the custom plugin [`linux_qemu`](integration_testing/plugins/linux_qemu/README.md) is used.
If QEMU is selected, the upstream ITF QEMU plugin is used.

#### QNX QEMU

Expand Down
104 changes: 0 additions & 104 deletions quality/integration_testing/environments/ubuntu24_04_qemu/BUILD

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

29 changes: 17 additions & 12 deletions quality/integration_testing/integration_testing.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"""Integration test macro with QEMU-only backends."""

load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
load("@score_itf//:defs.bzl", "py_itf_test")
load("@score_itf//:defs.bzl", "copy_files_onto_image", "py_itf_test")
load("@score_rules_imagefs//rules/qnx:ifs.bzl", "qnx_ifs")

def _extend_list_in_kwargs(kwargs, key, values):
Expand Down Expand Up @@ -54,11 +54,19 @@ def integration_test(name, srcs, filesystem, **kwargs):
pkg_tar(
name = filesystem_tar,
srcs = [filesystem],
tags = ["manual"],
)

linux_qemu_config = Label("//quality/integration_testing/environments/ubuntu24_04_qemu:qemu_config")
linux_qemu_image = Label("//quality/integration_testing/environments/ubuntu24_04_qemu:prepared_image")
linux_qemu_seed_iso = Label("//quality/integration_testing/environments/ubuntu24_04_qemu:seed_iso")
linux_qemu_config = Label("@os_images//ubuntu_x86_64:qemu_config")
linux_qemu_image = Label("@os_images//ubuntu_x86_64:image")

filesystem_rootfs_overlay = "_qemu_rootfs_overlay_{}".format(name)
copy_files_onto_image(
name = filesystem_rootfs_overlay,
image = linux_qemu_image,
srcs = [filesystem_tar],
tags = ["manual"],
)

# --- QNX QEMU artifacts ---
QNX_TARGET_COMPATIBLE_WITH = [
Expand All @@ -81,10 +89,9 @@ def integration_test(name, srcs, filesystem, **kwargs):
_extend_list_in_kwargs(kwargs, "data", select({
"@platforms//os:qnx": [qemu_image, qnx_qemu_config],
"//quality/integration_testing/flags:linux_qemu": [
filesystem_tar,
filesystem_rootfs_overlay,
linux_qemu_config,
linux_qemu_image,
linux_qemu_seed_iso,
linux_qemu_image, # backing file must be accessible at runtime
],
"//conditions:default": [],
}))
Expand All @@ -95,14 +102,12 @@ def integration_test(name, srcs, filesystem, **kwargs):
"@platforms//os:qnx": [
"--log-cli-level=DEBUG",
"--qemu-config=$(location {})".format(qnx_qemu_config),
"--qemu-image=$(location {})".format(qemu_image),
"--qemu-kernel=$(location {})".format(qemu_image),
],
"//quality/integration_testing/flags:linux_qemu": [
"--log-cli-level=DEBUG",
"--qemu-config=$(location {})".format(linux_qemu_config),
"--qemu-image=$(location {})".format(linux_qemu_image),
"--qemu-seed-iso=$(location {})".format(linux_qemu_seed_iso),
"--qemu-filesystem-tar=$(location {})".format(filesystem_tar),
"--qemu-rootfs=$(location {})".format(filesystem_rootfs_overlay),
],
"//conditions:default": [],
}),
Expand Down Expand Up @@ -147,7 +152,7 @@ def integration_test(name, srcs, filesystem, **kwargs):
"@score_itf//score/itf/plugins:qemu_plugin",
],
"//quality/integration_testing/flags:linux_qemu": [
"//quality/integration_testing/plugins/linux_qemu:linux_qemu_plugin",
"@score_itf//score/itf/plugins:qemu_plugin",
],
"//conditions:default": [],
}),
Expand Down
Loading
Loading