xemu-test/README.md

61 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

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.
See `xemutest/__main__.py` for a description of arguments that may be used to
customize native behavior.