You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
TEST: FillBadData AllBadData_TerminatesWithoutHang never reaches the no-progress guard #1848
The FillBadData test that is meant to cover the "no progress" guard never reaches it. The guard itself may work, but nothing tests it.
What is requested: change SimplnxCore::FillBadData::AllBadData_TerminatesWithoutHang so that it reaches the guard and checks what the guard does. Then correct the V&V report rows that say this test covers it.
Why it is needed: the guard stops the fill loop when bad-data voxels remain but none of them has a good neighbor. Without it, the loop never ends: the hang that this test was written to prevent. Because the test never reaches the guard, a change that breaks the guard would still pass.
The single 9-voxel region is at least 1, so it is kept as a void. No voxel is marked for filling, and the fill loop has nothing to do. The guard (BFS line 350, CCL line 736) is never reached.
The test only checks that preflight and execute succeed, so it passes.
The test comment says "The no-progress guard must return and leave those voxels unchanged." The V&V report says the test covers the guard: path row 16 (vv/FillBadDataFilter.md line 88) and the inventory row (line 106).
This analysis comes from reading the code; no instrumented run was made.
Where it applies:src/Plugins/SimplnxCore/test/FillBadDataTest.cpp and src/Plugins/SimplnxCore/vv/FillBadDataFilter.md (path row 16, the inventory row, and the coverage totals that count row 16).
A threshold larger than the region (for example 100) would mark all 9 voxels for filling with no good neighbor, which is the case the guard handles. The test could then check the warning "… bad-data voxel(s) could not be filled because they have no adjacent good-data neighbor …" and that the voxels are left unfilled, for both algorithm scenarios. Still open: what Feature Id value the unfilled voxels should end with.
Activity