eclipse.platform icon indicating copy to clipboard operation
eclipse.platform copied to clipboard

Reactivate tests: disabled tests collection

Open HeikoKlare opened this issue 2 years ago • 2 comments

Current Situation

Several tests have been deactivated over the years for different reasons, such as temporary incompatibilities with a specific platform/OS, bugs in the code, indeterministic behavior of the test etc.

These disablements are done by adding some prefix to test... methods in JUnit 3, by removing or commenting out @Test in JUnit 4 and 5, or by using @Ignore or @Disabled. In addition, several tests are only deactivated for specific platforms using early returns or assume statements within the test methods.

Goal

Since in most cases there is no additional, unique documentation or tagging of these disablements, they are not easy to find. This issue is supposed to be an umbrella to document disabled tests (existing ones and potentially further ones).

The purpose of this issue is to collect the disabled tests to have a central overview and provide the chance to reactivate and, if necessary, fix them. It also serves as a "good first issue" (see https://github.com/eclipse-platform/eclipse.platform.text/pull/212#issuecomment-1594576748) for interested new contributors, which can take any of the collected tests and try to fix them to learn about the Eclipse platform code while, at the same time, already having the chance to make valuable contributions to the project.

Process

I see the following ideas as good starting points for identifying disabled tests:

  • First concentrate on a single project, such as org.eclipse.core.tests.resources
  • Use different techniques to find disabled tests:
    1. Completely disabled tests:
      • Search for missing or commented out @Test annotation (JUnit 4 and 5)
      • Search for tests not starting with test (JUnit 3), in particular those starting with _test
    2. Tests disabled for specific platforms:
      • Search for accesses to OS constants in Platform, such as OS_WIN32 and validate if they are used to disable tests for specific platforms
      • Search for accesses to methods isLinux() etc. in ResourceTest subclasses and validate if they are used to disable tests for specific platforms
      • Search for assumeFalse or assumeTrue statements that make tests only run on specific platforms

Examples

  • The tests modified in https://github.com/eclipse-platform/eclipse.platform.text/pull/212
  • Tests in org.eclipse.core.tests.resources.regression.Bug_032076
  • The skipTest helper in org.eclipse.core.tests.resources.usecase.SnapshotTest

Disabled in Maven

Some tests are disabled in Maven builds, such that integration builds do not reveal whether they fail or not.

  • [ ] The bundle org.eclipse.core.tests.net is completely disabled. Tests run fine withing Eclipse on Windows, but Tycho execution fails, probably because of missing platform-dependent fragments (maybe have a look at how SWT deals with that).
  • [ ] org.eclipse.team.tests.core.AllTeamUITests and org.eclipse.team.tests.ui.synchronize.AllTeamSynchronizeTests are not executed as the test suite only executes org.eclipse.team.tests.core.AllTeamTests. Tests run fine within Eclipse on WIndows, but Tycho fails to execute some of the ScopeTests and the AllTeamSynchronizeTest.

HeikoKlare avatar Jun 28 '23 15:06 HeikoKlare

Performing a naive search for _test, @Ignore, @Disabled, I found quite some artifacts which are worth adding to this issue

org.eclipse.core.tests.resources

org.eclipse.core.tests.runtime

Wittmaxi avatar Jun 29 '23 11:06 Wittmaxi

Addition to https://github.com/eclipse-platform/eclipse.platform/issues/525#issuecomment-1613014550. Checked tests have pending or accepted PR:

org.eclipse.core.tests.resources

org.eclipse.core.tests.runtime

org.eclipse.ant.tests.ui

org.eclipse.core.expressions.tests

org.eclipse.e4.core.tests

org.eclipse.debug.tests

org.eclipse.core.tests.net.NetTest

org.eclipse.team.tests.core

org.eclipse.tips.tests

org.eclipse.ua.tests

Michael5601 avatar Jul 31 '23 08:07 Michael5601