Merge branch 'master' into rom-test-hex-nums

This commit is contained in:
Justin Scofield
2022-08-16 15:16:21 -04:00
committed by GitHub
30 changed files with 265 additions and 335 deletions

View File

@@ -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
View 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