Skip to content

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

@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions