Using the Digital Twin Universe to test the Digital Twin Universe — and everything that rides on it.
I built the thing made for testing — and couldn't use it to test my own stuff.
As I've been working on all of the Digital Twin Universe, Universe bundles — I realized that I'm literally not able to use it for the thing it's made for, which is testing.
Now we have examples where the outer DTU hosts an inner one — so the testing infrastructure can test itself, and anything else riding on it.
Root cause: subprocess.run with capture_output=True was waiting for grandchildren (like lxc monitor spawned by a nested incus launch) to close inherited file descriptors — even after incus exec itself had exited.
subprocess.run now returns as soon as incus exec exits, regardless of what grandchildren are still holding inherited fds. stdin=DEVNULL keeps the child from blocking on inherited input.
A concrete example — profile → run → evidence → summary.
reality-check-in-incus.yaml stands up an outer DTU ready to host an inner one.
Incus, Docker, and other prereqs. Configures Amplifier and bundles.
Uses the reality-check bundle from Gitea if provided — local changes flow in without hitting GitHub.
Confirms it works with commands like amplifier bundle list.
Drive reality-check against an inner app, with stdout/stderr streamed to the terminal and tee'd to a log.
When the run completes (or fails), pull the artifacts out of the DTU. Then let Amplifier read the logs and tell you what happened.
Then: Amplifier generates a summary of what happened based on the logs.
Self-validation generalizes — to bug reports, feature requests, anything.
You can easily set up scripts that automatically validate anything.
For example: if you get a bug report or feature request — you can start with a DTU profile and have Amplifier write a script that uses the DTU to send commands for automation.
The thing made for testing now tests itself — and anything else you point it at.