mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-06-07 19:50:48 +00:00
merge
This commit is contained in:
@@ -52,15 +52,11 @@ add_executable(unit_tests
|
|||||||
sources/CPU/Instructions/CommonInstructions.hpp
|
sources/CPU/Instructions/CommonInstructions.hpp
|
||||||
sources/Exceptions/InvalidOpcode.hpp
|
sources/Exceptions/InvalidOpcode.hpp
|
||||||
sources/CPU/Instructions/Interrupts.cpp
|
sources/CPU/Instructions/Interrupts.cpp
|
||||||
<<<<<<< HEAD
|
|
||||||
sources/CPU/Instructions/MathematicalOperations.cpp
|
sources/CPU/Instructions/MathematicalOperations.cpp
|
||||||
tests/CPU/testAddressingMode.cpp
|
tests/CPU/testAddressingMode.cpp
|
||||||
tests/tests.cpp
|
tests/tests.cpp
|
||||||
tests/PPU/testPpuWrite.cpp
|
tests/PPU/testPpuWrite.cpp
|
||||||
)
|
)
|
||||||
=======
|
|
||||||
sources/CPU/Instructions/MathematicalOperations.cpp)
|
|
||||||
>>>>>>> aeb1e127f381998d0a572712afb43ef657f5024d
|
|
||||||
|
|
||||||
# include criterion & coverage
|
# include criterion & coverage
|
||||||
target_link_libraries(unit_tests criterion -lgcov)
|
target_link_libraries(unit_tests criterion -lgcov)
|
||||||
|
|||||||
+22
-22
@@ -14,7 +14,7 @@ using namespace ComSquare;
|
|||||||
Test(PPU_write, inidisp_data_full_ones)
|
Test(PPU_write, inidisp_data_full_ones)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2100, 0b11111111);
|
pair.first->write(0x2100, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.fblank, true);
|
cr_assert_eq(pair.second.ppu->_inidisp.fblank, true);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0xF);
|
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0xF);
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@ Test(PPU_write, inidisp_data_full_ones)
|
|||||||
Test(PPU_write, inidisp_data_full_zeros)
|
Test(PPU_write, inidisp_data_full_zeros)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2100, 0b00000000);
|
pair.first->write(0x2100, 0b00000000);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x0);
|
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x0);
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ Test(PPU_write, inidisp_data_full_zeros)
|
|||||||
Test(PPU_write, inidisp_data_fBlank_on_brghtness_off)
|
Test(PPU_write, inidisp_data_fBlank_on_brghtness_off)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2100, 0b10000000);
|
pair.first->write(0x2100, 0b10000000);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.fblank, true);
|
cr_assert_eq(pair.second.ppu->_inidisp.fblank, true);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x0);
|
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x0);
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ Test(PPU_write, inidisp_data_fBlank_on_brghtness_off)
|
|||||||
Test(PPU_write, inidisp_data_fBlank_off_brghtness_max)
|
Test(PPU_write, inidisp_data_fBlank_off_brghtness_max)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2100, 0b00001111);
|
pair.first->write(0x2100, 0b00001111);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0xF);
|
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0xF);
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ Test(PPU_write, inidisp_data_fBlank_off_brghtness_max)
|
|||||||
Test(PPU_write, inidisp_data_fBlank_off_brghtness_half)
|
Test(PPU_write, inidisp_data_fBlank_off_brghtness_half)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2100, 0b00000101);
|
pair.first->write(0x2100, 0b00000101);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
cr_assert_eq(pair.second.ppu->_inidisp.fblank, false);
|
||||||
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x5);
|
cr_assert_eq(pair.second.ppu->_inidisp.brightness, 0x5);
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ Test(PPU_write, inidisp_data_fBlank_off_brghtness_half)
|
|||||||
Test(PPU_write, obsel_111_object_size_and_all_null)
|
Test(PPU_write, obsel_111_object_size_and_all_null)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2101, 0b11100000);
|
pair.first->write(0x2101, 0b11100000);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b111);
|
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b111);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b00);
|
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b00);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b000);
|
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b000);
|
||||||
@@ -63,7 +63,7 @@ Test(PPU_write, obsel_111_object_size_and_all_null)
|
|||||||
Test(PPU_write, obsel_data_full)
|
Test(PPU_write, obsel_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2101, 0b11111111);
|
pair.first->write(0x2101, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b111);
|
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b111);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b11);
|
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b11);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b111);
|
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b111);
|
||||||
@@ -72,7 +72,7 @@ Test(PPU_write, obsel_data_full)
|
|||||||
Test(PPU_write, obsel_data_full_nameselect)
|
Test(PPU_write, obsel_data_full_nameselect)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2101, 0b00011000);
|
pair.first->write(0x2101, 0b00011000);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b000);
|
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b000);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b11);
|
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b11);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b000);
|
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b000);
|
||||||
@@ -81,7 +81,7 @@ Test(PPU_write, obsel_data_full_nameselect)
|
|||||||
Test(PPU_write, obsel_data_full_baseselect)
|
Test(PPU_write, obsel_data_full_baseselect)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2101, 0b00000111);
|
pair.first->write(0x2101, 0b00000111);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b000);
|
cr_assert_eq(pair.second.ppu->_obsel.objectSize, 0b000);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b00);
|
cr_assert_eq(pair.second.ppu->_obsel.nameSelect, 0b00);
|
||||||
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b111);
|
cr_assert_eq(pair.second.ppu->_obsel.baseSelect, 0b111);
|
||||||
@@ -90,14 +90,14 @@ Test(PPU_write, obsel_data_full_baseselect)
|
|||||||
Test(PPU_write, oamaddl_data_full)
|
Test(PPU_write, oamaddl_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2102, 0b11111111);
|
pair.first->write(0x2102, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b011111111);
|
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b011111111);
|
||||||
}
|
}
|
||||||
|
|
||||||
Test(PPU_write, oamaddh_data_full)
|
Test(PPU_write, oamaddh_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2103, 0b11111111);
|
pair.first->write(0x2103, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b100000000);
|
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b100000000);
|
||||||
}
|
}
|
||||||
@@ -105,8 +105,8 @@ Test(PPU_write, oamaddh_data_full)
|
|||||||
Test(PPU_write, oamaddlh_data_full)
|
Test(PPU_write, oamaddlh_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2102, 0b11111111);
|
pair.first->write(0x2102, 0b11111111);
|
||||||
pair.first.write(0x2103, 0b11111111);
|
pair.first->write(0x2103, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b111111111);
|
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b111111111);
|
||||||
}
|
}
|
||||||
@@ -114,8 +114,8 @@ Test(PPU_write, oamaddlh_data_full)
|
|||||||
Test(PPU_write, oamaddlh_data_full_priorityBit_off)
|
Test(PPU_write, oamaddlh_data_full_priorityBit_off)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2102, 0b11111111);
|
pair.first->write(0x2102, 0b11111111);
|
||||||
pair.first.write(0x2103, 0b01111111);
|
pair.first->write(0x2103, 0b01111111);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, false);
|
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, false);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b111111111);
|
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 0b111111111);
|
||||||
}
|
}
|
||||||
@@ -123,8 +123,8 @@ Test(PPU_write, oamaddlh_data_full_priorityBit_off)
|
|||||||
Test(PPU_write, oamaddlh_oamAdress_11_priorityBit_on)
|
Test(PPU_write, oamaddlh_oamAdress_11_priorityBit_on)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2102, 0b00001011);
|
pair.first->write(0x2102, 0b00001011);
|
||||||
pair.first.write(0x2103, 0b10011100);
|
pair.first->write(0x2103, 0b10011100);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
cr_assert_eq(pair.second.ppu->_oamadd.objPriorityActivationBit, true);
|
||||||
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 11);
|
cr_assert_eq(pair.second.ppu->_oamadd.oamAddress, 11);
|
||||||
}
|
}
|
||||||
@@ -132,7 +132,7 @@ Test(PPU_write, oamaddlh_oamAdress_11_priorityBit_on)
|
|||||||
Test(PPU_write, bgmode_data_full)
|
Test(PPU_write, bgmode_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2105, 0b11111111);
|
pair.first->write(0x2105, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.bgMode, 7);
|
cr_assert_eq(pair.second.ppu->_bgmode.bgMode, 7);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg1, true);
|
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg1, true);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg2, true);
|
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg2, true);
|
||||||
@@ -144,7 +144,7 @@ Test(PPU_write, bgmode_data_full)
|
|||||||
Test(PPU_write, bgmode_bgmode_5_and_bg24_on)
|
Test(PPU_write, bgmode_bgmode_5_and_bg24_on)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2105, 0b10100101);
|
pair.first->write(0x2105, 0b10100101);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.bgMode, 5);
|
cr_assert_eq(pair.second.ppu->_bgmode.bgMode, 5);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg1, false);
|
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg1, false);
|
||||||
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg2, true);
|
cr_assert_eq(pair.second.ppu->_bgmode.characterSizeBg2, true);
|
||||||
@@ -156,7 +156,7 @@ Test(PPU_write, bgmode_bgmode_5_and_bg24_on)
|
|||||||
Test(PPU_write, mosaic_data_full)
|
Test(PPU_write, mosaic_data_full)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2106, 0b11111111);
|
pair.first->write(0x2106, 0b11111111);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, true);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, true);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, true);
|
||||||
@@ -167,7 +167,7 @@ cr_assert_eq(pair.second.ppu->_mosaic.pixelSize, 0xF);
|
|||||||
Test(PPU_write, mosaic_affectbg23_w_1x1_size)
|
Test(PPU_write, mosaic_affectbg23_w_1x1_size)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2106, 0b00000110);
|
pair.first->write(0x2106, 0b00000110);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, false);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, false);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, true);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, true);
|
||||||
@@ -178,7 +178,7 @@ cr_assert_eq(pair.second.ppu->_mosaic.pixelSize, 0x0);
|
|||||||
Test(PPU_write, mosaic_affectbg14_w_2x2_size)
|
Test(PPU_write, mosaic_affectbg14_w_2x2_size)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
pair.first.write(0x2106, 0b00101001);
|
pair.first->write(0x2106, 0b00101001);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, true);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg1, true);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, false);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg2, false);
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, false);
|
cr_assert_eq(pair.second.ppu->_mosaic.affectBg3, false);
|
||||||
|
|||||||
@@ -355,13 +355,8 @@ Test(BusWrite, WritePPU)
|
|||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
pair.first.write(0x002106, 123);
|
|
||||||
cr_assert_eq(pair.second.ppu->_mosaic.raw, 123);
|
|
||||||
=======
|
|
||||||
pair.first->write(0x002106, 123);
|
pair.first->write(0x002106, 123);
|
||||||
cr_assert_eq(pair.second.ppu->mosaic.raw, 123);
|
cr_assert_eq(pair.second.ppu->_mosaic.raw, 123);
|
||||||
>>>>>>> aeb1e127f381998d0a572712afb43ef657f5024d
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Test(BusWrite, WriteCPU)
|
Test(BusWrite, WriteCPU)
|
||||||
|
|||||||
Reference in New Issue
Block a user