From 808e9716003bf4b635634511f31ac86ae5c6718b Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Sun, 6 Nov 2022 18:36:56 -0800 Subject: [PATCH] all: rename Storage test methods --- .../agent/PerfMarkMethodRewriterTest.java | 4 +-- .../agent/PerfMarkTransformerTest.java | 28 +++++++++---------- .../java/io/perfmark/CompatibilityTest.java | 2 +- .../test/java/io/perfmark/PerfMarkTest.java | 10 +++---- .../io/perfmark/impl/LocalMarkHolder.java | 9 ++++++ .../io/perfmark/impl/MostlyThreadLocal.java | 4 +-- .../main/java/io/perfmark/impl/Storage.java | 11 +------- .../java/io/perfmark/impl/StorageTest.java | 6 ++-- .../java/io/perfmark/java6/AutoLoadTest.java | 2 +- .../java/io/perfmark/java9/AutoLoadTest.java | 2 +- 10 files changed, 39 insertions(+), 39 deletions(-) diff --git a/agent/src/test/java/io/perfmark/agent/PerfMarkMethodRewriterTest.java b/agent/src/test/java/io/perfmark/agent/PerfMarkMethodRewriterTest.java index 0c492f1b..3a3e1bc8 100644 --- a/agent/src/test/java/io/perfmark/agent/PerfMarkMethodRewriterTest.java +++ b/agent/src/test/java/io/perfmark/agent/PerfMarkMethodRewriterTest.java @@ -76,7 +76,7 @@ public void moduleElement_oldClass() throws Exception { @Test public void rewriteClass_task() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); String expectedValue = new StackTraceElement("loadername", "modulename", "moduleversion", "classname", "methodname", "filename", -1) .toString(); @@ -109,7 +109,7 @@ public MethodVisitor visitMethod( @Test public void rewriteClass_closeable() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); String expectedValue = new StackTraceElement("loadername", "modulename", "moduleversion", "classname", "methodname", "filename", -1) .toString(); diff --git a/agent/src/test/java/io/perfmark/agent/PerfMarkTransformerTest.java b/agent/src/test/java/io/perfmark/agent/PerfMarkTransformerTest.java index 1a204ffd..df5ea583 100644 --- a/agent/src/test/java/io/perfmark/agent/PerfMarkTransformerTest.java +++ b/agent/src/test/java/io/perfmark/agent/PerfMarkTransformerTest.java @@ -60,7 +60,7 @@ public void deriveFileName_innerClass() { public void transform_autoAnnotate() throws Exception { // This test currently depends on the transformer treating this test class specially. PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzAutoRecord.class); Constructor ctor = clz.getConstructor(); @@ -73,7 +73,7 @@ public void transform_autoAnnotate() throws Exception { @Test public void transform_record() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.SomeRecord.class); Constructor ctor = clz.getConstructor(int.class); @@ -97,7 +97,7 @@ public void transform_record() throws Exception { @Test public void transform_lambda() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzCtorLambda.class); Constructor ctor = clz.getConstructor(); @@ -121,7 +121,7 @@ public void transform_lambda() throws Exception { @Test public void transform_methodRef() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithMethodRefs.class); Constructor ctor = clz.getConstructor(); @@ -135,7 +135,7 @@ public void transform_methodRef() throws Exception { @Test public void transform_interface() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.Bar.class, TransformerTestClasses.InterfaceWithDefaults.class); @@ -178,7 +178,7 @@ public void transform_interface() throws Exception { @Test public void transform_link() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithLinks.class); Constructor ctor = clz.getConstructor(); @@ -205,7 +205,7 @@ public void transform_link() throws Exception { @Test public void transform_closeable() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithCloseable.class); Constructor ctor = clz.getConstructor(); @@ -232,7 +232,7 @@ public void transform_wrongCloseable() throws Exception { // If the wrong static type is used, the agent won't be able to instrument it. Add a test to document this // behavior. PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithWrongCloseable.class); Constructor ctor = clz.getConstructor(); @@ -255,7 +255,7 @@ public void transform_wrongCloseable_autoCloseable() throws Exception { // If the wrong static type is used, the agent won't be able to instrument it. Add a test to document this // behavior. PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TaskCloseable.class).asSubclass(Closeable.class); Constructor ctor = clz.getDeclaredConstructor(); @@ -271,7 +271,7 @@ public void transform_wrongCloseable_autoCloseable() throws Exception { @Test public void transform_ctor() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithCtor.class); Constructor ctor = clz.getConstructor(); @@ -312,7 +312,7 @@ public void transform_ctor() throws Exception { @Test public void transform_init() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithInit.class); Constructor ctor = clz.getDeclaredConstructor(); @@ -353,7 +353,7 @@ public void transform_init() throws Exception { @Test public void transform_clinit() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(TransformerTestClasses.ClzWithClinit.class); Constructor ctor = clz.getDeclaredConstructor(); @@ -394,7 +394,7 @@ public void transform_clinit() throws Exception { @Test public void transform_toplevel() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(ClzFooter.class); Constructor ctor = clz.getDeclaredConstructor(); @@ -435,7 +435,7 @@ public void transform_toplevel() throws Exception { @Test public void transform_anonymousClass() throws Exception { PerfMark.setEnabled(true); - Storage.resetForTest(); + Storage.clearLocalStorage(); Class clz = transformAndLoad(new Runnable() { // avoid IntelliJ thinking this should be a lambda. diff --git a/api/src/test/java/io/perfmark/CompatibilityTest.java b/api/src/test/java/io/perfmark/CompatibilityTest.java index 39c61281..b0de68d3 100644 --- a/api/src/test/java/io/perfmark/CompatibilityTest.java +++ b/api/src/test/java/io/perfmark/CompatibilityTest.java @@ -103,7 +103,7 @@ public void setUp() throws Exception { @After public void tearDown() throws Exception { if (storageClz != null) { - storageClz.getMethod("resetForTest").invoke(null); + storageClz.getMethod("clearLocalStorage").invoke(null); } } diff --git a/api/src/test/java/io/perfmark/PerfMarkTest.java b/api/src/test/java/io/perfmark/PerfMarkTest.java index a41744d7..5397b3f5 100644 --- a/api/src/test/java/io/perfmark/PerfMarkTest.java +++ b/api/src/test/java/io/perfmark/PerfMarkTest.java @@ -259,7 +259,7 @@ public void checkPermission(Permission perm) { @Test public void allMethodForward_taskName() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); long gen = getGen(); @@ -319,7 +319,7 @@ public void allMethodForward_taskName() { @Test public void attachTag_nullFunctionFailsSilently() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); PerfMark.attachTag("name", "extra2", null); @@ -330,7 +330,7 @@ public void attachTag_nullFunctionFailsSilently() { @Test public void attachTag_functionFailureSucceeds() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); PerfMark.attachTag( @@ -346,7 +346,7 @@ public void attachTag_functionFailureSucceeds() { @Test public void attachTag_functionFailureObjectFailureSucceeds() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); Object o = new Object() { @@ -369,7 +369,7 @@ public String toString() { @Test public void attachTag_doubleFunctionFailureSucceeds() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); PerfMark.attachTag( diff --git a/impl/src/main/java/io/perfmark/impl/LocalMarkHolder.java b/impl/src/main/java/io/perfmark/impl/LocalMarkHolder.java index 1fc19de9..ecfd0b4a 100644 --- a/impl/src/main/java/io/perfmark/impl/LocalMarkHolder.java +++ b/impl/src/main/java/io/perfmark/impl/LocalMarkHolder.java @@ -16,6 +16,11 @@ package io.perfmark.impl; +/** + * A local MarkHolder is a class that gets the "current" MarkHolder based on context. For example, a thread local + * MarkHolder could use this class to pull the local MarkHolder from the threadlocal variable. Other implementations + * are possible as well. + */ public abstract class LocalMarkHolder { /** @@ -23,9 +28,13 @@ public abstract class LocalMarkHolder { */ public abstract void clear(); + /** + * Get's the current MarkHolder for mutation. Only called from a tracing thread. + */ public abstract MarkHolder acquire(); /** + * Releases the MarkHolder from being written too. Usually called very shortly after {@link #acquire()}. * This method is meant to be overridden and should not be called from subclasses. */ public void release(MarkHolder markHolder) {} diff --git a/impl/src/main/java/io/perfmark/impl/MostlyThreadLocal.java b/impl/src/main/java/io/perfmark/impl/MostlyThreadLocal.java index 15c915ba..1c72cfa7 100644 --- a/impl/src/main/java/io/perfmark/impl/MostlyThreadLocal.java +++ b/impl/src/main/java/io/perfmark/impl/MostlyThreadLocal.java @@ -48,11 +48,11 @@ public MarkHolder get() { private MarkHolder getAndSetSlow() { assert super.get() == null; - Thread thread = Thread.currentThread(); - CopyOnWriteArrayList handles = getHandles(thread); Storage.MarkHolderHandle markHolderHandle; MarkHolder markHolder; Storage.MarkHolderAndHandle markHolderAndHandle; + Thread thread = Thread.currentThread(); + CopyOnWriteArrayList handles = getHandles(thread); if (handles == null) { markHolderAndHandle = Storage.allocateMarkHolder(); markHolder = markHolderAndHandle.markHolder(); diff --git a/impl/src/main/java/io/perfmark/impl/Storage.java b/impl/src/main/java/io/perfmark/impl/Storage.java index 8c98eb70..4ceb8a87 100644 --- a/impl/src/main/java/io/perfmark/impl/Storage.java +++ b/impl/src/main/java/io/perfmark/impl/Storage.java @@ -277,17 +277,8 @@ public static void clearGlobalIndex() { } } - public static void resetForTest() { - clearLocalStorage(); - } - - static void clearSoftRefsForTest() { - clearGlobalIndex(); - } - @Nullable public static MarkList readForTest() { - // FIXME List lists = read(); for (MarkList list : lists) { // This is slightly wrong as the thread ID could be reused. @@ -318,7 +309,7 @@ public static final class MarkHolderHandle { /** * Returns the MarkHolder. May return {@code null} if the Thread is gone. If {@code null} is returned, * then {@code getThreadRef().get() == null}. If a non-{@code null} value is returned, the thread may be dead or - * alive. Additionally, since the {@link #threadRef} may be externally clear, it is not certain that the Thread + * alive. Additionally, since the {@link #threadRef} may be externally cleared, it is not certain that the Thread * is dead. */ public MarkHolder markHolder() { diff --git a/impl/src/test/java/io/perfmark/impl/StorageTest.java b/impl/src/test/java/io/perfmark/impl/StorageTest.java index db78fde3..ebe9e0fd 100644 --- a/impl/src/test/java/io/perfmark/impl/StorageTest.java +++ b/impl/src/test/java/io/perfmark/impl/StorageTest.java @@ -45,13 +45,13 @@ public class StorageTest { @Test public void threadsCleanedUp() throws Exception { - Storage.resetForTest(); + Storage.clearLocalStorage(); final CountDownLatch latch = new CountDownLatch(1); new Thread( new Runnable() { @Override public void run() { - Storage.resetForTest(); + Storage.clearLocalStorage(); Storage.linkAnyway(4096, 1234); latch.countDown(); } @@ -68,7 +68,7 @@ public void run() { List firstRead = Storage.read(); assertEquals(1, firstRead.size()); // simulate an OOM - Storage.clearSoftRefsForTest(); + Storage.clearGlobalIndex(); List secondRead = Storage.read(); assertEquals(0, secondRead.size()); } diff --git a/java6/src/test/java/io/perfmark/java6/AutoLoadTest.java b/java6/src/test/java/io/perfmark/java6/AutoLoadTest.java index 58bbe461..97841be0 100644 --- a/java6/src/test/java/io/perfmark/java6/AutoLoadTest.java +++ b/java6/src/test/java/io/perfmark/java6/AutoLoadTest.java @@ -32,7 +32,7 @@ public class AutoLoadTest { @Test public void autoLoad() { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); PerfMark.startTask("hi"); PerfMark.stopTask("hi"); diff --git a/java9/src/test/java/io/perfmark/java9/AutoLoadTest.java b/java9/src/test/java/io/perfmark/java9/AutoLoadTest.java index 663270e4..3d2e020e 100644 --- a/java9/src/test/java/io/perfmark/java9/AutoLoadTest.java +++ b/java9/src/test/java/io/perfmark/java9/AutoLoadTest.java @@ -34,7 +34,7 @@ public class AutoLoadTest { @Test public void autoLoad() throws Exception { - Storage.resetForTest(); + Storage.clearLocalStorage(); PerfMark.setEnabled(true); PerfMark.startTask("hi"); PerfMark.stopTask("hi");