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::MockMemory;
12using yaze::emu::PpuInterface;
13using yaze::emu::SpriteAttributes;
14using yaze::emu::Tilemap;
15
19class MockPpu : public PpuInterface {
20 public:
21 MOCK_METHOD(void, Write, (uint16_t address, uint8_t data), (override));
22 MOCK_METHOD(uint8_t, Read, (uint16_t address), (const, override));
23
24 std::vector<uint8_t> internalFrameBuffer;
25 std::vector<uint8_t> vram;
26 std::vector<SpriteAttributes> sprites;
27 std::vector<Tilemap> tilemaps;
29};
30
34class PpuTest : public ::testing::Test {
35 protected:
38
40
41 void SetUp() override {
42 ON_CALL(mock_ppu, Write(::testing::_, ::testing::_))
43 .WillByDefault([this](uint16_t address, uint8_t data) {
44 mock_ppu.vram[address] = data;
45 });
46
47 ON_CALL(mock_ppu, Read(::testing::_))
48 .WillByDefault(
49 [this](uint16_t address) { return mock_ppu.vram[address]; });
50 }
51};
52
53} // namespace test
54} // 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:19
std::vector< uint8_t > internalFrameBuffer
Definition ppu_test.cc:24
BackgroundMode bgMode
Definition ppu_test.cc:28
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:27
std::vector< SpriteAttributes > sprites
Definition ppu_test.cc:26
std::vector< uint8_t > vram
Definition ppu_test.cc:25
void SetUp() override
Definition ppu_test.cc:41
MockMemory mock_memory
Definition ppu_test.cc:36
BackgroundMode
Definition ppu.h:25
Main namespace for the application.
Definition controller.cc:12