<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/tests, branch container-cross-install</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=container-cross-install</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=container-cross-install'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2026-02-06T03:54:31+00:00</updated>
<entry>
<title>container-cross-install: add tests and documentation for custom service files</title>
<updated>2026-02-06T03:54:31+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-02-06T03:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=5aab0f92f1e774305c23802566d75922f65e0862'/>
<id>urn:sha1:5aab0f92f1e774305c23802566d75922f65e0862</id>
<content type='text'>
Add pytest tests to verify CONTAINER_SERVICE_FILE varflag support:

TestCustomServiceFileSupport (unit tests, no build required):
- test_bbclass_has_service_file_support
- test_bundle_class_has_service_file_support
- test_service_file_map_syntax
- test_install_custom_service_function

TestCustomServiceFileBoot (boot tests, require built image):
- test_systemd_services_directory_exists
- test_container_services_present
- test_container_service_enabled
- test_custom_service_content
- test_podman_quadlet_directory

Documentation updates:
- docs/container-bundling.md: Add "Custom Service Files" section with
  variable format, usage examples for both BUNDLED_CONTAINERS and
  container-bundle packages, and example .service/.container files
- tests/README.md: Add test class entries to structure diagram and
  "What the Tests Check" table

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>vcontainer: add multi-arch OCI support</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-15T21:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=02bce5b72e8725ba58d82627c780e376ac59a84b'/>
<id>urn:sha1:02bce5b72e8725ba58d82627c780e376ac59a84b</id>
<content type='text'>
Add functions to detect and handle multi-architecture OCI Image Index
format with automatic platform selection during import. Also add
oci-multiarch.bbclass for build-time multi-arch OCI creation.

Runtime support (vcontainer-common.sh):
- is_oci_image_index() - detect multi-arch OCI images
- get_oci_platforms() - list available platforms
- select_platform_manifest() - select manifest for target architecture
- extract_platform_oci() - extract single platform to new OCI dir
- normalize_arch_to_oci/from_oci() - architecture name mapping
- Update vimport to auto-select platform from multi-arch images

Build-time support (oci-multiarch.bbclass):
- Create OCI Image Index from multiconfig builds
- Collect images from vruntime-aarch64, vruntime-x86-64
- Combine blobs and create unified manifest list

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>image-oci: add layer caching for multi-layer OCI builds</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-14T20:59:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=4d8fc28985dbd69ca5b0b2cfe3e977d74fe5b3dd'/>
<id>urn:sha1:4d8fc28985dbd69ca5b0b2cfe3e977d74fe5b3dd</id>
<content type='text'>
Add layer caching to speed up multi-layer OCI image rebuilds. When
enabled, pre-installed package layers are cached to disk and restored
on subsequent builds, avoiding repeated package installation.

New variables:
- OCI_LAYER_CACHE: Enable/disable caching (default "1")
- OCI_LAYER_CACHE_DIR: Cache location (default ${TOPDIR}/oci-layer-cache/${MACHINE})

Cache key is computed from:
- Layer name and type
- Sorted package list
- Package versions from PKGDATA_DIR
- MACHINE and TUNE_PKGARCH

Cache automatically invalidates when:
- Package versions change
- Layer definition changes
- Architecture changes

Benefits:
- First build: ~10-30s per layer (cache miss, packages installed)
- Subsequent builds: ~1s per layer (cache hit, files copied)
- Shared across recipes with identical layer definitions

Build log shows cache status:
  NOTE: OCI Cache HIT: Layer 'base' (be88c180f651416b)
  NOTE: OCI: Pre-installed packages for 3 layers (cache: 3 hits, 0 misses)

