changedetection

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
On CI redirect maven central queries to local repo for integration tests

    • -3
    • +1
    ./state/TaskTypeUpToDateIntegrationTest.groovy
  1. … 108 more files in changeset.
Introduce `@ToBeImplemented` (#2643)

The `@ToBeImplemented` annotation replaces Groovy's `@NotYetImplemented`.

The problem with `NotYetImplemented` is that tests marked with it succeed no matter what causes the test to fail. Marked tests can pass because the expected failure is still present (which is the purpose of the test), or if the expected failure is replaced by some other failure.

It's better to write a test that explicitly tests for the expected failure, so when it fails for some other reason, it becomes noticeable. The purpose of the `@ToBeImplemented` annotation is to keep such tests easy to find in the code.

    • -3
    • +4
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 9 more files in changeset.
Simplify output file detection if there are no overlapping outputs (#2490)

If there are no overlapping outputs, we can just use all the declared

outputs as output files and do not need to filter since the task under

question has exclusive access to the directory/files.

We now ignore missing files in output properties, for these two ways

of snapshotting a directory (output file detection and regular snapshotting)

to be identical.

    • -4
    • +0
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 40 more files in changeset.
Detect overlapping files for cacheable tasks

When two tasks overwrite one another, enforcing overlap detection doesn't

really make sense (because the outcome is the same).

But when two tasks append to a single output file, we should disable caching

because the order of the two tasks executing matters more.

+review REVIEW-6522

    • -8
    • +8
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 3 more files in changeset.
Extract test fixture for HttpBuildCache

    • -2
    • +2
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 21 more files in changeset.
Add more coverage for the mixed fileTask/dirTask overlapping output tests

+review REVIEW-6493

    • -1
    • +11
    ./rules/OverlappingOutputsIntegrationTest.groovy
Simplify overlapping output file integ test helper

+review REVIEW-6493

    • -27
    • +14
    ./rules/OverlappingOutputsIntegrationTest.groovy
Add more reasoning for why we ignore directories when checking for overlaps

+review REVIEW-6493

    • -0
    • +2
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 1 more file in changeset.
Rework all of the overlapping tests to be more clear

+review REVIEW-6493

    • -206
    • +275
    ./rules/OverlappingOutputsIntegrationTest.groovy
Detect overlapping inputs in a simple way

- Detect overlapping outputs after creating the "before execution" snapshot of outputs

- Add an OVERLAPPING_OUTPUTS caching reason

- Fix existing integration tests that are effected by overlapping outputs

+review REVIEW-6493

    • -5
    • +14
    ./rules/OverlappingOutputsIntegrationTest.groovy
  1. … 13 more files in changeset.
Add failing tests for overlapping outputs

+review REVIEW-6493

    • -0
    • +482
    ./rules/OverlappingOutputsIntegrationTest.groovy
Added special case handling for snapshots of values of array types, instead of snapshotting by serializing the entire array using Java serialization.

    • -11
    • +14
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
    • -3
    • +6
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 7 more files in changeset.
Added special case handling for snapshots of values of type `Enum<?>` and `File`, instead of snapshotting by serializing the value using Java serialization.

    • -0
    • +16
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 8 more files in changeset.
Added special case handling for snapshots of values of type `Set<?>` and `Integer`, instead of snapshotting by serializing the value using Java serialization. This change also means we can handle a `Set` that contains values loaded from several different `ClassLoaders`.

    • -2
    • +9
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
    • -2
    • +9
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 10 more files in changeset.
Added some more test coverage for using `List` of various types for task input property values.

    • -0
    • +72
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
    • -0
    • +76
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 1 more file in changeset.
Added some test coverage to verify task is considered out of date when the type of an input property value changes.

    • -1
    • +3
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
  1. … 1 more file in changeset.
Changes to honor type's `equals()` method for task input property values. Also consider a value changed if the implementation classpath has changed since the previous execution.

    • -6
    • +67
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
    • -2
    • +48
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 12 more files in changeset.
Added some test coverage that the `equals()` method on a custom type is honored when checking task input property value for changes.

    • -0
    • +65
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
  1. … 1 more file in changeset.
Introduced a type that represents a snapshot of the value of a task input property, used as part of the task history held in-memory and persisted to the file system.

This change introduces the type however for now the 'snapshot' simply a wrapper around the (potentially mutable) value.

    • -20
    • +49
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
  1. … 10 more files in changeset.
Added a bunch more coverage for using custom types for task input properties.

    • -0
    • +194
    ./state/TaskCustomTypesInputPropertyIntegrationTest.groovy
    • -13
    • +225
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
  1. … 2 more files in changeset.
Removed some cases of messing with file timestamps in tests. These should not be required any more.

    • -5
    • +0
    ./state/TaskTypeUpToDateIntegrationTest.groovy
  1. … 5 more files in changeset.
Removed trace from int tests.

    • -6
    • +0
    ./state/TaskTypeUpToDateIntegrationTest.groovy
  1. … 2 more files in changeset.
Merge branch 'release'

    • -3
    • +18
    ./state/TaskTypeUpToDateIntegrationTest.groovy
Added some trace to int test.

    • -2
    • +12
    ./state/TaskTypeUpToDateIntegrationTest.groovy
Added some further trace to hunt down flaky test.

    • -0
    • +2
    ./state/TaskTypeUpToDateIntegrationTest.groovy
  1. … 2 more files in changeset.
Added some diagnostics to flaky test.

    • -1
    • +4
    ./state/TaskTypeUpToDateIntegrationTest.groovy
Fix flakiness of TaskTypeUpToDateIntegrationTest

My theory is that the second run of the copy task after the

change was not up to date (that was the error reported in the

flaky tests) since when snapshotting the task outputs after the

second copy task given that the old output has been there before

the cache thinks that we do not need to snapshot since less a

second passed since the output file has been created. Then

we would record the output file with the state at the beginning

of the copy task and the second run would then mark it as

out of date since the output changed.

    • -0
    • +10
    ./state/TaskTypeUpToDateIntegrationTest.groovy
Fix flakiness of TaskTypeUpToDateIntegrationTest

We fail to discover sub second modification times for files.

Make sure the changed files have at least two seconds difference

in modification time.

    • -0
    • +5
    ./state/TaskTypeUpToDateIntegrationTest.groovy
Run test only in embedded mode for now.

    • -1
    • +1
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy
Don't run test when not using a long running build process

    • -0
    • +3
    ./state/TaskEnumTypesInputPropertyIntegrationTest.groovy