Merge branch 'master' into rom-test-hex-nums
This commit is contained in:
@@ -14,37 +14,30 @@ add_executable(
|
||||
yaze_test
|
||||
yaze_test.cc
|
||||
rom_test.cc
|
||||
asm_test.cc
|
||||
../src/app/rom.cc
|
||||
../src/app/asm/script.cc
|
||||
../src/app/gfx/bitmap.cc
|
||||
../src/app/gfx/snes_tile.cc
|
||||
../src/app/gfx/snes_palette.cc
|
||||
../src/app/core/common.cc
|
||||
../src/lib/asar/src/asar-dll-bindings/c/asardll.c
|
||||
)
|
||||
|
||||
target_include_directories(
|
||||
yaze_test PUBLIC
|
||||
../src/lib/
|
||||
../src/
|
||||
../src/lib/
|
||||
../src/lib/asar/src/asar-dll-bindings/c
|
||||
${SDL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
yaze_test
|
||||
absl::strings
|
||||
absl::flags
|
||||
absl::status
|
||||
absl::statusor
|
||||
absl::failure_signal_handler
|
||||
absl::examine_stack
|
||||
absl::stacktrace
|
||||
absl::base
|
||||
absl::config
|
||||
absl::core_headers
|
||||
absl::raw_logging_internal
|
||||
SDL2::SDL2
|
||||
${ABSL_TARGETS}
|
||||
${OPENGL_LIBRARIES}
|
||||
asar-static
|
||||
${CMAKE_DL_LIBS}
|
||||
gmock_main
|
||||
gmock
|
||||
gtest_main
|
||||
|
||||
66
test/asm_test.cc
Normal file
66
test/asm_test.cc
Normal file
@@ -0,0 +1,66 @@
|
||||
#include <asardll.h>
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#include "absl/status/status.h"
|
||||
#include "absl/status/statusor.h"
|
||||
#include "absl/strings/str_cat.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "app/asm/script.h"
|
||||
#include "app/core/constants.h"
|
||||
#include "app/rom.h"
|
||||
|
||||
namespace yaze_test {
|
||||
namespace asm_test {
|
||||
|
||||
using yaze::app::ROM;
|
||||
using yaze::app::snes_asm::Script;
|
||||
|
||||
using ::testing::_;
|
||||
using ::testing::ElementsAreArray;
|
||||
using ::testing::Eq;
|
||||
using ::testing::Return;
|
||||
|
||||
class MockScript : public Script {
|
||||
public:
|
||||
MOCK_METHOD(absl::Status, ApplyPatchToROM, (ROM & rom));
|
||||
MOCK_METHOD(absl::Status, GenerateMosaicChangeAssembly,
|
||||
(ROM & rom, char mosaic_tiles[yaze::app::core::kNumOverworldMaps],
|
||||
int routine_offset, int hook_offset));
|
||||
};
|
||||
|
||||
TEST(ASMTest, ApplyMosaicChangePatchOk) {
|
||||
ROM rom;
|
||||
MockScript script;
|
||||
char mosaic_tiles[yaze::app::core::kNumOverworldMaps];
|
||||
|
||||
EXPECT_CALL(script, GenerateMosaicChangeAssembly(_, Eq(mosaic_tiles),
|
||||
Eq(0x1301D0 + 0x138000), 0))
|
||||
.WillOnce(Return(absl::OkStatus()));
|
||||
|
||||
EXPECT_CALL(script, ApplyPatchToROM(_)).WillOnce(Return(absl::OkStatus()));
|
||||
|
||||
EXPECT_THAT(script.GenerateMosaicChangeAssembly(rom, mosaic_tiles,
|
||||
0x1301D0 + 0x138000, 0),
|
||||
absl::OkStatus());
|
||||
EXPECT_THAT(script.ApplyPatchToROM(rom), absl::OkStatus());
|
||||
}
|
||||
|
||||
TEST(ASMTest, NoPatchLoadedError) {
|
||||
ROM rom;
|
||||
MockScript script;
|
||||
EXPECT_CALL(script, ApplyPatchToROM(_))
|
||||
.WillOnce(Return(absl::InvalidArgumentError("No patch loaded!")));
|
||||
|
||||
EXPECT_THAT(script.ApplyPatchToROM(rom),
|
||||
absl::InvalidArgumentError("No patch loaded!"));
|
||||
}
|
||||
|
||||
} // namespace asm_test
|
||||
} // namespace yaze_test
|
||||
Reference in New Issue
Block a user