Skip to content

Commit 67826ec

Browse files
committed
test: enforce SET_SUPPORT_ACHIEVEMENTS before retro_init; clarify E2E deps
- Run Test 1 immediately after retro_set_environment so regressions that move the call into retro_init fail. - Document libdl on Linux for test_rcheevos_e2e.sh (dlopen via -ldl). Made-with: Cursor
1 parent ebd5e38 commit 67826ec

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

test/tools/test_memory_map.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,20 +180,14 @@ int main(int argc, char **argv)
180180
captured_memmap = NULL;
181181

182182
core_set_env(env_cb);
183-
core_set_video(video_cb);
184-
core_set_audio(audio_cb);
185-
core_set_audio_batch(audio_batch);
186-
core_set_input_poll(input_poll);
187-
core_set_input_state(input_state);
188-
core_init();
189183

190-
/* Test 1: SET_SUPPORT_ACHIEVEMENTS during retro_set_environment — non-NULL bool, true */
184+
/* Test 1: must fire from retro_set_environment before retro_init (not after init) */
191185
printf("Test 1: SET_SUPPORT_ACHIEVEMENTS (true) ... ");
192186
if (got_achievements && achievements_data_ok && achievements_enabled_true)
193187
printf("PASS\n");
194188
else if (!got_achievements)
195189
{
196-
printf("FAIL (not called)\n");
190+
printf("FAIL (not called during retro_set_environment)\n");
197191
failures++;
198192
}
199193
else if (!achievements_data_ok)
@@ -207,6 +201,13 @@ int main(int argc, char **argv)
207201
failures++;
208202
}
209203

204+
core_set_video(video_cb);
205+
core_set_audio(audio_cb);
206+
core_set_audio_batch(audio_batch);
207+
core_set_input_poll(input_poll);
208+
core_set_input_state(input_state);
209+
core_init();
210+
210211
/* Load the dummy ROM to trigger SET_MEMORY_MAPS */
211212
rom = make_dummy_rom(&rom_size);
212213
memset(&info, 0, sizeof(info));

test/tools/test_rcheevos_e2e.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# memory initialization (same path RetroArch uses for Jaguar / console 17), then read
44
# bytes via rc_libretro_memory_read / rc_libretro_memory_find.
55
#
6-
# Requires: bash, curl, cc, ar, dlopen (libc)
6+
# Requires: bash, curl, cc, ar, libdl (Linux, for dlopen via -ldl)
77
# Usage: ./test/tools/test_rcheevos_e2e.sh path/to/virtualjaguar_libretro.{so,dylib}
88
set -euo pipefail
99

0 commit comments

Comments
 (0)