Skip to content

How the binary under test is looked up relies on internals of Cargo and will break with existing / upcoming features #24

@epage

Description

@epage

Tests assumes the location of the [[bin]] based on the location of a [[test]]

You can reproduce this by running either:

$ cargo +nightly test -Zbuild-dir-new-layout
$ CARGO_BUILD_BUILD_DIR=build cargo test

In Cargo 1.94, CARGO_BIN_EXE_* was stabilized for use at runtime, , see assert_cmd::cargo::cargo_bin for an example which supports both old and new Cargo versions.

Libraries that provide this look up as an API include:

Common other problems to watch for:

  • Mixing this with old versions of the libraries listed above that also need updating
  • Doing this lookup during unit tests when the binary is only guaranteed to be around for integration tests (and CARGO_BIN_EXE_* is only exposed to them)

This problem was identified by the following crater run: rust-lang/rust#149852

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions