aboutsummaryrefslogtreecommitdiff
path: root/test/dotty/tools/ContextEscapeDetection.java
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-11-01 18:34:29 +0100
committerGuillaume Martres <smarter@ubuntu.com>2016-11-22 01:35:07 +0100
commit6a455fe6da5ff9c741d91279a2dc6fe2fb1b472f (patch)
treefe7729ddb03a84728687d5a3068f520b0bc1c297 /test/dotty/tools/ContextEscapeDetection.java
parentb3855424280a821601f126b6b4c6a731b72540ea (diff)
downloaddotty-6a455fe6da5ff9c741d91279a2dc6fe2fb1b472f.tar.gz
dotty-6a455fe6da5ff9c741d91279a2dc6fe2fb1b472f.tar.bz2
dotty-6a455fe6da5ff9c741d91279a2dc6fe2fb1b472f.zip
Move (most) unit tests to correct locations
Should still perhaps move `test/dotc/tests.scala` and the others in the same directory to a better more cohesive location. Would like to delete the worksheets as well - but maybe they hold sentimental value...
Diffstat (limited to 'test/dotty/tools/ContextEscapeDetection.java')
-rw-r--r--test/dotty/tools/ContextEscapeDetection.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/dotty/tools/ContextEscapeDetection.java b/test/dotty/tools/ContextEscapeDetection.java
new file mode 100644
index 000000000..6a47de5c6
--- /dev/null
+++ b/test/dotty/tools/ContextEscapeDetection.java
@@ -0,0 +1,36 @@
+package dotty.tools;
+
+import dotty.tools.dotc.core.Contexts;
+import org.junit.*;
+
+import java.lang.ref.WeakReference;
+import java.util.LinkedList;
+import java.util.List;
+
+public abstract class ContextEscapeDetection {
+ public static class TestContext{
+ public TestContext(WeakReference<Contexts.Context> context, String testName) {
+ this.context = context;
+ this.testName = testName;
+ }
+
+ public final WeakReference<Contexts.Context> context;
+ public final String testName;
+
+ }
+ public static final List<TestContext> contexts = new LinkedList<TestContext>();
+
+ public abstract Contexts.Context getCtx();
+
+ public abstract void clearCtx();
+
+ @Before
+ public synchronized void stealContext() {
+ contexts.add(new TestContext(new WeakReference<Contexts.Context>(this.getCtx()), this.getClass().getName()));
+ }
+
+ @After
+ public synchronized void clearContext() {
+ this.clearCtx();
+ }
+}