Problem/Motivation

InstallUninstallTest is a general smoke test that enables then uninstalls every module one by one via the UI, then enables every module via the UI a second time.

It has caught some bugs in the past, but per #2975163: InstallUninstallTest is taking 20 minutes to run it is very slow.

On gitlabCI we have reduced the time taken for a full tes run to 15-17 minutes, I estimate that at least two minutes of that are exclusively due to InstallUninstallTest which appears to take around 12 minutes or so. Because linting and unit tests run first and take about 4-5 minutes, this creates a hard floor for total test run times.

Additionally, this means that any other test optimisations we do can never improve full test run times because InstallUninstallTest will still be running even if everything else was to be done in 10 minutes.

Any bugs this test might find in the future are outweighed by it adding 20-30% to test run times. Because it it is a 'hit and hope' test that is designed to test every possible module in sequence then all together, there is not really a way to split it up either - it would just duplicate other tests then.

Steps to reproduce

Proposed resolution

We have a lot more test coverage since this was added, and modules tend to do less on install than they used to, because a lot is handled by shipped config, so just delete the test. Move the hook help checking to help module which already has a test which install every core module.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Issue fork drupal-3386448

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

catch created an issue. See original summary.

catch’s picture

catch’s picture

Status: Active » Needs review

Help topics test already installs and uninstalls every module. I have moved the hook help verification from InstallUninstallTest to help module so we don't lose that coverage.

That means the only coverage we lose here is trying to reinstall all modules at once after they've previously been uninstalled.

catch’s picture

Issue summary: View changes

andypost’s picture

catch’s picture

smustgrave’s picture

Status: Needs review » Needs work

Seem test failure could be legit.

catch’s picture

Status: Needs work » Needs review

Need to ignore hidden modules.

Also I opened #3386458: Add GenericModuleTestBase and use it to test general module things which would handle one more bit of lost test coverage - if we add that base class, then every core module could test itself being installed, uninstalled, then installed again. No way to do that efficiently without making it a per-module test though so a bit of a bigger change.

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

All green!

longwave’s picture

As the finder of a reinstall bug in the past - #2534532: Cannot reinstall Forum after it was previously installed - I am kinda sad to see this go, but if we can replace it with a generic test that can be used by all modules, that would be even better. I suppose it's a shame that data providers cannot be parallelised.

alexpott’s picture

Should we not add the generic coverage suggested to replace this before / at the same time as removing it?

catch’s picture

Status: Reviewed & tested by the community » Postponed

We could probably merge this with #3386458: Add GenericModuleTestBase and use it to test general module things and remove HelpTopicsSyntaxTest at the same time. However having this MR open made #3386474: [omnibus] Speed up gitlab ci runs easier to work on, so let's instead postpone it on that issue, and close it once it gets done.

kim.pepper’s picture

Status: Postponed » Active
catch’s picture

Status: Active » Closed (duplicate)

#3386458: Add GenericModuleTestBase and use it to test general module things removed InstallUninstallTest too in the end, marking this as duplicate.