-
Notifications
You must be signed in to change notification settings - Fork 73
API refactoring #438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
allnes
wants to merge
136
commits into
learning-process:master
Choose a base branch
from
allnes:an/unite-tests
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
API refactoring #438
+2,432
−2,099
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…_programming_course into an/unite-tests # Conflicts: # .github/workflows/codeql.yml # .github/workflows/main.yml # .github/workflows/static-analysis-pr.yml # modules/core/task/src/task.cpp
Refactored test parameter structs and macros to enhance readability and flexibility, including the addition of `FuncTestParam` and `PerfTestParam` types. Updated test case naming conventions with custom functions for better identification. Simplified utility functions and macros for improved code maintainability.
Updated functional tests and scripts to support dynamically filtering tasks by type. Refactored execution logic to reduce redundancy and improve maintainability. Adjusted macros and utility functions for better namespace resolution.
Standardized line formatting in test definitions and Python scripts. Adjustments enhance code readability without altering functionality or behavior.
Simplify `ExecuteTest` by encapsulating parameters into a single struct. This reduces redundancy and improves code readability across test execution functions. Updated affected test cases to align with the new parameter structure.
Replaced direct handling of task pointers with BaseRunFuncTests for cleaner and reusable test logic. Renamed kAddParams to kTestParams for better semantic clarity. Improved test output validation by overriding CheckTestOutputData in derived test classes.
Extracted data preparation logic into a dedicated function for better readability and modularization. Introduced a new input member in the base test class to streamline test input management. Adjusted lambda and tuple type naming for consistency and clarity.
Refactored the `BaseRunFuncTests` class to simplify and improve test execution and data handling. Replaced `GetTestInput` and `GetTaskPtr` with `GetTestInputData` and `CheckTestOutputData` for cleaner abstraction. Updated error handling and validation logic for better test reliability and maintainability.
Replaced hardcoded task tuples with dynamic generation using templates for better scalability and reusability. Added utility functions to simplify tuple expansion for test parameterization, improving code maintainability.
Replaced inline TestParamInfo definitions with the GTestFuncParam alias to improve readability and maintainability. This ensures consistent usage of type aliases across the codebase and reduces redundancy in test parameter handling.
Renamed `DEFINE_GEN_TASK_TUPLES` to `DEFINE_GEN_TASK` and updated associated functions to streamline task generation. Simplified code structure by adjusting macro usage and wrapping test cases in an anonymous namespace for better encapsulation.
Updated task class names across all modules to follow the NesterovATestTask* naming convention. Renamed the `FuncTestParamIndex` enum to `TestParamIndex` for consistency. Adjusted related function definitions and testing suits accordingly.
Simplified the `FuncTestParam` type usage by removing redundant namespace prefixes and updated the test name generation logic for better reuse. Introduced a static interface requirement and concept check to ensure derived classes implement `PrintTestParam`. These changes improve code readability and enforce clearer contracts for test classes.
…ers` module; remove redundant include from `runners.cpp`.
…_programming_course into an/unite-tests # Conflicts: # tasks/CMakeLists.txt
…${PPC_TBB_LIB_NAME}`.
aobolensk
approved these changes
Jun 14, 2025
…per functions; centralize reusable logic in `cmake/functions.cmake`. Remove `example_processes` and `example_threads` task-specific configurations.
… `${PPC_ENVPP_LIB_NAME}` and `${PPC_FMT_LIB_NAME}` for streamlined dependency management.
…_programming_course into an/unite-tests # Conflicts: # .github/workflows/main.yml # modules/core/perf/src/perf.cpp
- Consolidate `PPC_NUM_PROC` environment variable setup for functional and performance tests. - Standardize CMake configuration by deduplicating `-G Ninja` specification. - Update gcovr exclusions for more precise coverage reporting. - Add LLVM setup for Windows workflows to ensure correct compiler configuration.
- Update `codecov.yml` and GitHub workflow exclusions for improved coverage and build precision. - Add new parameterized and edge case tests for utility and task-related functionality. - Standardize and clean up `NOLINT` macros in `util.hpp`. - Improve test readability by removing redundant comments and enhancing structure. - Extend `GetStringTaskType` tests with additional scenarios and file-based validation cases. - Introduce `GetNamespaceTest` for namespace extraction validations.
- Enforce `CMAKE_CXX_STANDARD` and `CMAKE_CXX_STANDARD_REQUIRED` across all relevant submodules (`onetbb`, `libenvpp`, `json`, `gtest`).
- Replace `DEATH_TEST` with `TEST_NOLINT` and introduce consistent `NOLINT` test macro variants (`ASSERT_DEATH_IF_SUPPORTED_NOLINT`, `TYPED_TEST_NOLINT`, etc.). - Update affected test cases in `task_tests.cpp`, `perf_tests.cpp`, and `util.hpp`. - Enhance `GetNamespaceTest` consistency with variable naming improvements. - Include missing `util.hpp` in performance tests and clean up redundant includes.
- Replace enum casts with strongly-typed `enum class` constants. - Introduce `TEST_NOLINT` for improved macro consistency. - Extend includes for task-related and JSON utilities. - Standardize test case names and improve edge case handling.
- Simplify `NOLINT` macros in `util.hpp` by removing redundant `NOLINTBEGIN` and `NOLINTEND` comments. - Replace `nlohmann::json` with `ppc::util::InitJSONPtr` in `perf_tests.cpp` for consistency. - Remove unused JSON include in `perf_tests.cpp`.
…istent string handling.
- Introduce type aliases for `nlohmann::json` exceptions in `util.hpp` for improved readability. - Update test cases in `perf_tests.cpp` to use the new aliases for exception handling consistency.
- Replace `INSTANTIATE_TEST_SUITE_P_NOLINT` with `INSTANTIATE_TEST_SUITE_P_WITH_NAME` across functional and performance test cases. - Add new `INSTANTIATE_TEST_SUITE_P_WITH_NAME` macro in `util.hpp` for improved consistency and clarity.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.