From efd1054a188d8b07cdee4097ee7c7fdc4b810ca2 Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Mon, 29 Jun 2026 17:24:43 -0400 Subject: [PATCH] Add direct coverage tests for Hashtable.D2.Entry Tests matches() with both true and false branches, and hash() for consistency and key-sensitivity, since existing D2 operation tests don't guarantee the false branch fires (different key pairs hash to different buckets, so matches() is never called with a mismatch). Co-Authored-By: Claude Sonnet 4.6 --- .../datadog/trace/util/HashtableD2Test.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java b/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java index 8605af1b33f..50da832395b 100644 --- a/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java +++ b/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java @@ -1,6 +1,7 @@ package datadog.trace.util; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertSame; @@ -118,6 +119,38 @@ void getOrCreateOnHitSkipsCreator() { assertEquals(0, createCount[0]); } + @Test + void entryMatchesTrueWhenBothKeysEqual() { + PairEntry entry = new PairEntry("a", 1, 100); + assertTrue(entry.matches("a", 1)); + } + + @Test + void entryMatchesFalseWhenKey1Differs() { + PairEntry entry = new PairEntry("a", 1, 100); + assertFalse(entry.matches("b", 1)); + } + + @Test + void entryMatchesFalseWhenKey2Differs() { + PairEntry entry = new PairEntry("a", 1, 100); + assertFalse(entry.matches("a", 2)); + } + + @Test + void entryHashIsConsistentForSameKeys() { + long h1 = Hashtable.D2.Entry.hash("x", 42); + long h2 = Hashtable.D2.Entry.hash("x", 42); + assertEquals(h1, h2); + } + + @Test + void entryHashDiffersForDifferentKeys() { + long h1 = Hashtable.D2.Entry.hash("x", 1); + long h2 = Hashtable.D2.Entry.hash("x", 2); + assertFalse(h1 == h2); + } + @Test void removeReturnsNullForMissingKey() { Hashtable.D2 table = new Hashtable.D2<>(8);