Run tests in qemu in GitHub action
@crazii I opened it as a "draft pull request" this time, so that it can't accidentally get prematurely merged. :sweat_smile:
This has been rebased on your previous revert push that fixed the release pipeline. :+1:
Okay, The 01 pipeline (build release) is now also working again in this PR. See actions results here: https://github.com/volkertb/SBEMU/actions/workflows/01-build-and-release.yml
Still keeping this PR as draft, since the exit/error codes of failing DOS actions (specifically STP32.EXE not being able to detect the emulated Sound Blaster) need to be propagated to the shell script running QEMU, so that the pipeline will actually fail then as well.
Update:
- I got the error exit code in the DOS session to propagate to the script in the CI/CD job, causing it to fail when the player doesn't work.
- The sound player I've been using in this test (a protected mode command-line WAV player) kept complaining about not detecting a Sound Blaster, until I replaced the DOS/32A DOS extender with DOS/4GW version 1.97. At that point, the sound player detected the sound card in the QEMU VM instance in the test.
@crazii It was already known that there was an issue with DOS/32A (the VCPI issue that you and @viti95 encountered in FastDoom), but I suspect that this might not be the only compatibility issue between DOS/32A and DOSEMU, since this test also fails when I don't have JEMM loaded, in which case VCPI should not be enabled either.
Anway, the test is working, so this PR is ready to be merged.
In a subsequent PR, I'll make this into two tests, one that tests SBEMU with HDA and another that tests SBEMU with AC'97/ICHx (both which QEMU can emulate). I'll also add tests for real mode emulation later, since this test currently only tests SBEMU emulation with a protected mode application.
@volkertb
Sorry for sort of hijacking this thread, but does this still work for you? I haven't tried running your docker image, but if I boot the latest release's SBEMU-FD13-USB.img and try to run the audio players I get varying results (hardware not found, freeze, JemmEx crashes; I can't seem to reproduce this reliably) but playback never works. I have also tried intel-hda instead of AC97 in QEMU with the same results.
(the reason I am asking is because I'm trying to port another ALSA driver to SBEMU and I'm running into issues, so for debugging purposes I figured it's best to test SBEMU in a QEMU environment first but the games I've tried won't work either, so I'm trying to get a simple audio player to work first to rule out issues with the games and my configuration, but I can't get that to work either. I've also tried auplay (which works fine in QEMU with the vanilla FB iso and QEMU's sb16 driver, i.e. without SBEMU). Interestingly enough, auplay freezes at 14% playback (no sound, so I guess that's just how much of the sound file is loaded into the playback buffer - the same happens on my real hardware when trying my ported (and obviously broken) SBEMU driver).