Automatic testing of dmce-gui within an incus container.
ove digraph
┌─────────────┐
┌─────────────── │ ag │
│ └─────────────┘
│ │
│ │
│ ▼
│ ┌─────────────┐
│ │ base │ ◀┐
│ └─────────────┘ │
│ │
┌────┘ │
│ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ screencast │ ◀── │ dg │ │
│ └────────────┘ └─────────────┘ │
│ │ │
│ │ │
│ ▼ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ godot │ ◀── │ dmce_gui │ │
│ └────────────┘ └─────────────┘ │
│ │ │
│ │ │
│ ▼ │
│ ┌────────────┐ ┌─────────────┐ │
└▶ │ xz │ ◀── │ dmce │ ─┘
└────────────┘ └─────────────┘
│
│
▼
┌─────────────┐
│ clang_tools │
└─────────────┘
curl -sSL https://raw.githubusercontent.com/Ericsson/ove/master/setup | bash -s dg https://github.com/mtempling/dg.git
cd dg
source ove
ove distrocheck base ubuntu/22.04/amd64
The "ove distrocheck..." command will first make sure that both incus and Xpra is installed on the host. NOTE: The incus installation is just a minimal installation.
When incus and Xpra has been installed, distrocheck will continue and launch an incus container based on Ubuntu 22.04. A few packages will be installed within the container:
- openssh
- OVE packages
- Xfce
- Xpra
Finally the post-distrocheck hook script will install a Xfce autostart file and restart the container. The autostart script will launch the following command:
ove distcheck dg
Looking into the dg's distcheck code one can see that ag is built, then OVE is configured to screenrecord all OVE commands. Finally, "ove dmce trace-lazy ag" is launched two times. First with Terminal GUI then using the Godot GUI.
Attach to the container and peek into the action:
xpra attach --ssh=ssh ssh:${OVE_DISTROCHECK_CONTAINER_NAME:?}
Find the recorded screencast:
find $OVE_LOG_DIR -type f -name "*-ove-dmce-${OVE_DISTROCHECK_CONTAINER_NAME:?}-dg.mp4"
Remove the container:
incus delete -f ${OVE_DISTROCHECK_CONTAINER_NAME:?}
Check this file.