Skip to content

internal: Fix test_loading_rust_analyzer when rust-project.json is present#21795

Merged
ChayimFriedman2 merged 1 commit intorust-lang:masterfrom
Wilfred:fix_unit_test_rust_project
Mar 22, 2026
Merged

internal: Fix test_loading_rust_analyzer when rust-project.json is present#21795
ChayimFriedman2 merged 1 commit intorust-lang:masterfrom
Wilfred:fix_unit_test_rust_project

Conversation

@Wilfred
Copy link
Copy Markdown
Contributor

@Wilfred Wilfred commented Mar 10, 2026

load_workspace_at() looks at parent directories. If rust-analyzer is in a directory (e.g. a monorepo) where a parent directory contains a rust-project.json, that configuration wins over the Cargo.toml and the test fails.

One easy way of testing this is deliberately writing an invalid JSON file to the parent directory.

$ echo '{' > ../rust-project.json
$ cargo t -p load-cargo
---- tests::test_loading_rust_analyzer stdout ----

thread 'tests::test_loading_rust_analyzer' (38576150) panicked at crates/load-cargo/src/lib.rs:756:81:
called `Result::unwrap()` on an `Err` value: Failed to load the project at /Users/wilfred/src/rust-project.json

Caused by:
    0: Failed to deserialize json file /Users/wilfred/src/rust-project.json
    1: EOF while parsing an object at line 2 column 0

Instead, explicitly load the cargo workspace so the presence of a rust-project.json never changes the result of the test.

AI disclosure: Written with help from Claude.

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 10, 2026
…esent

load_workspace_at() looks at parent directories. If rust-analyzer is
in a directory (e.g. a monorepo) where a parent directory contains a
rust-project.json, that configuration wins over the Cargo.toml and the
test fails.

One easy way of testing this is deliberately writing an invalid JSON
file to the parent directory.

```
$ echo '{' > ../rust-project.json
$ cargo t -p load-cargo
---- tests::test_loading_rust_analyzer stdout ----

thread 'tests::test_loading_rust_analyzer' (38576150) panicked at crates/load-cargo/src/lib.rs:756:81:
called `Result::unwrap()` on an `Err` value: Failed to load the project at /Users/wilfred/src/rust-project.json

Caused by:
    0: Failed to deserialize json file /Users/wilfred/src/rust-project.json
    1: EOF while parsing an object at line 2 column 0
```

Instead, explicitly load the cargo workspace so the presence of a
rust-project.json never changes the result of the test.

AI disclosure: Written with help from Claude.
@Wilfred Wilfred force-pushed the fix_unit_test_rust_project branch from a91ee41 to f69d83e Compare March 10, 2026 17:50
@ChayimFriedman2 ChayimFriedman2 added this pull request to the merge queue Mar 22, 2026
Merged via the queue into rust-lang:master with commit b42b63f Mar 22, 2026
17 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 22, 2026
@Wilfred Wilfred deleted the fix_unit_test_rust_project branch March 23, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants