Skip to content

Reorganize Test Suite and Consolidate Documentation #94

Description

@nradakovic

What

Restructure the toolchain test suite by moving tests from examples/ to a dedicated tests/ directory with clear organization and comprehensive documentation. The refactoring includes:

  • Establish tests/ as the primary location for all toolchain validation tests
  • Organize tests into feature_verification/ (8 tests) and language_and_standards/ (5 tests)
  • Create centralized test documentation in docs/test_suite.md
  • Implement platform-aware cross-compilation configuration for improved toolchain compatibility
  • Update all CI/CD workflows to reference new test paths

Acceptance Criteria (DoD)

  • All 13 tests (8 feature + 5 language/standards) compile and pass on Linux x86_64
  • Tests build successfully for cross-compilation targets (aarch64-linux-ebclfsa)
  • Comprehensive test documentation exists in docs/test_suite.md with 395+ lines covering:
    • Individual test descriptions and features
    • Feature coverage matrix (34/43 toolchain features)
    • Running instructions for different platforms
    • Cross-compilation guidance
    • Troubleshooting guide
  • Test README files simplified with references to centralized documentation
  • Root README.md and examples/README.md updated to reflect new structure
  • Platform-aware linkstatic configuration using select() statements
    • linkstatic = True only for aarch64-linux-sdk_0.1.0-ebclfsa
    • linkstatic = False (default) for other platforms
  • All GitHub Actions workflows updated to use new test paths
  • No breaking changes to test execution on supported platforms

How

  1. Test Reorganization

    • Create tests/ directory structure with feature_verification/ and language_and_standards/ subdirectories
    • Move all test source files and build configurations from examples/ to appropriate tests/ subdirectories
    • Create comprehensive BUILD files with proper test organization and test_suite grouping
  2. Documentation Consolidation

    • Create docs/test_suite.md with complete test documentation (395+ lines)
    • Update individual test README files to contain quick references and links to centralized docs
    • Update root README.md to list test documentation as primary resource
    • Update examples/README.md to indicate tests have moved
  3. Cross-Compilation Support

    • Implement platform-aware linkstatic configuration using Bazel select() statements
    • Condition linkstatic behavior on @score_bazel_platforms//:aarch64-linux-sdk_0.1.0-ebclfsa
    • Apply to all cc_library targets: feature_test_lib, pic_test_lib, multifile_lib, whole_archive_lib, pthread_test_lib
  4. CI/CD Updates

    • Update .github/workflows/aarch64-ebclfsa.yml to build test targets from tests/ directory
    • Update .github/workflows/aarch64-linux.yml for new test paths
    • Update .github/workflows/autosd.yml for new test paths
    • Update .github/workflows/x86_64-linux.yml for new test paths

Metadata

Metadata

Assignees

Labels

deprecated cleanupRemove deprecated targetsexampleAdd or update examplesimprovementsCode or documentation improvementsp3Medium/Low - handle it within normal process

Projects

Status
Done
Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions