yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
ppu_test.cc
Go to the documentation of this file.
1#include "app/emu/video/ppu.h"
2
3#include <gmock/gmock.h>
4
6
7namespace yaze {
8namespace test {
9
10using yaze::emu::MockClock;
11using yaze::emu::MockMemory;
13using yaze::emu::PpuInterface;
14using yaze::emu::SpriteAttributes;
15using yaze::emu::Tilemap;
16
20class MockPpu : public PpuInterface {
21 public:
22 MOCK_METHOD(void, Write, (uint16_t address, uint8_t data), (override));
23 MOCK_METHOD(uint8_t, Read, (uint16_t address), (const, override));
24
25 std::vector<uint8_t> internalFrameBuffer;
26 std::vector<uint8_t> vram;
27 std::vector<SpriteAttributes> sprites;
28 std::vector<Tilemap> tilemaps;
30};
31
35class PpuTest : public ::testing::Test {
36 protected:
38 MockClock mock_clock;
40
42
43 void SetUp() override {
44 ON_CALL(mock_ppu, Write(::testing::_, ::testing::_))
45 .WillByDefault([this](uint16_t address, uint8_t data) {
46 mock_ppu.vram[address] = data;
47 });
48
49 ON_CALL(mock_ppu, Read(::testing::_))
50 .WillByDefault(
51 [this](uint16_t address) { return mock_ppu.vram[address]; });
52 }
53};
54
55} // namespace test
56} // namespace yaze
A mock implementation of the Memory class.
Definition mock_memory.h:29
virtual void Write(uint16_t address, uint8_t data)=0
virtual uint8_t Read(uint16_t address) const =0
Mock Ppu class for testing.
Definition ppu_test.cc:20
std::vector< uint8_t > internalFrameBuffer
Definition ppu_test.cc:25
BackgroundMode bgMode
Definition ppu_test.cc:29
MOCK_METHOD(uint8_t, Read,(uint16_t address),(const, override))
MOCK_METHOD(void, Write,(uint16_t address, uint8_t data),(override))
std::vector< Tilemap > tilemaps
Definition ppu_test.cc:28
std::vector< SpriteAttributes > sprites
Definition ppu_test.cc:27
std::vector< uint8_t > vram
Definition ppu_test.cc:26
void SetUp() override
Definition ppu_test.cc:43
MockClock mock_clock
Definition ppu_test.cc:38
MockMemory mock_memory
Definition ppu_test.cc:37
BackgroundMode
Definition ppu.h:25
Main namespace for the application.
Definition controller.cc:18