[WIP]Feat(tests): build test infrastructure#144
Open
chen2021673 wants to merge 4 commits intomasterfrom
Open
Conversation
- Add infini_train_add_test CMake macro for simplified test registration - Integrate gtest_discover_tests for automatic test case discovery - Refactor all test directories to use unified macro (autograd, optimizer, hook, slow, lora) - Reduce test CMakeLists.txt code by 68% - Add LoRA tests (12 test cases) - Delete TEST_REPORT.md - Test labels: cpu/cuda/distributed/slow for flexible test execution - Add shared test_macros.cmake in tests/common/ BREAKING CHANGE: Test registration now uses macro instead of manual add_test() Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Replace TEST_F with TEST_P across all test suites so each suite runs on both CPU and CUDA without duplicating test logic. Adds InfiniTrainTestP, TensorTestBaseP, AutogradTestBaseP, and DistributedInfiniTrainTestP base classes with automatic CUDA/NCCL skip guards. Introduces INFINI_TRAIN_REGISTER_TEST* C++ macros and infini_train_add_test_suite CMake macro to eliminate repetitive INSTANTIATE_TEST_SUITE_P / infini_train_add_test boilerplate. Removes deprecated test/, slow/, and split optimizer test files; consolidates optimizer tests into a single binary with creation + step suites.
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
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.
Summary
Build a complete, maintainable test infrastructure for InfiniTrain with device-parametrized tests, unified CMake macros, and consistent CUDA/CPU/Distributed coverage.
Closes #120
What changed
1. Test infrastructure foundation (
tests/common/)tests/common/test_utils.h: parametrized base classes —InfiniTrainTestP,TensorTestBaseP,AutogradTestBaseP,DistributedInfiniTrainTestPSetUp()auto-skips CUDA tests when no GPU is availableGetDevice()replaces hardcodedDevice::kCPUthroughout all tests2. CMake macros (
tests/common/test_macros.cmake)infini_train_add_test_suite(<name> SOURCES ...)— replaces 3 ×infini_train_add_testper test suiteINFINI_TRAIN_REGISTER_TEST(TestName)— CPU + CUDA registration (was 4 lines per suite)INFINI_TRAIN_REGISTER_TEST_CPU(TestName)— CPU onlyINFINI_TRAIN_REGISTER_TEST_DISTRIBUTED(TestName)— Distributed (CUDA + NCCL)