This commit is contained in:
Clément Le Bihan
2020-02-10 16:28:57 +01:00
parent 31373776e1
commit 0b442450a5
3 changed files with 23 additions and 32 deletions
-4
View File
@@ -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
View File
@@ -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);
+1 -6
View File
@@ -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)