BinaryConfigurationIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -9
    • +9
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 872 more files in changeset.
Annotate integ tests failing with instant execution in :platformNative

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -0
    • +9
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 24 more files in changeset.
Annotate integ tests failing with instant execution in :platformNative

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -0
    • +9
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 24 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 50 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 98 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 98 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 50 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 98 more files in changeset.
Replace 'Matchers' with 'CoreMatchers'

So we do not require 'org.hamcrest:hamcrest-library' as additional

dependency anymore. Which was only available for most of the tests

because it leaked onto the test compile classpath.

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 162 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 283 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 284 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 285 more files in changeset.
Use 'implementation' dependencies everywhere

    • -2
    • +2
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 285 more files in changeset.
Reproduce and fix issue

We did not propagate the settings from the Software Model binary to the link shared library task

Fixes https://github.com/gradle/gradle-native/issues/368

    • -0
    • +44
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 1 more file in changeset.
Merged the C/C++ `Depend` task implementation into `AbstractNativeCompileTask`. This means that there are fewer tasks to create, configure and execute, and that the header dependency analysis happens once per binary instead of twice.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 27 more files in changeset.
Rename DiscoverInputs -> Depend

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 16 more files in changeset.
Discover inputs for software model C/C++ plugins

We now apply the plugin by default for the software model C and C++

plugins.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 9 more files in changeset.
Create discover inputs task by a plugin

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 5 more files in changeset.
Add discover inputs for cpp-lang plugin

We now also create the discover inputs task to the software model

`CppLangPlugin`.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 1 more file in changeset.
Removed `@LeaksFileHandles` from ':platform-native'

    • -6
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 17 more files in changeset.
Changed the behaviour for views of subtypes of `ModelMap` when the subject of rule, so that reads are not allowed. This is consistent with the behaviour for `ModelMap`.

    • -19
    • +17
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 11 more files in changeset.
Changed the naming scheme for output directories for native components, to simplify the paths and reduce their length. Also split up the 'binaries' directory into 'exe' and 'libs'.

    • -8
    • +8
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 58 more files in changeset.
Replaced a bunch of usages of `$('p')` with `$.p`

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 32 more files in changeset.
Added convenience methods for generating task names to `BinaryTasksCollection`.

This allows a plugin to create tasks for a binary without needing to care about where in the model the binary might happen to live.

    • -3
    • +3
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 6 more files in changeset.
Introduce installation and executable specs

This commit introduces the `NativeInstallationSpec` and

`NativeExecutableFileSpec` types in order to make the concepts they

represent first-class citizens of the native software model. Doing so

has a number of benefits, including:

1. providing users with better insight about these items, e.g. making

them visibile in the model report

2. making these items "addressable", so that they may be depended upon

directly as inputs, e.g. via the @Path annotation, which in turn allows

users to write rules against these items and to better ensure correct

ordering of their configuration

3. allowing users to configure these items directly within the build

script

And while this change is just a stepping stone toward the first two

benefits being realized, the third benefit (configurability in the build

script) is now possible where it wasn't before. Previously, the

installation directory path for a given native executable binary was

hard-coded within native component model plugin's @BinaryTasks rule.

This approach meant that there was no way for users to customize the

installation directory path. Now, the installation directory can be

specified explicitly within the build script, e.g.:

main(NativeExecutableSpec) {

sources {

// ...

}

binaries.withType(NativeExecutableBinarySpec) {

installation.directory = file("foo/custom")

}

}

The motivation for making this change began with attempts to refactor

uses of `BinaryContainer` to `ModelMap`. During one such refactoring,

task ordering issues were encountered in which tests were being run

before certain sources they depend on had been generated. The generated

source set in question was implicitly modeled as part of a sequence of

other "unaddressable" items in the build pipeline, rendering it

impossible to declare an explicit dependency on the task that generates

the source set. Ultimately this meant that the task ordering issue could

not be properly resolved, and that the refactoring could not continue.

The installation directory and executable file items were two of the

items in that overall build pipeline, and were selected as candidates

for this change because of their relative simplicity. Further such items

will need to be broken out and modeled in a similar way for the ordering

issue described above to be resolved, and for the refactoring to

continue.

This commit can be seen as a successful first experiment toward making

many other similar items explicit, visible, addressable and

configurable. This work has begun in the native software model, but

should be expected to continue into the Java software model and beyond.

Note that breaking changes have been introduced here, and the release

notes have been updated to reflect. Because many similar breakages may

follow, the item added to the notes is just a placeholder until their

scope and potential impact are clear.

    • -1
    • +1
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 13 more files in changeset.
Remove test fixture that enables transformed model rules DSL. Not required any more.

    • -4
    • +0
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 43 more files in changeset.
Failing test case for GRADLE-3332

    • -0
    • +30
    ./BinaryConfigurationIntegrationTest.groovy
Add back some more @LeaksFileHandles

    • -0
    • +3
    ./BinaryConfigurationIntegrationTest.groovy
  1. … 1 more file in changeset.