From 69c83698fb5cf6c0a54fbdd6b8ca893576e7fbbc Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Wed, 27 Dec 2023 17:52:15 +0100 Subject: [PATCH] [Native] Add K2 version of LLDB tests --- .../testData/lldb/canInspectArrayChildren.kt | 2 +- .../testData/lldb/canInspectArrays.kt | 2 +- .../testData/lldb/canInspectCatchParameter.kt | 2 +- .../testData/lldb/canInspectClasses.kt | 2 +- .../testData/lldb/canInspectStrings.kt | 2 +- .../lldb/canInspectValuesOfPrimitiveTypes.kt | 2 +- .../testData/lldb/canStepThroughCode.kt | 2 +- native/native.tests/testData/lldb/kt33055.kt | 2 +- native/native.tests/testData/lldb/kt33364.kt | 2 +- native/native.tests/testData/lldb/kt42208.kt | 2 +- ...42208WithPassingLambdaToAnotherFunction.kt | 3 + ...2208WithPassingLambdaToAnotherFunction.txt | 12 +- .../testData/lldb/kt42208WithVariable.kt | 2 +- native/native.tests/testData/lldb/kt47198.kt | 2 +- .../testData/lldb/kt47198WithBody.kt | 2 +- .../testData/lldb/kt61131.fir.txt | 24 ++++ .../lldb/stepThroughInlineArguments.kt | 2 +- .../samples/standalone_lldb_stepping.kt | 2 +- .../test/blackbox/FirLldbTestGenerated.java | 134 ++++++++++++++++++ .../generators/tests/GenerateNativeTests.kt | 14 ++ .../test/blackbox/support/TestDirectives.kt | 10 +- .../group/StandardTestCaseGroupProvider.kt | 2 +- 22 files changed, 205 insertions(+), 24 deletions(-) create mode 100644 native/native.tests/testData/lldb/kt61131.fir.txt create mode 100644 native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirLldbTestGenerated.java diff --git a/native/native.tests/testData/lldb/canInspectArrayChildren.kt b/native/native.tests/testData/lldb/canInspectArrayChildren.kt index f7681827229..b29a5c73632 100644 --- a/native/native.tests/testData/lldb/canInspectArrayChildren.kt +++ b/native/native.tests/testData/lldb/canInspectArrayChildren.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { val xs = intArrayOf(3, 5, 8) return diff --git a/native/native.tests/testData/lldb/canInspectArrays.kt b/native/native.tests/testData/lldb/canInspectArrays.kt index 3552596158a..5dc8cf45f67 100644 --- a/native/native.tests/testData/lldb/canInspectArrays.kt +++ b/native/native.tests/testData/lldb/canInspectArrays.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { val xs = IntArray(3) xs[0] = 1 diff --git a/native/native.tests/testData/lldb/canInspectCatchParameter.kt b/native/native.tests/testData/lldb/canInspectCatchParameter.kt index 5b70434c85c..ea86294a3b9 100644 --- a/native/native.tests/testData/lldb/canInspectCatchParameter.kt +++ b/native/native.tests/testData/lldb/canInspectCatchParameter.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main() { try { throw Exception("message 1") diff --git a/native/native.tests/testData/lldb/canInspectClasses.kt b/native/native.tests/testData/lldb/canInspectClasses.kt index 8cb37fc6d49..56076178751 100644 --- a/native/native.tests/testData/lldb/canInspectClasses.kt +++ b/native/native.tests/testData/lldb/canInspectClasses.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { val point = Point(1, 2) val person = Person() diff --git a/native/native.tests/testData/lldb/canInspectStrings.kt b/native/native.tests/testData/lldb/canInspectStrings.kt index 2592fb0828d..0a7ebc0e1f5 100644 --- a/native/native.tests/testData/lldb/canInspectStrings.kt +++ b/native/native.tests/testData/lldb/canInspectStrings.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { val a = "string literal" val b = buildString { diff --git a/native/native.tests/testData/lldb/canInspectValuesOfPrimitiveTypes.kt b/native/native.tests/testData/lldb/canInspectValuesOfPrimitiveTypes.kt index cb21f19fceb..21d45f8ebc3 100644 --- a/native/native.tests/testData/lldb/canInspectValuesOfPrimitiveTypes.kt +++ b/native/native.tests/testData/lldb/canInspectValuesOfPrimitiveTypes.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { var a: Byte = 1 var b: Int = 2 diff --git a/native/native.tests/testData/lldb/canStepThroughCode.kt b/native/native.tests/testData/lldb/canStepThroughCode.kt index 6c37a3fab1b..26bcfc957b9 100644 --- a/native/native.tests/testData/lldb/canStepThroughCode.kt +++ b/native/native.tests/testData/lldb/canStepThroughCode.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL fun main(args: Array) { var x = 1 var y = 2 diff --git a/native/native.tests/testData/lldb/kt33055.kt b/native/native.tests/testData/lldb/kt33055.kt index a8e7af5638b..831e96ccae1 100644 --- a/native/native.tests/testData/lldb/kt33055.kt +++ b/native/native.tests/testData/lldb/kt33055.kt @@ -1,6 +1,6 @@ // KIND: STANDALONE_LLDB // FREE_COMPILER_ARGS: -Xg-generate-debug-trampoline=enable - +// FIR_IDENTICAL // FILE: kt33055.kt fun question(subject: String, names: Array = emptyArray()): String { return buildString { // breakpoint here diff --git a/native/native.tests/testData/lldb/kt33364.kt b/native/native.tests/testData/lldb/kt33364.kt index bab9aca995d..744c86bdf83 100644 --- a/native/native.tests/testData/lldb/kt33364.kt +++ b/native/native.tests/testData/lldb/kt33364.kt @@ -1,6 +1,6 @@ // KIND: STANDALONE_LLDB // FREE_COMPILER_ARGS: -Xg-generate-debug-trampoline=enable - +// FIR_IDENTICAL // FILE: kt33364.kt fun main() { val param = 3 diff --git a/native/native.tests/testData/lldb/kt42208.kt b/native/native.tests/testData/lldb/kt42208.kt index c3cc514f568..966b279c8e6 100644 --- a/native/native.tests/testData/lldb/kt42208.kt +++ b/native/native.tests/testData/lldb/kt42208.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL // FILE: kt42208-1.kt fun main() { foo()() diff --git a/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.kt b/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.kt index 67987a7bc46..2d3ffcab6d0 100644 --- a/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.kt +++ b/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.kt @@ -1,5 +1,8 @@ // KIND: STANDALONE_LLDB // FREE_COMPILER_ARGS: -XXLanguage:+UnitConversionsOnArbitraryExpressions +// IGNORE_BACKEND_K2: NATIVE +// FIR_IDENTICAL +// Not really `FIR_IDENTICAL`, because we ignore thois test for FIR, but with this directive presented we don't need to create separate `fir.txt` file for dump. // FILE: kt42208-1.kt fun main() { diff --git a/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.txt b/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.txt index 7186f7b074e..c515d7d2b0e 100644 --- a/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.txt +++ b/native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.txt @@ -1,13 +1,13 @@ -> b kt42208-2.kt:14 +> b kt42208-2.kt:17 > r > bt * thread #1, [..] stop reason = breakpoint 1.1 - * frame #0: [..]`kfun:[..]main$lambda$0[..] at kt42208-2.kt:14:5 - frame #1: [..]`kfun:$main$lambda$0$FUNCTION_REFERENCE$0.[..]invoke[..](_this=[..])[..] at kt42208-2.kt:13:20 - frame #2: [..]`kfun:$main$lambda$0$FUNCTION_REFERENCE$0.[..]$invoke(_this=[..]){}kotlin.Boolean[..] at kt42208-2.kt:13:20 + * frame #0: [..]`kfun:[..]main$lambda$0[..] at kt42208-2.kt:17:5 + frame #1: [..]`kfun:$main$lambda$0$FUNCTION_REFERENCE$0.[..]invoke[..](_this=[..])[..] at kt42208-2.kt:16:20 + frame #2: [..]`kfun:$main$lambda$0$FUNCTION_REFERENCE$0.[..]$invoke(_this=[..]){}kotlin.Boolean[..] at kt42208-2.kt:16:20 frame #3: [..]`kfun:kotlin.Function0#invoke(){}1:0-trampoline at [K][Suspend]Functions:1:1 - frame #4: [..]`kfun:#bar(v=[..]){} at kt42208-3.kt:18:5 - frame #5: [..]`kfun:#main(){} at kt42208-1.kt:7:5 + frame #4: [..]`kfun:#bar(v=[..]){} at kt42208-3.kt:21:5 + frame #5: [..]`kfun:#main(){} at kt42208-1.kt:10:5 frame #6: [..]`Konan_start(args=[..]) at [..] > c > q diff --git a/native/native.tests/testData/lldb/kt42208WithVariable.kt b/native/native.tests/testData/lldb/kt42208WithVariable.kt index aaf0d0059cd..c6d42924b36 100644 --- a/native/native.tests/testData/lldb/kt42208WithVariable.kt +++ b/native/native.tests/testData/lldb/kt42208WithVariable.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL // FILE: kt42208-1.kt fun main() { val a = foo() diff --git a/native/native.tests/testData/lldb/kt47198.kt b/native/native.tests/testData/lldb/kt47198.kt index f3c89b7259e..c4f025fc013 100644 --- a/native/native.tests/testData/lldb/kt47198.kt +++ b/native/native.tests/testData/lldb/kt47198.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL // FILE: kt47198.kt fun foo(a:Int) = print("a: $a") diff --git a/native/native.tests/testData/lldb/kt47198WithBody.kt b/native/native.tests/testData/lldb/kt47198WithBody.kt index 4cb9ca5c65f..bc76a26bd5b 100644 --- a/native/native.tests/testData/lldb/kt47198WithBody.kt +++ b/native/native.tests/testData/lldb/kt47198WithBody.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL // FILE: kt47198.kt fun foo(a:Int){ print("a: ${'$'}a") diff --git a/native/native.tests/testData/lldb/kt61131.fir.txt b/native/native.tests/testData/lldb/kt61131.fir.txt new file mode 100644 index 00000000000..07cf0d6c94a --- /dev/null +++ b/native/native.tests/testData/lldb/kt61131.fir.txt @@ -0,0 +1,24 @@ +> b call_bar +> r +> s +> s +> bt +* thread #1, [..] stop reason = step in + * frame #0: [..]`kfun:Foo#bar(){}kotlin.String-trampoline at kt61131-2.kt:20:5 + frame #1: [..]`kfun:#call_bar(foo=[..]){} at kt61131-1.kt:9:18 + frame #2: [..]`kfun:#main(){} at kt61131-1.kt:15:5 + frame #3: [..]`Konan_start(args=[..]) at [..] + frame #4: [..] + frame #5: [..] +> s +> bt +* thread #1, [..] stop reason = step in + * frame #0: [..]`kfun:FooImpl#bar(_this=[..]]){}kotlin.String at kt61131-1.kt:5:5 + frame #1: [..]`kfun:Foo#bar(){}kotlin.String-trampoline at kt61131-2.kt:20:5 + frame #2: [..]`kfun:#call_bar(foo=[..]){} at kt61131-1.kt:9:18 + frame #3: [..]`kfun:#main(){} at kt61131-1.kt:15:5 + frame #4: [..]`Konan_start(args=[..]) at [..] + frame #5: [..] + frame #6: [..] +> q + diff --git a/native/native.tests/testData/lldb/stepThroughInlineArguments.kt b/native/native.tests/testData/lldb/stepThroughInlineArguments.kt index 3760b18b2e9..eb0fd7fae70 100644 --- a/native/native.tests/testData/lldb/stepThroughInlineArguments.kt +++ b/native/native.tests/testData/lldb/stepThroughInlineArguments.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL // FILE: main.kt fun bar(x: Int): Int { val res = foo( diff --git a/native/native.tests/testData/samples/standalone_lldb_stepping.kt b/native/native.tests/testData/samples/standalone_lldb_stepping.kt index a13e1490e65..0b30e17583f 100644 --- a/native/native.tests/testData/samples/standalone_lldb_stepping.kt +++ b/native/native.tests/testData/samples/standalone_lldb_stepping.kt @@ -1,5 +1,5 @@ // KIND: STANDALONE_LLDB - +// FIR_IDENTICAL import kotlin.test.* fun main(args: Array) { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirLldbTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirLldbTestGenerated.java new file mode 100644 index 00000000000..7a3b96add8a --- /dev/null +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirLldbTestGenerated.java @@ -0,0 +1,134 @@ +/* + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.konan.test.blackbox; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.junit.jupiter.api.Tag; +import org.jetbrains.kotlin.konan.test.blackbox.support.group.UseStandardTestCaseGroupProvider; +import org.jetbrains.kotlin.konan.test.blackbox.support.EnforcedProperty; +import org.jetbrains.kotlin.konan.test.blackbox.support.ClassLevelProperty; +import org.jetbrains.kotlin.konan.test.blackbox.support.EnforcedHostTarget; +import org.jetbrains.kotlin.konan.test.blackbox.support.group.FirPipeline; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateNativeTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("native/native.tests/testData/lldb") +@TestDataPath("$PROJECT_ROOT") +@Tag("debugger") +@UseStandardTestCaseGroupProvider() +@EnforcedProperty(property = ClassLevelProperty.OPTIMIZATION_MODE, propertyValue = "DEBUG") +@EnforcedHostTarget() +@Tag("frontend-fir") +@FirPipeline() +public class FirLldbTestGenerated extends AbstractNativeBlackBoxTest { + @Test + public void testAllFilesPresentInLldb() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("native/native.tests/testData/lldb"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("canInspectArrayChildren.kt") + public void testCanInspectArrayChildren() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectArrayChildren.kt"); + } + + @Test + @TestMetadata("canInspectArrays.kt") + public void testCanInspectArrays() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectArrays.kt"); + } + + @Test + @TestMetadata("canInspectCatchParameter.kt") + public void testCanInspectCatchParameter() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectCatchParameter.kt"); + } + + @Test + @TestMetadata("canInspectClasses.kt") + public void testCanInspectClasses() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectClasses.kt"); + } + + @Test + @TestMetadata("canInspectStrings.kt") + public void testCanInspectStrings() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectStrings.kt"); + } + + @Test + @TestMetadata("canInspectValuesOfPrimitiveTypes.kt") + public void testCanInspectValuesOfPrimitiveTypes() throws Exception { + runTest("native/native.tests/testData/lldb/canInspectValuesOfPrimitiveTypes.kt"); + } + + @Test + @TestMetadata("canStepThroughCode.kt") + public void testCanStepThroughCode() throws Exception { + runTest("native/native.tests/testData/lldb/canStepThroughCode.kt"); + } + + @Test + @TestMetadata("kt33055.kt") + public void testKt33055() throws Exception { + runTest("native/native.tests/testData/lldb/kt33055.kt"); + } + + @Test + @TestMetadata("kt33364.kt") + public void testKt33364() throws Exception { + runTest("native/native.tests/testData/lldb/kt33364.kt"); + } + + @Test + @TestMetadata("kt42208.kt") + public void testKt42208() throws Exception { + runTest("native/native.tests/testData/lldb/kt42208.kt"); + } + + @Test + @TestMetadata("kt42208WithPassingLambdaToAnotherFunction.kt") + public void testKt42208WithPassingLambdaToAnotherFunction() throws Exception { + runTest("native/native.tests/testData/lldb/kt42208WithPassingLambdaToAnotherFunction.kt"); + } + + @Test + @TestMetadata("kt42208WithVariable.kt") + public void testKt42208WithVariable() throws Exception { + runTest("native/native.tests/testData/lldb/kt42208WithVariable.kt"); + } + + @Test + @TestMetadata("kt47198.kt") + public void testKt47198() throws Exception { + runTest("native/native.tests/testData/lldb/kt47198.kt"); + } + + @Test + @TestMetadata("kt47198WithBody.kt") + public void testKt47198WithBody() throws Exception { + runTest("native/native.tests/testData/lldb/kt47198WithBody.kt"); + } + + @Test + @TestMetadata("kt61131.kt") + public void testKt61131() throws Exception { + runTest("native/native.tests/testData/lldb/kt61131.kt"); + } + + @Test + @TestMetadata("stepThroughInlineArguments.kt") + public void testStepThroughInlineArguments() throws Exception { + runTest("native/native.tests/testData/lldb/stepThroughInlineArguments.kt"); + } +} diff --git a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt index 5e578f4cc8c..a7a405db9fe 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt @@ -317,6 +317,20 @@ fun main() { model("lldb") } } + testGroup("native/native.tests/tests-gen", "native/native.tests/testData") { + testClass( + suiteTestClassName = "FirLldbTestGenerated", + annotations = listOf( + debugger(), + provider(), + forceDebugMode(), + forceHostTarget(), + *frontendFir() + ) + ) { + model("lldb") + } + } // New frontend test infrastructure tests testGroup(testsRoot = "native/native.tests/tests-gen", testDataRoot = "compiler/testData") { diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/TestDirectives.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/TestDirectives.kt index 6efcac638db..21d276bed16 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/TestDirectives.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/TestDirectives.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.konan.test.blackbox.support import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.ENTRY_POINT import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.EXIT_CODE import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.EXPECTED_TIMEOUT_FAILURE +import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.FIR_IDENTICAL import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.FREE_CINTEROP_ARGS import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.FREE_COMPILER_ARGS import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.INPUT_DATA_FILE @@ -18,6 +19,8 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.PROGRAM_A import org.jetbrains.kotlin.konan.test.blackbox.support.TestDirectives.TEST_RUNNER import org.jetbrains.kotlin.konan.test.blackbox.support.runner.TestRunCheck import org.jetbrains.kotlin.konan.test.blackbox.support.runner.TestRunCheck.OutputDataFile +import org.jetbrains.kotlin.konan.test.blackbox.support.settings.PipelineType +import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Settings import org.jetbrains.kotlin.konan.test.blackbox.support.util.LLDBSessionSpec import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer @@ -320,8 +323,11 @@ internal fun parseEntryPoint(registeredDirectives: RegisteredDirectives, locatio return entryPoint } -internal fun parseLLDBSpec(testDataFile: File): LLDBSessionSpec { - val specFileLocation = testDataFile.absolutePath.removeSuffix(testDataFile.extension) + "txt" +internal fun parseLLDBSpec(testDataFile: File, registeredDirectives: RegisteredDirectives, settings: Settings): LLDBSessionSpec { + val firIdentical = FIR_IDENTICAL in registeredDirectives + val firSpecificExt = if (settings.get() == PipelineType.K2 && !firIdentical) "fir." else "" + val specFilePathWithoutExtension = testDataFile.absolutePath.removeSuffix(testDataFile.extension) + val specFileLocation = "$specFilePathWithoutExtension${firSpecificExt}txt" val specFile = File(specFileLocation) return try { LLDBSessionSpec.parse(specFile.readText()) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/group/StandardTestCaseGroupProvider.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/group/StandardTestCaseGroupProvider.kt index 0f14af7b0bf..9c40386aa1b 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/group/StandardTestCaseGroupProvider.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/group/StandardTestCaseGroupProvider.kt @@ -204,7 +204,7 @@ internal class StandardTestCaseGroupProvider : TestCaseGroupProvider { fixPackageNames(testModules.values, nominalPackageName, testDataFile) } - val lldbSpec = if (testKind == TestKind.STANDALONE_LLDB) parseLLDBSpec(testDataFile) else null + val lldbSpec = if (testKind == TestKind.STANDALONE_LLDB) parseLLDBSpec(testDataFile, registeredDirectives, settings) else null val outputMatcher = lldbSpec?.let { OutputMatcher(Output.STDOUT) { output -> lldbSpec.checkLLDBOutput(output, settings.get()) }