Move some tests around

This commit is contained in:
Jesse Talavera 2024-03-20 08:54:00 -04:00
parent b302017c0b
commit 466bc54fab
7 changed files with 486 additions and 487 deletions

View File

@ -381,485 +381,6 @@ add_emutest_test(
TEST_SCRIPT "loads-core.lua"
)
## Loading invalid data ####################################################
add_emutest_test(
NAME "Loading invalid ROM does not cause a crash"
CONTENT "$<TARGET_FILE:melondsds_libretro>"
TEST_SCRIPT "no-crash-on-invalid-rom.lua"
WILL_FAIL
)
# See https://github.com/JesseTG/melonds-ds/issues/70
add_retroarch_test(
NAME "Core unloads with threaded software rendering"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_sysfile_mode=builtin"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_threaded_renderer=enabled"
)
# See https://github.com/JesseTG/melonds-ds/issues/62
add_emutest_test(
NAME "Core resets when using built-in system files and direct boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_show_cursor="disabled"
CORE_OPTION melonds_sysfile_mode="builtin"
CORE_OPTION melonds_console_mode="ds"
)
add_emutest_test(
NAME "Core resets when using native system files and direct boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
CORE_OPTION melonds_firmware_nds_path='melonDS DS/${NDS_FIRMWARE_NAME}'
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
CORE_OPTION melonds_console_mode="ds"
)
add_emutest_test(
NAME "Core resets when using native system files and native boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_boot_mode="native"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "Core resets when using native system files and direct boot (DSi)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "Core resets when using native system files and native boot (DSi)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_boot_mode="native"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
# See https://github.com/JesseTG/melonds-ds/issues/51
add_retroarch_test(
NAME "Core exposes config options to frontend"
CONTENT "${NDS_ROM}"
FAIL_REGULAR_EXPRESSION "GET_VARIABLE: melonds_[a-z_]+ - Not implemented"
)
### Preventing Unneeded Loads
add_retroarch_test(
NAME "Core doesn't try to load native BIOS if using FreeBIOS (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
PASS_REGULAR_EXPRESSION "Not loading native ARM BIOS files"
)
### With Content
add_retroarch_test(
NAME "Core falls back to FreeBIOS if ARM7 BIOS is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
ARM9_BIOS
PASS_REGULAR_EXPRESSION "Falling back to FreeBIOS"
)
add_retroarch_test(
NAME "Core falls back to FreeBIOS if ARM9 BIOS is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
ARM7_BIOS
PASS_REGULAR_EXPRESSION "Falling back to FreeBIOS"
)
add_retroarch_test(
NAME "Core falls back to built-in firmware if native firmware is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
PASS_REGULAR_EXPRESSION "Falling back to built-in firmware"
)
## Direct Boot of NDS game ####################################################
add_retroarch_test(
NAME "Direct NDS boot with built-in system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
)
add_retroarch_test(
NAME "Direct NDS boot with native system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
FAIL_REGULAR_EXPRESSION "Failed to load ARM[79]"
FAIL_REGULAR_EXPRESSION "Failed to load the required firmware"
)
add_retroarch_test(
NAME "Direct NDS boot with native BIOS and non-bootable firmware succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${DSI_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
FAIL_REGULAR_EXPRESSION "Failed to load ARM[79]"
FAIL_REGULAR_EXPRESSION "Failed to load the required firmware"
)
## Boot to firmware ####################################################
add_retroarch_test(
NAME "NDS boot with no content, native BIOS, and bootable firmware succeeds"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
NDS_FIRMWARE
ARM7_BIOS
ARM9_BIOS
)
add_retroarch_test(
NAME "NDS boot with no content and built-in system files fails"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
WILL_FAIL
)
add_retroarch_test(
NAME "NDS boot with no content, native BIOS, and non-bootable firmware fails"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${DSI_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
WILL_FAIL
)
## DSi boot ####################################################
add_retroarch_test(
NAME "DSi boot to menu with no NAND image fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=/notfound"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no NDS BIOS fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no DSi BIOS fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with NDS firmware fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no firmware fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with all system files succeeds"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no NAND image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=/notfound"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no NDS BIOS image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no DSi BIOS image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with all system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
)
### Using wfcsettings.bin
# See https://github.com/JesseTG/melonds-ds/issues/59
add_retroarch_test(
NAME "Native firmware is not overwritten by contents of wfcsettings.bin"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=native"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
REQUIRE_FILE_SIZE_UNCHANGED "system/melonDS DS/${NDS_FIRMWARE_NAME}"
)
add_retroarch_test(
NAME "Core saves wi-fi settings to wfcsettings.bin when using built-in firmware"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_firmware_nds_path=/builtin"
ARM7_BIOS
ARM9_BIOS
REQUIRE_FILE_CREATED "system/melonDS DS/wfcsettings.bin"
)
### Overwriting Firmware
add_emutest_test(
NAME "NDS firmware is not overwritten when switching from DS to DSi mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="ds"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "NDS firmware is not overwritten when switching from DSi to NDS mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "DSi firmware is not overwritten when switching from NDS to DSi mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "DSi firmware is not overwritten when switching from DSi to NDS mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
# TODO: Write the following test capabilities:
# - Copying a system file to a particular location
# - Select a GBA ROM
@ -875,4 +396,9 @@ add_emutest_test(
# (will need to find a test case besides Pokemon)
include(cmake/Basics.cmake)
include(cmake/TestHomebrewSDCards.cmake)
include(cmake/Booting.cmake)
include(cmake/Errors.cmake)
include(cmake/Firmware.cmake)
include(cmake/Reset.cmake)
include(cmake/TestHomebrewSDCards.cmake)
include(cmake/Video.cmake)

View File

@ -82,7 +82,8 @@ add_python_test(
add_python_test(
NAME "Core accepts analog input"
TEST_MODULE ""
TEST_MODULE basics.core_accepts_analog_input
NDS_SYSFILES # This test needs the NDS system menu
)
add_python_test(
@ -127,8 +128,11 @@ add_python_test(
add_python_test(
NAME "Core rotates the screen"
TEST_MODULE ""
)
TEST_MODULE basics.core_rotates_screen
NDS_SYSFILES
DISABLED
) # TODO: Implement this test
# TODO: Set the screen layout sequence
add_python_test(
NAME "Core can send messages (API V0)"
@ -226,7 +230,8 @@ add_python_test(
add_python_test(
NAME "Core loads and unloads with subsystem content"
TEST_MODULE ""
)
DISABLED
) # TODO: Implement this test
add_python_test(
NAME "Core defines controller info"
@ -237,7 +242,8 @@ add_python_test(
add_python_test(
NAME "Core sets geometry at runtime"
TEST_MODULE ""
)
DISABLED
) # TODO: Implement this test
add_python_test(
NAME "Core registers support for achievements"
@ -295,6 +301,7 @@ add_python_test(
NDS_SYSFILES
)
# See https://github.com/JesseTG/melonds-ds/issues/51
add_python_test(
NAME "Core sets options (V2 API)"
TEST_MODULE basics.core_defines_options_v2
@ -310,12 +317,14 @@ add_python_test(
add_python_test(
NAME "Core accepts microphone input"
TEST_MODULE ""
)
DISABLED
) # TODO: Implement this test
add_python_test(
NAME "Core queries device power state"
TEST_MODULE ""
)
DISABLED
) # TODO: Implement this test

219
test/cmake/Booting.cmake Normal file
View File

@ -0,0 +1,219 @@
## Direct Boot of NDS game ####################################################
add_retroarch_test(
NAME "Direct NDS boot with built-in system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
)
add_retroarch_test(
NAME "Direct NDS boot with native system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
FAIL_REGULAR_EXPRESSION "Failed to load ARM[79]"
FAIL_REGULAR_EXPRESSION "Failed to load the required firmware"
)
add_retroarch_test(
NAME "Direct NDS boot with native BIOS and non-bootable firmware succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 180
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${DSI_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
FAIL_REGULAR_EXPRESSION "Failed to load ARM[79]"
FAIL_REGULAR_EXPRESSION "Failed to load the required firmware"
)
## Boot to firmware ####################################################
add_retroarch_test(
NAME "NDS boot with no content, native BIOS, and bootable firmware succeeds"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=native"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
NDS_FIRMWARE
ARM7_BIOS
ARM9_BIOS
)
add_retroarch_test(
NAME "NDS boot with no content and built-in system files fails"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
WILL_FAIL
)
add_retroarch_test(
NAME "NDS boot with no content, native BIOS, and non-bootable firmware fails"
MAX_FRAMES 180
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${DSI_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
WILL_FAIL
)
## DSi boot ####################################################
add_retroarch_test(
NAME "DSi boot to menu with no NAND image fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=/notfound"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no NDS BIOS fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no DSi BIOS fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with NDS firmware fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with no firmware fails"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "DSi boot to menu with all system files succeeds"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no NAND image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=/notfound"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no NDS BIOS image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with no DSi BIOS image fails"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
DSI_FIRMWARE
DSI_NAND
WILL_FAIL
)
add_retroarch_test(
NAME "Direct DSi boot to NDS game with all system files succeeds"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=dsi"
CORE_OPTION "melonds_firmware_dsi_path=melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION "melonds_dsi_nand_path=melonDS DS/${DSI_NAND_NAME}"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
)

43
test/cmake/Errors.cmake Normal file
View File

@ -0,0 +1,43 @@
### With Content
add_retroarch_test(
NAME "Core falls back to FreeBIOS if ARM7 BIOS is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
ARM9_BIOS
PASS_REGULAR_EXPRESSION "Falling back to FreeBIOS"
)
add_retroarch_test(
NAME "Core falls back to FreeBIOS if ARM9 BIOS is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
ARM7_BIOS
PASS_REGULAR_EXPRESSION "Falling back to FreeBIOS"
)
add_retroarch_test(
NAME "Core falls back to built-in firmware if native firmware is missing (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
ARM7_BIOS
ARM9_BIOS
PASS_REGULAR_EXPRESSION "Falling back to built-in firmware"
)
add_emutest_test(
NAME "Loading invalid ROM does not cause a crash"
CONTENT "$<TARGET_FILE:melondsds_libretro>"
TEST_SCRIPT "no-crash-on-invalid-rom.lua"
WILL_FAIL
)

118
test/cmake/Firmware.cmake Normal file
View File

@ -0,0 +1,118 @@
### Preventing Unneeded Loads
add_retroarch_test(
NAME "Core doesn't try to load native BIOS if using FreeBIOS (NDS)"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_sysfile_mode=builtin"
PASS_REGULAR_EXPRESSION "Not loading native ARM BIOS files"
)
# See https://github.com/JesseTG/melonds-ds/issues/59
add_retroarch_test(
NAME "Native firmware is not overwritten by contents of wfcsettings.bin"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_firmware_nds_path=melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION "melonds_sysfile_mode=native"
CORE_OPTION "melonds_boot_mode=native"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
REQUIRE_FILE_SIZE_UNCHANGED "system/melonDS DS/${NDS_FIRMWARE_NAME}"
)
add_retroarch_test(
NAME "Core saves wi-fi settings to wfcsettings.bin when using built-in firmware"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_firmware_nds_path=/builtin"
ARM7_BIOS
ARM9_BIOS
REQUIRE_FILE_CREATED "system/melonDS DS/wfcsettings.bin"
)
### Overwriting Firmware
add_emutest_test(
NAME "NDS firmware is not overwritten when switching from DS to DSi mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="ds"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "NDS firmware is not overwritten when switching from DSi to NDS mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "DSi firmware is not overwritten when switching from NDS to DSi mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "DSi firmware is not overwritten when switching from DSi to NDS mode"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "firmware-not-overwritten.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
NDS_FIRMWARE
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_directly="false"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)

74
test/cmake/Reset.cmake Normal file
View File

@ -0,0 +1,74 @@
# See https://github.com/JesseTG/melonds-ds/issues/62
add_emutest_test(
NAME "Core resets when using built-in system files and direct boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_show_cursor="disabled"
CORE_OPTION melonds_sysfile_mode="builtin"
CORE_OPTION melonds_console_mode="ds"
)
add_emutest_test(
NAME "Core resets when using native system files and direct boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
CORE_OPTION melonds_firmware_nds_path='melonDS DS/${NDS_FIRMWARE_NAME}'
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
CORE_OPTION melonds_console_mode="ds"
)
add_emutest_test(
NAME "Core resets when using native system files and native boot (NDS)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
NDS_FIRMWARE
CORE_OPTION melonds_firmware_nds_path="melonDS DS/${NDS_FIRMWARE_NAME}"
CORE_OPTION melonds_boot_mode="native"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "Core resets when using native system files and direct boot (DSi)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_boot_mode="direct"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)
add_emutest_test(
NAME "Core resets when using native system files and native boot (DSi)"
CONTENT "${NDS_ROM}"
TEST_SCRIPT "no-hang-on-reboot.lua"
ARM7_BIOS
ARM9_BIOS
ARM7_DSI_BIOS
ARM9_DSI_BIOS
DSI_FIRMWARE
DSI_NAND
CORE_OPTION melonds_firmware_dsi_path="melonDS DS/${DSI_FIRMWARE_NAME}"
CORE_OPTION melonds_console_mode="dsi"
CORE_OPTION melonds_dsi_nand_path="melonDS DS/${DSI_NAND_NAME}"
CORE_OPTION melonds_boot_mode="native"
CORE_OPTION melonds_sysfile_mode="native"
CORE_OPTION melonds_show_cursor="disabled"
)

10
test/cmake/Video.cmake Normal file
View File

@ -0,0 +1,10 @@
# See https://github.com/JesseTG/melonds-ds/issues/70
add_retroarch_test(
NAME "Core unloads with threaded software rendering"
CONTENT "${NDS_ROM}"
MAX_FRAMES 6
CORE_OPTION "melonds_boot_mode=direct"
CORE_OPTION "melonds_sysfile_mode=builtin"
CORE_OPTION "melonds_console_mode=ds"
CORE_OPTION "melonds_threaded_renderer=enabled"
)