Skip to content

[CK][CK_TILE] Fix CTest parsing to handle all test number formats#5880

Merged
illsilin merged 2 commits into
developfrom
users/yraparti/ck/fix-selective-test-filter
Mar 27, 2026
Merged

[CK][CK_TILE] Fix CTest parsing to handle all test number formats#5880
illsilin merged 2 commits into
developfrom
users/yraparti/ck/fix-selective-test-filter

Conversation

@yraparti
Copy link
Copy Markdown
Contributor

@yraparti yraparti commented Mar 26, 2026

Motivation

Fix a bug in the smart-build --ctest-only filter that was incorrectly excluding tests with numbers less than 100.

Technical Details

The issue was caused by CTest formatting test numbers with variable spacing based on the number of digits:

  • "Test #1: name (3 spaces for tests 1-9)"
  • "Test #79: name (2 spaces for tests 10-99)"
  • "Test #100: name (1 space for tests 100+)"

The previous code used line.strip().startswith("Test #") which only matched tests with a single space (i.e., test numbers >= 100).

This caused tests like ck_tile_unit_sequence (Test #79) to be excluded from smart-build test selection, resulting in CTest failures when the binary wasn't built.

Solution: Replace string matching with a regex pattern that handles
all spacing variations: r'^\sTest\s+#\d+:\s(.+)$'

Test Plan

Tested with test numbers from 1 to 12345.

Test Result

Submission Checklist

Fix a bug in the smart-build --ctest-only filter that was incorrectly
excluding tests with numbers less than 100.

The issue was caused by CTest formatting test numbers with variable
spacing based on the number of digits:
  - Test   #1: name (3 spaces for tests 1-9)
  - Test  #79: name (2 spaces for tests 10-99)
  - Test #100: name (1 space for tests 100+)

The previous code used `line.strip().startswith("Test #")` which only
matched tests with a single space (i.e., test numbers >= 100).

This caused tests like ck_tile_unit_sequence (Test #79) to be excluded
from smart-build test selection, resulting in CTest failures when the
binary wasn't built.

Solution: Replace string matching with a regex pattern that handles
all spacing variations: r'^\s*Test\s+#\d+:\s*(.+)$'

Impact:
  - Before: 48 tests selected (only tests #100+)
  - After: 146 tests selected (all CTest-registered tests)

Tested with test numbers from 1 to 12345.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@illsilin illsilin enabled auto-merge (squash) March 26, 2026 21:39
@illsilin illsilin merged commit a6b6c05 into develop Mar 27, 2026
32 checks passed
@illsilin illsilin deleted the users/yraparti/ck/fix-selective-test-filter branch March 27, 2026 06:32
assistant-librarian Bot pushed a commit to ROCm/composable_kernel that referenced this pull request Mar 27, 2026
[CK][CK_TILE] Fix CTest parsing to handle all test number
 formats (#5880)

## Motivation
Fix a bug in the smart-build --ctest-only filter that was incorrectly
excluding tests with numbers less than 100.

## Technical Details
The issue was caused by CTest formatting test numbers with variable
spacing based on the number of digits:
  - "Test   `#1`: name (3 spaces for tests 1-9)"
  - "Test  `#79`: name (2 spaces for tests 10-99)"
  - "Test `#100`: name (1 space for tests 100+)"

The previous code used `line.strip().startswith("Test #")` which only
matched tests with a single space (i.e., test numbers >= 100).

This caused tests like ck_tile_unit_sequence (Test #79) to be excluded
from smart-build test selection, resulting in CTest failures when the
binary wasn't built.

Solution: Replace string matching with a regex pattern that handles
all spacing variations: r'^\s*Test\s+#\d+:\s*(.+)$'

## Test Plan
Tested with test numbers from 1 to 12345.

## Test Result
  - Before: 48 tests selected (only tests #100+)
  - After: 146 tests selected (all CTest-registered tests)

## Submission Checklist

- [x ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com>
vidyasagar-amd pushed a commit that referenced this pull request Apr 9, 2026
)

## Motivation
Fix a bug in the smart-build --ctest-only filter that was incorrectly
excluding tests with numbers less than 100.

## Technical Details
The issue was caused by CTest formatting test numbers with variable
spacing based on the number of digits:
  - "Test   `#1`: name (3 spaces for tests 1-9)"
  - "Test  `#79`: name (2 spaces for tests 10-99)"
  - "Test `#100`: name (1 space for tests 100+)"

The previous code used `line.strip().startswith("Test #")` which only
matched tests with a single space (i.e., test numbers >= 100).

This caused tests like ck_tile_unit_sequence (Test #79) to be excluded
from smart-build test selection, resulting in CTest failures when the
binary wasn't built.

Solution: Replace string matching with a regex pattern that handles
all spacing variations: r'^\s*Test\s+#\d+:\s*(.+)$'

## Test Plan
Tested with test numbers from 1 to 12345.

## Test Result
  - Before: 48 tests selected (only tests #100+)
  - After: 146 tests selected (all CTest-registered tests)



## Submission Checklist

- [x ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants