[CK][CK_TILE] Fix dispatcher cpp tests - registry key mismatch and string assertions (#6528)

## Motivation

CPP tests in dispatcher were failing due to a mismatch in registry key
and string representation.

## Technical Details
Bug 1 - Registry key mismatch: The registry stored kernels using
get_name() but lookups used encode_identifier(), causing all registry
lookups to fail. Fixed by changing registry.cpp:58 to use
encode_identifier() for storage.
Bug 2 - String representation changes: Tests checked for
"persist"/"nopers" substrings, but the code emits "True"/"False". Fixed
by replacing brittle substring checks with comparison-based assertions
in test_kernel_key.cpp and test_kernel_key_extended.cpp.

## Test Plan

Tested with CPP tests in dispatcher 

## Test Result

Validation: All three core cpp tests now pass:
  - test_kernel_key - 6/6 tests passing
  - test_kernel_key_extended - 25/25 tests passing
  - test_registry - 8/8 tests passing
  
 
## 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>
This commit is contained in:
Yaswanth Raparti
2026-04-17 22:14:02 -07:00
committed by GitHub
parent 7aab7c464a
commit c19aa36489
8 changed files with 29 additions and 14 deletions

View File

@@ -71,7 +71,12 @@ TEST(KernelKeyTest, EncodeIdentifier)
EXPECT_NE(id.find("256x256x32"), std::string::npos); // tile shape
EXPECT_NE(id.find("2x2x1"), std::string::npos); // wave shape
EXPECT_NE(id.find("32x32x16"), std::string::npos); // warp tile shape
EXPECT_NE(id.find("persist"), std::string::npos); // persistent flag
// Verify persistent flag is encoded by toggling it and asserting the
// identifier changes. Robust to encoding spelling changes.
KernelKey non_persistent_key = key;
non_persistent_key.algorithm.persistent = false;
EXPECT_NE(id, non_persistent_key.encode_identifier());
}
TEST(KernelKeyTest, EncodeIdentifierWithFusion)
@@ -97,7 +102,12 @@ TEST(KernelKeyTest, EncodeIdentifierWithFusion)
// Check fusion-specific components
EXPECT_NE(id.find("Relu"), std::string::npos);
EXPECT_NE(id.find("_d2"), std::string::npos);
EXPECT_NE(id.find("nopers"), std::string::npos);
// Verify persistent flag is encoded by toggling it and asserting the
// identifier changes. Robust to encoding spelling changes.
KernelKey persistent_key = key;
persistent_key.algorithm.persistent = true;
EXPECT_NE(id, persistent_key.encode_identifier());
}
TEST(KernelKeyTest, EncodeIdentifierWithSplitK)