/*
 * 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.
 */
package org.apache.maven.it;

/*
 * 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.
 */

import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.maven.shared.verifier.Verifier;
import org.junit.jupiter.api.ClassDescriptor;
import org.junit.jupiter.api.ClassOrderer;
import org.junit.jupiter.api.ClassOrdererContext;
import org.junit.jupiter.api.Tag;

/**
 * The Core IT suite.
 */
public class TestSuiteOrdering implements ClassOrderer {

    private static PrintStream out = System.out;

    // store missed test to show info only once
    private static final List<Class<?>> MISSED_TESTS = new ArrayList<>();

    final Map<Class<?>, Integer> tests = new HashMap<>();

    private static void infoProperty(PrintStream info, String property) {
        info.println(property + ": " + System.getProperty(property));
    }

    static {
        try {
            // TODO: workaround for https://github.com/apache/maven-integration-testing/pull/232
            // The verifier currently uses system properties to configure itself, such as
            // maven.home (see
            // https://github.com/apache/maven-integration-testing/blob/ba72268198fb4c68890f11bfa0aac3f4889c79b9/core-it-suite/pom.xml#L509-L511)
            // or other properties to configure the maven that will be launched.  Using system properties
            // make impossible the detection whether a system property has been set by the maven being run
            // or by the code that wants to use the verifier to create a new embedded maven, which means
            // those properties can not be cleared by the verifier.  So clear those properties here, as
            // we do want to isolate the tests from the outside environment.
            System.clearProperty("maven.bootclasspath");
            System.clearProperty("maven.conf");
            System.clearProperty("classworlds.conf");

            Verifier verifier = new Verifier("");
            String mavenVersion = verifier.getMavenVersion();
            String executable = verifier.getExecutable();

            out.println("Running integration tests for Maven " + mavenVersion + System.lineSeparator()
                    + "\tusing Maven executable: " + executable + System.lineSeparator()
                    + "\twith verifier.forkMode: " + System.getProperty("verifier.forkMode", "not defined == fork"));

            System.setProperty("maven.version", mavenVersion);

            String basedir = System.getProperty("basedir", ".");

            try (PrintStream info = new PrintStream(Files.newOutputStream(Paths.get(basedir, "target/info.txt")))) {
                infoProperty(info, "maven.version");
                infoProperty(info, "java.version");
                infoProperty(info, "os.name");
                infoProperty(info, "os.version");
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public TestSuiteOrdering() {
        TestSuiteOrdering suite = this;

        /*
         * This must be the first one to ensure the local repository is properly setup.
         */
        suite.addTestSuite(MavenITBootstrapTest.class, -10);

        /*
         * Add tests in reverse order of implementation. This makes testing new
         * ITs quicker and since it counts down to zero, it's easier to judge how close
         * the tests are to finishing. Newer tests are also more likely to fail, so this is
         * a fail fast technique as well.
         */
        suite.addTestSuite(MavenITmng7967ArtifactHandlerLanguageTest.class);
        suite.addTestSuite(MavenITmng7965PomDuplicateTagsTest.class);
        suite.addTestSuite(MavenITmng7939PluginsValidationExcludesTest.class);
        suite.addTestSuite(MavenITmng7837ProjectElementInPomTest.class);
        suite.addTestSuite(MavenITmng7804PluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng7836AlternativePomSyntaxTest.class);
        suite.addTestSuite(MavenITmng7891ConfigurationForExtensionsTest.class);
        suite.addTestSuite(MavenITmng6401ProxyPortInterpolationTest.class);
        suite.addTestSuite(MavenITmng7228LeakyModelTest.class);
        suite.addTestSuite(MavenITmng7819FileLockingWithSnapshotsTest.class);
        suite.addTestSuite(MavenITmng5659ProjectSettingsTest.class);
        suite.addTestSuite(MavenITmng5600DependencyManagementImportExclusionsTest.class);
        suite.addTestSuite(MavenITmng7772CoreExtensionFoundTest.class);
        suite.addTestSuite(MavenITmng7772CoreExtensionsNotFoundTest.class);
        suite.addTestSuite(MavenITmng7740ConsumerBuildShouldCleanUpOldFilesTest.class);
        suite.addTestSuite(MavenITmng7587Jsr330.class);
        suite.addTestSuite(MavenITmng7038RootdirTest.class);
        suite.addTestSuite(MavenITmng7697PomWithEmojiTest.class);
        suite.addTestSuite(MavenITmng7737ProfileActivationTest.class);
        suite.addTestSuite(MavenITmng7716BuildDeadlock.class);
        suite.addTestSuite(MavenITmng7679SingleMojoNoPomTest.class);
        suite.addTestSuite(MavenITmng7629SubtreeBuildTest.class);
        suite.addTestSuite(MavenITmng7606DependencyImportScopeTest.class);
        suite.addTestSuite(MavenITmng6609ProfileActivationForPackagingTest.class);
        suite.addTestSuite(MavenITmng7566JavaPrerequisiteTest.class);
        suite.addTestSuite(MavenITmng5889FindBasedir.class);
        suite.addTestSuite(MavenITmng7360BuildConsumer.class);
        suite.addTestSuite(MavenITmng5452MavenBuildTimestampUTCTest.class);
        suite.addTestSuite(MavenITmng3890TransitiveDependencyScopeUpdateTest.class);
        suite.addTestSuite(MavenITmng3092SnapshotsExcludedFromVersionRangeTest.class);
        suite.addTestSuite(MavenITmng3038TransitiveDepManVersionTest.class);
        suite.addTestSuite(MavenITmng2771PomExtensionComponentOverrideTest.class);
        suite.addTestSuite(MavenITmng0612NewestConflictResolverTest.class);
        suite.addTestSuite(MavenIT0108SnapshotUpdateTest.class);
        suite.addTestSuite(MavenITmng7310LifecycleActivatedInSpecifiedModuleTest.class);
        suite.addTestSuite(MavenITmng7474SessionScopeTest.class);
        suite.addTestSuite(MavenITmng7529VersionRangeRepositorySelection.class);
        suite.addTestSuite(MavenITmng7443ConsistencyOfOptionalProjectsAndProfilesTest.class);
        suite.addTestSuite(MavenITmng7353CliGoalInvocationTest.class);
        suite.addTestSuite(MavenITmng7504NotWarnUnsupportedReportPluginsTest.class);
        suite.addTestSuite(MavenITmng7160ExtensionClassloader.class);
        suite.addTestSuite(MavenITmng7468UnsupportedPluginsParametersTest.class);
        suite.addTestSuite(MavenITmng7487DeadlockTest.class);
        suite.addTestSuite(MavenITmng7470ResolverTransportTest.class);
        suite.addTestSuite(MavenITmng7464ReadOnlyMojoParametersWarningTest.class);
        suite.addTestSuite(MavenITmng7404IgnorePrefixlessExpressionsTest.class);
        suite.addTestSuite(MavenITmng5222MojoDeprecatedTest.class);
        suite.addTestSuite(MavenITmng7390SelectModuleOutsideCwdTest.class);
        suite.addTestSuite(MavenITmng7244IgnorePomPrefixInExpressions.class);
        suite.addTestSuite(MavenITmng7349RelocationWarningTest.class);
        suite.addTestSuite(MavenITmng6326CoreExtensionsNotFoundTest.class);
        suite.addTestSuite(MavenITmng5561PluginRelocationLosesConfigurationTest.class);
        suite.addTestSuite(MavenITmng7335MissingJarInParallelBuild.class);
        suite.addTestSuite(MavenITmng4463DependencyManagementImportVersionRanges.class);
        suite.addTestSuite(MavenITmng7112ProjectsWithNonRecursiveTest.class);
        suite.addTestSuite(MavenITmng7128BlockExternalHttpReactorTest.class);
        suite.addTestSuite(MavenITmng6511OptionalProjectSelectionTest.class);
        suite.addTestSuite(MavenITmng7110ExtensionClassloader.class);
        suite.addTestSuite(MavenITmng7051OptionalProfileActivationTest.class);
        suite.addTestSuite(MavenITmng6957BuildConsumer.class);
        suite.addTestSuite(MavenITmng7045DropUselessAndOutdatedCdiApiTest.class);
        suite.addTestSuite(MavenITmng6566ExecuteAnnotationShouldNotReExecuteGoalsTest.class);
        suite.addTestSuite(MavenITmng6754TimestampInMultimoduleProject.class);
        suite.addTestSuite(MavenITmng6981ProjectListShouldIncludeChildrenTest.class);
        suite.addTestSuite(MavenITmng6972AllowAccessToGraphPackageTest.class);
        suite.addTestSuite(MavenITmng6772NestedImportScopeRepositoryOverride.class);
        suite.addTestSuite(MavenITmng6759TransitiveDependencyRepositoriesTest.class);
        suite.addTestSuite(MavenITmng6720FailFastTest.class);
        suite.addTestSuite(MavenITmng6656BuildConsumer.class);
        suite.addTestSuite(MavenITmng6562WarnDefaultBindings.class);
        suite.addTestSuite(MavenITmng6558ToolchainsBuildingEventTest.class);
        suite.addTestSuite(MavenITmng6506PackageAnnotationTest.class);
        suite.addTestSuite(MavenITmng6391PrintVersionTest.class);
        suite.addTestSuite(MavenITmng6386BaseUriPropertyTest.class);
        suite.addTestSuite(MavenITmng6330RelativePath.class);
        suite.addTestSuite(MavenITmng6256SpecialCharsAlternatePOMLocation.class);
        suite.addTestSuite(MavenITmng6255FixConcatLines.class);
        suite.addTestSuite(MavenITmng6240PluginExtensionAetherProvider.class);
        suite.addTestSuite(MavenITmng6223FindBasedir.class);
        suite.addTestSuite(MavenITmng6210CoreExtensionsCustomScopesTest.class);
        suite.addTestSuite(MavenITmng6189SiteReportPluginsWarningTest.class);
        suite.addTestSuite(MavenITmng6173GetProjectsAndDependencyGraphTest.class);
        suite.addTestSuite(MavenITmng6173GetAllProjectsInReactorTest.class);
        suite.addTestSuite(MavenITmng6127PluginExecutionConfigurationInterferenceTest.class);
        suite.addTestSuite(MavenITmng6118SubmoduleInvocation.class);
        suite.addTestSuite(MavenITmng6090CIFriendlyTest.class);
        suite.addTestSuite(MavenITmng6084Jsr250PluginTest.class);
        suite.addTestSuite(MavenITmng6071GetResourceWithCustomPom.class);
        suite.addTestSuite(MavenITmng6065FailOnSeverityTest.class);
        suite.addTestSuite(MavenITmng6057CheckReactorOrderTest.class);
        suite.addTestSuite(MavenITmng5965ParallelBuildMultipliesWorkTest.class);
        suite.addTestSuite(MavenITmng5958LifecyclePhaseBinaryCompat.class);
        suite.addTestSuite(MavenITmng5935OptionalLostInTranstiveManagedDependenciesTest.class);
        suite.addTestSuite(MavenITmng5898BuildMultimoduleWithEARFailsToResolveWARTest.class);
        suite.addTestSuite(MavenITmng5895CIFriendlyUsageWithPropertyTest.class);
        suite.addTestSuite(MavenITmng5868NoDuplicateAttachedArtifacts.class);
        suite.addTestSuite(MavenITmng5840RelativePathReactorMatching.class);
        suite.addTestSuite(MavenITmng5840ParentVersionRanges.class);
        suite.addTestSuite(MavenITmng5805PkgTypeMojoConfiguration2.class);
        suite.addTestSuite(MavenITmng5783PluginDependencyFiltering.class);
        suite.addTestSuite(MavenITmng5774ConfigurationProcessorsTest.class);
        suite.addTestSuite(MavenITmng5771CoreExtensionsTest.class);
        suite.addTestSuite(MavenITmng5768CliExecutionIdTest.class);
        suite.addTestSuite(MavenITmng5760ResumeFeatureTest.class);
        suite.addTestSuite(MavenITmng5753CustomMojoExecutionConfiguratorTest.class);
        suite.addTestSuite(MavenITmng5742BuildExtensionClassloaderTest.class);
        suite.addTestSuite(MavenITmng5716ToolchainsTypeTest.class);
        suite.addTestSuite(MavenITmng5669ReadPomsOnce.class);
        suite.addTestSuite(MavenITmng5663NestedImportScopePomResolutionTest.class);
        suite.addTestSuite(MavenITmng5640LifecycleParticipantAfterSessionEnd.class);
        suite.addTestSuite(MavenITmng5639ImportScopePomResolutionTest.class);
        suite.addTestSuite(MavenITmng5608ProfileActivationWarningTest.class);
        suite.addTestSuite(MavenITmng5591WorkspaceReader.class);
        suite.addTestSuite(MavenITmng5581LifecycleMappingDelegate.class);
        suite.addTestSuite(MavenITmng5578SessionScopeTest.class);
        suite.addTestSuite(MavenITmng5576CdFriendlyVersions.class);
        suite.addTestSuite(MavenITmng5572ReactorPluginExtensionsTest.class);
        suite.addTestSuite(MavenITmng5530MojoExecutionScopeTest.class);
        suite.addTestSuite(MavenITmng5482AetherNotFoundTest.class);
        suite.addTestSuite(MavenITmng5445LegacyStringSearchModelInterpolatorTest.class);
        suite.addTestSuite(MavenITmng5389LifecycleParticipantAfterSessionEnd.class);
        suite.addTestSuite(MavenITmng5387ArtifactReplacementPlugin.class);
        suite.addTestSuite(MavenITmng5382Jsr330Plugin.class);
        suite.addTestSuite(MavenITmng5338FileOptionToDirectory.class);
        suite.addTestSuite(MavenITmng5280SettingsProfilesRepositoriesOrderTest.class);
        suite.addTestSuite(MavenITmng5230MakeReactorWithExcludesTest.class);
        suite.addTestSuite(MavenITmng5224InjectedSettings.class);
        suite.addTestSuite(MavenITmng5214DontMapWsdlToJar.class);
        suite.addTestSuite(MavenITmng5208EventSpyParallelTest.class);
        suite.addTestSuite(MavenITmng5175WagonHttpTest.class);
        suite.addTestSuite(MavenITmng5137ReactorResolutionInForkedBuildTest.class);
        suite.addTestSuite(MavenITmng5135AggregatorDepResolutionModuleExtensionTest.class);
        suite.addTestSuite(MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.class);
        suite.addTestSuite(MavenITmng5064SuppressSnapshotUpdatesTest.class);
        suite.addTestSuite(MavenITmng5019StringBasedCompLookupFromChildPluginRealmTest.class);
        suite.addTestSuite(MavenITmng5013ConfigureParamBeanFromScalarValueTest.class);
        suite.addTestSuite(MavenITmng5012CollectionVsArrayParamCoercionTest.class);
        suite.addTestSuite(MavenITmng5011ConfigureCollectionArrayFromUserPropertiesTest.class);
        suite.addTestSuite(MavenITmng5009AggregationCycleTest.class);
        suite.addTestSuite(MavenITmng5006VersionRangeDependencyParentResolutionTest.class);
        suite.addTestSuite(MavenITmng5000ChildPathAwareUrlInheritanceTest.class);
        suite.addTestSuite(MavenITmng4992MapStylePropertiesParamConfigTest.class);
        suite.addTestSuite(MavenITmng4991NonProxyHostsTest.class);
        suite.addTestSuite(MavenITmng4987TimestampBasedSnapshotSelectionTest.class);
        suite.addTestSuite(MavenITmng4975ProfileInjectedPluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4973ExtensionVisibleToPluginInReactorTest.class);
        suite.addTestSuite(MavenITmng4966AbnormalUrlPreservationTest.class);
        suite.addTestSuite(MavenITmng4963ParentResolutionFromMirrorTest.class);
        suite.addTestSuite(MavenITmng4960MakeLikeReactorResumeTest.class);
        suite.addTestSuite(MavenITmng4955LocalVsRemoteSnapshotResolutionTest.class);
        suite.addTestSuite(MavenITmng4952MetadataReleaseInfoUpdateTest.class);
        suite.addTestSuite(MavenITmng4936EventSpyTest.class);
        suite.addTestSuite(MavenITmng4925ContainerLookupRealmDuringMojoExecTest.class);
        suite.addTestSuite(MavenITmng4919LifecycleMappingWithSameGoalTwiceTest.class);
        suite.addTestSuite(MavenITmng4913UserPropertyVsDependencyPomPropertyTest.class);
        suite.addTestSuite(MavenITmng4895PluginDepWithNonRelocatedMavenApiTest.class);
        suite.addTestSuite(MavenITmng4891RobustSnapshotResolutionTest.class);
        suite.addTestSuite(MavenITmng4890MakeLikeReactorConsidersVersionsTest.class);
        suite.addTestSuite(MavenITmng4883FailUponOverconstrainedVersionRangesTest.class);
        suite.addTestSuite(MavenITmng4877DeployUsingPrivateKeyTest.class);
        suite.addTestSuite(MavenITmng4874UpdateLatestPluginVersionTest.class);
        suite.addTestSuite(MavenITmng4872ReactorResolutionAttachedWithExclusionsTest.class);
        suite.addTestSuite(MavenITmng4842ParentResolutionOfDependencyPomTest.class);
        suite.addTestSuite(MavenITmng4840MavenPrerequisiteTest.class);
        suite.addTestSuite(MavenITmng4834ParentProjectResolvedFromRemoteReposTest.class);
        suite.addTestSuite(MavenITmng4829ChecksumFailureWarningTest.class);
        suite.addTestSuite(MavenITmng4814ReResolutionOfDependenciesDuringReactorTest.class);
        suite.addTestSuite(MavenITmng4811CustomComponentConfiguratorTest.class);
        suite.addTestSuite(MavenITmng4800NearestWinsVsScopeWideningTest.class);
        suite.addTestSuite(MavenITmng4795DepResolutionInReactorProjectForkedByLifecycleTest.class);
        suite.addTestSuite(MavenITmng4791ProjectBuilderResolvesRemotePomArtifactTest.class);
        suite.addTestSuite(MavenITmng4789ScopeInheritanceMeetsConflictTest.class);
        suite.addTestSuite(MavenITmng4788InstallationToCustomLocalRepoTest.class);
        suite.addTestSuite(MavenITmng4786AntBased21xMojoSupportTest.class);
        suite.addTestSuite(MavenITmng4785TransitiveResolutionInForkedThreadTest.class);
        suite.addTestSuite(MavenITmng4781DeploymentToNexusStagingRepoTest.class);
        suite.addTestSuite(MavenITmng4779MultipleDepsWithVersionRangeFromLocalRepoTest.class);
        suite.addTestSuite(MavenITmng4776ForkedReactorPluginVersionResolutionTest.class);
        suite.addTestSuite(MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.class);
        suite.addTestSuite(MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.class);
        suite.addTestSuite(MavenITmng4768NearestMatchConflictResolutionTest.class);
        suite.addTestSuite(MavenITmng4765LocalPomProjectBuilderTest.class);
        suite.addTestSuite(MavenITmng4755FetchRemoteMetadataForVersionRangeTest.class);
        suite.addTestSuite(MavenITmng4750ResolvedMavenProjectDependencyArtifactsTest.class);
        suite.addTestSuite(MavenITmng4747JavaAgentUsedByPluginTest.class);
        suite.addTestSuite(MavenITmng4745PluginVersionUpdateTest.class);
        suite.addTestSuite(MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.class);
        suite.addTestSuite(MavenITmng4721OptionalPluginDependencyTest.class);
        suite.addTestSuite(MavenITmng4720DependencyManagementExclusionMergeTest.class);
        suite.addTestSuite(MavenITmng4696MavenProjectDependencyArtifactsTest.class);
        suite.addTestSuite(MavenITmng4690InterdependentConflictResolutionTest.class);
        suite.addTestSuite(MavenITmng4684DistMgmtOverriddenByProfileTest.class);
        suite.addTestSuite(MavenITmng4679SnapshotUpdateInPluginTest.class);
        suite.addTestSuite(MavenITmng4677DisabledPluginConfigInheritanceTest.class);
        suite.addTestSuite(MavenITmng4666CoreRealmImportTest.class);
        suite.addTestSuite(MavenITmng4660ResumeFromTest.class);
        suite.addTestSuite(MavenITmng4660OutdatedPackagedArtifact.class);
        suite.addTestSuite(MavenITmng4654ArtifactHandlerForMainArtifactTest.class);
        suite.addTestSuite(MavenITmng4644StrictPomParsingRejectsMisplacedTextTest.class);
        suite.addTestSuite(MavenITmng4633DualCompilerExecutionsWeaveModeTest.class);
        suite.addTestSuite(MavenITmng4629NoPomValidationErrorUponMissingSystemDepTest.class);
        suite.addTestSuite(MavenITmng4625SettingsXmlInterpolationWithXmlMarkupTest.class);
        suite.addTestSuite(MavenITmng4618AggregatorBuiltAfterModulesTest.class);
        suite.addTestSuite(MavenITmng4615ValidateRequiredPluginParameterTest.class);
        suite.addTestSuite(MavenITmng4600DependencyOptionalFlagManagementTest.class);
        suite.addTestSuite(MavenITmng4590ImportedPomUsesSystemAndUserPropertiesTest.class);
        suite.addTestSuite(MavenITmng4586PluginPrefixResolutionFromVersionlessPluginMgmtTest.class);
        suite.addTestSuite(MavenITmng4580ProjectLevelPluginDepUsedForCliInvocInReactorTest.class);
        suite.addTestSuite(MavenITmng4572ModelVersionSurroundedByWhitespaceTest.class);
        suite.addTestSuite(MavenITmng4561MirroringOfPluginRepoTest.class);
        suite.addTestSuite(MavenITmng4555MetaversionResolutionOfflineTest.class);
        suite.addTestSuite(MavenITmng4554PluginPrefixMappingUpdateTest.class);
        suite.addTestSuite(MavenITmng4553CoreArtifactFilterConsidersGroupIdTest.class);
        suite.addTestSuite(MavenITmng4544ActiveComponentCollectionThreadSafeTest.class);
        suite.addTestSuite(MavenITmng4536RequiresNoProjectForkingMojoTest.class);
        suite.addTestSuite(MavenITmng4528ExcludeWagonsFromMavenCoreArtifactsTest.class);
        suite.addTestSuite(MavenITmng4526MavenProjectArtifactsScopeTest.class);
        suite.addTestSuite(MavenITmng4522FailUponMissingDependencyParentPomTest.class);
        suite.addTestSuite(MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.class);
        suite.addTestSuite(MavenITmng4498IgnoreBrokenMetadataTest.class);
        suite.addTestSuite(MavenITmng4489MirroringOfExtensionRepoTest.class);
        suite.addTestSuite(MavenITmng4488ValidateExternalParenPomLenientTest.class);
        suite.addTestSuite(MavenITmng4482ForcePluginSnapshotUpdateTest.class);
        suite.addTestSuite(MavenITmng4474PerLookupWagonInstantiationTest.class);
        suite.addTestSuite(MavenITmng4470AuthenticatedDeploymentToProxyTest.class);
        suite.addTestSuite(MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.class);
        suite.addTestSuite(MavenITmng4465PluginPrefixFromLocalCacheOfDownRepoTest.class);
        suite.addTestSuite(MavenITmng4464PlatformIndependentFileSeparatorTest.class);
        suite.addTestSuite(MavenITmng4461ArtifactUploadMonitorTest.class);
        suite.addTestSuite(MavenITmng4459InMemorySettingsKeptEncryptedTest.class);
        suite.addTestSuite(MavenITmng4453PluginVersionFromLifecycleMappingTest.class);
        suite.addTestSuite(MavenITmng4452ResolutionOfSnapshotWithClassifierTest.class);
        suite.addTestSuite(MavenITmng4450StubModelForMissingDependencyPomTest.class);
        suite.addTestSuite(MavenITmng4436SingletonComponentLookupTest.class);
        suite.addTestSuite(MavenITmng4433ForceParentSnapshotUpdateTest.class);
        suite.addTestSuite(MavenITmng4430DistributionManagementStatusTest.class);
        suite.addTestSuite(MavenITmng4429CompRequirementOnNonDefaultImplTest.class);
        suite.addTestSuite(MavenITmng4428FollowHttpRedirectTest.class);
        suite.addTestSuite(MavenITmng4423SessionDataFromPluginParameterExpressionTest.class);
        suite.addTestSuite(MavenITmng4422PluginExecutionPhaseInterpolationTest.class);
        suite.addTestSuite(MavenITmng4421DeprecatedPomInterpolationExpressionsTest.class);
        suite.addTestSuite(MavenITmng4416PluginOrderAfterProfileInjectionTest.class);
        suite.addTestSuite(MavenITmng4415InheritedPluginOrderTest.class);
        suite.addTestSuite(MavenITmng4413MirroringOfDependencyRepoTest.class);
        suite.addTestSuite(MavenITmng4412OfflineModeInPluginTest.class);
        suite.addTestSuite(MavenITmng4411VersionInfoTest.class);
        suite.addTestSuite(MavenITmng4410UsageHelpTest.class);
        suite.addTestSuite(MavenITmng4408NonExistentSettingsFileTest.class);
        suite.addTestSuite(MavenITmng4405ValidPluginVersionTest.class);
        suite.addTestSuite(MavenITmng4404UniqueProfileIdTest.class);
        suite.addTestSuite(MavenITmng4403LenientDependencyPomParsingTest.class);
        suite.addTestSuite(MavenITmng4402DuplicateChildModuleTest.class);
        suite.addTestSuite(MavenITmng4401RepositoryOrderForParentPomTest.class);
        suite.addTestSuite(MavenITmng4400RepositoryOrderTest.class);
        suite.addTestSuite(MavenITmng4396AntBased20xMojoSupportTest.class);
        suite.addTestSuite(MavenITmng4393ParseExternalParenPomLenientTest.class);
        suite.addTestSuite(MavenITmng4387QuietLoggingTest.class);
        suite.addTestSuite(MavenITmng4386DebugLoggingTest.class);
        suite.addTestSuite(MavenITmng4385LifecycleMappingFromExtensionInReactorTest.class);
        suite.addTestSuite(MavenITmng4383ValidDependencyVersionTest.class);
        suite.addTestSuite(MavenITmng4381ExtensionSingletonComponentTest.class);
        suite.addTestSuite(MavenITmng4379TransitiveSystemPathInterpolatedWithEnvVarTest.class);
        suite.addTestSuite(MavenITmng4368TimestampAwareArtifactInstallerTest.class);
        suite.addTestSuite(MavenITmng4367LayoutAwareMirrorSelectionTest.class);
        suite.addTestSuite(MavenITmng4365XmlMarkupInAttributeValueTest.class);
        suite.addTestSuite(MavenITmng4363DynamicAdditionOfDependencyArtifactTest.class);
        suite.addTestSuite(MavenITmng4361ForceDependencySnapshotUpdateTest.class);
        suite.addTestSuite(MavenITmng4360WebDavSupportTest.class);
        suite.addTestSuite(MavenITmng4359LocallyReachableParentOutsideOfReactorTest.class);
        suite.addTestSuite(MavenITmng4357LifecycleMappingDiscoveryInReactorTest.class);
        suite.addTestSuite(MavenITmng4355ExtensionAutomaticVersionResolutionTest.class);
        suite.addTestSuite(MavenITmng4353PluginDependencyResolutionFromPomRepoTest.class);
        suite.addTestSuite(MavenITmng4350LifecycleMappingExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4349RelocatedArtifactWithInvalidPomTest.class);
        suite.addTestSuite(MavenITmng4348NoUnnecessaryRepositoryAccessTest.class);
        suite.addTestSuite(MavenITmng4347ImportScopeWithSettingsProfilesTest.class);
        suite.addTestSuite(MavenITmng4345DefaultPluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4344ManagedPluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4343MissingReleaseUpdatePolicyTest.class);
        suite.addTestSuite(MavenITmng4342IndependentMojoParameterDefaultValuesTest.class);
        suite.addTestSuite(MavenITmng4341PluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4338OptionalMojosTest.class);
        suite.addTestSuite(MavenITmng4335SettingsOfflineModeTest.class);
        suite.addTestSuite(MavenITmng4332DefaultPluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng4331DependencyCollectionTest.class);
        suite.addTestSuite(MavenITmng4328PrimitiveMojoParameterConfigurationTest.class);
        suite.addTestSuite(MavenITmng4327ExcludeForkingMojoFromForkedLifecycleTest.class);
        suite.addTestSuite(MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.class);
        suite.addTestSuite(MavenITmng4321CliUsesPluginMgmtConfigTest.class);
        suite.addTestSuite(MavenITmng4320AggregatorAndDependenciesTest.class);
        suite.addTestSuite(MavenITmng4319PluginExecutionGoalInterpolationTest.class);
        suite.addTestSuite(MavenITmng4318ProjectExecutionRootTest.class);
        suite.addTestSuite(MavenITmng4317PluginVersionResolutionFromMultiReposTest.class);
        suite.addTestSuite(MavenITmng4314DirectInvocationOfAggregatorTest.class);
        suite.addTestSuite(MavenITmng4312TypeAwarePluginParameterExpressionInjectionTest.class);
        suite.addTestSuite(MavenITmng4309StrictChecksumValidationForMetadataTest.class);
        suite.addTestSuite(MavenITmng4305LocalRepoBasedirTest.class);
        suite.addTestSuite(MavenITmng4304ProjectDependencyArtifactsTest.class);
        suite.addTestSuite(MavenITmng4293RequiresCompilePlusRuntimeScopeTest.class);
        suite.addTestSuite(MavenITmng4292EnumTypeMojoParametersTest.class);
        suite.addTestSuite(MavenITmng4291MojoRequiresOnlineModeTest.class);
        suite.addTestSuite(MavenITmng4283ParentPomPackagingTest.class);
        suite.addTestSuite(MavenITmng4281PreferLocalSnapshotTest.class);
        suite.addTestSuite(MavenITmng4276WrongTransitivePlexusUtilsTest.class);
        suite.addTestSuite(MavenITmng4275RelocationWarningTest.class);
        suite.addTestSuite(MavenITmng4274PluginRealmArtifactsTest.class);
        suite.addTestSuite(MavenITmng4273RestrictedCoreRealmAccessForPluginTest.class);
        suite.addTestSuite(MavenITmng4270ArtifactHandlersFromPluginDepsTest.class);
        suite.addTestSuite(MavenITmng4269BadReactorResolutionFromOutDirTest.class);
        suite.addTestSuite(MavenITmng4262MakeLikeReactorDottedPathTest.class);
        suite.addTestSuite(MavenITmng4262MakeLikeReactorDottedPath370Test.class);
        suite.addTestSuite(MavenITmng4238ArtifactHandlerExtensionUsageTest.class);
        suite.addTestSuite(MavenITmng4235HttpAuthDeploymentChecksumsTest.class);
        suite.addTestSuite(MavenITmng4233ReactorResolutionForManuallyCreatedArtifactTest.class);
        suite.addTestSuite(MavenITmng4231SnapshotUpdatePolicyTest.class);
        suite.addTestSuite(MavenITmng4214MirroredParentSearchReposTest.class);
        suite.addTestSuite(MavenITmng4208InterpolationPrefersCliOverProjectPropsTest.class);
        suite.addTestSuite(MavenITmng4207PluginWithLog4JTest.class);
        suite.addTestSuite(MavenITmng4203TransitiveDependencyExclusionTest.class);
        suite.addTestSuite(MavenITmng4199CompileMeetsRuntimeScopeTest.class);
        suite.addTestSuite(MavenITmng4196ExclusionOnPluginDepTest.class);
        suite.addTestSuite(MavenITmng4193UniqueRepoIdTest.class);
        suite.addTestSuite(MavenITmng4190MirrorRepoMergingTest.class);
        suite.addTestSuite(MavenITmng4189UniqueVersionSnapshotTest.class);
        suite.addTestSuite(MavenITmng4180PerDependencyExclusionsTest.class);
        suite.addTestSuite(MavenITmng4172EmptyDependencySetTest.class);
        suite.addTestSuite(MavenITmng4166HideCoreCommonsCliTest.class);
        suite.addTestSuite(MavenITmng4162ReportingMigrationTest.class);
        suite.addTestSuite(MavenITmng4150VersionRangeTest.class);
        suite.addTestSuite(MavenITmng4129PluginExecutionInheritanceTest.class);
        suite.addTestSuite(MavenITmng4116UndecodedUrlsTest.class);
        suite.addTestSuite(MavenITmng4112MavenVersionPropertyTest.class);
        suite.addTestSuite(MavenITmng4107InterpolationUsesDominantProfileSourceTest.class);
        suite.addTestSuite(MavenITmng4106InterpolationUsesDominantProfileTest.class);
        suite.addTestSuite(MavenITmng4102InheritedPropertyInterpolationTest.class);
        suite.addTestSuite(MavenITmng4091BadPluginDescriptorTest.class);
        suite.addTestSuite(MavenITmng4087PercentEncodedFileUrlTest.class);
        suite.addTestSuite(MavenITmng4072InactiveProfileReposTest.class);
        suite.addTestSuite(MavenITmng4070WhitespaceTrimmingTest.class);
        suite.addTestSuite(MavenITmng4068AuthenticatedMirrorTest.class);
        suite.addTestSuite(MavenITmng4056ClassifierBasedDepResolutionFromReactorTest.class);
        suite.addTestSuite(MavenITmng4053PluginConfigAttributesTest.class);
        suite.addTestSuite(MavenITmng4052ReactorAwareImportScopeTest.class);
        suite.addTestSuite(MavenITmng4048VersionRangeReactorResolutionTest.class);
        suite.addTestSuite(MavenITmng4040ProfileInjectedModulesTest.class);
        suite.addTestSuite(MavenITmng4036ParentResolutionFromSettingsRepoTest.class);
        suite.addTestSuite(MavenITmng4034ManagedProfileDependencyTest.class);
        suite.addTestSuite(MavenITmng4026ReactorDependenciesOrderTest.class);
        suite.addTestSuite(MavenITmng4023ParentProfileOneTimeInjectionTest.class);
        suite.addTestSuite(MavenITmng4022IdempotentPluginConfigMergingTest.class);
        suite.addTestSuite(MavenITmng4016PrefixedPropertyInterpolationTest.class);
        suite.addTestSuite(MavenITmng4009InheritProfileEffectsTest.class);
        suite.addTestSuite(MavenITmng4008MergedFilterOrderTest.class);
        suite.addTestSuite(MavenITmng4007PlatformFileSeparatorTest.class);
        suite.addTestSuite(MavenITmng4005UniqueDependencyKeyTest.class);
        suite.addTestSuite(MavenITmng4000MultiPluginExecutionsTest.class);
        suite.addTestSuite(MavenITmng3998PluginExecutionConfigTest.class);
        suite.addTestSuite(MavenITmng3991ValidDependencyScopeTest.class);
        suite.addTestSuite(MavenITmng3983PluginResolutionFromProfileReposTest.class);
        suite.addTestSuite(MavenITmng3979ElementJoinTest.class);
        suite.addTestSuite(MavenITmng3974MirrorOrderingTest.class);
        suite.addTestSuite(MavenITmng3970DepResolutionFromProfileReposTest.class);
        suite.addTestSuite(MavenITmng3955EffectiveSettingsTest.class);
        suite.addTestSuite(MavenITmng3953AuthenticatedDeploymentTest.class);
        suite.addTestSuite(MavenITmng3951AbsolutePathsTest.class);
        suite.addTestSuite(MavenITmng3948ParentResolutionFromProfileReposTest.class);
        suite.addTestSuite(MavenITmng3947PluginDefaultExecutionConfigTest.class);
        suite.addTestSuite(MavenITmng3944BasedirInterpolationTest.class);
        suite.addTestSuite(MavenITmng3943PluginExecutionInheritanceTest.class);
        suite.addTestSuite(MavenITmng3941ExecutionProjectRestrictedToForkingMojoTest.class);
        suite.addTestSuite(MavenITmng3940EnvVarInterpolationTest.class);
        suite.addTestSuite(MavenITmng3938MergePluginExecutionsTest.class);
        suite.addTestSuite(MavenITmng3937MergedPluginExecutionGoalsTest.class);
        suite.addTestSuite(MavenITmng3927PluginDefaultExecutionConfigTest.class);
        suite.addTestSuite(MavenITmng3925MergedPluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng3924XmlMarkupInterpolationTest.class);
        suite.addTestSuite(MavenITmng3916PluginExecutionInheritanceTest.class);
        suite.addTestSuite(MavenITmng3906MergedPluginClassPathOrderingTest.class);
        suite.addTestSuite(MavenITmng3904NestedBuildDirInterpolationTest.class);
        suite.addTestSuite(MavenITmng3900ProfilePropertiesInterpolationTest.class);
        suite.addTestSuite(MavenITmng3899ExtensionInheritanceTest.class);
        suite.addTestSuite(MavenITmng3892ReleaseDeploymentTest.class);
        suite.addTestSuite(MavenITmng3887PluginExecutionOrderTest.class);
        suite.addTestSuite(MavenITmng3886ExecutionGoalsOrderTest.class);
        suite.addTestSuite(MavenITmng3877BasedirAlignedModelTest.class);
        suite.addTestSuite(MavenITmng3873MultipleExecutionGoalsTest.class);
        suite.addTestSuite(MavenITmng3872ProfileActivationInRelocatedPomTest.class);
        suite.addTestSuite(MavenITmng3866PluginConfigInheritanceTest.class);
        suite.addTestSuite(MavenITmng3864PerExecPluginConfigTest.class);
        suite.addTestSuite(MavenITmng3863AutoPluginGroupIdTest.class);
        suite.addTestSuite(MavenITmng3853ProfileInjectedDistReposTest.class);
        suite.addTestSuite(MavenITmng3852PluginConfigWithHeterogeneousListTest.class);
        suite.addTestSuite(MavenITmng3846PomInheritanceUrlAdjustmentTest.class);
        suite.addTestSuite(MavenITmng3845LimitedPomInheritanceTest.class);
        suite.addTestSuite(MavenITmng3843PomInheritanceTest.class);
        suite.addTestSuite(MavenITmng3839PomParsingCoalesceTextTest.class);
        suite.addTestSuite(MavenITmng3838EqualPluginDepsTest.class);
        suite.addTestSuite(MavenITmng3836PluginConfigInheritanceTest.class);
        suite.addTestSuite(MavenITmng3833PomInterpolationDataFlowChainTest.class);
        suite.addTestSuite(MavenITmng3831PomInterpolationTest.class);
        suite.addTestSuite(MavenITmng3827PluginConfigTest.class);
        suite.addTestSuite(MavenITmng3822BasedirAlignedInterpolationTest.class);
        suite.addTestSuite(MavenITmng3821EqualPluginExecIdsTest.class);
        suite.addTestSuite(MavenITmng3814BogusProjectCycleTest.class);
        suite.addTestSuite(MavenITmng3813PluginClassPathOrderingTest.class);
        suite.addTestSuite(MavenITmng3811ReportingPluginConfigurationInheritanceTest.class);
        suite.addTestSuite(MavenITmng3810BadProfileActivationTest.class);
        suite.addTestSuite(MavenITmng3808ReportInheritanceOrderingTest.class);
        suite.addTestSuite(MavenITmng3807PluginConfigExpressionEvaluationTest.class);
        suite.addTestSuite(MavenITmng3805ExtensionClassPathOrderingTest.class);
        suite.addTestSuite(MavenITmng3796ClassImportInconsistencyTest.class);
        suite.addTestSuite(MavenITmng3775ConflictResolutionBacktrackingTest.class);
        suite.addTestSuite(MavenITmng3769ExclusionRelocatedTransdepsTest.class);
        suite.addTestSuite(MavenITmng3766ToolchainsFromExtensionTest.class);
        suite.addTestSuite(MavenITmng3748BadSettingsXmlTest.class);
        suite.addTestSuite(MavenITmng3747PrefixedPathExpressionTest.class);
        suite.addTestSuite(MavenITmng3746POMPropertyOverrideTest.class);
        suite.addTestSuite(MavenITmng3740SelfReferentialReactorProjectsTest.class);
        suite.addTestSuite(MavenITmng3732ActiveProfilesTest.class);
        suite.addTestSuite(MavenITmng3729MultiForkAggregatorsTest.class);
        suite.addTestSuite(MavenITmng3724ExecutionProjectSyncTest.class);
        suite.addTestSuite(MavenITmng3723ConcreteParentProjectTest.class);
        suite.addTestSuite(MavenITmng3719PomExecutionOrderingTest.class);
        suite.addTestSuite(MavenITmng3716AggregatorForkingTest.class);
        suite.addTestSuite(MavenITmng3714ToolchainsCliOptionTest.class);
        suite.addTestSuite(MavenITmng3710PollutedClonedPluginsTest.class);
        suite.addTestSuite(MavenITmng3703ExecutionProjectWithRelativePathsTest.class);
        suite.addTestSuite(MavenITmng3701ImplicitProfileIdTest.class);
        suite.addTestSuite(MavenITmng3694ReactorProjectsDynamismTest.class);
        suite.addTestSuite(MavenITmng3693PomFileBasedirChangeTest.class);
        suite.addTestSuite(MavenITmng3684BuildPluginParameterTest.class);
        suite.addTestSuite(MavenITmng3680InvalidDependencyPOMTest.class);
        suite.addTestSuite(MavenITmng3679PluginExecIdInterpolationTest.class);
        suite.addTestSuite(MavenITmng3671PluginLevelDepInterpolationTest.class);
        suite.addTestSuite(MavenITmng3667ResolveDepsWithBadPomVersionTest.class);
        suite.addTestSuite(MavenITmng3652UserAgentHeaderTest.class);
        suite.addTestSuite(MavenITmng3645POMSyntaxErrorTest.class);
        suite.addTestSuite(MavenITmng3642DynamicResourcesTest.class);
        suite.addTestSuite(MavenITmng3641ProfileActivationWarningTest.class);
        suite.addTestSuite(MavenITmng3621UNCInheritedPathsTest.class);
        suite.addTestSuite(MavenITmng3607ClassLoadersUseValidUrlsTest.class);
        suite.addTestSuite(MavenITmng3600DeploymentModeDefaultsTest.class);
        suite.addTestSuite(MavenITmng3599useHttpProxyForWebDAVMk2Test.class);
        suite.addTestSuite(MavenITmng3586SystemScopePluginDependencyTest.class);
        suite.addTestSuite(MavenITmng3581PluginUsesWagonDependencyTest.class);
        suite.addTestSuite(MavenITmng3575HexadecimalOctalPluginParameterConfigTest.class);
        suite.addTestSuite(MavenITmng3545ProfileDeactivationTest.class);
        suite.addTestSuite(MavenITmng3536AppendedAbsolutePathsTest.class);
        suite.addTestSuite(MavenITmng3535SelfReferentialPropertiesTest.class);
        suite.addTestSuite(MavenITmng3529QuotedCliArgTest.class);
        suite.addTestSuite(MavenITmng3506ArtifactHandlersFromPluginsTest.class);
        suite.addTestSuite(MavenITmng3503Xpp3ShadingTest.class);
        suite.addTestSuite(MavenITmng3498ForkToOtherMojoTest.class);
        suite.addTestSuite(MavenITmng3485OverrideWagonExtensionTest.class);
        suite.addTestSuite(MavenITmng3482DependencyPomInterpolationTest.class);
        suite.addTestSuite(MavenITmng3477DependencyResolutionErrorMessageTest.class);
        suite.addTestSuite(MavenITmng3475BaseAlignedDirTest.class);
        suite.addTestSuite(MavenITmng3470StrictChecksumVerificationOfDependencyPomTest.class);
        suite.addTestSuite(MavenITmng3461MirrorMatchingTest.class);
        suite.addTestSuite(MavenITmng3441MetadataUpdatedFromDeploymentRepositoryTest.class);
        suite.addTestSuite(MavenITmng3422ActiveComponentCollectionTest.class);
        suite.addTestSuite(MavenITmng3415JunkRepositoryMetadataTest.class);
        suite.addTestSuite(MavenITmng3401CLIDefaultExecIdTest.class);
        suite.addTestSuite(MavenITmng3396DependencyManagementForOverConstrainedRangesTest.class);
        suite.addTestSuite(MavenITmng3394POMPluginVersionDominanceTest.class);
        suite.addTestSuite(MavenITmng3380ManagedRelocatedTransdepsTest.class);
        suite.addTestSuite(MavenITmng3379ParallelArtifactDownloadsTest.class);
        suite.addTestSuite(MavenITmng3372DirectInvocationOfPluginsTest.class);
        suite.addTestSuite(MavenITmng3355TranslatedPathInterpolationTest.class);
        suite.addTestSuite(MavenITmng3331ModulePathNormalizationTest.class);
        suite.addTestSuite(MavenITmng3314OfflineSnapshotsTest.class);
        suite.addTestSuite(MavenITmng3297DependenciesNotLeakedToMojoTest.class);
        suite.addTestSuite(MavenITmng3288SystemScopeDirTest.class);
        suite.addTestSuite(MavenITmng3284UsingCachedPluginsTest.class);
        suite.addTestSuite(MavenITmng3268MultipleHyphenPCommandLineTest.class);
        suite.addTestSuite(MavenITmng3259DepsDroppedInMultiModuleBuildTest.class);
        suite.addTestSuite(MavenITmng3220ImportScopeTest.class);
        suite.addTestSuite(MavenITmng3217InterPluginDependencyTest.class);
        suite.addTestSuite(MavenITmng3208ProfileAwareReactorSortingTest.class);
        suite.addTestSuite(MavenITmng3203DefaultLifecycleExecIdTest.class);
        suite.addTestSuite(MavenITmng3183LoggingToFileTest.class);
        suite.addTestSuite(MavenITmng3139UseCachedMetadataOfBlacklistedRepoTest.class);
        suite.addTestSuite(MavenITmng3133UrlNormalizationNotBeforeInterpolationTest.class);
        suite.addTestSuite(MavenITmng3122ActiveProfilesNoDuplicatesTest.class);
        suite.addTestSuite(MavenITmng3118TestClassPathOrderTest.class);
        suite.addTestSuite(MavenITmng3099SettingsProfilesWithNoPomTest.class);
        suite.addTestSuite(MavenITmng3052DepRepoAggregationTest.class);
        suite.addTestSuite(MavenITmng3043BestEffortReactorResolutionTest.class);
        suite.addTestSuite(MavenITmng3023ReactorDependencyResolutionTest.class);
        suite.addTestSuite(MavenITmng3012CoreClassImportTest.class);
        suite.addTestSuite(MavenITmng3004ReactorFailureBehaviorMultithreadedTest.class);
        suite.addTestSuite(MavenITmng2994SnapshotRangeRepositoryTest.class);
        suite.addTestSuite(MavenITmng2972OverridePluginDependencyTest.class);
        suite.addTestSuite(MavenITmng2926PluginPrefixOrderTest.class);
        suite.addTestSuite(MavenITmng2921ActiveAttachedArtifactsTest.class);
        suite.addTestSuite(MavenITmng2892HideCorePlexusUtilsTest.class);
        suite.addTestSuite(MavenITmng2871PrePackageSubartifactResolutionTest.class);
        suite.addTestSuite(MavenITmng2865MirrorWildcardTest.class);
        suite.addTestSuite(MavenITmng2861RelocationsAndRangesTest.class);
        suite.addTestSuite(MavenITmng2848ProfileActivationByEnvironmentVariableTest.class);
        suite.addTestSuite(MavenITmng2843PluginConfigPropertiesInjectionTest.class);
        suite.addTestSuite(MavenITmng2831CustomArtifactHandlerAndCustomLifecycleTest.class);
        suite.addTestSuite(MavenITmng2820PomCommentsTest.class);
        suite.addTestSuite(MavenITmng2790LastUpdatedMetadataTest.class);
        suite.addTestSuite(MavenITmng2749ExtensionAvailableToPluginTest.class);
        suite.addTestSuite(MavenITmng2744checksumVerificationTest.class);
        suite.addTestSuite(MavenITmng2741PluginMetadataResolutionErrorMessageTest.class);
        suite.addTestSuite(MavenITmng2739RequiredRepositoryElementsTest.class);
        suite.addTestSuite(MavenITmng2738ProfileIdCollidesWithCliOptionTest.class);
        suite.addTestSuite(MavenITmng2720SiblingClasspathArtifactsTest.class);
        suite.addTestSuite(MavenITmng2695OfflinePluginSnapshotsTest.class);
        suite.addTestSuite(MavenITmng2693SitePluginRealmTest.class);
        suite.addTestSuite(MavenITmng2690MojoLoadingErrorsTest.class);
        suite.addTestSuite(MavenITmng2668UsePluginDependenciesForSortingTest.class);
        suite.addTestSuite(MavenITmng2605BogusProfileActivationTest.class);
        suite.addTestSuite(MavenITmng2591MergeInheritedPluginConfigTest.class);
        suite.addTestSuite(MavenITmng2577SettingsXmlInterpolationTest.class);
        suite.addTestSuite(MavenITmng2576MakeLikeReactorTest.class);
        suite.addTestSuite(MavenITmng2562Timestamp322Test.class);
        suite.addTestSuite(MavenITmng2486TimestampedDependencyVersionInterpolationTest.class);
        suite.addTestSuite(MavenITmng2432PluginPrefixOrderTest.class);
        suite.addTestSuite(MavenITmng2387InactiveProxyTest.class);
        suite.addTestSuite(MavenITmng2363BasedirAwareFileActivatorTest.class);
        suite.addTestSuite(MavenITmng2362DeployedPomEncodingTest.class);
        suite.addTestSuite(MavenITmng2339BadProjectInterpolationTest.class);
        suite.addTestSuite(MavenITmng2318LocalParentResolutionTest.class);
        suite.addTestSuite(MavenITmng2309ProfileInjectionOrderTest.class);
        suite.addTestSuite(MavenITmng2305MultipleProxiesTest.class);
        suite.addTestSuite(MavenITmng2277AggregatorAndResolutionPluginsTest.class);
        suite.addTestSuite(MavenITmng2276ProfileActivationBySettingsPropertyTest.class);
        suite.addTestSuite(MavenITmng2254PomEncodingTest.class);
        suite.addTestSuite(MavenITmng2234ActiveProfilesFromSettingsTest.class);
        suite.addTestSuite(MavenITmng2228ComponentInjectionTest.class);
        suite.addTestSuite(MavenITmng2222OutputDirectoryReactorResolutionTest.class);
        suite.addTestSuite(MavenITmng2201PluginConfigInterpolationTest.class);
        suite.addTestSuite(MavenITmng2199ParentVersionRangeTest.class);
        suite.addTestSuite(MavenITmng2196ParentResolutionTest.class);
        suite.addTestSuite(MavenITmng2174PluginDepsManagedByParentProfileTest.class);
        suite.addTestSuite(MavenITmng2140ReactorAwareDepResolutionWhenForkTest.class);
        suite.addTestSuite(MavenITmng2136ActiveByDefaultProfileTest.class);
        suite.addTestSuite(MavenITmng2135PluginBuildInReactorTest.class);
        suite.addTestSuite(MavenITmng2130ParentLookupFromReactorCacheTest.class);
        suite.addTestSuite(MavenITmng2124PomInterpolationWithParentValuesTest.class);
        suite.addTestSuite(MavenITmng2123VersionRangeDependencyTest.class);
        suite.addTestSuite(MavenITmng2103PluginExecutionInheritanceTest.class);
        suite.addTestSuite(MavenITmng2098VersionRangeSatisfiedFromWrongRepoTest.class);
        suite.addTestSuite(MavenITmng2068ReactorRelativeParentsTest.class);
        suite.addTestSuite(MavenITmng2054PluginExecutionInheritanceTest.class);
        suite.addTestSuite(MavenITmng2052InterpolateWithSettingsProfilePropertiesTest.class);
        suite.addTestSuite(MavenITmng2045testJarDependenciesBrokenInReactorTest.class);
        suite.addTestSuite(MavenITmng2006ChildPathAwareUrlInheritanceTest.class);
        suite.addTestSuite(MavenITmng1995InterpolateBooleanModelElementsTest.class);
        suite.addTestSuite(MavenITmng1992SystemPropOverridesPomPropTest.class);
        suite.addTestSuite(MavenITmng1957JdkActivationWithVersionRangeTest.class);
        suite.addTestSuite(MavenITmng1895ScopeConflictResolutionTest.class);
        suite.addTestSuite(MavenITmng1803PomValidationErrorIncludesLineNumberTest.class);
        suite.addTestSuite(MavenITmng1751ForcedMetadataUpdateDuringDeploymentTest.class);
        suite.addTestSuite(MavenITmng1703PluginMgmtDepInheritanceTest.class);
        suite.addTestSuite(MavenITmng1701DuplicatePluginTest.class);
        suite.addTestSuite(MavenITmng1493NonStandardModulePomNamesTest.class);
        suite.addTestSuite(MavenITmng1491ReactorArtifactIdCollisionTest.class);
        suite.addTestSuite(MavenITmng1415QuotedSystemPropertiesTest.class);
        suite.addTestSuite(MavenITmng1412DependenciesOrderTest.class);
        suite.addTestSuite(MavenITmng1349ChecksumFormatsTest.class);
        suite.addTestSuite(MavenITmng1323AntrunDependenciesTest.class);
        suite.addTestSuite(MavenITmng1233WarDepWithProvidedScopeTest.class);
        suite.addTestSuite(MavenITmng1144MultipleDefaultGoalsTest.class);
        suite.addTestSuite(MavenITmng1142VersionRangeIntersectionTest.class);
        suite.addTestSuite(MavenITmng1088ReactorPluginResolutionTest.class);
        suite.addTestSuite(MavenITmng1073AggregatorForksReactorTest.class);
        suite.addTestSuite(MavenITmng1052PluginMgmtConfigTest.class);
        suite.addTestSuite(MavenITmng1021EqualAttachmentBuildNumberTest.class);
        suite.addTestSuite(MavenITmng0985NonExecutedPluginMgmtGoalsTest.class);
        suite.addTestSuite(MavenITmng0956ComponentInjectionViaProjectLevelPluginDepTest.class);
        suite.addTestSuite(MavenITmng0947OptionalDependencyTest.class);
        suite.addTestSuite(MavenITmng0870ReactorAwarePluginDiscoveryTest.class);
        suite.addTestSuite(MavenITmng0866EvaluateDefaultValueTest.class);
        suite.addTestSuite(MavenITmng0848UserPropertyOverridesDefaultValueTest.class);
        suite.addTestSuite(MavenITmng0836PluginParentResolutionTest.class);
        suite.addTestSuite(MavenITmng0828PluginConfigValuesInDebugTest.class);
        suite.addTestSuite(MavenITmng0823MojoContextPassingTest.class);
        suite.addTestSuite(MavenITmng0820ConflictResolutionTest.class);
        suite.addTestSuite(MavenITmng0818WarDepsNotTransitiveTest.class);
        suite.addTestSuite(MavenITmng0814ExplicitProfileActivationTest.class);
        suite.addTestSuite(MavenITmng0786ProfileAwareReactorTest.class);
        suite.addTestSuite(MavenITmng0781PluginConfigVsExecConfigTest.class);
        suite.addTestSuite(MavenITmng0773SettingsProfileReactorPollutionTest.class);
        suite.addTestSuite(MavenITmng0768OfflineModeTest.class);
        suite.addTestSuite(MavenITmng0761MissingSnapshotDistRepoTest.class);
        suite.addTestSuite(MavenITmng0680ParentBasedirTest.class);
        suite.addTestSuite(MavenITmng0674PluginParameterAliasTest.class);
        suite.addTestSuite(MavenITmng0666IgnoreLegacyPomTest.class);
        suite.addTestSuite(MavenITmng0557UserSettingsCliOptionTest.class);
        suite.addTestSuite(MavenITmng0553SettingsAuthzEncryptionTest.class);
        suite.addTestSuite(MavenITmng0522InheritedPluginMgmtConfigTest.class);
        suite.addTestSuite(MavenITmng0507ArtifactRelocationTest.class);
        suite.addTestSuite(MavenITmng0505VersionRangeTest.class);
        suite.addTestSuite(MavenITmng0496IgnoreUnknownPluginParametersTest.class);
        suite.addTestSuite(MavenITmng0479OverrideCentralRepoTest.class);
        suite.addTestSuite(MavenITmng0471CustomLifecycleTest.class);
        suite.addTestSuite(MavenITmng0469ReportConfigTest.class);
        suite.addTestSuite(MavenITmng0461TolerateMissingDependencyPomTest.class);
        suite.addTestSuite(MavenITmng0449PluginVersionResolutionTest.class);
        suite.addTestSuite(MavenITmng0377PluginLookupFromPrefixTest.class);
        suite.addTestSuite(MavenITmng0294MergeGlobalAndUserSettingsTest.class);
        suite.addTestSuite(MavenITmng0282NonReactorExecWhenProjectIndependentTest.class);
        suite.addTestSuite(MavenITmng0249ResolveDepsFromReactorTest.class);
        suite.addTestSuite(MavenITmng0187CollectedProjectsTest.class);
        suite.addTestSuite(MavenITmng0095ReactorFailureBehaviorTest.class);
        suite.addTestSuite(MavenIT0199CyclicImportScopeTest.class);
        suite.addTestSuite(MavenIT0146InstallerSnapshotNaming.class);
        suite.addTestSuite(MavenIT0144LifecycleExecutionOrderTest.class);
        suite.addTestSuite(MavenIT0143TransitiveDependencyScopesTest.class);
        suite.addTestSuite(MavenIT0142DirectDependencyScopesTest.class);
        suite.addTestSuite(MavenIT0140InterpolationWithPomPrefixTest.class);
        suite.addTestSuite(MavenIT0139InterpolationWithProjectPrefixTest.class);
        suite.addTestSuite(MavenIT0138PluginLifecycleTest.class);
        suite.addTestSuite(MavenIT0137EarLifecycleTest.class);
        suite.addTestSuite(MavenIT0136RarLifecycleTest.class);
        suite.addTestSuite(MavenIT0135EjbLifecycleTest.class);
        suite.addTestSuite(MavenIT0134WarLifecycleTest.class);
        suite.addTestSuite(MavenIT0133JarLifecycleTest.class);
        suite.addTestSuite(MavenIT0132PomLifecycleTest.class);
        suite.addTestSuite(MavenIT0131SiteLifecycleTest.class);
        suite.addTestSuite(MavenIT0130CleanLifecycleTest.class);
        suite.addTestSuite(MavenIT0113ServerAuthzAvailableToWagonMgrInPluginTest.class);
        suite.addTestSuite(MavenIT0090EnvVarInterpolationTest.class);
        suite.addTestSuite(MavenIT0087PluginRealmWithProjectLevelDepsTest.class);
        suite.addTestSuite(MavenIT0086PluginRealmTest.class);
        suite.addTestSuite(MavenIT0085TransitiveSystemScopeTest.class);
        suite.addTestSuite(MavenIT0072InterpolationWithDottedPropertyTest.class);
        suite.addTestSuite(MavenIT0071PluginConfigWithDottedPropertyTest.class);
        suite.addTestSuite(MavenIT0064MojoConfigViaSettersTest.class);
        suite.addTestSuite(MavenIT0063SystemScopeDependencyTest.class);
        suite.addTestSuite(MavenIT0056MultipleGoalExecutionsTest.class);
        suite.addTestSuite(MavenIT0052ReleaseProfileTest.class);
        suite.addTestSuite(MavenIT0051ReleaseProfileTest.class);
        suite.addTestSuite(MavenIT0041ArtifactTypeFromPluginExtensionTest.class);
        suite.addTestSuite(MavenIT0040PackagingFromPluginExtensionTest.class);
        suite.addTestSuite(MavenIT0038AlternatePomFileDifferentDirTest.class);
        suite.addTestSuite(MavenIT0037AlternatePomFileSameDirTest.class);
        suite.addTestSuite(MavenIT0032MavenPrerequisiteTest.class);
        suite.addTestSuite(MavenIT0030DepPomDepMgmtInheritanceTest.class);
        suite.addTestSuite(MavenIT0025MultipleExecutionLevelConfigsTest.class);
        suite.addTestSuite(MavenIT0024MultipleGoalExecutionsTest.class);
        suite.addTestSuite(MavenIT0023SettingsProfileTest.class);
        suite.addTestSuite(MavenIT0021PomProfileTest.class);
        suite.addTestSuite(MavenIT0019PluginVersionMgmtBySuperPomTest.class);
        suite.addTestSuite(MavenIT0018DependencyManagementTest.class);
        suite.addTestSuite(MavenIT0012PomInterpolationTest.class);
        suite.addTestSuite(MavenIT0011DefaultVersionByDependencyManagementTest.class);
        suite.addTestSuite(MavenIT0010DependencyClosureResolutionTest.class);
        suite.addTestSuite(MavenIT0009GoalConfigurationTest.class);
        suite.addTestSuite(MavenIT0008SimplePluginTest.class);
        /*
         * Add tests in reverse alpha order above.
         */
    }

    void addTestSuite(Class<?> clazz) {
        addTestSuite(clazz, tests.size());
    }

    void addTestSuite(Class<?> clazz, int order) {
        tests.put(clazz, order);
    }

    int getIndex(ClassDescriptor cd) {
        Integer i = tests.get(cd.getTestClass());
        return i != null ? i : -1;
    }

    public void orderClasses(ClassOrdererContext context) {
        context.getClassDescriptors().stream()
                .filter(cd -> !MISSED_TESTS.contains(cd.getTestClass()))
                .filter(cd -> getIndex(cd) == -1)
                .filter(cd ->
                        cd.findRepeatableAnnotations(Tag.class).stream().noneMatch(t -> "disabled".equals(t.value())))
                .forEach(cd -> {
                    out.println("Test " + cd.getTestClass()
                            + " is not present in TestSuiteOrdering " + System.lineSeparator()
                            + "\t- please add it or annotate with @Tag(\"disabled\")" + System.lineSeparator());
                    MISSED_TESTS.add(cd.getTestClass());
                });

        context.getClassDescriptors().sort(Comparator.comparing(this::getIndex));
    }
}
