Skip to content

Commit 870e4fc

Browse files
remove unnecessary serialization and add back set isSet to TestSetting
1 parent d231355 commit 870e4fc

File tree

4 files changed

+22
-49
lines changed

4 files changed

+22
-49
lines changed

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ExecutionSettings.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class ExecutionSettings {
5050
@Nonnull private final Map<TestIdentifier, TestMetadata> skippableTests;
5151
@Nonnull private final Map<String, BitSet> skippableTestsCoverage;
5252
@Nonnull private final Map<TestFQN, Integer> testSettings;
53-
@Nonnull private final EnumMap<TestSetting, Integer> settingsCount;
53+
@Nonnull private final Map<TestSetting, Integer> settingsCount;
5454
@Nonnull private final Diff pullRequestDiff;
5555

5656
public ExecutionSettings(
@@ -194,7 +194,7 @@ public boolean isKnownTestsDataAvailable() {
194194

195195
private boolean isSetting(TestFQN test, TestSetting setting) {
196196
int mask = testSettings.getOrDefault(test, 0);
197-
return (setting.getFlag() & mask) != 0;
197+
return TestSetting.isSet(mask, setting);
198198
}
199199

200200
public boolean isFlaky(TestFQN test) {
@@ -279,8 +279,6 @@ public static class ExecutionSettingsSerializer {
279279
private static final int TEST_SKIPPING_ENABLED_FLAG = 4;
280280
private static final int FLAKY_TEST_RETRIES_ENABLED_FLAG = 8;
281281
private static final int IMPACTED_TESTS_DETECTION_ENABLED_FLAG = 16;
282-
private static final int FLAKY_TESTS_RECEIVED = 32;
283-
private static final int KNOWN_TESTS_RECEIVED = 64;
284282

285283
public static ByteBuffer serialize(ExecutionSettings settings) {
286284
Serializer s = new Serializer();
@@ -346,7 +344,7 @@ public static ExecutionSettings deserialize(ByteBuffer buffer) {
346344
(EnumMap<TestSetting, Integer>)
347345
Serializer.readMap(
348346
buffer,
349-
new EnumMap<>(TestSetting.class),
347+
() -> new EnumMap<>(TestSetting.class),
350348
TestSetting.TestSettingsSerializer::deserialize,
351349
Serializer::readInt);
352350

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/TestSetting.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ public String asString() {
2626
return name;
2727
}
2828

29+
public static int set(int mask, TestSetting setting) {
30+
return mask | setting.flag;
31+
}
32+
33+
public static boolean isSet(int mask, TestSetting setting) {
34+
return (mask & setting.flag) != 0;
35+
}
36+
2937
public static class TestSettingsSerializer {
3038
public static void serialize(Serializer serializer, TestSetting setting) {
3139
serializer.write(setting.flag);

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ipc/serialization/Serializer.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -187,18 +187,6 @@ public static <K, V> Map<K, V> readMap(
187187
return fillMap(byteBuffer, m, keyDeserializer, valueDeserializer, size);
188188
}
189189

190-
public static <K, V> Map<K, V> readMap(
191-
ByteBuffer byteBuffer,
192-
Map<K, V> m,
193-
Function<ByteBuffer, K> keyDeserializer,
194-
Function<ByteBuffer, V> valueDeserializer) {
195-
int size = byteBuffer.getInt();
196-
if (size == -1) {
197-
return null;
198-
}
199-
return fillMap(byteBuffer, m, keyDeserializer, valueDeserializer, size);
200-
}
201-
202190
public static <K, V> Map<K, V> readMap(
203191
ByteBuffer byteBuffer,
204192
Supplier<Map<K, V>> mapSupplier,

dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/ipc/serialization/SerializerTest.groovy

Lines changed: 11 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -123,46 +123,25 @@ class SerializerTest extends Specification {
123123
given:
124124
def serializer = new Serializer()
125125

126-
when:
127-
serializer.write((Map) m)
128-
def buf = serializer.flush()
129-
130-
then:
131-
def deserializedMap = Serializer.readMap(buf, provider, Serializer::readString, Serializer::readString)
132-
deserializedMap == m
133-
deserializedMap.getClass() == clazz
134-
135-
where:
136-
m | clazz | provider
137-
[:] | HashMap | HashMap::new
138-
["a": "1", "b": "2"] | HashMap | HashMap::new
139-
[:] | LinkedHashMap | LinkedHashMap::new
140-
["a": "1", "b": "2"] | LinkedHashMap | LinkedHashMap::new
141-
[:] | TreeMap | TreeMap::new
142-
["a": "1", "b": "2"] | TreeMap | TreeMap::new
143-
}
144-
145-
def "test map deserialization with provided map: #m #mapProvided"() {
146-
given:
147-
def serializer = new Serializer()
148-
149126
when:
150127
serializer.write((Map) m, keySerializer, Serializer::write)
151128
def buf = serializer.flush()
152129

153130
then:
154-
def deserializedMap = Serializer.readMap(buf, mapProvided, keyDeserializer, Serializer::readString)
131+
def deserializedMap = Serializer.readMap(buf, provider, keyDeserializer, Serializer::readString)
155132
deserializedMap == m
156-
deserializedMap == mapProvided
133+
deserializedMap.getClass() == clazz
157134

158135
where:
159-
m | mapProvided | keySerializer | keyDeserializer
160-
[:] | new HashMap<>() | Serializer::write | Serializer::readString
161-
["a": "1", "b": "2"] | new HashMap<>() | Serializer::write | Serializer::readString
162-
[:] | new HashMap<>() | Serializer::write | Serializer::readInt
163-
[1: "a", 2: "c"] | new HashMap<>() | Serializer::write | Serializer::readInt
164-
[:] | new EnumMap<>(MyEnum.class) | MyEnum::serialize | MyEnum::deserialize
165-
[(MyEnum.A): "1", (MyEnum.B): "2"] | new EnumMap<>(MyEnum.class) | MyEnum::serialize | MyEnum::deserialize
136+
m | clazz | provider | keySerializer | keyDeserializer
137+
[:] | HashMap | HashMap::new | Serializer::write | Serializer::readString
138+
["a": "1", "b": "2"] | HashMap | HashMap::new | Serializer::write | Serializer::readString
139+
[:] | LinkedHashMap | LinkedHashMap::new | Serializer::write | Serializer::readString
140+
["a": "1", "b": "2"] | LinkedHashMap | LinkedHashMap::new | Serializer::write | Serializer::readString
141+
[:] | TreeMap | TreeMap::new | Serializer::write | Serializer::readString
142+
["a": "1", "b": "2"] | TreeMap | TreeMap::new | Serializer::write | Serializer::readString
143+
[:] | EnumMap | (() -> new EnumMap<>(MyEnum.class)) | MyEnum::serialize | MyEnum::deserialize
144+
[(MyEnum.A): "1", (MyEnum.B): "2"] | EnumMap | (() -> new EnumMap<>(MyEnum.class)) | MyEnum::serialize | MyEnum::deserialize
166145
}
167146

168147
def "test mixed serialization"() {

0 commit comments

Comments
 (0)