gradle / gradle/gradle-native

Dependencies declared on the default binary are not visible to unit test suites

Open
#435 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
94
Forks
7
PR merge metrics
No merged PRs in 30d

Description

All implementation dependencies for the binary under test should be visible at compile time (or at the very least link time) for the binary of a unit test suite.

Currently, this isn't the case for dependencies attached directly to the binary under test, e.g. OS specific dependencies.

For example, given:

```
plugins {
id 'cpp-application'
id 'ccp-unit-test'
}
application {
binaries.each {
dependencies.implementation("my.group:some-lib:1.2.3")
}
}
```

Then, linking of the test suite executable fails with missing symbols from 'some-lib'

Contributor guide

Open the contributing guide

Research direction

Start by tracing dependency handling between the cpp-application binary and the cpp-unit-test suite, focusing on dependencies declared directly on the application binary. Reproduce the example with the OS-specific or implementation dependency, then verify that the test suite executable links successfully without missing symbols from some-lib.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.