From 86138bdb9cbdba2f223945181a8ebca7d7118d8d Mon Sep 17 00:00:00 2001
From: Lee Rowlands <lee.rowlands@previousnext.com.au>
Date: Tue, 26 Sep 2023 07:27:04 +1000
Subject: [PATCH] Issue #3388365 by catch, larowlan, bbrala, smustgrave:
 Distribute @group #slow tests between test runners and mark more tests

(cherry picked from commit 0af9348ce711d3fcc960cabc39239dc6c1bc894a)
---
 .../Migrate/d7/MigrateBlockContentTranslationTest.php  |  1 +
 core/modules/book/tests/src/Functional/BookTest.php    |  1 +
 .../tests/src/FunctionalJavascript/ImageTest.php       |  1 +
 .../tests/src/FunctionalJavascript/ImageUrlTest.php    |  1 +
 .../tests/src/FunctionalJavascript/MediaTest.php       |  1 +
 .../src/FunctionalJavascript/SourceEditingTest.php     |  1 +
 .../tests/src/Functional/ConfigImportAllTest.php       |  1 +
 .../config/tests/src/Functional/ConfigImportUITest.php |  1 +
 .../tests/src/Functional/ConfigInstallWebTest.php      |  1 +
 .../tests/src/Functional/ConfigTranslationUiTest.php   |  1 +
 .../Kernel/WorkspacesContentModerationStateTest.php    |  1 +
 core/modules/field/tests/src/Functional/FormTest.php   |  1 +
 .../src/Functional/ManageFieldsFunctionalTest.php      |  1 +
 .../jsonapi/tests/src/Functional/BlockContentTest.php  |  1 +
 .../jsonapi/tests/src/Functional/CommentTest.php       |  1 +
 .../jsonapi/tests/src/Functional/FileUploadTest.php    |  1 +
 .../tests/src/Functional/JsonApiRegressionTest.php     |  1 +
 core/modules/jsonapi/tests/src/Functional/UserTest.php |  1 +
 .../tests/src/Kernel/Context/FieldResolverTest.php     |  1 +
 .../Kernel/ContentLanguageSettingsValidationTest.php   |  1 +
 .../tests/src/Functional/LayoutBuilderTest.php         |  1 +
 .../tests/src/FunctionalJavascript/InlineBlockTest.php |  1 +
 .../src/Kernel/LayoutBuilderEntityViewDisplayTest.php  |  1 +
 .../tests/src/Kernel/OverridesSectionStorageTest.php   |  1 +
 .../tests/src/Functional/MediaUiFunctionalTest.php     |  1 +
 .../MediaEmbedFilterConfigurationUiTest.php            |  1 +
 .../tests/src/Functional/d6/Upgrade6Test.php           |  1 +
 .../tests/src/Functional/NodeTranslationUITest.php     |  1 +
 .../tests/src/Functional/OptionsWidgetsTest.php        |  1 +
 .../page_cache/tests/src/Functional/PageCacheTest.php  |  1 +
 .../src/Functional/ResponsiveImageFieldDisplayTest.php |  1 +
 .../tests/src/Functional/Views/StyleSerializerTest.php |  1 +
 .../tests/src/Functional/Module/DependencyTest.php     |  1 +
 .../src/Functional/Module/NonStableModulesTest.php     |  1 +
 .../src/Functional/UpdateSystem/UpdateScriptTest.php   |  1 +
 .../update/tests/src/Functional/UpdateContribTest.php  |  1 +
 .../tests/src/Functional/UpdateSemverContribTest.php   |  1 +
 .../tests/src/Functional/UpdateSemverCoreTest.php      |  1 +
 .../tests/src/Functional/Plugin/ExposedFormTest.php    |  1 +
 .../ViewsEntitySchemaSubscriberIntegrationTest.php     |  1 +
 .../views/tests/src/Kernel/Handler/FieldFieldTest.php  |  1 +
 .../tests/src/Kernel/Handler/FilterNumericTest.php     |  1 +
 .../tests/src/Kernel/Handler/FilterStringTest.php      |  1 +
 .../views/tests/src/Kernel/QueryGroupByTest.php        |  1 +
 .../views/tests/src/Kernel/ViewExecutableTest.php      |  1 +
 .../src/Kernel/WorkflowAccessControlHandlerTest.php    |  1 +
 .../tests/src/Kernel/WorkflowValidationTest.php        |  1 +
 .../workspaces/tests/src/Functional/WorkspaceTest.php  |  1 +
 .../tests/src/Functional/DemoUmamiProfileTest.php      |  1 +
 core/scripts/run-tests.sh                              | 10 +++++++++-
 .../Drupal/FunctionalTests/BrowserTestBaseTest.php     |  1 +
 .../Entity/RevisionVersionHistoryTest.php              |  1 +
 .../Core/Entity/EntityDefinitionUpdateTest.php         |  1 +
 .../Drupal/KernelTests/Core/Image/ToolkitGdTest.php    |  1 +
 .../tests/Drupal/Tests/Core/Test/TestDiscoveryTest.php |  2 +-
 55 files changed, 63 insertions(+), 2 deletions(-)

