2022-02-28 20:14:59 +00:00
|
|
|
xemu Automated Testing
|
|
|
|
======================
|
|
|
|
|
|
|
|
Performs a suite of tests against a build of xemu, capturing test results and
|
2022-03-15 19:11:32 +00:00
|
|
|
footage of the runs. There are many tests left to add, and you can help! Pull requests
|
|
|
|
welcome.
|
2022-03-01 10:25:07 +00:00
|
|
|
|
|
|
|
This is primarily used for automated testing of xemu pull requests. The xemu CI
|
|
|
|
system uses this repository for testing. The goal is to have a large set of
|
|
|
|
tests that can exercise xemu across a varienty of different platforms/hardware
|
|
|
|
configurations for every change made to xemu. See GitHub Issues on this
|
|
|
|
repository for list of areas that need attention.
|
2022-02-28 20:14:59 +00:00
|
|
|
|
|
|
|
Containerized Testing
|
|
|
|
---------------------
|
|
|
|
This testing system is intended to be able to be run inside a container for
|
|
|
|
reproducability and for regular testing on cheap cloud VMs.
|
|
|
|
|
|
|
|
To build the container image:
|
|
|
|
|
|
|
|
docker build -t xemu-test .
|
|
|
|
|
|
|
|
This repository also has GitHub actions set up to automatically build and
|
|
|
|
publish the container image to the GitHub container registry, so you can pull
|
|
|
|
that image for testing:
|
|
|
|
|
|
|
|
docker pull ghcr.io/mborgerson/xemu-test:master
|
|
|
|
|
|
|
|
Set up the following dir structure:
|
|
|
|
|
|
|
|
- /work/results: Results will be copied here
|
|
|
|
- /work/private: Directory for ROMs and other files
|
|
|
|
- /work/private/mcpx.bin
|
|
|
|
- /work/private/bios.bin
|
|
|
|
- /work/inputs: Directory containing xemu build to test
|
|
|
|
- /work/xemu.deb
|
|
|
|
|
|
|
|
Then run with something like:
|
|
|
|
|
|
|
|
docker run --rm -it \
|
|
|
|
-v $PWD/results:/work/results \
|
|
|
|
-v $PWD/private:/work/private \
|
|
|
|
-v $PWD/inputs:/work/inputs \
|
|
|
|
-p 5900:5900 \
|
|
|
|
ghcr.io/mborgerson/xemu-test:master
|
|
|
|
|
|
|
|
xemu is running headless when in the container, so if you need to interact with
|
|
|
|
it you can connect to the container VNC server with:
|
|
|
|
|
|
|
|
xtightvncviewer 127.0.0.1
|
2022-03-01 10:25:07 +00:00
|
|
|
|
|
|
|
Native Testing
|
|
|
|
--------------
|
|
|
|
Containers are a great solution generally, but they aren't available on every
|
|
|
|
platform that xemu runs on. The tester can be run outside of a container,
|
|
|
|
provided you have set up the environment correctly. It is a goal for this project
|
|
|
|
to support running the tests natively on all platforms.
|
2022-03-15 17:37:04 +00:00
|
|
|
|
|
|
|
See `xemutest/__main__.py` for a description of arguments that may be used to
|
|
|
|
customize native behavior.
|