From beb40484dd267ffe9475ee543869739f0a2f3f5f Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Wed, 24 Jan 2024 23:04:36 +0100 Subject: [PATCH] [LL] Add `LLFirSession` invalidation tests - This commit moves all session invalidation tests from the IDE which are non-cyclic to the Analysis API. Cyclic session invalidation tests cannot be moved because the Kotlin test infrastructure doesn't support cyclic module dependencies. - In fact, these new tests cover more cases, because the IDE tests only covered global module state and module out-of-block modification events. Crucially, global source modification events are now supported, which require libraries to be left alone. - Module out-of-block modification for libraries is technically undefined, but the test still checks this behavior. The current session invalidation implementation behaves the same for any kind of module-level modification event, so it is possible to publish a module OOBM event for libraries. If this changes in the future, we can disable those tests. But for now, it's good that these tests run, because they will alert us to (accidental) changes to this behavior. ^KT-56288 fixed ^KT-65265 fixed --- ...lEdge.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeAdditionalEdge.kt | 22 ++++ ...lEdge.module_out_of_block_modification.txt | 6 + ...ditionalEdge.module_state_modification.txt | 6 + ...dateA.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeInvalidateA.kt | 22 ++++ ...dateA.module_out_of_block_modification.txt | 2 + ...eInvalidateA.module_state_modification.txt | 2 + ...ateCD.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeInvalidateCD.kt | 23 ++++ ...ateCD.module_out_of_block_modification.txt | 5 + ...InvalidateCD.module_state_modification.txt | 5 + ...dateF.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeInvalidateF.kt | 22 ++++ ...dateF.module_out_of_block_modification.txt | 4 + ...eInvalidateF.module_state_modification.txt | 4 + ...ateL1.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeInvalidateL1.kt | 22 ++++ ...ateL1.module_out_of_block_modification.txt | 5 + ...InvalidateL1.module_state_modification.txt | 5 + ...ateL2.global_module_state_modification.txt | 10 ++ ...lobal_source_module_state_modification.txt | 8 ++ ...lobal_source_out_of_block_modification.txt | 8 ++ .../binaryTreeInvalidateL2.kt | 22 ++++ ...ateL2.module_out_of_block_modification.txt | 4 + ...InvalidateL2.module_state_modification.txt | 4 + ...eNone.global_module_state_modification.txt | 1 + ...lobal_source_module_state_modification.txt | 1 + ...lobal_source_out_of_block_modification.txt | 1 + .../binaryTreeInvalidateNone.kt | 21 ++++ ...eNone.module_out_of_block_modification.txt | 1 + ...validateNone.module_state_modification.txt | 1 + ...dateC.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 6 + ...lobal_source_out_of_block_modification.txt | 6 + .../sessionInvalidation/linearInvalidateC.kt | 14 +++ ...dateC.module_out_of_block_modification.txt | 4 + ...rInvalidateC.module_state_modification.txt | 4 + ...ateL1.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 6 + ...lobal_source_out_of_block_modification.txt | 6 + .../sessionInvalidation/linearInvalidateL1.kt | 14 +++ ...ateL1.module_out_of_block_modification.txt | 7 ++ ...InvalidateL1.module_state_modification.txt | 7 ++ ...ateBC.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 5 + ...lobal_source_out_of_block_modification.txt | 5 + .../rhombusInvalidateBC.kt | 17 +++ ...ateBC.module_out_of_block_modification.txt | 4 + ...InvalidateBC.module_state_modification.txt | 4 + ...ateCD.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 5 + ...lobal_source_out_of_block_modification.txt | 5 + .../rhombusInvalidateCD.kt | 17 +++ ...ateCD.module_out_of_block_modification.txt | 5 + ...InvalidateCD.module_state_modification.txt | 5 + ...dateD.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 5 + ...lobal_source_out_of_block_modification.txt | 5 + .../sessionInvalidation/rhombusInvalidateD.kt | 16 +++ ...dateD.module_out_of_block_modification.txt | 5 + ...sInvalidateD.module_state_modification.txt | 5 + ...ateL1.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 5 + ...lobal_source_out_of_block_modification.txt | 5 + .../rhombusInvalidateL1.kt | 16 +++ ...ateL1.module_out_of_block_modification.txt | 6 + ...InvalidateL1.module_state_modification.txt | 6 + ...ateL2.global_module_state_modification.txt | 7 ++ ...lobal_source_module_state_modification.txt | 5 + ...lobal_source_out_of_block_modification.txt | 5 + .../rhombusInvalidateL2.kt | 16 +++ ...ateL2.module_out_of_block_modification.txt | 4 + ...InvalidateL2.module_state_modification.txt | 4 + .../AbstractSessionInvalidationTest.kt | 113 ++++++++++++++++++ ...ationSessionInvalidationTestGenerated.java | 109 +++++++++++++++++ ...ationSessionInvalidationTestGenerated.java | 109 +++++++++++++++++ ...ationSessionInvalidationTestGenerated.java | 109 +++++++++++++++++ ...ationSessionInvalidationTestGenerated.java | 109 +++++++++++++++++ ...ationSessionInvalidationTestGenerated.java | 109 +++++++++++++++++ .../tests/analysis/api/firLowLevel.kt | 25 ++++ 91 files changed, 1353 insertions(+) create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_module_state_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_out_of_block_modification.txt create mode 100644 analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_state_modification.txt create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/AbstractSessionInvalidationTest.kt create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalModuleStateModificationSessionInvalidationTestGenerated.java create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceModuleStateModificationSessionInvalidationTestGenerated.java create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceOutOfBlockModificationSessionInvalidationTestGenerated.java create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleOutOfBlockModificationSessionInvalidationTestGenerated.java create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleStateModificationSessionInvalidationTestGenerated.java diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt new file mode 100644 index 00000000000..f4f025fb360 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt @@ -0,0 +1,22 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: E +// WILDCARD_MODIFICATION_EVENT + +// MODULE: D + +// MODULE: B(D, E) + +// MODULE: F(L1, B) + +// MODULE: C(F, G, L2) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_out_of_block_modification.txt new file mode 100644 index 00000000000..2677e6ffdac --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_out_of_block_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +E +F diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_state_modification.txt new file mode 100644 index 00000000000..2677e6ffdac --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.module_state_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +E +F diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt new file mode 100644 index 00000000000..f2af79afc59 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt @@ -0,0 +1,22 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) + +// MODULE: E + +// MODULE: D + +// MODULE: C(F, G, L2) + +// MODULE: B(D, E) + +// MODULE: A(B, C) +// WILDCARD_MODIFICATION_EVENT diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_out_of_block_modification.txt new file mode 100644 index 00000000000..55e7f489cd2 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_out_of_block_modification.txt @@ -0,0 +1,2 @@ +Module names of invalidated sessions: +A diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_state_modification.txt new file mode 100644 index 00000000000..55e7f489cd2 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.module_state_modification.txt @@ -0,0 +1,2 @@ +Module names of invalidated sessions: +A diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt new file mode 100644 index 00000000000..21cefae3c3f --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt @@ -0,0 +1,23 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) + +// MODULE: E + +// MODULE: D +// WILDCARD_MODIFICATION_EVENT + +// MODULE: C(F, G, L2) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: B(D, E) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt new file mode 100644 index 00000000000..6c40bbdd5ac --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt @@ -0,0 +1,22 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: E + +// MODULE: D + +// MODULE: C(F, G, L2) + +// MODULE: B(D, E) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_out_of_block_modification.txt new file mode 100644 index 00000000000..4e371f2ba89 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_out_of_block_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +F diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_state_modification.txt new file mode 100644 index 00000000000..4e371f2ba89 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.module_state_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +F diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt new file mode 100644 index 00000000000..59430f4aea1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt @@ -0,0 +1,22 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// WILDCARD_MODIFICATION_EVENT +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) + +// MODULE: E + +// MODULE: D + +// MODULE: C(F, G, L2) + +// MODULE: B(D, E) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_out_of_block_modification.txt new file mode 100644 index 00000000000..1d2d1b14ba1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +C +F +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_state_modification.txt new file mode 100644 index 00000000000..1d2d1b14ba1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +C +F +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_module_state_modification.txt new file mode 100644 index 00000000000..a0c13990fa1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_module_state_modification.txt @@ -0,0 +1,10 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_module_state_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_module_state_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..5d6be6190f9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.global_source_out_of_block_modification.txt @@ -0,0 +1,8 @@ +Module names of invalidated sessions: +A +B +C +D +E +F +G diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt new file mode 100644 index 00000000000..392cf201f7b --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt @@ -0,0 +1,22 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// WILDCARD_MODIFICATION_EVENT +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) + +// MODULE: E + +// MODULE: D + +// MODULE: C(F, G, L2) + +// MODULE: B(D, E) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_out_of_block_modification.txt new file mode 100644 index 00000000000..8ca21d68835 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_out_of_block_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_state_modification.txt new file mode 100644 index 00000000000..8ca21d68835 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.module_state_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_module_state_modification.txt new file mode 100644 index 00000000000..19dd69dca25 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_module_state_modification.txt @@ -0,0 +1 @@ +Module names of invalidated sessions: diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_module_state_modification.txt new file mode 100644 index 00000000000..19dd69dca25 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_module_state_modification.txt @@ -0,0 +1 @@ +Module names of invalidated sessions: diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..19dd69dca25 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.global_source_out_of_block_modification.txt @@ -0,0 +1 @@ +Module names of invalidated sessions: diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt new file mode 100644 index 00000000000..be046613af1 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt @@ -0,0 +1,21 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: G + +// MODULE: F(L1) + +// MODULE: E + +// MODULE: D + +// MODULE: C(F, G, L2) + +// MODULE: B(D, E) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_out_of_block_modification.txt new file mode 100644 index 00000000000..19dd69dca25 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_out_of_block_modification.txt @@ -0,0 +1 @@ +Module names of invalidated sessions: diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_state_modification.txt new file mode 100644 index 00000000000..19dd69dca25 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.module_state_modification.txt @@ -0,0 +1 @@ +Module names of invalidated sessions: diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_module_state_modification.txt new file mode 100644 index 00000000000..0d23e3ff7ea --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +E +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_module_state_modification.txt new file mode 100644 index 00000000000..4ccb3b7dd23 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_module_state_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +E diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..4ccb3b7dd23 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.global_source_out_of_block_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +E diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt new file mode 100644 index 00000000000..fac9a02420d --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt @@ -0,0 +1,14 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: E(L1) + +// MODULE: D(E) + +// MODULE: C(D) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: B(C) + +// MODULE: A(B) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_out_of_block_modification.txt new file mode 100644 index 00000000000..54df4bab8c8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_out_of_block_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +B +C diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_state_modification.txt new file mode 100644 index 00000000000..54df4bab8c8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.module_state_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +B +C diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_module_state_modification.txt new file mode 100644 index 00000000000..0d23e3ff7ea --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +E +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_module_state_modification.txt new file mode 100644 index 00000000000..4ccb3b7dd23 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_module_state_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +E diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..4ccb3b7dd23 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.global_source_out_of_block_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +E diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt new file mode 100644 index 00000000000..64a63f6283f --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt @@ -0,0 +1,14 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// WILDCARD_MODIFICATION_EVENT +// FILE: l1.kt + +// MODULE: E(L1) + +// MODULE: D(E) + +// MODULE: C(D) + +// MODULE: B(C) + +// MODULE: A(B) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_out_of_block_modification.txt new file mode 100644 index 00000000000..0d23e3ff7ea --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_out_of_block_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +E +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_state_modification.txt new file mode 100644 index 00000000000..0d23e3ff7ea --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +E +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_module_state_modification.txt new file mode 100644 index 00000000000..478c75f27de --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.global_source_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt new file mode 100644 index 00000000000..dd9ab6e0737 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt @@ -0,0 +1,17 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: D(L1) + +// MODULE: C(D, L2) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: B(D) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_out_of_block_modification.txt new file mode 100644 index 00000000000..54df4bab8c8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_out_of_block_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +B +C diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_state_modification.txt new file mode 100644 index 00000000000..54df4bab8c8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.module_state_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +B +C diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_module_state_modification.txt new file mode 100644 index 00000000000..478c75f27de --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.global_source_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt new file mode 100644 index 00000000000..04e46e0f249 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt @@ -0,0 +1,17 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: D(L1) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: C(D, L2) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: B(D) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_module_state_modification.txt new file mode 100644 index 00000000000..478c75f27de --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.global_source_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt new file mode 100644 index 00000000000..e0769ff2539 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt @@ -0,0 +1,16 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: D(L1) +// WILDCARD_MODIFICATION_EVENT + +// MODULE: C(D, L2) + +// MODULE: B(D) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_module_state_modification.txt new file mode 100644 index 00000000000..478c75f27de --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.global_source_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt new file mode 100644 index 00000000000..de575703d2e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt @@ -0,0 +1,16 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// WILDCARD_MODIFICATION_EVENT +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// FILE: l2.kt + +// MODULE: D(L1) + +// MODULE: C(D, L2) + +// MODULE: B(D) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_out_of_block_modification.txt new file mode 100644 index 00000000000..8bfa6966ace --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_out_of_block_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_state_modification.txt new file mode 100644 index 00000000000..8bfa6966ace --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.module_state_modification.txt @@ -0,0 +1,6 @@ +Module names of invalidated sessions: +A +B +C +D +L1 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_module_state_modification.txt new file mode 100644 index 00000000000..478c75f27de --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_module_state_modification.txt @@ -0,0 +1,7 @@ +Module names of invalidated sessions: +A +B +C +D +L1 +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_module_state_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_module_state_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_out_of_block_modification.txt new file mode 100644 index 00000000000..0b567ab0b7e --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.global_source_out_of_block_modification.txt @@ -0,0 +1,5 @@ +Module names of invalidated sessions: +A +B +C +D diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt new file mode 100644 index 00000000000..5ba3c3263a0 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt @@ -0,0 +1,16 @@ +// MODULE: L1 +// MODULE_KIND: LibraryBinary +// FILE: l1.kt + +// MODULE: L2 +// MODULE_KIND: LibraryBinary +// WILDCARD_MODIFICATION_EVENT +// FILE: l2.kt + +// MODULE: D(L1) + +// MODULE: C(D, L2) + +// MODULE: B(D) + +// MODULE: A(B, C) diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_out_of_block_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_out_of_block_modification.txt new file mode 100644 index 00000000000..8ca21d68835 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_out_of_block_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +L2 diff --git a/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_state_modification.txt b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_state_modification.txt new file mode 100644 index 00000000000..8ca21d68835 --- /dev/null +++ b/analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.module_state_modification.txt @@ -0,0 +1,4 @@ +Module names of invalidated sessions: +A +C +L2 diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/AbstractSessionInvalidationTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/AbstractSessionInvalidationTest.kt new file mode 100644 index 00000000000..0aeaa88d359 --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/AbstractSessionInvalidationTest.kt @@ -0,0 +1,113 @@ +/* + * 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.analysis.low.level.api.fir.sessions + +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator +import org.jetbrains.kotlin.analysis.project.structure.KtModule +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest +import org.jetbrains.kotlin.analysis.test.framework.directives.ModificationEventKind +import org.jetbrains.kotlin.analysis.test.framework.directives.publishWildcardModificationEventsByDirective +import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator +import org.jetbrains.kotlin.test.services.TestModuleStructure +import org.jetbrains.kotlin.test.services.TestServices +import org.jetbrains.kotlin.test.services.assertions + +/** + * Checks that sessions are invalidated after publishing modification events. The type of published modification event depends on the value + * of [modificationEventKind]. This allows [AbstractSessionInvalidationTest] to check all modification event kinds with the same original + * test data. + * + * See also `AbstractSessionInvalidationTest` on the IDE side, which is still required to check session invalidation in module structures + * with cyclic dependencies. + */ +abstract class AbstractSessionInvalidationTest : AbstractAnalysisApiBasedTest() { + protected abstract val modificationEventKind: ModificationEventKind + + override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) { + val allKtModules = testServices.ktModuleProvider.getModuleStructure().allKtModules() + + val sessionsBeforeModification = getSessionsFor(allKtModules) + moduleStructure.publishWildcardModificationEventsByDirective(modificationEventKind, testServices) + val sessionsAfterModification = getSessionsFor(allKtModules) + + val invalidatedSessions = buildSet { + addAll(sessionsBeforeModification) + removeAll(sessionsAfterModification) + } + + checkInvalidatedModules(moduleStructure, invalidatedSessions, testServices) + checkSessionsMarkedInvalid(invalidatedSessions, testServices) + } + + private fun getSessionsFor(modules: List): List { + val project = modules.first().project + val sessionCache = LLFirSessionCache.getInstance(project) + return modules.map { sessionCache.getSession(it) } + } + + private fun checkInvalidatedModules( + testModuleStructure: TestModuleStructure, + invalidatedSessions: Set, + testServices: TestServices, + ) { + val testModuleNames = testModuleStructure.modules.map { it.name } + + val invalidatedModuleDescriptions = invalidatedSessions + .map { it.ktModule.toString() } + .filter { + // We only want to include test modules in the output. Otherwise, it might include libraries from the test infrastructure. + it in testModuleNames + } + .distinct() + .sorted() + + val actualText = buildString { + appendLine("Module names of invalidated sessions:") + invalidatedModuleDescriptions.forEach { appendLine(it) } + } + + testServices.assertions.assertEqualsToTestDataFileSibling(actualText, extension = ".${modificationEventKind.name.lowercase()}.txt") + } + + private fun checkSessionsMarkedInvalid( + invalidatedSessions: Set, + testServices: TestServices, + ) { + invalidatedSessions.forEach { session -> + testServices.assertions.assertFalse(session.isValid) { + "The invalidated session `${session}` should have been marked invalid." + } + } + } + + override val configurator: AnalysisApiTestConfigurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) +} + +abstract class AbstractModuleStateModificationSessionInvalidationTest : AbstractSessionInvalidationTest() { + override val modificationEventKind: ModificationEventKind + get() = ModificationEventKind.MODULE_STATE_MODIFICATION +} + +abstract class AbstractModuleOutOfBlockModificationSessionInvalidationTest : AbstractSessionInvalidationTest() { + override val modificationEventKind: ModificationEventKind + get() = ModificationEventKind.MODULE_OUT_OF_BLOCK_MODIFICATION +} + +abstract class AbstractGlobalModuleStateModificationSessionInvalidationTest : AbstractSessionInvalidationTest() { + override val modificationEventKind: ModificationEventKind + get() = ModificationEventKind.GLOBAL_MODULE_STATE_MODIFICATION +} + +abstract class AbstractGlobalSourceModuleStateModificationSessionInvalidationTest : AbstractSessionInvalidationTest() { + override val modificationEventKind: ModificationEventKind + get() = ModificationEventKind.GLOBAL_SOURCE_MODULE_STATE_MODIFICATION +} + +abstract class AbstractGlobalSourceOutOfBlockModificationSessionInvalidationTest : AbstractSessionInvalidationTest() { + override val modificationEventKind: ModificationEventKind + get() = ModificationEventKind.GLOBAL_SOURCE_OUT_OF_BLOCK_MODIFICATION +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalModuleStateModificationSessionInvalidationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalModuleStateModificationSessionInvalidationTestGenerated.java new file mode 100644 index 00000000000..54faf83b9bc --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalModuleStateModificationSessionInvalidationTestGenerated.java @@ -0,0 +1,109 @@ +/* + * 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.analysis.low.level.api.fir.sessions; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +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.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testData/sessionInvalidation") +@TestDataPath("$PROJECT_ROOT") +public class GlobalModuleStateModificationSessionInvalidationTestGenerated extends AbstractGlobalModuleStateModificationSessionInvalidationTest { + @Test + public void testAllFilesPresentInSessionInvalidation() { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/sessionInvalidation"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("binaryTreeAdditionalEdge.kt") + public void testBinaryTreeAdditionalEdge() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateA.kt") + public void testBinaryTreeInvalidateA() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateCD.kt") + public void testBinaryTreeInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateF.kt") + public void testBinaryTreeInvalidateF() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL1.kt") + public void testBinaryTreeInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL2.kt") + public void testBinaryTreeInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateNone.kt") + public void testBinaryTreeInvalidateNone() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt"); + } + + @Test + @TestMetadata("linearInvalidateC.kt") + public void testLinearInvalidateC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt"); + } + + @Test + @TestMetadata("linearInvalidateL1.kt") + public void testLinearInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateBC.kt") + public void testRhombusInvalidateBC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateCD.kt") + public void testRhombusInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateD.kt") + public void testRhombusInvalidateD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL1.kt") + public void testRhombusInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL2.kt") + public void testRhombusInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt"); + } +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceModuleStateModificationSessionInvalidationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceModuleStateModificationSessionInvalidationTestGenerated.java new file mode 100644 index 00000000000..ca35a2637b9 --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceModuleStateModificationSessionInvalidationTestGenerated.java @@ -0,0 +1,109 @@ +/* + * 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.analysis.low.level.api.fir.sessions; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +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.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testData/sessionInvalidation") +@TestDataPath("$PROJECT_ROOT") +public class GlobalSourceModuleStateModificationSessionInvalidationTestGenerated extends AbstractGlobalSourceModuleStateModificationSessionInvalidationTest { + @Test + public void testAllFilesPresentInSessionInvalidation() { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/sessionInvalidation"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("binaryTreeAdditionalEdge.kt") + public void testBinaryTreeAdditionalEdge() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateA.kt") + public void testBinaryTreeInvalidateA() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateCD.kt") + public void testBinaryTreeInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateF.kt") + public void testBinaryTreeInvalidateF() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL1.kt") + public void testBinaryTreeInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL2.kt") + public void testBinaryTreeInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateNone.kt") + public void testBinaryTreeInvalidateNone() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt"); + } + + @Test + @TestMetadata("linearInvalidateC.kt") + public void testLinearInvalidateC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt"); + } + + @Test + @TestMetadata("linearInvalidateL1.kt") + public void testLinearInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateBC.kt") + public void testRhombusInvalidateBC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateCD.kt") + public void testRhombusInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateD.kt") + public void testRhombusInvalidateD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL1.kt") + public void testRhombusInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL2.kt") + public void testRhombusInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt"); + } +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceOutOfBlockModificationSessionInvalidationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceOutOfBlockModificationSessionInvalidationTestGenerated.java new file mode 100644 index 00000000000..3b972cbac7a --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/GlobalSourceOutOfBlockModificationSessionInvalidationTestGenerated.java @@ -0,0 +1,109 @@ +/* + * 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.analysis.low.level.api.fir.sessions; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +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.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testData/sessionInvalidation") +@TestDataPath("$PROJECT_ROOT") +public class GlobalSourceOutOfBlockModificationSessionInvalidationTestGenerated extends AbstractGlobalSourceOutOfBlockModificationSessionInvalidationTest { + @Test + public void testAllFilesPresentInSessionInvalidation() { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/sessionInvalidation"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("binaryTreeAdditionalEdge.kt") + public void testBinaryTreeAdditionalEdge() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateA.kt") + public void testBinaryTreeInvalidateA() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateCD.kt") + public void testBinaryTreeInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateF.kt") + public void testBinaryTreeInvalidateF() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL1.kt") + public void testBinaryTreeInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL2.kt") + public void testBinaryTreeInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateNone.kt") + public void testBinaryTreeInvalidateNone() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt"); + } + + @Test + @TestMetadata("linearInvalidateC.kt") + public void testLinearInvalidateC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt"); + } + + @Test + @TestMetadata("linearInvalidateL1.kt") + public void testLinearInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateBC.kt") + public void testRhombusInvalidateBC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateCD.kt") + public void testRhombusInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateD.kt") + public void testRhombusInvalidateD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL1.kt") + public void testRhombusInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL2.kt") + public void testRhombusInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt"); + } +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleOutOfBlockModificationSessionInvalidationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleOutOfBlockModificationSessionInvalidationTestGenerated.java new file mode 100644 index 00000000000..964fae9729f --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleOutOfBlockModificationSessionInvalidationTestGenerated.java @@ -0,0 +1,109 @@ +/* + * 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.analysis.low.level.api.fir.sessions; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +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.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testData/sessionInvalidation") +@TestDataPath("$PROJECT_ROOT") +public class ModuleOutOfBlockModificationSessionInvalidationTestGenerated extends AbstractModuleOutOfBlockModificationSessionInvalidationTest { + @Test + public void testAllFilesPresentInSessionInvalidation() { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/sessionInvalidation"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("binaryTreeAdditionalEdge.kt") + public void testBinaryTreeAdditionalEdge() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateA.kt") + public void testBinaryTreeInvalidateA() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateCD.kt") + public void testBinaryTreeInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateF.kt") + public void testBinaryTreeInvalidateF() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL1.kt") + public void testBinaryTreeInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL2.kt") + public void testBinaryTreeInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateNone.kt") + public void testBinaryTreeInvalidateNone() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt"); + } + + @Test + @TestMetadata("linearInvalidateC.kt") + public void testLinearInvalidateC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt"); + } + + @Test + @TestMetadata("linearInvalidateL1.kt") + public void testLinearInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateBC.kt") + public void testRhombusInvalidateBC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateCD.kt") + public void testRhombusInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateD.kt") + public void testRhombusInvalidateD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL1.kt") + public void testRhombusInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL2.kt") + public void testRhombusInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt"); + } +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleStateModificationSessionInvalidationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleStateModificationSessionInvalidationTestGenerated.java new file mode 100644 index 00000000000..db7dc457611 --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/ModuleStateModificationSessionInvalidationTestGenerated.java @@ -0,0 +1,109 @@ +/* + * 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.analysis.low.level.api.fir.sessions; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +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.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testData/sessionInvalidation") +@TestDataPath("$PROJECT_ROOT") +public class ModuleStateModificationSessionInvalidationTestGenerated extends AbstractModuleStateModificationSessionInvalidationTest { + @Test + public void testAllFilesPresentInSessionInvalidation() { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/sessionInvalidation"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("binaryTreeAdditionalEdge.kt") + public void testBinaryTreeAdditionalEdge() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeAdditionalEdge.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateA.kt") + public void testBinaryTreeInvalidateA() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateA.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateCD.kt") + public void testBinaryTreeInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateCD.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateF.kt") + public void testBinaryTreeInvalidateF() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateF.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL1.kt") + public void testBinaryTreeInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL1.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateL2.kt") + public void testBinaryTreeInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateL2.kt"); + } + + @Test + @TestMetadata("binaryTreeInvalidateNone.kt") + public void testBinaryTreeInvalidateNone() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/binaryTreeInvalidateNone.kt"); + } + + @Test + @TestMetadata("linearInvalidateC.kt") + public void testLinearInvalidateC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateC.kt"); + } + + @Test + @TestMetadata("linearInvalidateL1.kt") + public void testLinearInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/linearInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateBC.kt") + public void testRhombusInvalidateBC() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateBC.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateCD.kt") + public void testRhombusInvalidateCD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateCD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateD.kt") + public void testRhombusInvalidateD() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateD.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL1.kt") + public void testRhombusInvalidateL1() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL1.kt"); + } + + @Test + @TestMetadata("rhombusInvalidateL2.kt") + public void testRhombusInvalidateL2() { + runTest("analysis/low-level-api-fir/testData/sessionInvalidation/rhombusInvalidateL2.kt"); + } +} diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt index d3c22b1f061..bac94fb5d40 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt @@ -26,6 +26,11 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.AbstractScriptWho import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.AbstractSourceLazyDeclarationResolveScopeBasedTest import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.AbstractSourceWholeFileResolvePhaseTest import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.AbstractResolveExtensionDisposalAfterModificationEventTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.AbstractGlobalModuleStateModificationSessionInvalidationTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.AbstractGlobalSourceModuleStateModificationSessionInvalidationTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.AbstractGlobalSourceOutOfBlockModificationSessionInvalidationTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.AbstractModuleOutOfBlockModificationSessionInvalidationTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.AbstractModuleStateModificationSessionInvalidationTest import org.jetbrains.kotlin.generators.TestGroup import org.jetbrains.kotlin.generators.TestGroupSuite import org.jetbrains.kotlin.generators.util.TestGeneratorUtil @@ -286,6 +291,26 @@ internal fun TestGroupSuite.generateFirLowLevelApiTests() { testClass { model("resolveExtensionDisposal") } + + testClass { + model("sessionInvalidation") + } + + testClass { + model("sessionInvalidation") + } + + testClass { + model("sessionInvalidation") + } + + testClass { + model("sessionInvalidation") + } + + testClass { + model("sessionInvalidation") + } } testGroup("analysis/low-level-api-fir/tests", "analysis/analysis-api/testData") {