diff --git a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
index cfc25a416f62..fb9820657b1c 100644
--- a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
+++ b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
@@ -8,6 +8,7 @@
  * Tests migration of i18n block translations.
  *
  * @group migrate_drupal_7
+ * @group #slow
  */
 class MigrateBlockContentTranslationTest extends MigrateDrupal7TestBase {
 
diff --git a/core/modules/book/tests/src/Functional/BookTest.php b/core/modules/book/tests/src/Functional/BookTest.php
index 63a73cbec3fd..ffbc1ec1b41e 100644
--- a/core/modules/book/tests/src/Functional/BookTest.php
+++ b/core/modules/book/tests/src/Functional/BookTest.php
@@ -10,6 +10,7 @@
  * Create a book, add pages, and test book interface.
  *
  * @group book
+ * @group #slow
  */
 class BookTest extends BrowserTestBase {
 
diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageTest.php
index 2701e48dd957..3726b6827434 100644
--- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageTest.php
+++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageTest.php
@@ -13,6 +13,7 @@
 /**
  * @coversDefaultClass \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Image
  * @group ckeditor5
+ * @group #slow
  * @internal
  */
 class ImageTest extends ImageTestBase {
diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageUrlTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageUrlTest.php
index 6b0e38fc9602..7e363064d24e 100644
--- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageUrlTest.php
+++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/ImageUrlTest.php
@@ -12,6 +12,7 @@
 /**
  * @coversDefaultClass \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Image
  * @group ckeditor5
+ * @group #slow
  * @internal
  */
 class ImageUrlTest extends ImageTestBase {
diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php
index 7117260c4c94..9681e91a705e 100644
--- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php
+++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php
@@ -26,6 +26,7 @@
 /**
  * @coversDefaultClass \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Media
  * @group ckeditor5
+ * @group #slow
  * @internal
  */
 class MediaTest extends WebDriverTestBase {
diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php
index 14f47c9a0c3e..f655343a083d 100644
--- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php
+++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/SourceEditingTest.php
@@ -15,6 +15,7 @@
  * @coversDefaultClass \Drupal\ckeditor5\Plugin\CKEditor5Plugin\SourceEditing
  * @covers \Drupal\ckeditor5\Plugin\CKEditor5PluginManager::getCKEditor5PluginConfig
  * @group ckeditor5
+ * @group #slow
  * @internal
  */
 class SourceEditingTest extends CKEditor5TestBase {
diff --git a/core/modules/config/tests/src/Functional/ConfigImportAllTest.php b/core/modules/config/tests/src/Functional/ConfigImportAllTest.php
index c04c0eb9acac..62c84cb68433 100644
--- a/core/modules/config/tests/src/Functional/ConfigImportAllTest.php
+++ b/core/modules/config/tests/src/Functional/ConfigImportAllTest.php
@@ -12,6 +12,7 @@
  * Tests the largest configuration import possible with all available modules.
  *
  * @group config
+ * @group #slow
  */
 class ConfigImportAllTest extends ModuleTestBase {
 
diff --git a/core/modules/config/tests/src/Functional/ConfigImportUITest.php b/core/modules/config/tests/src/Functional/ConfigImportUITest.php
index bfb329686835..35946054d232 100644
--- a/core/modules/config/tests/src/Functional/ConfigImportUITest.php
+++ b/core/modules/config/tests/src/Functional/ConfigImportUITest.php
@@ -10,6 +10,7 @@
  * Tests the user interface for importing configuration.
  *
  * @group config
+ * @group #slow
  */
 class ConfigImportUITest extends BrowserTestBase {
 
diff --git a/core/modules/config/tests/src/Functional/ConfigInstallWebTest.php b/core/modules/config/tests/src/Functional/ConfigInstallWebTest.php
index 314c3d50dbb4..f7035ec7a6a3 100644
--- a/core/modules/config/tests/src/Functional/ConfigInstallWebTest.php
+++ b/core/modules/config/tests/src/Functional/ConfigInstallWebTest.php
@@ -17,6 +17,7 @@
  * and uninstall functionality is tested.
  *
  * @group config
+ * @group #slow
  */
 class ConfigInstallWebTest extends BrowserTestBase {
 
diff --git a/core/modules/config_translation/tests/src/Functional/ConfigTranslationUiTest.php b/core/modules/config_translation/tests/src/Functional/ConfigTranslationUiTest.php
index 0371c396853d..9883d2a20c3c 100644
--- a/core/modules/config_translation/tests/src/Functional/ConfigTranslationUiTest.php
+++ b/core/modules/config_translation/tests/src/Functional/ConfigTranslationUiTest.php
@@ -19,6 +19,7 @@
  * Translate settings and entities to various languages.
  *
  * @group config_translation
+ * @group #slow
  */
 class ConfigTranslationUiTest extends BrowserTestBase {
 
diff --git a/core/modules/content_moderation/tests/src/Kernel/WorkspacesContentModerationStateTest.php b/core/modules/content_moderation/tests/src/Kernel/WorkspacesContentModerationStateTest.php
index f63fa159443c..d62f26b51e1c 100644
--- a/core/modules/content_moderation/tests/src/Kernel/WorkspacesContentModerationStateTest.php
+++ b/core/modules/content_moderation/tests/src/Kernel/WorkspacesContentModerationStateTest.php
@@ -17,6 +17,7 @@
  *
  * @group content_moderation
  * @group workspaces
+ * @group #slow
  */
 class WorkspacesContentModerationStateTest extends ContentModerationStateTest {
 
diff --git a/core/modules/field/tests/src/Functional/FormTest.php b/core/modules/field/tests/src/Functional/FormTest.php
index 85e2d8a1b2cc..0979503655df 100644
--- a/core/modules/field/tests/src/Functional/FormTest.php
+++ b/core/modules/field/tests/src/Functional/FormTest.php
@@ -15,6 +15,7 @@
  * Tests field form handling.
  *
  * @group field
+ * @group #slow
  */
 class FormTest extends FieldTestBase {
 
diff --git a/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php b/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
index 5235a3e457ca..1f68ba8fd34a 100644
--- a/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
+++ b/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
@@ -20,6 +20,7 @@
  * Tests the Field UI "Manage fields" screen.
  *
  * @group field_ui
+ * @group #slow
  */
 class ManageFieldsFunctionalTest extends BrowserTestBase {
 
diff --git a/core/modules/jsonapi/tests/src/Functional/BlockContentTest.php b/core/modules/jsonapi/tests/src/Functional/BlockContentTest.php
index 2df9ae0b2af4..a0d689169c12 100644
--- a/core/modules/jsonapi/tests/src/Functional/BlockContentTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/BlockContentTest.php
@@ -12,6 +12,7 @@
  * JSON:API integration test for the "BlockContent" content entity type.
  *
  * @group jsonapi
+ * @group #slow
  */
 class BlockContentTest extends ResourceTestBase {
 
diff --git a/core/modules/jsonapi/tests/src/Functional/CommentTest.php b/core/modules/jsonapi/tests/src/Functional/CommentTest.php
index ffc4db25356c..a291e5398257 100644
--- a/core/modules/jsonapi/tests/src/Functional/CommentTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/CommentTest.php
@@ -21,6 +21,7 @@
  * JSON:API integration test for the "Comment" content entity type.
  *
  * @group jsonapi
+ * @group #slow
  */
 class CommentTest extends ResourceTestBase {
 
diff --git a/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php b/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
index b054b694b23f..0d23e93d4b02 100644
--- a/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
@@ -20,6 +20,7 @@
  * Tests binary data file upload route.
  *
  * @group jsonapi
+ * @group #slow
  */
 class FileUploadTest extends ResourceTestBase {
 
diff --git a/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
index a779ca9a0ec5..e657dfc863b0 100644
--- a/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
@@ -31,6 +31,7 @@
  * JSON:API regression tests.
  *
  * @group jsonapi
+ * @group #slow
  *
  * @internal
  */
diff --git a/core/modules/jsonapi/tests/src/Functional/UserTest.php b/core/modules/jsonapi/tests/src/Functional/UserTest.php
index f1b68d225309..56090392619e 100644
--- a/core/modules/jsonapi/tests/src/Functional/UserTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/UserTest.php
@@ -17,6 +17,7 @@
  * JSON:API integration test for the "User" content entity type.
  *
  * @group jsonapi
+ * @group #slow
  */
 class UserTest extends ResourceTestBase {
 
diff --git a/core/modules/jsonapi/tests/src/Kernel/Context/FieldResolverTest.php b/core/modules/jsonapi/tests/src/Kernel/Context/FieldResolverTest.php
index fc274647fa81..3ee26c15d76b 100644
--- a/core/modules/jsonapi/tests/src/Kernel/Context/FieldResolverTest.php
+++ b/core/modules/jsonapi/tests/src/Kernel/Context/FieldResolverTest.php
@@ -11,6 +11,7 @@
 /**
  * @coversDefaultClass \Drupal\jsonapi\Context\FieldResolver
  * @group jsonapi
+ * @group #slow
  *
  * @internal
  */
diff --git a/core/modules/language/tests/src/Kernel/ContentLanguageSettingsValidationTest.php b/core/modules/language/tests/src/Kernel/ContentLanguageSettingsValidationTest.php
index 01a2e6a77ed9..d0eed791a68c 100644
--- a/core/modules/language/tests/src/Kernel/ContentLanguageSettingsValidationTest.php
+++ b/core/modules/language/tests/src/Kernel/ContentLanguageSettingsValidationTest.php
@@ -9,6 +9,7 @@
  * Tests validation of content_language_settings entities.
  *
  * @group language
+ * @group #slow
  */
 class ContentLanguageSettingsValidationTest extends ConfigEntityValidationTestBase {
 
diff --git a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
index 6a8382bf6e77..02d149ef72f0 100644
--- a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
+++ b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
@@ -12,6 +12,7 @@
  * Tests the Layout Builder UI.
  *
  * @group layout_builder
+ * @group #slow
  */
 class LayoutBuilderTest extends BrowserTestBase {
 
diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php
index 976a38b3a40f..e635a84863a5 100644
--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php
+++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php
@@ -9,6 +9,7 @@
  * Tests that the inline block feature works correctly.
  *
  * @group layout_builder
+ * @group #slow
  */
 class InlineBlockTest extends InlineBlockTestBase {
 
diff --git a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php
index 53f61b49e32e..e0df4ad034bc 100644
--- a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php
+++ b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php
@@ -9,6 +9,7 @@
  * @coversDefaultClass \Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay
  *
  * @group layout_builder
+ * @group #slow
  */
 class LayoutBuilderEntityViewDisplayTest extends SectionListTestBase {
 
diff --git a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php
index f247117b26ee..b4dbf785e17d 100644
--- a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php
+++ b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php
@@ -19,6 +19,7 @@
  * @coversDefaultClass \Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage
  *
  * @group layout_builder
+ * @group #slow
  */
 class OverridesSectionStorageTest extends KernelTestBase {
 
diff --git a/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php b/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
index 362467b3807c..01a873ab9ad7 100644
--- a/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
+++ b/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
@@ -12,6 +12,7 @@
  * Ensures that media UI works correctly.
  *
  * @group media
+ * @group #slow
  */
 class MediaUiFunctionalTest extends MediaFunctionalTestBase {
 
diff --git a/core/modules/media/tests/src/FunctionalJavascript/MediaEmbedFilterConfigurationUiTest.php b/core/modules/media/tests/src/FunctionalJavascript/MediaEmbedFilterConfigurationUiTest.php
index 321e2703c691..03ff94ccc31e 100644
--- a/core/modules/media/tests/src/FunctionalJavascript/MediaEmbedFilterConfigurationUiTest.php
+++ b/core/modules/media/tests/src/FunctionalJavascript/MediaEmbedFilterConfigurationUiTest.php
@@ -7,6 +7,7 @@
 /**
  * @covers ::media_filter_format_edit_form_validate
  * @group media
+ * @group #slow
  */
 class MediaEmbedFilterConfigurationUiTest extends MediaJavascriptTestBase {
 
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
index 1e6249c2e27f..b409c09a568c 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
@@ -11,6 +11,7 @@
  * The test method is provided by the MigrateUpgradeTestBase class.
  *
  * @group migrate_drupal_ui
+ * @group #slow
  */
 class Upgrade6Test extends MigrateUpgradeExecuteTestBase {
 
diff --git a/core/modules/node/tests/src/Functional/NodeTranslationUITest.php b/core/modules/node/tests/src/Functional/NodeTranslationUITest.php
index efbef09f13f4..9613fe09fa00 100644
--- a/core/modules/node/tests/src/Functional/NodeTranslationUITest.php
+++ b/core/modules/node/tests/src/Functional/NodeTranslationUITest.php
@@ -13,6 +13,7 @@
  * Tests the Node Translation UI.
  *
  * @group node
+ * @group #slow
  */
 class NodeTranslationUITest extends ContentTranslationUITestBase {
 
diff --git a/core/modules/options/tests/src/Functional/OptionsWidgetsTest.php b/core/modules/options/tests/src/Functional/OptionsWidgetsTest.php
index 6e09777e86fd..5c58d7a97dd0 100644
--- a/core/modules/options/tests/src/Functional/OptionsWidgetsTest.php
+++ b/core/modules/options/tests/src/Functional/OptionsWidgetsTest.php
@@ -11,6 +11,7 @@
  * Tests the Options widgets.
  *
  * @group options
+ * @group #slow
  */
 class OptionsWidgetsTest extends FieldTestBase {
 
diff --git a/core/modules/page_cache/tests/src/Functional/PageCacheTest.php b/core/modules/page_cache/tests/src/Functional/PageCacheTest.php
index a1d9a9ac53b9..9824e196252a 100644
--- a/core/modules/page_cache/tests/src/Functional/PageCacheTest.php
+++ b/core/modules/page_cache/tests/src/Functional/PageCacheTest.php
@@ -15,6 +15,7 @@
  * Enables the page cache and tests it with various HTTP requests.
  *
  * @group page_cache
+ * @group #slow
  */
 class PageCacheTest extends BrowserTestBase {
 
diff --git a/core/modules/responsive_image/tests/src/Functional/ResponsiveImageFieldDisplayTest.php b/core/modules/responsive_image/tests/src/Functional/ResponsiveImageFieldDisplayTest.php
index c99ee3084a6e..a8dc40c48307 100644
--- a/core/modules/responsive_image/tests/src/Functional/ResponsiveImageFieldDisplayTest.php
+++ b/core/modules/responsive_image/tests/src/Functional/ResponsiveImageFieldDisplayTest.php
@@ -17,6 +17,7 @@
  * Tests responsive image display formatter.
  *
  * @group responsive_image
+ * @group #slow
  */
 class ResponsiveImageFieldDisplayTest extends ImageFieldTestBase {
 
diff --git a/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php b/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
index c60693a4dea2..7c72ea90ed2d 100644
--- a/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
+++ b/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
@@ -21,6 +21,7 @@
  * Tests the serializer style plugin.
  *
  * @group rest
+ * @group #slow
  * @see \Drupal\rest\Plugin\views\display\RestExport
  * @see \Drupal\rest\Plugin\views\style\Serializer
  * @see \Drupal\rest\Plugin\views\row\DataEntityRow
diff --git a/core/modules/system/tests/src/Functional/Module/DependencyTest.php b/core/modules/system/tests/src/Functional/Module/DependencyTest.php
index 0cf0012d4166..add35fcac419 100644
--- a/core/modules/system/tests/src/Functional/Module/DependencyTest.php
+++ b/core/modules/system/tests/src/Functional/Module/DependencyTest.php
@@ -9,6 +9,7 @@
  * Enable module without dependency enabled.
  *
  * @group Module
+ * @group #slow
  */
 class DependencyTest extends ModuleTestBase {
 
diff --git a/core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php b/core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php
index 4250d6350873..239a196eb866 100644
--- a/core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php
+++ b/core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php
@@ -9,6 +9,7 @@
  * Tests the installation of deprecated and experimental modules.
  *
  * @group Module
+ * @group #slow
  */
 class NonStableModulesTest extends BrowserTestBase {
 
diff --git a/core/modules/system/tests/src/Functional/UpdateSystem/UpdateScriptTest.php b/core/modules/system/tests/src/Functional/UpdateSystem/UpdateScriptTest.php
index 9a71aba4f2f3..02e969b129cf 100644
--- a/core/modules/system/tests/src/Functional/UpdateSystem/UpdateScriptTest.php
+++ b/core/modules/system/tests/src/Functional/UpdateSystem/UpdateScriptTest.php
@@ -12,6 +12,7 @@
  * Tests the update script access and functionality.
  *
  * @group Update
+ * @group #slow
  */
 class UpdateScriptTest extends BrowserTestBase {
 
diff --git a/core/modules/update/tests/src/Functional/UpdateContribTest.php b/core/modules/update/tests/src/Functional/UpdateContribTest.php
index 294074c592e9..5bf393afb449 100644
--- a/core/modules/update/tests/src/Functional/UpdateContribTest.php
+++ b/core/modules/update/tests/src/Functional/UpdateContribTest.php
@@ -9,6 +9,7 @@
  * Tests how the Update Manager handles contributed modules and themes.
  *
  * @group update
+ * @group #slow
  */
 class UpdateContribTest extends UpdateTestBase {
 
diff --git a/core/modules/update/tests/src/Functional/UpdateSemverContribTest.php b/core/modules/update/tests/src/Functional/UpdateSemverContribTest.php
index 6d884973084d..8f18a00eb618 100644
--- a/core/modules/update/tests/src/Functional/UpdateSemverContribTest.php
+++ b/core/modules/update/tests/src/Functional/UpdateSemverContribTest.php
@@ -6,6 +6,7 @@
  * Tests the Update Manager module with a contrib module with semver versions.
  *
  * @group update
+ * @group #slow
  */
 class UpdateSemverContribTest extends UpdateSemverTestBase {
 
diff --git a/core/modules/update/tests/src/Functional/UpdateSemverCoreTest.php b/core/modules/update/tests/src/Functional/UpdateSemverCoreTest.php
index 829b68dd7b30..00e8ffb8663d 100644
--- a/core/modules/update/tests/src/Functional/UpdateSemverCoreTest.php
+++ b/core/modules/update/tests/src/Functional/UpdateSemverCoreTest.php
@@ -8,6 +8,7 @@
  * Tests the semantic version handling in the Update Manager.
  *
  * @group update
+ * @group #slow
  */
 class UpdateSemverCoreTest extends UpdateSemverTestBase {
 
diff --git a/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php b/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
index 4f6dd5b84460..d24a4f5b3241 100644
--- a/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
+++ b/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
@@ -14,6 +14,7 @@
  * Tests exposed forms functionality.
  *
  * @group views
+ * @group #slow
  */
 class ExposedFormTest extends ViewTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/EventSubscriber/ViewsEntitySchemaSubscriberIntegrationTest.php b/core/modules/views/tests/src/Kernel/EventSubscriber/ViewsEntitySchemaSubscriberIntegrationTest.php
index 8f7f5307359c..c5db2717eae1 100644
--- a/core/modules/views/tests/src/Kernel/EventSubscriber/ViewsEntitySchemaSubscriberIntegrationTest.php
+++ b/core/modules/views/tests/src/Kernel/EventSubscriber/ViewsEntitySchemaSubscriberIntegrationTest.php
@@ -12,6 +12,7 @@
  * Tests \Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber.
  *
  * @group Views
+ * @group #slow
  */
 class ViewsEntitySchemaSubscriberIntegrationTest extends ViewsKernelTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php b/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php
index d893234e4db3..458cab3e06f2 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php
@@ -18,6 +18,7 @@
  *
  * @see \Drupal\views\Plugin\views\field\EntityField
  * @group views
+ * @group #slow
  */
 class FieldFieldTest extends ViewsKernelTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php b/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
index 4c3741b30093..b9a56b6b4fb8 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
@@ -9,6 +9,7 @@
  * Tests the numeric filter handler.
  *
  * @group views
+ * @group #slow
  */
 class FilterNumericTest extends ViewsKernelTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/Handler/FilterStringTest.php b/core/modules/views/tests/src/Kernel/Handler/FilterStringTest.php
index 98e058763fea..28c56dc2b86d 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FilterStringTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FilterStringTest.php
@@ -9,6 +9,7 @@
  * Tests the core Drupal\views\Plugin\views\filter\StringFilter handler.
  *
  * @group views
+ * @group #slow
  */
 class FilterStringTest extends ViewsKernelTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/QueryGroupByTest.php b/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
index 20a55769fbd5..522ff701ca66 100644
--- a/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
+++ b/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
@@ -13,6 +13,7 @@
  * Tests aggregate functionality of views, for example count.
  *
  * @group views
+ * @group #slow
  */
 class QueryGroupByTest extends ViewsKernelTestBase {
 
diff --git a/core/modules/views/tests/src/Kernel/ViewExecutableTest.php b/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
index f44cdc15a0d0..4e6d651b1877 100644
--- a/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
+++ b/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
@@ -27,6 +27,7 @@
  * Tests the ViewExecutable class.
  *
  * @group views
+ * @group #slow
  * @see \Drupal\views\ViewExecutable
  */
 class ViewExecutableTest extends ViewsKernelTestBase {
diff --git a/core/modules/workflows/tests/src/Kernel/WorkflowAccessControlHandlerTest.php b/core/modules/workflows/tests/src/Kernel/WorkflowAccessControlHandlerTest.php
index c65e49dd0a4a..e56aaa351a58 100644
--- a/core/modules/workflows/tests/src/Kernel/WorkflowAccessControlHandlerTest.php
+++ b/core/modules/workflows/tests/src/Kernel/WorkflowAccessControlHandlerTest.php
@@ -13,6 +13,7 @@
 /**
  * @coversDefaultClass \Drupal\workflows\WorkflowAccessControlHandler
  * @group workflows
+ * @group #slow
  */
 class WorkflowAccessControlHandlerTest extends KernelTestBase {
 
diff --git a/core/modules/workflows/tests/src/Kernel/WorkflowValidationTest.php b/core/modules/workflows/tests/src/Kernel/WorkflowValidationTest.php
index a3448a1a10ca..5f1c558e893f 100644
--- a/core/modules/workflows/tests/src/Kernel/WorkflowValidationTest.php
+++ b/core/modules/workflows/tests/src/Kernel/WorkflowValidationTest.php
@@ -9,6 +9,7 @@
  * Tests validation of workflow entities.
  *
  * @group workflows
+ * @group #slow
  */
 class WorkflowValidationTest extends ConfigEntityValidationTestBase {
 
diff --git a/core/modules/workspaces/tests/src/Functional/WorkspaceTest.php b/core/modules/workspaces/tests/src/Functional/WorkspaceTest.php
index 65e800c83de6..bf2164742448 100644
--- a/core/modules/workspaces/tests/src/Functional/WorkspaceTest.php
+++ b/core/modules/workspaces/tests/src/Functional/WorkspaceTest.php
@@ -10,6 +10,7 @@
  * Test the workspace entity.
  *
  * @group workspaces
+ * @group #slow
  */
 class WorkspaceTest extends BrowserTestBase {
 
diff --git a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
index d82bede726dd..c255e450133f 100644
--- a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
+++ b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
@@ -14,6 +14,7 @@
  * Tests demo_umami profile.
  *
  * @group demo_umami
+ * @group #slow
  */
 class DemoUmamiProfileTest extends BrowserTestBase {
   use AssertConfigTrait;
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index e84e3ad336b6..19766d2a19e1 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -898,6 +898,7 @@ function simpletest_script_get_test_list() {
   );
   $types_processed = empty($args['types']);
   $test_list = [];
+  $slow_tests = [];
   if ($args['all'] || $args['module']) {
     try {
       $groups = $test_discovery->getTestClasses($args['module'], $args['types']);
@@ -907,11 +908,17 @@ function simpletest_script_get_test_list() {
       echo (string) $e;
       exit(SIMPLETEST_SCRIPT_EXIT_EXCEPTION);
     }
+    if ((int) $args['ci-parallel-node-total'] > 1) {
+      if (key($groups) === '#slow') {
+        $slow_tests = array_keys(array_shift($groups));
+      }
+    }
     $all_tests = [];
     foreach ($groups as $group => $tests) {
       $all_tests = array_merge($all_tests, array_keys($tests));
     }
     $test_list = array_unique($all_tests);
+    $test_list = array_diff($test_list, $slow_tests);
   }
   else {
     if ($args['class']) {
@@ -1028,8 +1035,9 @@ function simpletest_script_get_test_list() {
   }
 
   if ((int) $args['ci-parallel-node-total'] > 1) {
+    $slow_tests_per_job = ceil(count($slow_tests) / $args['ci-parallel-node-total']);
     $tests_per_job = ceil(count($test_list) / $args['ci-parallel-node-total']);
-    $test_list = array_slice($test_list, ($args['ci-parallel-node-index'] - 1) * $tests_per_job, $tests_per_job);
+    $test_list = array_merge(array_slice($slow_tests, ($args['ci-parallel-node-index'] -1) * $slow_tests_per_job, $slow_tests_per_job), array_slice($test_list, ($args['ci-parallel-node-index'] - 1) * $tests_per_job, $tests_per_job));
   }
 
   return $test_list;
diff --git a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
index 84782f741859..e9cd2e70adb6 100644
--- a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
+++ b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
@@ -16,6 +16,7 @@
  * Tests BrowserTestBase functionality.
  *
  * @group browsertestbase
+ * @group #slow
  */
 class BrowserTestBaseTest extends BrowserTestBase {
 
diff --git a/core/tests/Drupal/FunctionalTests/Entity/RevisionVersionHistoryTest.php b/core/tests/Drupal/FunctionalTests/Entity/RevisionVersionHistoryTest.php
index 28ea85730eb0..423bac6e3f23 100644
--- a/core/tests/Drupal/FunctionalTests/Entity/RevisionVersionHistoryTest.php
+++ b/core/tests/Drupal/FunctionalTests/Entity/RevisionVersionHistoryTest.php
@@ -11,6 +11,7 @@
  * Tests version history page.
  *
  * @group Entity
+ * @group #slow
  * @coversDefaultClass \Drupal\Core\Entity\Controller\VersionHistoryController
  */
 class RevisionVersionHistoryTest extends BrowserTestBase {
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
index 261763b14207..a293e1a2399b 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
@@ -25,6 +25,7 @@
  * @coversDefaultClass \Drupal\Core\Entity\EntityDefinitionUpdateManager
  *
  * @group Entity
+ * @group #slow
  */
 class EntityDefinitionUpdateTest extends EntityKernelTestBase {
 
diff --git a/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php b/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php
index b332eccfe6b4..4fce6fe49a26 100644
--- a/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php
@@ -12,6 +12,7 @@
  *
  * @coversDefaultClass \Drupal\system\Plugin\ImageToolkit\GDToolkit
  * @group Image
+ * @group #slow
  * @requires extension gd
  */
 class ToolkitGdTest extends KernelTestBase {
diff --git a/core/tests/Drupal/Tests/Core/Test/TestDiscoveryTest.php b/core/tests/Drupal/Tests/Core/Test/TestDiscoveryTest.php
index ca05d32c7730..9d9119f7b579 100644
--- a/core/tests/Drupal/Tests/Core/Test/TestDiscoveryTest.php
+++ b/core/tests/Drupal/Tests/Core/Test/TestDiscoveryTest.php
@@ -62,7 +62,7 @@ public function infoParserProvider() {
       [
         'name' => 'Drupal\FunctionalTests\BrowserTestBaseTest',
         'group' => 'browsertestbase',
-        'groups' => ['browsertestbase'],
+        'groups' => ['browsertestbase', '#slow'],
         'description' => 'Tests BrowserTestBase functionality.',
         'type' => 'PHPUnit-Functional',
       ],
-- 
GitLab