Also adds comprehensive pytest suite for multi-layer OCI functionality
including tests for 1/2/3 layer modes and cache behavior.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add container registry pytest tests</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-12T16:14:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=7418693e425d3355533594481fc224732dd154f5'/>
<id>urn:sha1:7418693e425d3355533594481fc224732dd154f5</id>
<content type='text'>
Add pytest tests for registry functionality:
- test_vdkr_registry.py: vconfig registry, image commands, CLI override
- test_container_registry_script.py: start/stop/push/import/list/tags
- conftest.py: --registry-url, --registry-script options

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: increase stop command timeouts to 30 seconds</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T20:19:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=20b59031dd03283d464802f5d820539dfd54c77a'/>
<id>urn:sha1:20b59031dd03283d464802f5d820539dfd54c77a</id>
<content type='text'>
Docker stop has a default 10-second grace period before SIGKILL, so
test timeouts of 10 seconds were insufficient. Increase all stop
timeouts to 30 seconds to account for the grace period plus command
overhead.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add --network=host backward compatibility test</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T19:36:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=807d2afdd1cc11acc6eb434f053ab5fed40e220a'/>
<id>urn:sha1:807d2afdd1cc11acc6eb434f053ab5fed40e220a</id>
<content type='text'>
Add test_network_host_backward_compat to verify that explicit --network=host
still works with the new bridge networking default. Uses busybox httpd with
configurable port since static port forwards now map host_port -&gt; host_port
on VM (for bridge networking's Docker -p handling).

Also update test docstrings to reflect bridge networking as the new default
and add port 8082 to TEST_PORTS for orphan cleanup.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>vcontainer: fix ps -q to suppress port forward display</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T19:34:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=ef5dc63c8c9d4f84e88f8622b44491303ca99f72'/>
<id>urn:sha1:ef5dc63c8c9d4f84e88f8622b44491303ca99f72</id>
<content type='text'>
When using `ps -q` or `ps --quiet`, only container IDs should be output.
The port forward registry display was being included, which broke cleanup
code that expected just container IDs.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add cleanup for orphan QEMU and stale test state</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T18:03:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=bd28c9f5a65ff89d95518965f4aea590e860e01c'/>
<id>urn:sha1:bd28c9f5a65ff89d95518965f4aea590e860e01c</id>
<content type='text'>
Add session-scoped autouse fixture that at session start:
1. Kills any QEMU processes holding ports used by tests (8080, 8081,
   8888, etc.) - handles orphans from manual testing or crashed runs
2. Cleans up corrupt test state directories (docker-state.img with
   "needs journal recovery") to ensure tests start fresh

This ensures tests don't fail due to leftover state from previous
runs or manual testing.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add bridge networking test</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T17:08:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=80dcdc090862ce2846e789803043c76aa23c8c46'/>
<id>urn:sha1:80dcdc090862ce2846e789803043c76aa23c8c46</id>
<content type='text'>
Add test_multiple_containers_same_internal_port() to verify the key
benefit of bridge networking: multiple containers can listen on the
same internal port with different host port mappings.

The test runs two nginx containers both listening on port 80 internally,
mapped to host ports 8080 and 8081, and verifies both are accessible.

Also update TestPortForwarding docstring to reflect the change from
host networking to bridge networking.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add tests for auto-start and dynamic port forwarding</title>
<updated>2026-01-21T23:00:26+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-01-08T04:56:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=c55674f76684a18eb6ddc714c4e91440600aea1a'/>
<id>urn:sha1:c55674f76684a18eb6ddc714c4e91440600aea1a</id>
<content type='text'>
Add test coverage for new vmemres features:

TestAutoStartDaemon:
- test_auto_start_on_first_command: Verify daemon auto-starts
- test_no_daemon_flag: Verify --no-daemon uses ephemeral mode
- test_vconfig_auto_daemon: Test auto-daemon config setting
- test_vconfig_idle_timeout: Test idle-timeout config setting

TestDynamicPortForwarding:
- test_dynamic_port_forward_run: Run -d -p adds forward dynamically
- test_port_forward_cleanup_on_stop: Forwards removed on stop
- test_port_forward_cleanup_on_rm: Forwards removed on rm
- test_multiple_dynamic_port_forwards: Multiple containers work

TestPortForwardRegistry:
- test_port_forward_cleared_on_memres_stop: Registry cleared

Also add ensure_busybox() helper to both VdkrRunner and VpdmnRunner.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
</feed>
