Fix test-webgpu-native: export the missing rope_hf_dynamic_sequence fixture - #21690
Fix test-webgpu-native: export the missing rope_hf_dynamic_sequence fixture#21690shoumikhin wants to merge 1 commit into
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21690
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 Cancelled JobAs of commit 2df108d with merge base fb5eedc ( CANCELLED JOB - The following job was cancelled. Please retry:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
How this was tested
The job is still red, for an unrelated reasonOnce the C++ tests pass, the job continues into op test generation and stops there: This pull request does not cause that and does not claim to fix it. The In other words this is the first of two fixes. It stands on its own and is worth landing on its own, and the batch of 2 conv2d case needs a separate follow up from someone who owns the Vulkan partitioner. |
3f99b6c to
2df108d
Compare
What is broken
test-webgpu-nativeis red on main. The failing test isWebGPUNative.RopeHfDynamicSequenceReusedGraphand it fails withError::AccessFailed, which is what ExecuTorch returns when it cannot open a.ptefile.Why it is broken
The C++ test loads a model file named
rope_hf_dynamic_sequence.pteout of the directory given by theWEBGPU_TEST_ROPE_HF_DIRenvironment variable.The CI script that prepares the test fixtures,
backends/webgpu/scripts/test_webgpu_native_ci.sh, only calledexport_rope_hf_dynamic(...). It never calledexport_rope_hf_dynamic_sequence(...), sorope_hf_dynamic_sequence.ptewas never written. The test then tried to open a file that did not exist.The Python helper
export_rope_hf_dynamic_sequencealready exists inbackends/webgpu/test/ops/test_rope_hf.py. It was just never called from CI.The contract test that is supposed to catch exactly this kind of gap only checked for the other fixture, so nothing failed at lint time either.
The fix
export_rope_hf_dynamic_sequence('${ROPE_HF_DIR}')in the CI script, right next to the existingexport_rope_hf_dynamiccall.require_filecheck for each of the two.ptefiles. If a fixture ever goes missing again, the script now stops early with a readable message instead of failing deep inside a C++ test with a numeric error code.test_native_ci_contract.pyso it asserts that both exports and bothrequire_filechecks are present.No test logic and no backend code changed. This only produces a file the test always expected to find.
How this was verified
test-webgpu-nativewas dispatched on this branch. In that runWebGPUNative.RopeHfDynamicSequenceReusedGraphpasses and the script prints=== WebGPU native tests on Dawn: all run targets passed ===, so the fixture isnow produced and the test that is red on main is green.
On its own this branch does not make the whole job green: the script then reaches
a separate op-test stage that fails on an unrelated problem in the op-test
generator, which #21697 fixes. The two were therefore also tested together, on a
branch holding both changes, and that run passes end to end:
So this PR plus #21697 turn
test-webgpu-nativegreen. Either one alone is notenough, and they are separate problems, so they are separate changes.