Skip to content

chore(tests): move integration_tests/ under tests/integration_tests/ #686

Description

@kcenon

What

Move the top-level integration_tests/ directory under tests/integration_tests/ so the test layout matches the ecosystem standard tests/{unit,stress,integration_tests,benchmarks}/.

Part of #683.

Why

Per the ecosystem-wide directory standard called out in master EPIC kcenon/common_system#657, integration tests should live alongside unit and stress tests under a single tests/ umbrella. Today thread_system has:

tests/
  CMakeLists.txt
  unit/
  stress/
  benchmarks/
integration_tests/        <- top-level outlier
  ...

The outlier complicates downstream tooling that expects a single test root and forces a separate CMake guard (THREAD_BUILD_INTEGRATION_TESTS in cmake/thread_system_targets.cmake:148-151).

How

  1. git mv integration_tests tests/integration_tests.
  2. Update tests/CMakeLists.txt to add the new subdirectory (gated by THREAD_BUILD_INTEGRATION_TESTS).
  3. Remove the legacy add_subdirectory(integration_tests) block from cmake/thread_system_targets.cmake:148-151.
  4. Fix any relative paths inside the moved CMakeLists.txt (e.g., ${CMAKE_CURRENT_SOURCE_DIR}/../include).
  5. Build with -DTHREAD_BUILD_INTEGRATION_TESTS=ON and run ctest -R integration to confirm tests still execute.

Acceptance Criteria

  • No top-level integration_tests/ directory remains
  • tests/integration_tests/ exists with all original files
  • tests/CMakeLists.txt guards integration tests behind THREAD_BUILD_INTEGRATION_TESTS
  • cmake/thread_system_targets.cmake no longer references the top-level path
  • cmake -B build -DTHREAD_BUILD_INTEGRATION_TESTS=ON && cmake --build build && ctest --test-dir build -R integration passes

Where

Path Action
integration_tests/ git mv to tests/integration_tests/
tests/CMakeLists.txt Add gated add_subdirectory(integration_tests)
cmake/thread_system_targets.cmake Remove top-level integration_tests branch
tests/integration_tests/CMakeLists.txt Fix relative paths after move

Independent of sub-issue A — runs in parallel.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions