llvm-mos / llvm-mos-sdk

SDK for developing with the llvm-mos compiler
https://www.llvm-mos.org
Other
258 stars 52 forks source link

Emutest + Libretro tests (Atari 2600 + NES) #241

Closed sehugg closed 8 months ago

sehugg commented 8 months ago

I made two separate test libraries, one for Mesen and one for emutest which writes an 8-byte pass/fail signature into RAM. The Atari 2600 test library also shows a nice pass/fail screen if you load the ROMs on an emulator.

There's also a mode where you pass the expected frame buffer CRC into the test. This is for Atari 2600 kernels or anything else difficult to test with assertions.

I also updated the Github Actions file -- updated to Ubuntu 22.04, installs Go, and it fetches the Stella2014 core via rpm. I forked the emutest project to make changes, I'll contribute them back to the trunk but right now the script fetches my fork.

I've got another branch with the existing NES tests running on the Nestopia core, but not all are passing.

sehugg commented 8 months ago

I finally got a build where all the Mesen tests pass, some were occasionally SIGSEGV-ing. Have you had this problem? Maybe I'm getting different test runner machines.

mysterymath commented 8 months ago

I've definitely seen flakes in the test runners; if it's only occasional I wouldn't worry about it.

On Wed, Nov 15, 2023, 15:51 Steven Hugg @.***> wrote:

I finally got a build where all the Mesen tests pass, some were occasionally SIGSEGV-ing. Have you had this problem? Maybe I'm getting different test runner machines.

— Reply to this email directly, view it on GitHub https://github.com/llvm-mos/llvm-mos-sdk/pull/241#issuecomment-1813479695, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABD6W4OMQ7RK2Q7YXJHCSRDYEVIRBAVCNFSM6AAAAAA7L5JY2KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJTGQ3TSNRZGU . You are receiving this because you commented.Message ID: @.***>

sehugg commented 8 months ago

I've got all the NES tests passing via Libretro cores now, except for two in nes-gtrom which still use Mesen. The FCEUMM core passed more tests than Nestopia, but they're both available.

I also updated the GIthub workflow to build test tools in a separate job to make easier to add more emulators. Not totally sure about the caching strategy, but for now the cache key depends on the workflow file digest.