Procházet zdrojové kódy

Avoid killing JVM in Gradle tests

Him188 před 4 roky
rodič
revize
fffefbacef

+ 6 - 1
backend/mirai-console/src/MiraiConsoleImplementation.kt

@@ -287,8 +287,13 @@ public interface MiraiConsoleImplementation : CoroutineScope {
                     it.printStackTrace()
                 }
                 Thread.sleep(3000L) // 保证信息打印完成
-                exitProcess(1)
+                if (!IS_GRADLE_TEST) exitProcess(1)
+                // For gradle tests, killing the JVM also kills a Gradle worker which cause './gradlew test' to fail.
+                // See https://github.com/gradle/gradle/issues/11195 for more information.
             }
         }
     }
 }
+
+@JvmField
+internal var IS_GRADLE_TEST = false

+ 1 - 0
backend/mirai-console/test/TestMiraiConosle.kt

@@ -33,6 +33,7 @@ import kotlin.test.assertNotNull
 
 @OptIn(ConsoleInternalApi::class, kotlin.io.path.ExperimentalPathApi::class)
 fun initTestEnvironment() {
+    IS_GRADLE_TEST = true
     object : MiraiConsoleImplementation {
         override val rootPath: Path = createTempDirectory()