From c4045e75750112e90067cdd5bbc2b9ca887eee73 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Sat, 14 Sep 2019 14:25:45 -0700 Subject: [PATCH] Add scripted test for closing classloaders https://github.com/sbt/sbt/issues/5075 reports that sbt 1.3.0 has a regression for in process run. In sbt 1.3.0, we close the classloader that invokes the main method before all of the daemon threads complete. This adds a scripted test that fails due to this regression. --- .../close-run/src/main/scala/Main.scala | 10 ++++++++++ sbt/src/sbt-test/classloader-cache/close-run/test | 1 + 2 files changed, 11 insertions(+) create mode 100644 sbt/src/sbt-test/classloader-cache/close-run/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/classloader-cache/close-run/test diff --git a/sbt/src/sbt-test/classloader-cache/close-run/src/main/scala/Main.scala b/sbt/src/sbt-test/classloader-cache/close-run/src/main/scala/Main.scala new file mode 100644 index 000000000..4b57eebb6 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/close-run/src/main/scala/Main.scala @@ -0,0 +1,10 @@ +object Main extends App { + class Foo + new Thread { + override def run(): Unit = { + Thread.sleep(500) + try new Foo + catch { case t: Throwable => sys.exit(1) } + } + }.start() +} \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/close-run/test b/sbt/src/sbt-test/classloader-cache/close-run/test new file mode 100644 index 000000000..9e4c2371c --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/close-run/test @@ -0,0 +1 @@ +> run \ No newline at end of file