eclipse-score / eclipse-score/itf

Ability to run QEMU tests in parallel

Open
#125 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2
Forks
22
Avg merge
8d 10h
Merged PRs (30d)
2

Description

### What

With the QEMU plugin, since a port number is stored in its config file, it is not possible to run multiple integration tests in parallel.

Tests fail because only one process can listen on the chosen port at a time. Even in the test which successfully claimed the port, other parallel tests try to connect to it, which causes interference.

### Acceptance Criteria (DoD)

- QEMU tests can run in parallel without any special configuration

### How

Consider using a lower level interface than SSH.

Some inspiration:

- For command input, [NixOS' test framework](https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/test-driver/src/test_driver/machine/__init__.py#L123) uses [UNIX sockets as a serial console](https://doc.iosenag.net/sysadmin/qemu.html#interaction-based-on-unix-sockets). I believe standard input can also be used for this.
- For file transfers, [qnx_unit_tests](https://github.com/eclipse-score/qnx_unit_tests/tree/1c3aca517a9af681b2c114c994340fe647cddbd7/src/common/virtio9p) mounts files directly into the VM rather than uploading them.

Alternatively this could be hacked around by choosing random or incremental ports, but then there is still a possibility to collide with unrelated programs.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the QEMU plugin's port configuration and the integration-test execution path; compare the SSH-based interaction with the UNIX-socket, standard-input, and direct file-mount approaches referenced in the issue. Done means multiple QEMU integration tests run in parallel without special configuration or interference.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
operating-systems, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.