From 9122615df4892d82980fafcdcec023750b51a7de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Kujawa?= Date: Fri, 27 Jan 2017 12:32:12 +0100 Subject: [PATCH] Split function determining full path to ROM. Adjust bus tests to this change. --- test/test_bus.c | 7 ++++++- test/utils.c | 26 ++++++++++++++++++-------- test/utils.h | 1 + 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/test/test_bus.c b/test/test_bus.c index d37dcce..7199e0f 100644 --- a/test/test_bus.c +++ b/test/test_bus.c @@ -3,7 +3,9 @@ #include #include +#include "rk65c02.h" #include "bus.h" +#include "utils.h" ATF_TC_WITHOUT_HEAD(bus_init); ATF_TC_BODY(bus_init, tc) @@ -21,10 +23,13 @@ ATF_TC_WITHOUT_HEAD(bus_load_file); ATF_TC_BODY(bus_load_file, tc) { bus_t b; + const char *rompath; b = bus_init(); - ATF_REQUIRE(bus_load_file(&b, 0xC000, "test_emulation_nop.rom")); + rompath = rom_path("test_emulation_nop.rom", tc); + + ATF_REQUIRE(bus_load_file(&b, 0xC000, rompath)); ATF_CHECK(b.space[0xC000] == 0xEA); diff --git a/test/utils.c b/test/utils.c index 6588e4a..b9d7e93 100644 --- a/test/utils.c +++ b/test/utils.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -7,24 +8,33 @@ #include "utils.h" -bool -rom_start(rk65c02emu_t *e, const char *name, const atf_tc_t *tc) +const char * +rom_path(const char *name, const atf_tc_t *tc) { - char rompath[PATH_MAX]; + char *rompath; const char *srcdir; - + + rompath = malloc(PATH_MAX); srcdir = atf_tc_get_config_var(tc, "srcdir"); - + strcpy(rompath, srcdir); strcat(rompath, "/"); strcat(rompath, name); - printf("%s\n", rompath); + return rompath; +} + +bool +rom_start(rk65c02emu_t *e, const char *name, const atf_tc_t *tc) +{ + const char *path; + + path = rom_path(name, tc); + printf("%s\n", path); e->regs.PC = ROM_LOAD_ADDR; - if(!bus_load_file(e->bus, ROM_LOAD_ADDR, rompath)) + if(!bus_load_file(e->bus, ROM_LOAD_ADDR, path)) return false; rk65c02_start(e); return true; } - diff --git a/test/utils.h b/test/utils.h index 4fcc68e..79600d8 100644 --- a/test/utils.h +++ b/test/utils.h @@ -4,4 +4,5 @@ #define ROM_LOAD_ADDR 0xC000 bool rom_start(rk65c02emu_t *, const char *, const atf_tc_t *); +const char * rom_path(const char *, const atf_tc_t *); #endif /* _UTILS_H_ */