Skip to content

Commit 48782f8

Browse files
committed
Add tests for rust-toolchain.toml files
1 parent 8d6ebff commit 48782f8

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

tests/cli-rustup.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2065,3 +2065,59 @@ warning: If you meant to build software to target that platform, perhaps try `ru
20652065
);
20662066
});
20672067
}
2068+
2069+
/// Checks that `rust-toolchain.toml` files are considered
2070+
#[test]
2071+
fn rust_toolchain_toml() {
2072+
setup(&|config| {
2073+
expect_err(
2074+
config,
2075+
&["rustc", "--version"],
2076+
"no override and no default toolchain set",
2077+
);
2078+
2079+
let cwd = config.current_dir();
2080+
let toolchain_file = cwd.join("rust-toolchain.toml");
2081+
raw::write_file(&toolchain_file, "[toolchain]\nchannel = \"nightly\"").unwrap();
2082+
2083+
expect_stdout_ok(config, &["rustc", "--version"], "hash-nightly-2");
2084+
});
2085+
}
2086+
2087+
/// Ensures that `rust-toolchain.toml` files (with `.toml` extension) only allow TOML contents
2088+
#[test]
2089+
fn only_toml_in_rust_toolchain_toml() {
2090+
setup(&|config| {
2091+
let cwd = config.current_dir();
2092+
let toolchain_file = cwd.join("rust-toolchain.toml");
2093+
raw::write_file(&toolchain_file, "nightly").unwrap();
2094+
2095+
expect_err(
2096+
config,
2097+
&["rustc", "--version"],
2098+
"error parsing override file",
2099+
);
2100+
});
2101+
}
2102+
2103+
/// Checks that a warning occurs if both `rust-toolchain` and `rust-toolchain.toml` files exist
2104+
#[test]
2105+
fn warn_on_duplicate_rust_toolchain_file() {
2106+
setup(&|config| {
2107+
let cwd = config.current_dir();
2108+
let toolchain_file_1 = cwd.join("rust-toolchain");
2109+
raw::write_file(&toolchain_file_1, "stable").unwrap();
2110+
let toolchain_file_2 = cwd.join("rust-toolchain.toml");
2111+
raw::write_file(&toolchain_file_2, "[toolchain]").unwrap();
2112+
2113+
expect_stderr_ok(
2114+
config,
2115+
&["rustc", "--version"],
2116+
&format!(
2117+
"warning: both `{0}` and `{1}` exist. Using `{0}`",
2118+
toolchain_file_1.canonicalize().unwrap().display(),
2119+
toolchain_file_2.canonicalize().unwrap().display(),
2120+
),
2121+
);
2122+
});
2123+
}

0 commit comments

Comments
 (0)