Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use 'implementation' dependencies everywhere

  1. … 283 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 284 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Fix test

Fix tests

  1. … 3 more files in changeset.
Fix tests

  1. … 3 more files in changeset.
Fix some wrong/deprecated test imports

Signed-off-by: Jendrik Johannes <jendrik@gradle.com>

  1. … 2 more files in changeset.
Allow the services required by a given class to be queried prior to creating any instances of that class. Use this to allow `ArtifactTransformDependencies` to be injected into artifact transforms using any of the service injection patterns (that is, via a constructor or a getter).

  1. … 127 more files in changeset.
Replace most direct usages of `DirectInstantiator` with indirect usages via `InstantiatorFactory` or test fixtures instead. This means more consistent behaviour in unit tests because the objects under test will behave more similarly to how they do at runtime. This also allows the decision of how the instantiation should behave to live in as few places as possible, so this can be more easily evolved and contextualized.

  1. … 60 more files in changeset.
Add support for excluding tests via --excludeTests

Signed-off-by: Felipe Lima <felipe.lima@gmail.com>

  1. … 13 more files in changeset.
Remove org.gradle.readLoggingConfigFile

The previouslt deprecated system property is no longer supported and

simply ignored from now on.

Resolves #6301.

  1. … 4 more files in changeset.
Allow inner class pattern match an outer class (#6812)

This fixes #5763 .

In Gradle 4.7 we made a change https://github.com/gradle/gradle/pull/4597 which pre-excludes some classes if test pattern is provided. For example, if a test pattern `org.gradle.Foo.testMethod` is provided, we can definitely exclude `org.gradle.Bar` class. However, this introduced one issue: if test pattern `EnclosingClass$NestedClass.nestedTest` is provided, we exclude `EnclosingClass` - this prevents `JUnitPlatformClassProcessor` from discovering its inner class.

This PR fixes this issue by allowing `EnclosingClass` to match a `EnclosingClass$NestedClass` pattern.

  1. … 2 more files in changeset.
Remove resource deadlock detection from build operation infrastructure, as it makes assumptions that are no longer true and does not belong at this level.

  1. … 8 more files in changeset.
Move failure diagnostics to test report

  1. … 9 more files in changeset.
Fix NPE in RestartEveryNTestClassProcessor.stopNow() (#5145)

* Fix NPE in RestartEveryNTestClassProcessor.stopNow()

* Add test verifying RestartEveryNTestClassProcessor.stopNow() after stop() does nothing

  1. … 1 more file in changeset.
Make ClassMethodNameStackTraceSpec support anonymous class matching (#4797)

Make ClassMethodNameStackTraceSpec support anonymous class matching

This fixes https://github.com/gradle/gradle/issues/4681

Previously, when TestExceptionFormatter formats test stacktraces, it tries to

find the exactly matched class/method name as stacktrace truncation point.

However, some kotlin-based tests have only anonymous classes in their stacktraces,

which makes it impossible to find the exact truncation point. This PR treats

`SomeClass$1$1$1` and `SomeClass` equally when performing class name matching.

  1. … 1 more file in changeset.
Add displayName and classDisplayName to TestDescriptor (#4425)

Add displayName and classDisplayName to TestDescriptor

This fixes https://github.com/gradle/gradle/issues/4424 and https://github.com/gradle/gradle/issues/4423

JUnit 5 introduces @DisplayName and dynamic tests, which allows users to

customize test case and test class' name. This should be taken into

account. This PR introduces `displayName` and `classDisplayName` which are

used for display. When rendering HTML reports, these two fields will be used.

  1. … 32 more files in changeset.
Improves --tests pattern matching (#4597)

We improve test pattern matching in this PR. From this PR, the test pattern matching

rule are adjusted:

- If a pattern starts with an upper-case letter, it will be used to match simple class name

e.g 'TestClass.testMethod' can match 'TestClass.testMethod' under any package.

- Otherwise, it will be used to match full qualified name.

In both cases, wildcards are supported.

  1. … 12 more files in changeset.
Run previous failed test first (#4557)

Run previous failed test first

This fixes https://github.com/gradle/gradle/issues/4450

Before the test starts, we collect all failed test classes from the result of last test, and

send them to test worker process first - this is transparent to test infrastructure because

we didn't make any guarantee about test class execution order previously.

  1. … 8 more files in changeset.
Emit build operation progress events for logging output (#4537)

* Tweak BuildOperationListener#progress api

* Use build operation id to reference progress

* Add workaround for tracing log output via build operation progress for composite builds

* Replace some Object typing of operation identifiers with OperationIdentifier.

* Associate all progress logging with the current build operation.

* Update logic to accommodate for all progress events now having build operation IDs.

* Don't allow ProgressStartEvent.buildOperationCategory to be null.

** Default it to uncategorized.

  1. … 50 more files in changeset.
Rationalise handling of “current” build operation and build operation ID

For an upcoming change to emit console logging as build operation progress events, we need to associate all progress logging with the build operation. This pulled a thread on some long overdue cleanup.

The end result is:

1. Base build operation infrastructure is consolidated org.gradle.internal.operations.

2. Mechanism for passing thread global current build operation is more test friendly, and better named.

3. A consistent mechanism is used for binding the current operation to the thread, instead of two mechanisms.

4. Build operation IDs are typed to OperationIdentifier.

There is no public API or user behaviour change.

  1. … 145 more files in changeset.
Stop test execution after first failure (#4190)

* Rough pass at stopNow() on test failure

* Updated worker TestClassProcessor.stopNow() to throw UnsupportedOperationException

* Updated MaxNParallelTestClassProcessor to keep "raw" processors for stopNow().

Updated other daemon-side TestClassProcessors to keep track if stopNow() is called.

* Added AbstractTestTask.getFailFast()

* Added some unit tests for to TestClassProcessors

* Added unit tests for stopNow()

* Rough pass at JUnitFailFastIntegrationTest

* Refactor fail fast JVM integration test.

Moved common logic/tests from JUnitFailFastIntegrationTest into AbstractJvmFailFastIntegrationSpec.

Added TestNGFailFastIntegrationTest (which extends TestNGFailFastIntegrationTest)

* Working on forkEvery fail fast test

* Converted FailFastTestListener to FailFastTestListenerInternal

* Added BlockingHttpServer.expectMaybeAndBlock()

* TestNG parallel & fail-fast integration test

* Remove unused import

* Remove unused import

* Marked test.failFast as @Input

* Added `failFast` to java_plugin in userguide

* Javadoc & formatting changes

* Updated userguide docs based on review comments

* Moved `failFast` configuration from `AbstractTestTask` to `Test` to avoid `XCTest`

* Updates from review comments

* More updates from review comments

* Reduced Mock() usage in FailFastTestListenerInternalTest

* Backed out changes to XCTestExecuter for fail fast behavior

* Fixed typo in javadoc

* Remove --no-fail-fast `@Option` from `Test`

* Reduce mocking expectations in ForkingTestClassProcessorTest

* Moved @Internal from Test.getFailFast() to AbstractTestTask

* Formatting updates

* Updated ForkingTestClassProcessor to track state more precisely to avoid stop() & stopNow() problem

* Fixed tests (again)

* Better handling of mutual exclusion between ForkingTestClassProcessor stop() and stopNow() sections

* Improved resiliency to indeterminate generated test class execution in fail fast tests

* Optimized imports

* Updated DefaultWorkerProcess.cleanup() to stop the Stoppables before aborting the execHandle

* Changed CyclicBarrierAnyOfRequestHandler.expected back to `private`

* ForkingTestClassProcessor.stoppedNow does not need to be `volatile` as it is now protected by a lock

* Added JUnitPlatformTestClassProcessor.stopNow()

* Removed mention of --no-fail-fast from user guide

* Added info on --fail-fast to release notes

* Fixed use of `testOmitted` in AbstractJvmFailFastIntegrationSpec

* Make MaxNParallelTestClassProcessor drop any processTestClass() invocations after stopNow()

* Protected critical region in ForkingTestClassProcessor.processTestClass() causing race condition with stopNow() in tests

* Debugging cleanup

  1. … 37 more files in changeset.
Fix failed tests

Fix failures on CI

  1. … 13 more files in changeset.
Add --warning to suppress deprecation warnings (#3726)

Signed-off-by: Bo Zhang <bo@gradle.com>

  1. … 31 more files in changeset.
Catch AccessControlException to avoid test worker process hanging

Partially fix https://github.com/gradle/gradle/issues/3526

If a security manager is set in test, test worker process can no longer

react to message from main process because Gradle's message dispatch mechanism

depends on reflection and socket communication. This PR fix the issue which cause

worker process to hang and provide more readable error messages

Signed-off-by: Bo Zhang <bo@gradle.com>

  1. … 6 more files in changeset.
Introduce build operation progress events, only used for conveying test output to build scans currently.

  1. … 22 more files in changeset.
Move the test build operation classes to a dedicated package.

  1. … 11 more files in changeset.