[Buildroot] Rust runtime tests issues
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Wed Apr 25 21:22:46 UTC 2018
Hello Eric,
On Wed, 18 Apr 2018 12:17:36 +0200 (CEST), Eric Le Bihan wrote:
> The exception is raised because the execution of the command to
> create a dummy test program "hello-world", with the previously built
> version of host-cargo, fails.
>
> From the file TestRustBin-build.log found in the artifacts.zip of job
> 63334942, we can see:
>
> ```
> error: Failed to create project `hello-world` at `/tmp/tmpOEzb1U-br2-testing-rust/hello-world`
>
> Caused by:
> could not determine the current user, please set $USER
> ```
>
> As the run-time test on CI apparently runs through Docker, should some setup
> related to $USER be added to it?
Why does it need to have a USER variable defined ? It seems weird to
require details about the user running the build. The code seems to do
this:
fn discover_author() -> CargoResult<(String, Option<String>)> {
let cwd = env::current_dir()?;
let git_config = if let Ok(repo) = GitRepository::discover(&cwd) {
repo.config().ok().or_else(|| GitConfig::open_default().ok())
} else {
GitConfig::open_default().ok()
};
let git_config = git_config.as_ref();
let name_variables = ["CARGO_NAME", "GIT_AUTHOR_NAME", "GIT_COMMITTER_NAME",
"USER", "USERNAME", "NAME"];
let name = get_environment_variable(&name_variables[0..3])
.or_else(|| git_config.and_then(|g| g.get_string("user.name").ok()))
.or_else(|| get_environment_variable(&name_variables[3..]));
let name = match name {
Some(name) => name,
None => {
let username_var = if cfg!(windows) {"USERNAME"} else {"USER"};
bail!("could not determine the current user, please set ${}",
username_var)
}
};
let email_variables = ["CARGO_EMAIL", "GIT_AUTHOR_EMAIL", "GIT_COMMITTER_EMAIL",
"EMAIL"];
let email = get_environment_variable(&email_variables[0..3])
.or_else(|| git_config.and_then(|g| g.get_string("user.email").ok()))
.or_else(|| get_environment_variable(&email_variables[3..]));
let name = name.trim().to_string();
let email = email.map(|s| s.trim().to_string());
Ok((name, email))
}
Should we set CARGO_NAME and CARGO_EMAIL ? Only when building cargo ?
Everytime cargo is used ?
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list