Commit Graph

145 Commits

Author SHA1 Message Date
scawful
41adb1b70e Enhance testing framework and UI integration for YAZE
- Added a comprehensive testing framework with support for unit, integration, and UI tests, improving overall test coverage and reliability.
- Integrated ImGui Test Engine for UI testing, allowing for real-time feedback and visualization of test results.
- Updated CMake configuration to conditionally include testing components based on build options, enhancing flexibility for developers.
- Introduced a new command in the CLI for running asset loading tests on ROMs, providing a straightforward way to validate functionality.
- Enhanced error handling and resource management during testing, ensuring stability and clarity in test execution.
- Improved user interface with a dedicated test dashboard for monitoring test progress and results, enhancing developer experience.
2025-09-25 13:26:56 -04:00
scawful
4c6342cb73 Refactor UnpackBppTile and PackBppTile functions for clarity and correctness
- Initialized the snes_tile8 structure to zero in UnpackBppTile for safety.
- Reordered loops in UnpackBppTile to process rows before columns, improving readability.
- Corrected bit manipulation logic in both UnpackBppTile and PackBppTile to ensure accurate color value handling.
- Enhanced test cases for 2bpp and 4bpp tile unpacking to validate expected results, improving test coverage.
2025-09-25 11:16:13 -04:00
scawful
e930789f4b Enhance CMake configuration and CI/CD workflows for improved testing
- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
2025-09-25 09:39:33 -04:00
scawful
6bdcfe95ec Update CMake configuration and CI/CD workflows
- Upgraded CMake minimum version requirement to 3.16 and updated project version to 0.3.0.
- Introduced new CMake presets for build configurations, including default, debug, and release options.
- Added CI/CD workflows for continuous integration and release management, enhancing automated testing and deployment processes.
- Integrated Asar assembler support with new wrapper classes and CLI commands for patching ROMs.
- Implemented comprehensive tests for Asar integration, ensuring robust functionality and error handling.
- Enhanced packaging configuration for cross-platform support, including Windows, macOS, and Linux.
- Updated documentation and added test assets for improved clarity and usability.
2025-09-25 08:59:59 -04:00
scawful
ccd4e8cf4b Integrate Dungeon Editor System and Object Editor for Enhanced Dungeon Management
- Introduced a new DungeonEditorSystem to streamline dungeon editing functionalities, including room properties management and object editing.
- Enhanced the DungeonEditor class to initialize the new editor system and manage room properties effectively.
- Added comprehensive object editing capabilities with a dedicated DungeonObjectEditor, supporting object insertion, deletion, and real-time preview.
- Implemented improved UI components for editing dungeon settings, including integrated editing panels for various object types.
- Enhanced error handling and validation throughout the dungeon editing process to ensure robust functionality.
- Updated integration tests to cover new features and validate the overall performance of the dungeon editing system.
2025-09-24 22:48:47 -04:00
scawful
f6ef5f971b Add integration tests for overworld and dungeon functionalities
- Introduced comprehensive integration tests for the overworld, including tests for overworld map properties, sprite positioning, and filtering logic.
- Added new tests for dungeon integration, focusing on room loading, object parsing, and ensuring compatibility with overworld changes.
- Implemented utility functions for extracting vanilla values from ROM and creating patched ROMs, enhancing testing capabilities.
- Updated CMakeLists.txt to include new test files for comprehensive coverage of overworld and dungeon functionalities.
2025-09-24 18:37:57 -04:00
scawful
710a9685fe Add EditorIntegrationTest class for comprehensive editor testing
- Introduced EditorIntegrationTest class to facilitate integration testing for editors, providing a structured environment for testing editor functionalities.
- Implemented methods for initializing the test environment, running tests, and handling ROM operations.
- Added helper methods for common editor actions such as load, save, cut, copy, paste, undo, redo, and find, ensuring thorough coverage of editor capabilities.
- Integrated ImGui test engine for UI interaction testing, enhancing the testing framework's capabilities.
2025-09-24 12:59:07 -04:00
scawful
3734884ba3 Refactor Snes class and enhance Apu functionality
- Updated Snes constructor to initialize CPU callbacks directly, improving readability and maintainability.
- Removed unnecessary CpuCallbacks parameter from Cpu constructor, streamlining the class design.
- Added new methods in Apu for retrieving cycles, status, control, and handling DMA transfers, enhancing audio processing capabilities.
- Introduced unit tests for Apu to validate initialization, sample generation, and handshake timing, ensuring robust audio functionality.
2025-09-24 12:51:29 -04:00
scawful
789f577ee3 Add integration tests for Dungeon Editor and object parsing functionality
- Updated CMakeLists.txt to include new test files for CPU, PPU, SPC700, APU, and dungeon editor integration tests.
- Introduced new testing helpers in testing.h for validating StatusOr objects with specific error messages and codes.
- Added comprehensive integration tests for the DungeonEditor, covering object parsing, rendering, and room graphics.
- Created mock ROM and object data setups to facilitate testing without real ROM files.
- Implemented various test cases to ensure the reliability of object parsing and rendering logic in the dungeon editor.
2025-09-24 12:44:14 -04:00
scawful
d5ec1ece19 Update window creation in TestEditor to support resizable windows
- Modified the CreateWindow function call to include the SDL_WINDOW_RESIZABLE flag, allowing for dynamic window resizing during integration tests.
2025-09-13 11:45:51 -04:00
scawful
e2aab3f2e4 Add transaction management for atomic ROM operations with rollback
- Introduced a Transaction class to handle atomic write operations to ROM, allowing for rollback on failure.
- Implemented methods for writing bytes, words, longs, vectors, and colors, with status checks and operation logging.
- Added a rollback mechanism to restore original values in case of write failures.
- Enhanced unit tests to verify transaction rollback functionality and ensure data integrity after failed operations.
2025-09-13 11:45:29 -04:00
scawful
7f60ddcd42 test housekeeping 2025-08-21 19:01:40 -04:00
scawful
f632650568 Update SnesColor constructor and add SnesTile tests
- Changed SnesColor constructor to remove constexpr, improving compatibility with non-constant expressions.
- Added new tests for SnesTile functionality, including unpacking, packing, and conversion between different bit depths.
- Enhanced TileInfo and Tile32 tests to verify construction, operations, and bit manipulation for better coverage.
2025-05-15 23:05:25 -04:00
scawful
47ab1bdfd5 Add tests for ParseSingleMessage handling special characters and dictionary references
- Introduced tests for ParseSingleMessage to validate parsing of special characters and dictionary references.
- Added a test case for handling invalid terminators in message data.
- Enhanced existing tests for better coverage of message parsing scenarios.
2025-05-15 22:59:02 -04:00
scawful
fcb6a46bb1 Refactor Renderer access and improve gesture handling in iOS and test files
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Enhanced gesture handling in iOS by adding mouse position events for touch gestures.
- Streamlined test initialization for ImGui to align with recent renderer access changes.
2025-05-08 19:39:49 -04:00
scawful
6e09630733 Refactor HandleHexStringParams to modify hex string directly and add hex_test for comprehensive testing of hex conversion functions with various prefixes. 2025-05-03 14:09:35 -04:00
scawful
6c6f7a9581 Add comprehensive tests for SnesColor and SnesPalette classes, including constructors, color addition, updating, sub-palettes, and iterator functionality; ensure proper behavior and state management in various scenarios. 2025-04-17 22:12:14 -04:00
scawful
f43328a1ae Update overworld loading logic to use Rom pointers directly; adjust test cases for consistency. 2025-04-12 11:29:45 -04:00
scawful
cb86c7b2ec Add TestEditor class and integration test setup for ImGui; implement basic UI elements and test registration functionality. 2025-04-12 09:59:47 -04:00
scawful
e38a7d7581 Fix formatting in ParseTextDataByte and optimize message handling in ReadAllTextDataV2 2025-04-05 17:50:49 -04:00
scawful
2539724369 Add unit tests for message parsing and dictionary word replacement functions 2025-04-05 17:26:03 -04:00
scawful
9705745c14 Refactor MessageTest: remove unused tests and enhance message parsing validation 2025-04-05 14:07:24 -04:00
scawful
0d4ae946f8 Refactor TestEditor: move to yaze::test namespace and implement Save/Load methods 2025-04-05 13:47:07 -04:00
scawful
358520fcae Remove test editor integration from Controller and update integration test logic 2025-03-11 20:11:47 -04:00
scawful
b707345a06 Add MockRom class for unit testing ROM interactions 2025-03-03 17:08:24 -05:00
scawful
26cda69d44 Refactor common functionality into zelda3 namespace; remove references to core::common 2025-01-22 13:53:01 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
scawful
fa33be3463 Add tests for ParseSingleMessage function in message_test.cc 2025-01-19 20:01:57 -05:00
scawful
5afaecf1ee Refactor test includes 2025-01-19 19:14:53 -05:00
scawful
e4cc3b977a Move test dir to root 2025-01-19 19:09:39 -05:00
scawful
096b10ff77 move test directory into src 2024-07-24 01:55:13 -04:00
scawful
4582a18f53 Move GfxContext to editor/utils, update CMakeLists.txt 2024-07-19 23:07:04 -04:00
scawful
da7f3a44eb housekeeping 2024-07-14 14:31:30 -04:00
scawful
5741596a89 Remove unused targets from build 2024-04-23 14:07:02 -04:00
scawful
97f74b9c4b Remove emu tests from build, as interfaces have changed and will be updated later 2024-04-22 17:00:24 -04:00
scawful
1a4563f9e7 overhaul cleanups 2024-04-22 15:58:39 -04:00
scawful
c6df32ffe8 Add test for AsmParser::Tokenize 2024-04-19 21:45:51 -04:00
scawful
7e46cf1c64 Rename ROM class to Rom 2024-04-14 14:47:17 -05:00
scawful
2aa9bce9ca Move editor interface to editor/utils 2024-04-14 10:00:33 -05:00
scawful
ce2cae2242 Rearrange test namespaces 2024-04-14 09:30:21 -05:00
scawful
f653517026 add memory namespace, update comments 2024-04-13 23:56:41 -05:00
scawful
e45322d070 Update test fixtures 2024-04-13 23:39:45 -05:00
scawful
ad08d998b5 Add audio namespace inside of emu 2024-04-13 23:32:30 -05:00
scawful
494f991af4 fix cpu tests for stack relative mock 2024-02-09 21:44:12 -05:00
scawful
693dca1329 Rename SNESPalette, SNESColor to SnesPalette, SnesColor
Create snes_color.h and snes_color.cc to separate concerns
2024-01-31 21:09:42 -05:00
scawful
ee179a5598 housekeeping for GfxContext and Room logging 2024-01-28 12:05:50 -05:00
scawful
c4a44fbc10 update snes palette test, color accessor no longer throws exceptions 2024-01-26 23:29:00 -05:00
scawful
98394a6139 Add TODO to fix COP test 2024-01-22 20:30:57 -05:00
scawful
5455b2a425 Add ResourceLabelManager class 2024-01-22 03:26:37 -05:00
scawful
aeb437708f Cpu and Spc700 tests 2023-12-19 18:40:34 -05:00