diff --git a/.idea/modules.xml b/.idea/modules.xml
index 679920988069..099a050ea0d5 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -812,6 +812,8 @@
+
+
diff --git a/build/bazel-generated-file-list.txt b/build/bazel-generated-file-list.txt
index 3d184cda23e8..680c7d60f8e4 100644
--- a/build/bazel-generated-file-list.txt
+++ b/build/bazel-generated-file-list.txt
@@ -1495,6 +1495,8 @@ tools/devLauncher
tools/devLauncher/tests
tools/intellij.lambda.sampleTests
tools/intellij.lambda.sampleTests/plugin
+tools/intellij.lambda.sampleTestsWithFixtures
+tools/intellij.lambda.sampleTestsWithFixtures/plugin
tools/intellij.lambda.testFramework
tools/intellij.lambda.testFramework/plugin
tools/intellij.tools.ide.metrics.benchmark
diff --git a/platform/testFramework/junit5/codeInsight/BUILD.bazel b/platform/testFramework/junit5/codeInsight/BUILD.bazel
index cab1c87ba83d..7c6707a27c65 100644
--- a/platform/testFramework/junit5/codeInsight/BUILD.bazel
+++ b/platform/testFramework/junit5/codeInsight/BUILD.bazel
@@ -1,11 +1,18 @@
### auto-generated section `build intellij.platform.testFramework.junit5.codeInsight` start
-load("@rules_jvm//:jvm.bzl", "jvm_library")
+load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup")
+
+resourcegroup(
+ name = "codeInsight_resources",
+ srcs = glob(["resources/**/*"]),
+ strip_prefix = "resources"
+)
jvm_library(
name = "codeInsight",
module_name = "intellij.platform.testFramework.junit5.codeInsight",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True),
+ resources = [":codeInsight_resources"],
deps = [
"//platform/testFramework",
"//platform/testFramework/junit5",
diff --git a/platform/testFramework/junit5/codeInsight/intellij.platform.testFramework.junit5.codeInsight.iml b/platform/testFramework/junit5/codeInsight/intellij.platform.testFramework.junit5.codeInsight.iml
index 1d59049e80d5..45714b861749 100644
--- a/platform/testFramework/junit5/codeInsight/intellij.platform.testFramework.junit5.codeInsight.iml
+++ b/platform/testFramework/junit5/codeInsight/intellij.platform.testFramework.junit5.codeInsight.iml
@@ -3,6 +3,7 @@
+
diff --git a/platform/testFramework/junit5/codeInsight/resources/intellij.platform.testFramework.junit5.codeInsight.xml b/platform/testFramework/junit5/codeInsight/resources/intellij.platform.testFramework.junit5.codeInsight.xml
new file mode 100644
index 000000000000..61ddbd5e999c
--- /dev/null
+++ b/platform/testFramework/junit5/codeInsight/resources/intellij.platform.testFramework.junit5.codeInsight.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/BUILD.bazel b/tools/intellij.lambda.sampleTestsWithFixtures/BUILD.bazel
new file mode 100644
index 000000000000..31d7400de69e
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/BUILD.bazel
@@ -0,0 +1,80 @@
+### auto-generated section `build intellij.lambda.sampleTestsWithFixtures` start
+load("//build:compiler-options.bzl", "create_kotlinc_options")
+load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup")
+
+create_kotlinc_options(
+ name = "custom_lambda-sampleTestsWithFixtures",
+ x_context_parameters = True
+)
+
+resourcegroup(
+ name = "lambda-sampleTestsWithFixtures_test_resources",
+ srcs = glob(["resources/**/*"]),
+ strip_prefix = "resources"
+)
+
+jvm_library(
+ name = "lambda-sampleTestsWithFixtures_test_lib",
+ module_name = "intellij.lambda.sampleTestsWithFixtures",
+ visibility = ["//visibility:public"],
+ srcs = glob(["tests/**/*.kt", "tests/**/*.java", "tests/**/*.form"], allow_empty = True),
+ resources = [":lambda-sampleTestsWithFixtures_test_resources"],
+ kotlinc_opts = ":custom_lambda-sampleTestsWithFixtures",
+ deps = [
+ "@lib//:kodein-di-jvm",
+ "@lib//:kotlin-stdlib",
+ "@lib//:kotlin-test",
+ "@lib//:assert_j",
+ "@lib//:rd-framework",
+ "@lib//:rd-core",
+ "//libraries/kotlin/reflect",
+ "//tools/intellij.tools.ide.starter:ide-starter",
+ "//tools/intellij.tools.ide.starter.junit5:ide-starter-junit5",
+ "//tools/intellij.tools.ide.starter.junit5:ide-starter-junit5_test_lib",
+ "//tools/intellij.tools.ide.starter.driver:ide-starter-driver",
+ "//tools/intellij.tools.ide.starter.build.server:ide-starter-build-server",
+ "//platform/core-api:core",
+ "//platform/core-impl",
+ "//platform/core-ui",
+ "//platform/lang-api:lang",
+ "//platform/lang-impl",
+ "//platform/platform-api:ide",
+ "//platform/editor-ui-api:editor-ui",
+ "//platform/editor-ui-ex:editor-ex",
+ "//platform/testFramework/junit5",
+ "//platform/testFramework/junit5:junit5_test_lib",
+ "//platform/code-style-api:codeStyle",
+ "//platform/execution-impl",
+ "//platform/platform-impl:ide-impl",
+ "//platform/platform-impl:ide-impl_test_lib",
+ "//platform/remoteDev-util",
+ "//platform/remoteDev-util:remoteDev-util_test_lib",
+ "//platform/analysis-api:analysis",
+ "//plugins/performanceTesting/core:performanceTesting",
+ "//plugins/performanceTesting/core:performanceTesting_test_lib",
+ "//platform/platform-impl/codeinsight-inline:ide-codeinsight-inline",
+ "//platform/xdebugger-api:debugger",
+ "//platform/xdebugger-impl:debugger-impl",
+ "//platform/xdebugger-impl:debugger-impl_test_lib",
+ "//platform/util/concurrency",
+ "//platform/util/concurrency:concurrency_test_lib",
+ "//platform/usageView",
+ "//tools/intellij.lambda.testFramework:lambda-testFramework",
+ "//libraries/junit5",
+ "//libraries/junit5-launcher",
+ "//libraries/junit5-params",
+ "//libraries/junit5-pioneer",
+ "//platform/testFramework",
+ "//platform/testFramework:testFramework_test_lib",
+ ]
+)
+### auto-generated section `build intellij.lambda.sampleTestsWithFixtures` end
+
+### auto-generated section `test intellij.lambda.sampleTestsWithFixtures` start
+load("@community//build:tests-options.bzl", "jps_test")
+
+jps_test(
+ name = "lambda-sampleTestsWithFixtures_test",
+ runtime_deps = [":lambda-sampleTestsWithFixtures_test_lib"]
+)
+### auto-generated section `test intellij.lambda.sampleTestsWithFixtures` end
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/intellij.lambda.sampleTestsWithFixtures.iml b/tools/intellij.lambda.sampleTestsWithFixtures/intellij.lambda.sampleTestsWithFixtures.iml
new file mode 100644
index 000000000000..eca0e9006dee
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/intellij.lambda.sampleTestsWithFixtures.iml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/plugin/BUILD.bazel b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/BUILD.bazel
new file mode 100644
index 000000000000..6b8db4083be4
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/BUILD.bazel
@@ -0,0 +1,17 @@
+### auto-generated section `build intellij.lambda.sampleTestsWithFixtures.plugin` start
+load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup")
+
+resourcegroup(
+ name = "plugin_test_resources",
+ srcs = glob(["testResources/**/*"]),
+ strip_prefix = "testResources"
+)
+
+jvm_library(
+ name = "plugin_test_lib",
+ module_name = "intellij.lambda.sampleTestsWithFixtures.plugin",
+ visibility = ["//visibility:public"],
+ srcs = glob([], allow_empty = True),
+ resources = [":plugin_test_resources"]
+)
+### auto-generated section `build intellij.lambda.sampleTestsWithFixtures.plugin` end
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/plugin/intellij.lambda.sampleTestsWithFixtures.plugin.iml b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/intellij.lambda.sampleTestsWithFixtures.plugin.iml
new file mode 100644
index 000000000000..dafc111814c7
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/intellij.lambda.sampleTestsWithFixtures.plugin.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/plugin/testResources/META-INF/plugin.xml b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/testResources/META-INF/plugin.xml
new file mode 100644
index 000000000000..297f123a6faf
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/plugin/testResources/META-INF/plugin.xml
@@ -0,0 +1,28 @@
+
+ com.intellij.lambda.sampleTestsWithFixtures.plugin
+ JetBrains
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/tools/intellij.lambda.sampleTestsWithFixtures/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 000000000000..ee0023c935f9
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1 @@
+com.intellij.lambda.sampleTestsWithFixtures.util.SetLambdaPluginCallback
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/resources/intellij.lambda.sampleTestsWithFixtures._test.xml b/tools/intellij.lambda.sampleTestsWithFixtures/resources/intellij.lambda.sampleTestsWithFixtures._test.xml
new file mode 100644
index 000000000000..67139820dd10
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/resources/intellij.lambda.sampleTestsWithFixtures._test.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/SampleTest.kt b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/SampleTest.kt
new file mode 100644
index 000000000000..ead1e17c4fd4
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/SampleTest.kt
@@ -0,0 +1,39 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.lambda.sampleTestsWithFixtures
+
+import com.intellij.lambda.sampleTestsWithFixtures.util.openNewEditor
+import com.intellij.lambda.testFramework.junit.ExecuteInMonolithAndSplitMode
+import com.intellij.lambda.testFramework.junit.IdeRunMode
+import com.intellij.lambda.testFramework.testApi.editor.openFile
+import com.intellij.lambda.testFramework.testApi.getProject
+import com.intellij.lambda.testFramework.testApi.getProjects
+import com.intellij.lambda.testFramework.testApi.waitForProject
+import com.intellij.lambda.testFramework.utils.BackgroundRunWithLambda
+import com.intellij.openapi.diagnostic.Logger
+import kotlinx.coroutines.runBlocking
+import org.junit.jupiter.api.TestTemplate
+import kotlin.time.Duration.Companion.seconds
+
+@ExecuteInMonolithAndSplitMode
+class SampleTest {
+ @TestTemplate
+ fun `serialized test`(ide: BackgroundRunWithLambda) = runBlocking {
+ ide.apply {
+ runInBackend {
+ //waitForProject(20.seconds)
+ }
+
+ run {
+ openNewEditor("/src/com/example/Foo.java")
+ Logger.getInstance("test").warn("Projects: " + getProjects().joinToString { it.name })
+ }
+
+ runInBackend {
+ Logger.getInstance("test").warn("backend Projects: " + getProject())
+ openFile("src/com/example/Foo.java", waitForReadyState = false, requireFocus = false)
+ }
+ }
+ Unit
+ }
+}
+
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/SetLambdaPluginCallback.kt b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/SetLambdaPluginCallback.kt
new file mode 100644
index 000000000000..dc9a85dba26e
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/SetLambdaPluginCallback.kt
@@ -0,0 +1,19 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.lambda.sampleTestsWithFixtures.util
+
+import com.intellij.lambda.testFramework.utils.LambdaTestPluginHolder
+import org.junit.jupiter.api.extension.AfterAllCallback
+import org.junit.jupiter.api.extension.BeforeAllCallback
+import org.junit.jupiter.api.extension.ExtensionContext
+
+class SetLambdaPluginCallback : BeforeAllCallback, AfterAllCallback {
+ override fun beforeAll(context: ExtensionContext) {
+ LambdaTestPluginHolder.setupAdditionalLambdaPlugin("intellij.lambda.sampleTestsWithFixtures._test",
+ "intellij.lambda.sampleTestsWithFixtures.plugin",
+ "lambda-sampleTestsWithFixtures-plugin")
+ }
+
+ override fun afterAll(context: ExtensionContext) {
+ LambdaTestPluginHolder.cleanUpAdditionalLambdaPlugin()
+ }
+}
\ No newline at end of file
diff --git a/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/TestFixtureApi.kt b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/TestFixtureApi.kt
new file mode 100644
index 000000000000..40e762002a01
--- /dev/null
+++ b/tools/intellij.lambda.sampleTestsWithFixtures/tests/com/intellij/lambda/sampleTestsWithFixtures/util/TestFixtureApi.kt
@@ -0,0 +1,40 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.lambda.sampleTestsWithFixtures.util
+
+import com.intellij.remoteDev.tests.LambdaIdeContext
+import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory
+import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
+import com.intellij.testFramework.fixtures.impl.TempDirTestFixtureImpl
+import kotlinx.coroutines.currentCoroutineContext
+import kotlinx.coroutines.job
+
+context(lambdaIdeContext: LambdaIdeContext)
+suspend fun openNewEditor(relativePath: String) {
+ val projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder("Test")
+ val codeInsightFixture = CodeInsightTestFixtureImpl(projectBuilder.fixture, TempDirTestFixtureImpl())
+ codeInsightFixture.setUp()
+ codeInsightFixture.openFileInEditor(
+ codeInsightFixture
+ .addFileToProject(
+ relativePath,
+ // language=java
+ """
+ package com.example;
+
+ class Foo {
+ private boolean unboxedZ = false;
+ private byte unboxedB = 0;
+ private char unboxedC = 'a';
+ private double unboxedD = 0.0;
+ private float unboxedF = 0.0f;
+ private int unboxedI = 0;
+ private long unboxedJ = 0l;
+ private short unboxedS = 0;
+ }
+ """
+ .trimIndent(),
+ )
+ .virtualFile
+ )
+ currentCoroutineContext().job.invokeOnCompletion { codeInsightFixture.tearDown() }
+}