This is an automated email from the ASF dual-hosted git repository.

pan3793 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new da7a26b39de HADOOP-19857. Enable unit tests on GHA (#8452)
da7a26b39de is described below

commit da7a26b39de4791d0d73324d8ee1ff6034df9cdd
Author: Cheng Pan <[email protected]>
AuthorDate: Tue May 12 10:23:15 2026 +0800

    HADOOP-19857. Enable unit tests on GHA (#8452)
    
    Reviewed-by: Shilun Fan <[email protected]>
    Reviewed-by: Aaron Fabbri <[email protected]>
    Signed-off-by: Cheng Pan <[email protected]>
---
 .github/gha-tests/README.md                        |  63 +++++++
 .github/gha-tests/exclude-tests.txt                | 206 +++++++++++++++++++++
 .github/workflows/tmpl_build_and_test.yml          | 148 ++++++++++++++-
 .../src/test/scripts/hadoop_stop_daemon.bats       |   3 +
 .../src/test/scripts/start-build-env.bats          |   6 +
 hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml        |   1 +
 .../java/org/apache/hadoop/cli/TestHDFSCLI.java    |   2 +
 .../TestClientProtocolForPipelineRecovery.java     |   2 +
 .../hadoop/hdfs/TestDFSStripedInputStream.java     |   2 +
 .../TestDFSStripedOutputStreamWithFailure.java     |   2 +
 ...dOutputStreamWithFailureWithRandomECPolicy.java |   2 +
 .../org/apache/hadoop/hdfs/TestDecommission.java   |   2 +
 .../hdfs/TestDecommissionWithBackoffMonitor.java   |   2 +
 .../hadoop/hdfs/TestDecommissionWithStriped.java   |   2 +
 .../TestDecommissionWithStripedBackoffMonitor.java |   2 +
 .../hadoop/hdfs/TestDistributedFileSystem.java     |   2 +
 .../apache/hadoop/hdfs/TestEncryptedTransfer.java  |   2 +
 .../apache/hadoop/hdfs/TestEncryptionZones.java    |   2 +
 .../hadoop/hdfs/TestEncryptionZonesWithKMS.java    |   2 +
 .../org/apache/hadoop/hdfs/TestFileChecksum.java   |   2 +
 .../java/org/apache/hadoop/hdfs/TestGetBlocks.java |   2 +
 .../org/apache/hadoop/hdfs/TestLeaseRecovery2.java |   2 +
 .../hadoop/hdfs/TestLeaseRecoveryStriped.java      |   2 +
 .../apache/hadoop/hdfs/TestMaintenanceState.java   |   2 +
 ...TestReadStripedFileWithDecodingCorruptData.java |   2 +
 ...TestReadStripedFileWithDecodingDeletedData.java |   2 +
 ...stReconstructStripedFileWithRandomECPolicy.java |   2 +
 .../TestReplaceDatanodeFailureReplication.java     |   2 +
 .../org/apache/hadoop/hdfs/TestRollingUpgrade.java |   2 +
 .../hdfs/TestStateAlignmentContextWithHA.java      |   2 +
 .../hadoop/hdfs/TestViewDistributedFileSystem.java |   2 +
 .../hadoop/hdfs/TestWriteReadStripedFile.java      |   2 +
 .../hdfs/qjournal/server/TestJournalNodeSync.java  |   2 +
 .../balancer/TestBalancerLongRunningTasks.java     |   2 +
 .../server/blockmanagement/TestBlockManager.java   |   2 +
 .../TestBlocksWithNotEnoughRacks.java              |   2 +
 .../hdfs/server/datanode/TestBlockRecovery2.java   |   2 +
 .../hdfs/server/datanode/TestBlockScanner.java     |   2 +
 .../datanode/TestDataNodeRollingUpgrade.java       |   2 +
 .../TestDataNodeVolumeFailureReporting.java        |   2 +
 .../fsdataset/impl/TestFsDatasetCache.java         |   2 +
 .../datanode/fsdataset/impl/TestFsDatasetImpl.java |   2 +
 .../fsdataset/impl/TestSpaceReservation.java       |   2 +
 .../apache/hadoop/hdfs/server/mover/TestMover.java |   2 +
 .../hadoop/hdfs/server/mover/TestStorageMover.java |   2 +
 .../hdfs/server/namenode/TestDeleteRace.java       |   2 +
 .../server/namenode/TestDiskspaceQuotaUpdate.java  |   2 +
 .../hadoop/hdfs/server/namenode/TestEditLog.java   |   2 +
 .../hdfs/server/namenode/TestFSEditLogLoader.java  |   2 +
 .../hadoop/hdfs/server/namenode/TestFSImage.java   |   2 +
 .../hdfs/server/namenode/TestFSImageWithAcl.java   |   2 +
 .../hadoop/hdfs/server/namenode/TestFsck.java      |   2 +
 .../hadoop/hdfs/server/namenode/TestINodeFile.java |   2 +
 .../server/namenode/TestListCorruptFileBlocks.java |   2 +
 .../TestPersistentStoragePolicySatisfier.java      |   2 +
 .../hdfs/server/namenode/TestReencryption.java     |   2 +
 .../server/namenode/TestReencryptionWithKMS.java   |   2 +
 .../fgl/TestFSNLockBenchmarkThroughput.java        |   2 +
 .../server/namenode/ha/TestBootstrapStandby.java   |   2 +
 .../namenode/ha/TestDNFencingWithReplication.java  |   2 +
 .../hdfs/server/namenode/ha/TestEditLogTailer.java |   2 +
 .../server/namenode/ha/TestFailureToReadEdits.java |   2 +
 .../hdfs/server/namenode/ha/TestHASafeMode.java    |   2 +
 .../hdfs/server/namenode/ha/TestObserverNode.java  |   2 +
 .../server/namenode/ha/TestPipelinesFailover.java  |   2 +
 .../server/namenode/ha/TestRetryCacheWithHA.java   |   2 +
 .../server/namenode/ha/TestStandbyCheckpoints.java |   2 +
 .../snapshot/TestOpenFilesWithSnapshot.java        |   2 +
 .../snapshot/TestRandomOpsWithSnapshots.java       |   2 +
 .../namenode/snapshot/TestRenameWithSnapshots.java |   2 +
 .../server/namenode/snapshot/TestSnapshot.java     |   2 +
 .../namenode/snapshot/TestSnapshotDeletion.java    |   2 +
 .../TestStoragePolicySatisfierWithStripedFile.java |   2 +
 .../sps/TestExternalStoragePolicySatisfier.java    |   2 +
 .../hadoop/hdfs/tools/TestDFSAdminWithHA.java      |   2 +
 .../org/apache/hadoop/hdfs/web/TestWebHDFS.java    |   2 +
 76 files changed, 565 insertions(+), 2 deletions(-)

diff --git a/.github/gha-tests/README.md b/.github/gha-tests/README.md
new file mode 100644
index 00000000000..e5bd46dab8c
--- /dev/null
+++ b/.github/gha-tests/README.md
@@ -0,0 +1,63 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+### Excluded tests for GitHub Actions (GHA)
+
+Initial excluded tests: run the GHA workflow, if a test fails or aborts, add it
+to `exclude-tests.txt`. Repeat until 5 consecutive successes.
+
+Contributors are encouraged to diagnose and improve the excluded tests, and 
remove
+them from the excluded list once they are stable. Stability assessment: when 
deleting
+tests from `exclude-tests.txt`, the GHA workflow was successfully executed 5 
times
+consecutively.
+
+### Slow tests
+
+Test classes takes more than 60s to complete in module 
`hadoop-hdfs-project/hadoop-hdfs`
+are marked as slow tests, by adding JUnit5 annotation `@Tag("slow")` to the 
test class.
+
+Slow tests are executed in a dedicated GHA job and roughly take 2.5 hours to 
complete.
+Contributors are encouraged to diagnose and improve the slow tests to speed up 
the CI.
+
+### Run test locally
+
+Create a standard build environment using Docker.
+```
+$ cd <hadoop source code directory>
+$ ./start-build-env.sh
+... (wait for the container to start)
+```
+
+Run single test suite inside container
+```
+$ export MAVEN_ARGS="-Pnative -Drequire.fuse -Drequire.openssl 
-Drequire.snappy -Drequire.valgrind -Drequire.test.libhadoop"
+$ ./mvnw $MAVEN_ARGS -pl :hadoop-common -am clean install -DskipTests
+$ ./mvnw $MAVEN_ARGS -pl :hadoop-common test -Dtest=TestIPC
+```
+
+Run all tests inside container and save the log to a file, then extract the 
failed
+test cases from the log file. This might take a dozen of hours, be patient.
+```
+$ export MAVEN_ARGS="-Pnative -Drequire.fuse -Drequire.openssl 
-Drequire.snappy -Drequire.valgrind -Drequire.test.libhadoop"
+$ ./mvnw $MAVEN_ARGS clean install -DskipTests
+$ ./mvnw $MAVEN_ARGS test --fail-at-end -Dmaven.test.failure.ignore=true \
+    -Dsurefire.excludesFile=$PWD/.github/gha-tests/exclude-tests.txt \
+    2>&1 | tee ~/hadoop-test.`date '+%Y%m%d'`.log
+$ cat hadoop-test.`date '+%Y%m%d'`.log | \
+    grep -E 'surefire:3.5.3:test|<<< FAILURE! - in' | \
+    grep -o -E 'surefire:3.5.3:test.*|org.apache.hadoop.*'
+```
diff --git a/.github/gha-tests/exclude-tests.txt 
b/.github/gha-tests/exclude-tests.txt
new file mode 100644
index 00000000000..d884fb67555
--- /dev/null
+++ b/.github/gha-tests/exclude-tests.txt
@@ -0,0 +1,206 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# hadoop-common
+**/org/apache/hadoop/ipc/TestRPC.java
+**/org/apache/hadoop/security/ssl/TestDelegatingSSLSocketFactory.java
+
+# hadoop-hdfs
+**/org/apache/hadoop/fs/viewfs/TestViewFileSystemHdfs.java
+**/org/apache/hadoop/hdfs/TestBlockStoragePolicy.java
+**/org/apache/hadoop/hdfs/TestDecommission.java
+**/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
+**/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
+**/org/apache/hadoop/hdfs/TestDFSClientRetries.java
+**/org/apache/hadoop/hdfs/TestDFSUtil.java
+**/org/apache/hadoop/hdfs/TestFileCreation.java
+**/org/apache/hadoop/hdfs/TestMaintenanceState.java
+**/org/apache/hadoop/hdfs/TestPread.java
+**/org/apache/hadoop/hdfs/TestReconstructStripedFile.java
+**/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
+**/org/apache/hadoop/hdfs/TestReconstructStripedFileWithValidator.java
+**/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
+**/org/apache/hadoop/hdfs/client/impl/TestBlockReaderLocal.java
+**/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java
+**/org/apache/hadoop/hdfs/server/balancer/TestBalancerRPCDelay.java
+**/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java
+**/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java
+**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockReportLease.java
+**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockTokenWithDFSStriped.java
+**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockTokenWithShortCircuitRead.java
+**/org/apache/hadoop/hdfs/server/datanode/TestBPOfferService.java
+**/org/apache/hadoop/hdfs/server/datanode/TestDataNodeErasureCodingMetrics.java
+**/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
+**/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
+**/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
+**/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
+**/org/apache/hadoop/hdfs/server/namenode/TestNameNodeMXBean.java
+**/org/apache/hadoop/hdfs/server/namenode/ha/TestUpdateBlockTailing.java
+**/org/apache/hadoop/hdfs/server/datanode/TestIncrementalBlockReports.java
+**/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsVolumeList.java
+**/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectivesWithViewDFS.java
+**/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java
+**/org/apache/hadoop/hdfs/server/namenode/TestReconstructStripedBlocks.java
+**/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java
+**/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandbyWithQJM.java
+**/org/apache/hadoop/hdfs/server/namenode/ha/TestDFSUpgradeWithHA.java
+**/org/apache/hadoop/hdfs/server/namenode/ha/TestHAStateTransitions.java
+**/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverReadProxyProvider.java
+**/org/apache/hadoop/hdfs/server/namenode/web/resources/TestWebHdfsDataLocality.java
+**/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
+**/org/apache/hadoop/hdfs/web/TestFSMainOperationsWebHdfs.java
+
+# hadoop-hdfs-httpfs
+**/org/apache/hadoop/fs/http/client/TestHttpFSWithHttpFSFileSystem.java
+
+# hadoop-yarn-common
+**/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java
+**/org/apache/hadoop/yarn/webapp/TestWebApp.java
+
+# hadoop-yarn-server-common
+**/org/apache/hadoop/yarn/server/federation/policies/router/TestPriorityRouterPolicy.java
+**/org/apache/hadoop/yarn/server/federation/store/sql/TestFederationSQLServerScriptAccuracy.java
+
+# hadoop-yarn-server-resourcemanager
+**/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java
+**/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java
+**/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java
+**/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
+**/org/apache/hadoop/yarn/server/resourcemanager/reservation/TestCapacityOverTimePolicy.java
+**/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java
+**/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestContinuousScheduling.java
+**/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java
+
+# hadoop-yarn-server-router
+**/org/apache/hadoop/yarn/server/router/webapp/TestFederationInterceptorREST.java
+**/org/apache/hadoop/yarn/server/router/webapp/TestFederationWebApp.java
+**/org/apache/hadoop/yarn/server/router/webapp/TestRouterWebServicesREST.java
+**/org/apache/hadoop/yarn/server/router/subcluster/fair/TestYarnFederationWithFairScheduler.java
+
+# hadoop-yarn-server-nodemanager
+**/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java
+**/org/apache/hadoop/yarn/server/nodemanager/TestNodeManagerResync.java
+**/org/apache/hadoop/yarn/server/nodemanager/TestNodeStatusUpdater.java
+**/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/TestFederationInterceptor.java
+**/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/TestFederationInterceptorSecure.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManagerRecovery.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/TestContainerLocalizer.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/TestLogAggregationService.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainersMonitor.java
+**/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java
+
+# hadoop-yarn-server-tests
+**/org/apache/hadoop/yarn/server/TestRMNMSecretKeys.java
+
+# hadoop-yarn-services-core
+**/org/apache/hadoop/yarn/service/TestYarnNativeServices.java
+
+# hadoop-yarn-client
+**/org/apache/hadoop/yarn/client/TestApplicationClientProtocolOnHA.java
+**/org/apache/hadoop/yarn/client/TestApplicationMasterServiceProtocolForTimelineV2.java
+**/org/apache/hadoop/yarn/client/TestApplicationMasterServiceProtocolOnHA.java
+**/org/apache/hadoop/yarn/client/TestResourceTrackerOnHA.java
+**/org/apache/hadoop/yarn/client/TestRMFailover.java
+**/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java
+
+# hadoop-mapreduce-client-shuffle
+**/org/apache/hadoop/mapred/TestShuffleChannelHandler.java
+
+# hadoop-mapreduce-client-app
+**/org/apache/hadoop/mapreduce/v2/app/TestJobEndNotifier.java
+
+# hadoop-mapreduce-client-jobclient
+**/org/apache/hadoop/mapred/TestJobSysDirWithDFS.java
+**/org/apache/hadoop/mapred/TestMerge.java
+**/org/apache/hadoop/mapred/TestMiniMRChildTask.java
+**/org/apache/hadoop/mapred/TestClusterMapReduceTestCase.java
+**/org/apache/hadoop/mapred/TestReduceFetchFromPartialMem.java
+**/org/apache/hadoop/mapred/TestMiniMRWithDFSWithDistinctUsers.java
+**/org/apache/hadoop/mapred/TestLazyOutput.java
+**/org/apache/hadoop/mapred/TestJobName.java
+**/org/apache/hadoop/mapred/TestMiniMRClasspath.java
+**/org/apache/hadoop/mapred/TestJobCounters.java
+**/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java
+**/org/apache/hadoop/mapred/TestMiniMRClientCluster.java
+**/org/apache/hadoop/mapred/TestClusterMRNotification.java
+**/org/apache/hadoop/mapred/TestJobCleanup.java
+**/org/apache/hadoop/mapred/TestReduceFetch.java
+**/org/apache/hadoop/mapred/pipes/TestPipeApplication.java
+**/org/apache/hadoop/mapreduce/TestMRJobClient.java
+**/org/apache/hadoop/mapreduce/lib/output/TestJobOutputCommitter.java
+**/org/apache/hadoop/mapreduce/TestChild.java
+**/org/apache/hadoop/mapreduce/v2/TestMROldApiJobs.java
+**/org/apache/hadoop/mapreduce/v2/TestMiniMRProxyUser.java
+**/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java
+**/org/apache/hadoop/mapreduce/v2/TestMRAMWithNonNormalizedCapabilities.java
+**/org/apache/hadoop/mapreduce/v2/TestUberAM.java
+**/org/apache/hadoop/mapreduce/v2/TestSpeculativeExecution.java
+**/org/apache/hadoop/mapreduce/v2/TestMRJobsWithProfiler.java
+**/org/apache/hadoop/mapreduce/security/TestMRCredentials.java
+**/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
+**/org/apache/hadoop/mapreduce/security/ssl/TestEncryptedShuffle.java
+**/org/apache/hadoop/mapreduce/TestMapReduceLazyOutput.java
+**/org/apache/hadoop/mapreduce/TestLargeSort.java
+
+# hadoop-hdfs-rbf
+**/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java
+**/org/apache/hadoop/hdfs/server/federation/router/TestRouterClientRejectOverload.java
+**/org/apache/hadoop/hdfs/server/federation/router/TestRouterFaultTolerant.java
+**/org/apache/hadoop/hdfs/server/federation/router/TestRouterNamenodeHeartbeat.java
+**/org/apache/hadoop/hdfs/server/federation/router/async/TestRouterAsyncRpcClient.java
+**/org/apache/hadoop/hdfs/server/federation/router/async/TestRouterAsyncRPCMultipleDestinationMountTableResolver.java
+**/org/apache/hadoop/hdfs/server/federation/router/security/token/TestSQLDelegationTokenSecretManagerImpl.java
+
+# hadoop-yarn-server-timelineservice-documentstore
+**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreTimelineWriterImpl.java
+**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreCollectionCreator.java
+**/org/apache/hadoop/yarn/server/timelineservice/documentstore/reader/cosmosdb/TestCosmosDBDocumentStoreReader.java
+**/org/apache/hadoop/yarn/server/timelineservice/documentstore/writer/cosmosdb/TestCosmosDBDocumentStoreWriter.java
+**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreTimelineReaderImpl.java
+
+# hadoop-yarn-applications-catalog-webapp
+# skip module because it uses com.github.searls:jasmine-maven-plugin:2.1:test 
and requires Web Browser
+
+# hadoop-streaming
+**/org/apache/hadoop/streaming/TestMultipleArchiveFiles.java
+**/org/apache/hadoop/streaming/TestMultipleCachefiles.java
+**/org/apache/hadoop/streaming/TestSymLink.java
+**/org/apache/hadoop/streaming/TestFileArgs.java
+
+# hadoop-gridmix
+**/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
+**/org/apache/hadoop/mapred/gridmix/TestLoadJob.java
+**/org/apache/hadoop/mapred/gridmix/TestSleepJob.java
+**/org/apache/hadoop/mapred/gridmix/TestDistCacheEmulation.java
+
+# hadoop-extras
+**/org/apache/hadoop/tools/TestDistCh.java
+
+# hadoop-sls
+**/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java
+**/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java
+**/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java
+**/org/apache/hadoop/yarn/sls/TestSLSRunner.java
+**/org/apache/hadoop/yarn/sls/TestReservationSystemInvariants.java
+**/org/apache/hadoop/yarn/sls/appmaster/TestAMSimulator.java
+
+# hadoop-aws
+**/org/apache/hadoop/fs/s3a/auth/TestIAMInstanceCredentialsProvider.java
diff --git a/.github/workflows/tmpl_build_and_test.yml 
b/.github/workflows/tmpl_build_and_test.yml
index 1062c3e3f3d..155ad60f392 100644
--- a/.github/workflows/tmpl_build_and_test.yml
+++ b/.github/workflows/tmpl_build_and_test.yml
@@ -39,8 +39,8 @@ on:
         type: string
         description: >-
           Jobs to run, and should be in JSON Array format.
-          Candidates: "build-only".
-        default: '[ "build-only" ]'
+          Candidates: "build-only", "build-and-test".
+        default: '[ "build-and-test" ]'
 
 # Default to minimal permissions for workflow.
 permissions:
@@ -69,6 +69,7 @@ env:
     -Drequire.snappy
     -Drequire.valgrind
     -Dmaven.test.failure.ignore=false
+    -Dsurefire.rerunFailingTestsCount=2
 
 jobs:
   precondition:
@@ -177,3 +178,146 @@ jobs:
       - name: Build
         shell: bash
         run: ./mvnw $MAVEN_ARGS clean install -DskipTests
+  build-and-test:
+    if: (!cancelled()) && contains(fromJSON(inputs.jobs), 'build-and-test')
+    name: Test ${{ matrix.comment }} (Java ${{ inputs.java }}) ${{ inputs.os 
}}-${{ inputs.branch }}
+    runs-on: ubuntu-24.04
+    needs: [ precondition, build-image ]
+    container:
+      image: ${{ needs.precondition.outputs.build_image_url }}
+      options: --user ${{ needs.build-image.outputs.uid }}
+    strategy:
+      fail-fast: false
+      max-parallel: 8
+      matrix:
+        include:
+          - comment: hdfs - slow
+            modules:
+              -pl :hadoop-hdfs
+              -Dgroups=slow
+          - comment: hdfs - other
+            modules:
+              -pl :hadoop-hdfs
+              -DexcludedGroups=slow
+          - comment: yarn-server-rm
+            modules:
+              -pl :hadoop-yarn-server-resourcemanager
+          - comment: mr
+            modules:
+              -pl :hadoop-mapreduce-client-core
+              -pl :hadoop-mapreduce-client-common
+              -pl :hadoop-mapreduce-client-shuffle
+              -pl :hadoop-mapreduce-client-jobclient
+              -pl :hadoop-mapreduce-client-app
+              -pl :hadoop-mapreduce-client-hs
+              -pl :hadoop-mapreduce-client-hs-plugins
+              -pl :hadoop-mapreduce-client-nativetask
+              -pl :hadoop-mapreduce-client-uploader
+              -pl :hadoop-mapreduce-examples
+          - comment: common
+            modules:
+              -pl :hadoop-common
+              -pl :hadoop-yarn-server-nodemanager
+              -pl :hadoop-yarn-client
+              -pl :hadoop-distcp
+          - comment: hdfs-rbf
+            modules:
+              -pl :hadoop-hdfs-rbf
+              -pl :hadoop-yarn-applications-distributedshell
+              -pl :hadoop-yarn-services-core
+          - comment: other
+            modules:
+              -pl :hadoop-minikdc
+              -pl :hadoop-auth
+              -pl :hadoop-auth-examples
+              -pl :hadoop-nfs
+              -pl :hadoop-kms
+              -pl :hadoop-registry
+              -pl :hadoop-hdfs-client
+              -pl :hadoop-hdfs-native-client
+              -pl :hadoop-hdfs-httpfs
+              -pl :hadoop-hdfs-nfs
+              -pl :hadoop-yarn-api
+              -pl :hadoop-yarn-common
+              -pl :hadoop-yarn-server-common
+              -pl :hadoop-yarn-server-applicationhistoryservice
+              -pl :hadoop-yarn-server-timelineservice
+              -pl :hadoop-yarn-server-web-proxy
+              -pl :hadoop-yarn-server-tests
+              -pl :hadoop-yarn-server-sharedcachemanager
+              -pl :hadoop-yarn-server-timeline-pluginstorage
+              -pl :hadoop-yarn-server-timelineservice-hbase-common
+              -pl :hadoop-yarn-server-timelineservice-hbase-client
+              -pl :hadoop-yarn-server-timelineservice-hbase-server-2
+              -pl :hadoop-yarn-server-timelineservice-hbase-tests
+              -pl :hadoop-yarn-server-router
+              -pl :hadoop-yarn-server-timelineservice-documentstore
+              -pl :hadoop-yarn-server-globalpolicygenerator
+              -pl :hadoop-yarn-applications-unmanaged-am-launcher
+              -pl :hadoop-yarn-services-api
+              -pl :hadoop-yarn-registry
+              -pl 
org.apache.hadoop.applications.mawo:hadoop-yarn-applications-mawo-core
+              -pl :hadoop-yarn-csi
+              -pl :hadoop-minicluster
+              -pl :hadoop-federation-balance
+              -pl :hadoop-streaming
+              -pl :hadoop-client
+              -pl :hadoop-dynamometer-workload
+              -pl :hadoop-dynamometer-infra
+              -pl :hadoop-dynamometer-blockgen
+              -pl :hadoop-dynamometer-dist
+              -pl :hadoop-archives
+              -pl :hadoop-archive-logs
+              -pl :hadoop-rumen
+              -pl :hadoop-gridmix
+              -pl :hadoop-datajoin
+              -pl :hadoop-extras
+              -pl :hadoop-aws
+              -pl :hadoop-kafka
+              -pl :hadoop-aliyun
+              -pl :hadoop-sls
+              -pl :hadoop-resourceestimator
+              -pl :hadoop-azure
+              -pl :hadoop-azure-datalake
+              -pl :hadoop-fs2img
+              -pl :hadoop-tools-dist
+              -pl :hadoop-benchmark
+              -pl :hadoop-compat-bench
+              -pl :hadoop-client-api
+              -pl :hadoop-client-runtime
+              -pl :hadoop-client-minicluster
+              -pl :hadoop-client-integration-tests
+              -pl :hadoop-cos
+              -pl :hadoop-tos
+              -pl :hadoop-huaweicloud
+              -pl :hadoop-cloud-storage
+              -pl :hadoop-dist
+          # skipped modules
+          # -pl :hadoop-yarn-applications-catalog-webapp
+    steps:
+      - name: Checkout Hadoop repository
+        uses: actions/checkout@v6
+        # In order to fetch changed files
+        with:
+          fetch-depth: 0
+      - name: Setup JDK ${{ inputs.java }}
+        uses: actions/setup-java@v5
+        with:
+          distribution: zulu
+          java-version: ${{ inputs.java }}
+          cache: 'maven'
+          check-latest: false
+      - name: Build (Java ${{ inputs.java }}) ${{ inputs.os }}-${{ 
inputs.branch }}
+        shell: bash
+        run: ./mvnw $MAVEN_ARGS ${{ matrix.modules }} clean install -am 
-DskipTests
+      - name: Test (Java ${{ inputs.java }}) ${{ inputs.os }}-${{ 
inputs.branch }}
+        shell: bash
+        run: ./mvnw $MAVEN_ARGS ${{ matrix.modules }} test 
-Dsurefire.excludesFile=$PWD/.github/gha-tests/exclude-tests.txt
+      - name: Upload test logs
+        if: failure()
+        uses: actions/upload-artifact@v7
+        with:
+          name: unit-test-logs-${{ matrix.comment }}-java${{ inputs.java 
}})-${{ inputs.os }}-${{ inputs.branch }}
+          path: |
+            **/target/*.log
+            **/target/*.xml
diff --git 
a/hadoop-common-project/hadoop-common/src/test/scripts/hadoop_stop_daemon.bats 
b/hadoop-common-project/hadoop-common/src/test/scripts/hadoop_stop_daemon.bats
index 148380706db..76d0b7a538b 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/scripts/hadoop_stop_daemon.bats
+++ 
b/hadoop-common-project/hadoop-common/src/test/scripts/hadoop_stop_daemon.bats
@@ -31,6 +31,9 @@ load hadoop-functions_test_helper
 }
 
 @test "hadoop_stop_daemon_force_kill" {
+  if [ "${GITHUB_ACTIONS:-}" = "true" ]; then
+    skip "Skipped on GitHub Actions"
+  fi
 
   HADOOP_STOP_TIMEOUT=4
 
diff --git 
a/hadoop-common-project/hadoop-common/src/test/scripts/start-build-env.bats 
b/hadoop-common-project/hadoop-common/src/test/scripts/start-build-env.bats
index dbb14add306..fe6e824a59c 100644
--- a/hadoop-common-project/hadoop-common/src/test/scripts/start-build-env.bats
+++ b/hadoop-common-project/hadoop-common/src/test/scripts/start-build-env.bats
@@ -69,6 +69,9 @@ export -f stat
 # Verify that host directories get mounted without z option
 # and INFO messages get printed out
 @test "start-build-env.sh (Docker without z mount option)" {
+  if [ "${GITHUB_ACTIONS:-}" = "true" ]; then
+    skip "Skipped on GitHub Actions"
+  fi
   if [ "$(uname -s)" != "Linux" ]; then
     skip "Not on Linux platform"
   fi
@@ -89,6 +92,9 @@ export -f stat
 
 # Verify that host directories get mounted with z option
 @test "start-build-env.sh (Docker with z mount option)" {
+  if [ "${GITHUB_ACTIONS:-}" = "true" ]; then
+    skip "Skipped on GitHub Actions"
+  fi
   if [ "$(uname -s)" != "Linux" ]; then
     skip "Not on Linux platform"
   fi
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
index 62ec07a1225..f9e88ae7c58 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
@@ -31,6 +31,7 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd";>
 
   <properties>
     <hadoop.component>hdfs</hadoop.component>
+    <surefire.fork.timeout>3600</surefire.fork.timeout>
   </properties>
 
   <dependencies>
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestHDFSCLI.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestHDFSCLI.java
index 2bd141d54f7..bbc44102e71 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestHDFSCLI.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestHDFSCLI.java
@@ -30,8 +30,10 @@
 import org.apache.hadoop.security.authorize.PolicyProvider;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
+@Tag("slow")
 public class TestHDFSCLI extends CLITestHelperDFS {
 
   protected MiniDFSCluster dfsCluster = null;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientProtocolForPipelineRecovery.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientProtocolForPipelineRecovery.java
index 5462d190c10..77cd2476a49 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientProtocolForPipelineRecovery.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientProtocolForPipelineRecovery.java
@@ -58,6 +58,7 @@
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -67,6 +68,7 @@
 /**
  * This tests pipeline recovery related client protocol works correct or not.
  */
+@Tag("slow")
 public class TestClientProtocolForPipelineRecovery {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestClientProtocolForPipelineRecovery.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java
index 60639555789..c3aed796397 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedInputStream.java
@@ -44,6 +44,7 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -68,6 +69,7 @@
 import org.junit.jupiter.api.io.TempDir;
 
 @Timeout(300)
+@Tag("slow")
 public class TestDFSStripedInputStream {
 
   public static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java
index d8ca4b2566c..b14ae20ff54 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java
@@ -25,6 +25,7 @@
 import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.datanode.DataNode;
 import org.apache.hadoop.test.LambdaTestUtils;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -41,6 +42,7 @@
  * Test striped file write operation with data node failures with fixed
  * parameter test cases.
  */
+@Tag("slow")
 public class TestDFSStripedOutputStreamWithFailure extends
     TestDFSStripedOutputStreamWithFailureBase{
   public static final Logger LOG = LoggerFactory.getLogger(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailureWithRandomECPolicy.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailureWithRandomECPolicy.java
index cfa7ad5d0c8..66c6e0dbb91 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailureWithRandomECPolicy.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailureWithRandomECPolicy.java
@@ -20,11 +20,13 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.hadoop.io.erasurecode.ECSchema;
+import org.junit.jupiter.api.Tag;
 
 /**
  * This tests write operation of DFS striped file with a random erasure code
  * policy except for the default policy under Datanode failure conditions.
  */
+@Tag("slow")
 public class TestDFSStripedOutputStreamWithFailureWithRandomECPolicy extends
     TestDFSStripedOutputStreamWithFailure {
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommission.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommission.java
index 9715083c373..0cd4ac64714 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommission.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommission.java
@@ -89,6 +89,7 @@
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 
 import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.eclipse.jetty.util.ajax.JSON;
 import org.slf4j.Logger;
@@ -98,6 +99,7 @@
 /**
  * This class tests the decommissioning of nodes.
  */
+@Tag("slow")
 public class TestDecommission extends AdminStatesBaseTest {
   public static final Logger LOG = LoggerFactory.getLogger(TestDecommission
       .class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
index 419d19b8ed1..05664d4e190 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
@@ -23,6 +23,7 @@
 import org.apache.hadoop.hdfs.server.blockmanagement
     .DatanodeAdminMonitorInterface;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -33,6 +34,7 @@
  * config to enable the alternative monitor version.
  */
 
+@Tag("slow")
 public class TestDecommissionWithBackoffMonitor extends TestDecommission {
 
   @Override
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
index 8a8361661f0..766a9cee86f 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
@@ -69,6 +69,7 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.MethodOrderer;
 import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestMethodOrder;
 import org.junit.jupiter.api.Timeout;
@@ -80,6 +81,7 @@
  * This class tests the decommissioning of datanode with striped blocks.
  */
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+@Tag("slow")
 public class TestDecommissionWithStriped {
   private static final Logger LOG = LoggerFactory
       .getLogger(TestDecommissionWithStriped.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStripedBackoffMonitor.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStripedBackoffMonitor.java
index d381673244d..cf60e032260 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStripedBackoffMonitor.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDecommissionWithStripedBackoffMonitor.java
@@ -22,11 +22,13 @@
     .DatanodeAdminBackoffMonitor;
 import org.apache.hadoop.hdfs.server.blockmanagement
     .DatanodeAdminMonitorInterface;
+import org.junit.jupiter.api.Tag;
 
 /**
  * Class to run all the stripped decommission tests with the
  * DatanodeAdminBackoffMonitor.
  */
+@Tag("slow")
 public class TestDecommissionWithStripedBackoffMonitor
     extends TestDecommissionWithStriped{
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
index 158f454fe54..91bc36042e2 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
@@ -132,6 +132,7 @@
 import org.apache.hadoop.util.Time;
 import org.apache.hadoop.util.concurrent.HadoopExecutors;
 import org.apache.hadoop.util.functional.RemoteIterators;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.InOrder;
@@ -140,6 +141,7 @@
 import org.slf4j.LoggerFactory;
 import org.slf4j.event.Level;
 
+@Tag("slow")
 public class TestDistributedFileSystem {
   private static final Random RAN = new Random();
   private static final Logger LOG = LoggerFactory.getLogger(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptedTransfer.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptedTransfer.java
index 5b190402641..db3b69a6215 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptedTransfer.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptedTransfer.java
@@ -62,7 +62,9 @@
 import org.junit.jupiter.api.AfterEach;
 import org.mockito.Mockito;
 import org.slf4j.event.Level;
+import org.junit.jupiter.api.Tag;
 
+@Tag("slow")
 public class TestEncryptedTransfer {
   {
     GenericTestUtils.setLogLevel(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
index a85eb594cb6..8774fef5037 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
@@ -106,6 +106,7 @@
 import org.apache.hadoop.util.XMLUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -158,6 +159,7 @@
 import javax.xml.parsers.SAXParser;
 
 @Timeout(120)
+@Tag("slow")
 public class TestEncryptionZones {
   static final Logger LOG = LoggerFactory.getLogger(TestEncryptionZones.class);
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZonesWithKMS.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZonesWithKMS.java
index d741fcc748a..51bce6c2536 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZonesWithKMS.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZonesWithKMS.java
@@ -37,6 +37,7 @@
 import org.apache.hadoop.test.Whitebox;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -44,6 +45,7 @@
 import java.util.Arrays;
 import java.util.UUID;
 
+@Tag("slow")
 public class TestEncryptionZonesWithKMS extends TestEncryptionZones {
 
   private MiniKMS miniKMS;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileChecksum.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileChecksum.java
index c889574ee83..980c7295898 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileChecksum.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileChecksum.java
@@ -50,6 +50,7 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
+import org.junit.jupiter.api.Tag;
 
 /**
  * This test serves a prototype to demo the idea proposed so far. It creates 
two
@@ -57,6 +58,7 @@
  * layout. For simple, it assumes 6 data blocks in both files and the block 
size
  * are the same.
  */
+@Tag("slow")
 public class TestFileChecksum {
   private static final Logger LOG = LoggerFactory
       .getLogger(TestFileChecksum.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestGetBlocks.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestGetBlocks.java
index 03a440494cc..3d2f286f411 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestGetBlocks.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestGetBlocks.java
@@ -60,6 +60,7 @@
 import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.test.LambdaTestUtils;
 
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -67,6 +68,7 @@
 /**
  * This class tests if getblocks request works correctly.
  */
+@Tag("slow")
 public class TestGetBlocks {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestBlockManager.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
index a773f1b910b..bd9b99b3477 100755
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
@@ -55,11 +55,13 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
 import org.slf4j.event.Level;
 
+@Tag("slow")
 public class TestLeaseRecovery2 {
   
   public static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java
index e64f93a6ed1..36212b4887e 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecoveryStriped.java
@@ -41,6 +41,7 @@
 import org.apache.hadoop.util.StringUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.slf4j.event.Level;
 import org.slf4j.Logger;
@@ -61,6 +62,7 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
 
+@Tag("slow")
 public class TestLeaseRecoveryStriped {
   public static final Logger LOG = LoggerFactory
       .getLogger(TestLeaseRecoveryStriped.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestMaintenanceState.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestMaintenanceState.java
index 0b0da18aa82..03e92851594 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestMaintenanceState.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestMaintenanceState.java
@@ -52,6 +52,7 @@
 import org.apache.hadoop.util.Lists;
 import org.apache.hadoop.util.Time;
 import org.apache.hadoop.util.ToolRunner;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,6 +62,7 @@
 /**
  * This class tests node maintenance.
  */
+@Tag("slow")
 public class TestMaintenanceState extends AdminStatesBaseTest {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestMaintenanceState.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingCorruptData.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingCorruptData.java
index 92029307093..12d6105279c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingCorruptData.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingCorruptData.java
@@ -30,11 +30,13 @@
 
 import static 
org.apache.hadoop.hdfs.ReadStripedFileWithDecodingHelper.initializeCluster;
 import static 
org.apache.hadoop.hdfs.ReadStripedFileWithDecodingHelper.tearDownCluster;
+import org.junit.jupiter.api.Tag;
 
 /**
  * Test online recovery with corrupt files. This test is parameterized.
  */
 @Timeout(300)
+@Tag("slow")
 public class TestReadStripedFileWithDecodingCorruptData {
   static final Logger LOG =
       
LoggerFactory.getLogger(TestReadStripedFileWithDecodingCorruptData.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingDeletedData.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingDeletedData.java
index 9885b070f6c..616e9c8c48b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingDeletedData.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadStripedFileWithDecodingDeletedData.java
@@ -30,12 +30,14 @@
 
 import static 
org.apache.hadoop.hdfs.ReadStripedFileWithDecodingHelper.initializeCluster;
 import static 
org.apache.hadoop.hdfs.ReadStripedFileWithDecodingHelper.tearDownCluster;
+import org.junit.jupiter.api.Tag;
 
 /**
  * Test online recovery with files with deleted blocks. This test is
  * parameterized.
  */
 @Timeout(300)
+@Tag("slow")
 public class TestReadStripedFileWithDecodingDeletedData {
   static final Logger LOG =
       
LoggerFactory.getLogger(TestReadStripedFileWithDecodingDeletedData.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
index 45cde4b6664..bd8ded577a6 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hdfs;
 
 import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy;
+import org.junit.jupiter.api.Tag;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -25,6 +26,7 @@
  * This test extends TestReconstructStripedFile to use a random
  * (non-default) EC policy.
  */
+@Tag("slow")
 public class TestReconstructStripedFileWithRandomECPolicy extends
     TestReconstructStripedFile {
   private static final Logger LOG = LoggerFactory.getLogger(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
index 995652ef61c..e772d4ba956 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
@@ -33,6 +33,7 @@
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -47,6 +48,7 @@
  * MIN_REPLICATION is set to 0 or less than zero, an exception will be thrown
  * if a replacement could not be found.
  */
+@Tag("slow")
 public class TestReplaceDatanodeFailureReplication {
   static final Logger LOG = LoggerFactory
       .getLogger(TestReplaceDatanodeFailureReplication.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestRollingUpgrade.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestRollingUpgrade.java
index fdab5e0f079..a02c88f9d11 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestRollingUpgrade.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestRollingUpgrade.java
@@ -61,6 +61,7 @@
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -72,6 +73,7 @@
 /**
  * This class tests rolling upgrade.
  */
+@Tag("slow")
 public class TestRollingUpgrade {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestRollingUpgrade.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestStateAlignmentContextWithHA.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestStateAlignmentContextWithHA.java
index 9519069f6b5..a896c145b31 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestStateAlignmentContextWithHA.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestStateAlignmentContextWithHA.java
@@ -34,6 +34,7 @@
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -58,6 +59,7 @@
  * These tests check that after a single RPC call a client will have caught up
  * to the most recent alignment state of the server.
  */
+@Tag("slow")
 public class TestStateAlignmentContextWithHA {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestStateAlignmentContextWithHA.class.getName());
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
index 5d51565d319..e759731258f 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
@@ -33,6 +33,7 @@
 import org.apache.hadoop.util.functional.ConsumerRaisingIOE;
 
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -44,6 +45,7 @@
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Tag("slow")
 public class TestViewDistributedFileSystem extends TestDistributedFileSystem{
   @Override
   HdfsConfiguration getTestConfiguration() {
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestWriteReadStripedFile.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestWriteReadStripedFile.java
index b748de223bf..60417ac88f9 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestWriteReadStripedFile.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestWriteReadStripedFile.java
@@ -36,6 +36,7 @@
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -44,6 +45,7 @@
 import java.util.Random;
 
 @Timeout(300)
+@Tag("slow")
 public class TestWriteReadStripedFile {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestWriteReadStripedFile.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/server/TestJournalNodeSync.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/server/TestJournalNodeSync.java
index 3cb7059ca17..7c8d493edb0 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/server/TestJournalNodeSync.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/server/TestJournalNodeSync.java
@@ -47,6 +47,7 @@
 import org.apache.hadoop.util.Lists;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -59,6 +60,7 @@
 /**
  * Unit test for Journal Node formatting upon re-installation and syncing.
  */
+@Tag("slow")
 public class TestJournalNodeSync {
   private Configuration conf;
   private MiniQJMHACluster qjmhaCluster;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerLongRunningTasks.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerLongRunningTasks.java
index 3bf64977210..12821561c4b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerLongRunningTasks.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerLongRunningTasks.java
@@ -51,6 +51,7 @@
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -84,6 +85,7 @@
 /**
  * Some long running Balancer tasks.
  */
+@Tag("slow")
 public class TestBalancerLongRunningTasks {
 
   private static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
index c289a611d0c..231ea4e07e7 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockManager.java
@@ -89,6 +89,7 @@
 import org.apache.hadoop.util.LightWeightGSet;
 import org.slf4j.event.Level;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -136,6 +137,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@Tag("slow")
 public class TestBlockManager {
   private DatanodeStorageInfo[] storages;
   private List<DatanodeDescriptor> nodes;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlocksWithNotEnoughRacks.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlocksWithNotEnoughRacks.java
index 9ac46ed44d7..c5117e7ac18 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlocksWithNotEnoughRacks.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlocksWithNotEnoughRacks.java
@@ -42,6 +42,7 @@
 import org.apache.hadoop.hdfs.util.HostsFileWriter;
 import org.apache.hadoop.hdfs.util.RwLockMode;
 import org.apache.hadoop.test.GenericTestUtils;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.slf4j.event.Level;
 
@@ -51,6 +52,7 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
+@Tag("slow")
 public class TestBlocksWithNotEnoughRacks {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestBlocksWithNotEnoughRacks.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockRecovery2.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockRecovery2.java
index a51f3864dbb..15aca337109 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockRecovery2.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockRecovery2.java
@@ -50,6 +50,7 @@
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -90,6 +91,7 @@
 /**
  * Test part 2 for sync all replicas in block recovery.
  */
+@Tag("slow")
 public class TestBlockRecovery2 {
 
   private static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockScanner.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockScanner.java
index 614d0d1ba47..50f852f58a3 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockScanner.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockScanner.java
@@ -65,12 +65,14 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.util.Time;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.event.Level;
 
+@Tag("slow")
 public class TestBlockScanner {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestBlockScanner.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeRollingUpgrade.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeRollingUpgrade.java
index 291f446b4d6..313c9586e7b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeRollingUpgrade.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeRollingUpgrade.java
@@ -50,6 +50,7 @@
 import org.apache.hadoop.hdfs.server.namenode.NameNode;
 import org.apache.hadoop.hdfs.tools.DFSAdmin;
 import org.apache.hadoop.test.GenericTestUtils;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -58,6 +59,7 @@
  * Ensure that the DataNode correctly handles rolling upgrade
  * finalize and rollback.
  */
+@Tag("slow")
 public class TestDataNodeRollingUpgrade {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestDataNodeRollingUpgrade.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
index 42a93d7e504..6e73930e38c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
@@ -59,12 +59,14 @@
 import org.slf4j.event.Level;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 /**
  * Test reporting of DN volume failure counts and metrics.
  */
 @Timeout(120)
+@Tag("slow")
 public class TestDataNodeVolumeFailureReporting {
 
   private static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetCache.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetCache.java
index 6f8d2003086..410bbcbb39d 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetCache.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetCache.java
@@ -88,6 +88,7 @@
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.event.Level;
@@ -98,6 +99,7 @@
 import static 
org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_FSDATASETCACHE_MAX_THREADS_PER_VOLUME_KEY;
 
 @NotThreadSafe
+@Tag("slow")
 public class TestFsDatasetCache {
   private static final org.slf4j.Logger LOG =
       LoggerFactory.getLogger(TestFsDatasetCache.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetImpl.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetImpl.java
index 30a90fac5ce..c68a1ced3a6 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetImpl.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsDatasetImpl.java
@@ -87,6 +87,7 @@
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -140,6 +141,7 @@
 import javax.management.ObjectName;
 import javax.management.ReflectionException;
 
+@Tag("slow")
 public class TestFsDatasetImpl {
 
   private static final Logger LOG = LoggerFactory.getLogger(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestSpaceReservation.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestSpaceReservation.java
index bbb3c055235..9d7dbd99e62 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestSpaceReservation.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestSpaceReservation.java
@@ -54,6 +54,7 @@
 import org.apache.hadoop.util.Daemon;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -74,6 +75,7 @@
  * Ensure that the DN reserves disk space equivalent to a full block for
  * replica being written (RBW) & Replica being copied from another DN.
  */
+@Tag("slow")
 public class TestSpaceReservation {
   static final Logger LOG = 
LoggerFactory.getLogger(TestSpaceReservation.class);
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestMover.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestMover.java
index 8e0cfec49f2..8e4e3dc9ae6 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestMover.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestMover.java
@@ -109,6 +109,7 @@
 import org.apache.hadoop.test.MetricsAsserts;
 import org.apache.hadoop.util.Lists;
 import org.apache.hadoop.util.ToolRunner;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -117,6 +118,7 @@
 import java.util.function.Supplier;
 import org.apache.hadoop.thirdparty.com.google.common.collect.Maps;
 
+@Tag("slow")
 public class TestMover {
   private static final Logger LOG = LoggerFactory.getLogger(TestMover.class);
   private static final int DEFAULT_BLOCK_SIZE = 100;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestStorageMover.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestStorageMover.java
index 86fb626db7e..aa458abe88b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestStorageMover.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/mover/TestStorageMover.java
@@ -62,6 +62,7 @@
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.slf4j.event.Level;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import org.apache.hadoop.util.Preconditions;
@@ -74,6 +75,7 @@
 /**
  * Test the data migration tool (for Archival Storage)
  */
+@Tag("slow")
 public class TestStorageMover {
   static final Logger LOG = LoggerFactory.getLogger(TestStorageMover.class);
   static {
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDeleteRace.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDeleteRace.java
index 102420ed265..7ac52295062 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDeleteRace.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDeleteRace.java
@@ -60,6 +60,7 @@
 import org.apache.hadoop.test.GenericTestUtils.DelayAnswer;
 import org.apache.hadoop.test.Whitebox;
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -77,6 +78,7 @@
  * whole duration.
  */
 @Timeout(60 * 3)
+@Tag("slow")
 public class TestDeleteRace {
   private static final int BLOCK_SIZE = 4096;
   private static final Logger LOG = 
LoggerFactory.getLogger(TestDeleteRace.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDiskspaceQuotaUpdate.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDiskspaceQuotaUpdate.java
index c42ec40758c..0be0f4f196c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDiskspaceQuotaUpdate.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestDiskspaceQuotaUpdate.java
@@ -57,12 +57,14 @@
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
+@Tag("slow")
 public class TestDiskspaceQuotaUpdate {
   private static final int BLOCKSIZE = 1024;
   private static final short REPLICATION = 4;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
index d7268e95fc7..6512c599d57 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
@@ -94,6 +94,7 @@
 import org.apache.log4j.AppenderSkeleton;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.spi.LoggingEvent;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedClass;
 import org.junit.jupiter.params.provider.MethodSource;
@@ -112,6 +113,7 @@
  */
 @MethodSource("data")
 @ParameterizedClass
+@Tag("slow")
 public class TestEditLog {
 
   static {
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSEditLogLoader.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSEditLogLoader.java
index 39ef35b537e..0ff09481211 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSEditLogLoader.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSEditLogLoader.java
@@ -70,6 +70,7 @@
 import org.junit.jupiter.params.ParameterizedClass;
 import org.junit.jupiter.params.provider.MethodSource;
 import org.slf4j.event.Level;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import org.apache.hadoop.thirdparty.com.google.common.collect.Maps;
@@ -77,6 +78,7 @@
 
 @MethodSource("data")
 @ParameterizedClass
+@Tag("slow")
 public class TestFSEditLogLoader {
 
   public static Collection<Object[]> data() {
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImage.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImage.java
index ab245d7fd12..8967001b7b9 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImage.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImage.java
@@ -81,12 +81,14 @@
 import org.apache.hadoop.test.PathUtils;
 import org.apache.hadoop.test.LambdaTestUtils;
 import org.apache.hadoop.util.Time;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
+@Tag("slow")
 public class TestFSImage {
 
   private static final String HADOOP_2_7_ZER0_BLOCK_SIZE_TGZ =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImageWithAcl.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImageWithAcl.java
index 0ccdd693aff..96fdb2ef19b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImageWithAcl.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSImageWithAcl.java
@@ -37,8 +37,10 @@
 import org.apache.hadoop.util.Lists;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
+@Tag("slow")
 public class TestFSImageWithAcl {
   private static Configuration conf;
   private static MiniDFSCluster cluster;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
index d9bc28e2d52..4f0bd937abf 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
@@ -122,6 +122,7 @@
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.junit.jupiter.api.io.TempDir;
@@ -130,6 +131,7 @@
 /**
  * A JUnit test for doing fsck.
  */
+@Tag("slow")
 public class TestFsck {
   private static final org.slf4j.Logger LOG =
       LoggerFactory.getLogger(TestFsck.class.getName());
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java
index d6af609f822..5ba25c05ea2 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java
@@ -74,12 +74,14 @@
 import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.util.Time;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
 
 import org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableList;
 
+@Tag("slow")
 public class TestINodeFile {
   // Re-enable symlinks for tests, see HADOOP-10020 and HADOOP-10052
   static {
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestListCorruptFileBlocks.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestListCorruptFileBlocks.java
index 81cb1d9a39e..1d36ee04065 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestListCorruptFileBlocks.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestListCorruptFileBlocks.java
@@ -46,6 +46,7 @@
 import org.apache.hadoop.hdfs.server.datanode.DataNode;
 import org.apache.hadoop.hdfs.server.datanode.DataNodeTestUtils;
 import org.apache.hadoop.util.StringUtils;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -58,6 +59,7 @@
  * with a block # from a previous call and validate that the subsequent
  * blocks/files are also returned.
  */
+@Tag("slow")
 public class TestListCorruptFileBlocks {
   static final Logger LOG = NameNode.stateChangeLog;
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
index a016c2acd09..eb52ff0a30c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
@@ -35,6 +35,7 @@
 import org.apache.hadoop.hdfs.server.namenode.sps.StoragePolicySatisfier;
 import org.apache.hadoop.hdfs.server.sps.ExternalSPSContext;
 import org.apache.hadoop.test.GenericTestUtils;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -50,6 +51,7 @@
 /**
  * Test persistence of satisfying files/directories.
  */
+@Tag("slow")
 public class TestPersistentStoragePolicySatisfier {
   private static Configuration conf;
 
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryption.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryption.java
index 6ad3b5d692e..453541ce6fd 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryption.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryption.java
@@ -62,6 +62,7 @@
 import org.apache.hadoop.test.Whitebox;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
@@ -79,6 +80,7 @@
  * Test class for re-encryption.
  */
 @Timeout(180)
+@Tag("slow")
 public class TestReencryption {
 
   protected static final org.slf4j.Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryptionWithKMS.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryptionWithKMS.java
index beedb40ba43..79c68ec5a19 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryptionWithKMS.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestReencryptionWithKMS.java
@@ -26,6 +26,7 @@
 import org.apache.hadoop.fs.Path;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import java.io.File;
@@ -38,6 +39,7 @@
 /**
  * Test class for re-encryption with minikms.
  */
+@Tag("slow")
 public class TestReencryptionWithKMS extends TestReencryption{
 
   private MiniKMS miniKMS;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/fgl/TestFSNLockBenchmarkThroughput.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/fgl/TestFSNLockBenchmarkThroughput.java
index 7dc1fd3ec78..243ff887439 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/fgl/TestFSNLockBenchmarkThroughput.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/fgl/TestFSNLockBenchmarkThroughput.java
@@ -25,6 +25,7 @@
 import org.apache.hadoop.hdfs.MiniDFSCluster;
 import org.apache.hadoop.hdfs.qjournal.MiniQJMHACluster;
 import org.apache.hadoop.util.ToolRunner;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -32,6 +33,7 @@
 /**
  * To test {@link FSNLockBenchmarkThroughput}.
  */
+@Tag("slow")
 public class TestFSNLockBenchmarkThroughput {
 
   @Test
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandby.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandby.java
index 00e56a779fb..c633c8c6dc9 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandby.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandby.java
@@ -59,12 +59,14 @@
 import org.apache.hadoop.test.GenericTestUtils.LogCapturer;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
 import org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableList;
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 
+@Tag("slow")
 public class TestBootstrapStandby {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestBootstrapStandby.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDNFencingWithReplication.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDNFencingWithReplication.java
index bae8a36ca83..39e1f2e71f2 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDNFencingWithReplication.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDNFencingWithReplication.java
@@ -32,6 +32,7 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.test.MultithreadedTestUtil.RepeatingTestThread;
 import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.slf4j.event.Level;
 
@@ -44,6 +45,7 @@
  * Stress-test for potential bugs when replication is changing
  * on blocks during a failover.
  */
+@Tag("slow")
 public class TestDNFencingWithReplication {
   static {
     GenericTestUtils.setLogLevel(FSNamesystem.AUDIT_LOG, Level.WARN);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestEditLogTailer.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestEditLogTailer.java
index 08822c7b289..4aa2494c5be 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestEditLogTailer.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestEditLogTailer.java
@@ -61,6 +61,7 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.util.FakeTimer;
 import org.slf4j.event.Level;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -69,6 +70,7 @@
 
 @MethodSource("data")
 @ParameterizedClass
+@Tag("slow")
 public class TestEditLogTailer {
   static {
     GenericTestUtils.setLogLevel(FSEditLog.LOG, Level.DEBUG);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestFailureToReadEdits.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestFailureToReadEdits.java
index 89b678ab1ca..bc7d80aafd3 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestFailureToReadEdits.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestFailureToReadEdits.java
@@ -57,6 +57,7 @@
 import org.apache.hadoop.util.ExitUtil.ExitException;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -65,6 +66,7 @@
 
 @MethodSource("data")
 @ParameterizedClass
+@Tag("slow")
 public class TestFailureToReadEdits {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestFailureToReadEdits.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHASafeMode.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHASafeMode.java
index 44f20bd8265..8cfc41581ae 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHASafeMode.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHASafeMode.java
@@ -72,6 +72,7 @@
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.event.Level;
@@ -81,6 +82,7 @@
 /**
  * Tests that exercise safemode in an HA cluster.
  */
+@Tag("slow")
 public class TestHASafeMode {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestHASafeMode.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java
index 4ed7c8f5370..cc60728d0e6 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java
@@ -79,6 +79,7 @@
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.slf4j.Logger;
@@ -87,6 +88,7 @@
 /**
  * Test main functionality of ObserverNode.
  */
+@Tag("slow")
 public class TestObserverNode {
   public static final Logger LOG =
       LoggerFactory.getLogger(TestObserverNode.class.getName());
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestPipelinesFailover.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestPipelinesFailover.java
index fd7647be72d..47df0f2dc00 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestPipelinesFailover.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestPipelinesFailover.java
@@ -58,6 +58,7 @@
 import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.util.Shell.ShellCommandExecutor;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -68,6 +69,7 @@
 /**
  * Test cases regarding pipeline recovery during NN failover.
  */
+@Tag("slow")
 public class TestPipelinesFailover {
   static {
     GenericTestUtils.setLogLevel(LoggerFactory.getLogger(
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
index f679bcc148b..ae671d21253 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
@@ -93,9 +93,11 @@
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
+@Tag("slow")
 public class TestRetryCacheWithHA {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestRetryCacheWithHA.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java
index 25926f695af..1b03ec94689 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java
@@ -57,6 +57,7 @@
 import org.apache.log4j.spi.LoggingEvent;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -73,6 +74,7 @@
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
 
+@Tag("slow")
 public class TestStandbyCheckpoints {
   private static final int NUM_DIRS_IN_LOG = 200000;
   protected static int NUM_NNS = 3;
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestOpenFilesWithSnapshot.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestOpenFilesWithSnapshot.java
index f4d141b3877..641124a55e4 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestOpenFilesWithSnapshot.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestOpenFilesWithSnapshot.java
@@ -47,6 +47,7 @@
 import org.apache.hadoop.util.concurrent.SubjectInheritingThread;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -55,6 +56,7 @@
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Tag("slow")
 public class TestOpenFilesWithSnapshot {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestOpenFilesWithSnapshot.class.getName());
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRandomOpsWithSnapshots.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRandomOpsWithSnapshots.java
index 426ab05580f..1132f939f89 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRandomOpsWithSnapshots.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRandomOpsWithSnapshots.java
@@ -33,6 +33,7 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -56,6 +57,7 @@
 /**
  * Testing random FileSystem operations with random Snapshot operations.
  */
+@Tag("slow")
 public class TestRandomOpsWithSnapshots {
 
   private static final Logger LOG =
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRenameWithSnapshots.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRenameWithSnapshots.java
index 907bd2ff03b..a4f6f346122 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRenameWithSnapshots.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestRenameWithSnapshots.java
@@ -43,6 +43,7 @@
 import org.apache.hadoop.test.Whitebox;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -67,6 +68,7 @@
 import static org.mockito.Mockito.spy;
 
 /** Testing rename with snapshots. */
+@Tag("slow")
 public class TestRenameWithSnapshots {
   static {
     SnapshotTestHelper.disableLogs();
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshot.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshot.java
index 2b45e1fe85a..d1761509529 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshot.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshot.java
@@ -63,6 +63,7 @@
 import org.slf4j.event.Level;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -71,6 +72,7 @@
  * created. The snapshotted directory is changed and verification is done to
  * ensure snapshots remain unchanges.
  */
+@Tag("slow")
 public class TestSnapshot {
   {
     GenericTestUtils.setLogLevel(INode.LOG, Level.TRACE);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDeletion.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDeletion.java
index 4d62a1848c7..51e0444ad33 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDeletion.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDeletion.java
@@ -68,6 +68,7 @@
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -76,6 +77,7 @@
 /**
  * Tests snapshot deletion.
  */
+@Tag("slow")
 public class TestSnapshotDeletion {
   private static final Logger LOG =
       LoggerFactory.getLogger(TestSnapshotDeletion.class);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/sps/TestStoragePolicySatisfierWithStripedFile.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/sps/TestStoragePolicySatisfierWithStripedFile.java
index a848537c34f..677aca92990 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/sps/TestStoragePolicySatisfierWithStripedFile.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/sps/TestStoragePolicySatisfierWithStripedFile.java
@@ -47,6 +47,7 @@
 import org.apache.hadoop.hdfs.server.sps.ExternalSPSContext;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -61,6 +62,7 @@
  * to be moved and finding its expected target locations in order to satisfy 
the
  * storage policy.
  */
+@Tag("slow")
 public class TestStoragePolicySatisfierWithStripedFile {
 
   private static final Logger LOG = LoggerFactory
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/sps/TestExternalStoragePolicySatisfier.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/sps/TestExternalStoragePolicySatisfier.java
index 787a0dff4ed..0843d3fe83b 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/sps/TestExternalStoragePolicySatisfier.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/sps/TestExternalStoragePolicySatisfier.java
@@ -100,6 +100,7 @@
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
@@ -112,6 +113,7 @@
 /**
  * Tests the external sps service plugins.
  */
+@Tag("slow")
 public class TestExternalStoragePolicySatisfier {
   private static final String ONE_SSD = "ONE_SSD";
   private static final String COLD = "COLD";
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdminWithHA.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdminWithHA.java
index 88fbd1248e0..f53be7f0e76 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdminWithHA.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdminWithHA.java
@@ -35,6 +35,7 @@
 import org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -43,6 +44,7 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
+@Tag("slow")
 public class TestDFSAdminWithHA {
 
   private final ByteArrayOutputStream out = new ByteArrayOutputStream();
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHDFS.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHDFS.java
index f87faecf76d..311092c30b5 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHDFS.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHDFS.java
@@ -144,6 +144,7 @@
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 import org.mockito.Mockito;
@@ -161,6 +162,7 @@
 import static org.mockito.Mockito.when;
 
 /** Test WebHDFS */
+@Tag("slow")
 public class TestWebHDFS {
   static final Logger LOG = LoggerFactory.getLogger(TestWebHDFS.class);
   


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to