test(nes): consolidate and simplify inline subsystem unit tests

This commit is contained in:
2026-08-27 07:16:26 +02:00
parent f028213c11
commit 57f349fa17
35 changed files with 6856 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
const std = @import("std");
const common = @import("../common.zig");
const Mirroring = common.Mirroring;
pub const Nrom = @import("nrom.zig");
pub const Mmc1 = @import("mmc1.zig");
pub const Uxrom = @import("uxrom.zig");
pub const Cnrom = @import("cnrom.zig");
pub const Mmc3 = @import("mmc3.zig");
pub const Axrom = @import("axrom.zig");
pub const ColorDreams = @import("color_dreams.zig");
pub const Unrom512 = @import("unrom512.zig");
pub const Bnrom = @import("bnrom.zig");
pub const Gxrom = @import("gxrom.zig");
pub const Camerica = @import("camerica.zig");
pub const Mmc2 = @import("mmc2.zig");
pub const Mmc4 = @import("mmc4.zig");
pub const Action53 = @import("action53.zig");
pub const Mapper180 = @import("mapper180.zig");
pub const Mapper = union(enum) {
nrom: Nrom,
mmc1: Mmc1,
uxrom: Uxrom,
cnrom: Cnrom,
mmc3: Mmc3,
axrom: Axrom,
color_dreams: ColorDreams,
unrom512: Unrom512,
bnrom: Bnrom,
gxrom: Gxrom,
camerica: Camerica,
mmc2: Mmc2,
mmc4: Mmc4,
action53: Action53,
mapper180: Mapper180,
pub fn cpuRead(self: *const Mapper, address: u16, prg_rom: []const u8, prg_ram: []const u8) ?u8 {
return switch (self.*) {
inline else => |*m| m.cpuRead(address, prg_rom, prg_ram),
};
}
pub fn cpuWrite(self: *Mapper, address: u16, value: u8, prg_ram: []u8) bool {
return switch (self.*) {
inline else => |*m| m.cpuWrite(address, value, prg_ram),
};
}
pub fn ppuRead(self: *const Mapper, address: u16, chr_rom: []const u8, chr_ram: []const u8, chr_is_ram: bool) ?u8 {
return switch (self.*) {
inline else => |*m| m.ppuRead(address, chr_rom, chr_ram, chr_is_ram),
};
}
pub fn ppuWrite(self: *Mapper, address: u16, value: u8, chr_ram: []u8, chr_is_ram: bool) bool {
return switch (self.*) {
inline else => |*m| m.ppuWrite(address, value, chr_ram, chr_is_ram),
};
}
pub fn mirroring(self: *const Mapper) Mirroring {
return switch (self.*) {
inline else => |*m| m.mirroring(),
};
}
pub fn irqLine(self: *const Mapper) bool {
return switch (self.*) {
inline else => |*m| m.irqLine(),
};
}
pub fn notifyPpuAddress(self: *Mapper, address: u16) void {
switch (self.*) {
inline else => |*m| m.notifyPpuAddress(address),
}
}
};
test {
_ = Nrom;
_ = Mmc1;
_ = Uxrom;
_ = Cnrom;
_ = Mmc3;
_ = Axrom;
_ = ColorDreams;
_ = Unrom512;
_ = Bnrom;
_ = Gxrom;
_ = Camerica;
_ = Mmc2;
_ = Mmc4;
_ = Action53;
_ = Mapper180;
}