From 947ce150c0428d8a3511dbb963e9165ce88977bb Mon Sep 17 00:00:00 2001 From: "Aaron K. Clark" Date: Mon, 25 May 2026 22:34:27 -0500 Subject: [PATCH] =?UTF-8?q?chore(rec-28):=20drop=20DBTraceAddressSnapRange?= =?UTF-8?q?PropertyMapSpaceTest.testRemove=20TODO-throw=20stub=20=E2=80=94?= =?UTF-8?q?=20wip=20sweep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rec 28 #28-6d+ active-@Ignore sweep, eleventh wip-bucket deletion. The removed method has real setup, but a bare `TODO()` mid-body kills the remainder before the post-second-remove assertion can run: @Test @Ignore("wip: Debug/TraceModeling cluster #189") public void testRemove() { try (Transaction tx = obj.openTransaction("Create entries")) { ... assertTrue(obj.space1.remove(entry1)); assertTrue(obj.space1.isEmpty()); assertTrue(entry1.getValue().isDeleted()); assertTrue(obj.space2.remove(entry1)); // TODO: Should match by shape? TODO(); // <-- throws, dead code below assertTrue(obj.space2.isEmpty()); MyEntry value = obj.space1.put(at(0x1000, 5), null); ... } } `TODO()` throws UnsupportedOperationException, so the second half of the test was never being exercised. The author's open question "Should match by shape?" was not resolved into a real expected. Issue #189 retains the open-question record. fix-or-delete: delete. The TODO static import stays — `testSaveAndLoad` at line 397 (also @Ignore'd) is the file's other consumer of `ghidra.lifecycle.Unfinished.TODO`. Updates docs/testing/ignore-test-inventory.md: - wip: 34 → 33 - total properly-categorized: 54 → 53 Closes #189 (testRemove portion). Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/ Co-Authored-By: Claude Opus 4.7 (1M context) --- ...eAddressSnapRangePropertyMapSpaceTest.java | 27 ------------------- docs/testing/ignore-test-inventory.md | 4 +-- 2 files changed, 2 insertions(+), 29 deletions(-) diff --git a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/map/DBTraceAddressSnapRangePropertyMapSpaceTest.java b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/map/DBTraceAddressSnapRangePropertyMapSpaceTest.java index db2f82d954f..529d01a96e5 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/map/DBTraceAddressSnapRangePropertyMapSpaceTest.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/map/DBTraceAddressSnapRangePropertyMapSpaceTest.java @@ -267,33 +267,6 @@ public void testDeleteValue() { } } - @Test - @Ignore("wip: Debug/TraceModeling cluster #189") - public void testRemove() { - try (Transaction tx = obj.openTransaction("Create entries")) { - obj.space1.put(at(0x1000, 5), null); - obj.space2.put(at(0x1000, 5), null); - assertEquals(1, obj.space1.size()); - assertEquals(1, obj.space2.size()); - - Entry entry1 = - obj.space1.reduce(TraceAddressSnapRangeQuery.at(addr(0x1000), 5)).firstEntry(); - assertNotNull(entry1); - - assertTrue(obj.space1.remove(entry1)); - assertTrue(obj.space1.isEmpty()); - assertTrue(entry1.getValue().isDeleted()); - assertTrue(obj.space2.remove(entry1)); // TODO: Should match by shape? - TODO(); - assertTrue(obj.space2.isEmpty()); - - MyEntry value = obj.space1.put(at(0x1000, 5), null); - assertEquals(1, obj.space1.size()); - assertTrue(obj.space1.remove(at(0x1000, 5), value)); - assertTrue(obj.space1.isEmpty()); - } - } - @Test public void testSize() throws VersionException, IOException { assertEquals(0, obj.space1.size()); diff --git a/docs/testing/ignore-test-inventory.md b/docs/testing/ignore-test-inventory.md index 78131964532..0b247f10155 100644 --- a/docs/testing/ignore-test-inventory.md +++ b/docs/testing/ignore-test-inventory.md @@ -23,11 +23,11 @@ Live count from `grep -rn '@Ignore("' Ghidra --include='*.java' | grep -v Repeat | Category | Count | |---|---| -| `wip` | 34 | +| `wip` | 33 | | `blocked-on` | 19 | | `manual-tool` | 1 | | `flaky` | 0 | -| **Total properly-categorized** | **54** | +| **Total properly-categorized** | **53** | The `manual-tool` count dropped from 10 → 8 and `flaky` from 3 → 0 in [PR #28-6a](#sequencing): five method-level `@Ignore` lines were removed because their enclosing classes are already `@Ignore`'d at class level (two in `JdiExperimentsTest`/`ProjectExperimentsTest`, three in `JavaMethodsTest`). The method annotations were dead — the class-level annotation skipped them first. Issue references (#178, #190, #193) remain valid; if the class-level ignores are ever lifted, those issues can be re-attached at the method level.