refactor: streamline BuildFlags initialization across multiple modules
This commit is contained in:
@@ -870,12 +870,14 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_default_configure_install_dirs_respects_explicit_user_overrides() {
|
||||
let mut flags = BuildFlags::default();
|
||||
flags.configure = vec![
|
||||
"--sbindir=/sbin".to_string(),
|
||||
"--libdir=/custom/lib".to_string(),
|
||||
"--datadir=/custom/share".to_string(),
|
||||
];
|
||||
let flags = BuildFlags {
|
||||
configure: vec![
|
||||
"--sbindir=/sbin".to_string(),
|
||||
"--libdir=/custom/lib".to_string(),
|
||||
"--datadir=/custom/share".to_string(),
|
||||
],
|
||||
..BuildFlags::default()
|
||||
};
|
||||
let help = "--bindir=DIR --sbindir=DIR --libdir=DIR --datadir=DIR";
|
||||
let args = default_configure_install_dirs(&flags, Some(help));
|
||||
assert!(!args.iter().any(|a| a.starts_with("--sbindir=")));
|
||||
@@ -1123,8 +1125,10 @@ foo: bar
|
||||
|
||||
#[test]
|
||||
fn test_resolve_configure_path_uses_configure_file_and_expands_vars() {
|
||||
let mut flags = BuildFlags::default();
|
||||
flags.configure_file = "build-aux/$name-configure".into();
|
||||
let flags = BuildFlags {
|
||||
configure_file: "build-aux/$name-configure".into(),
|
||||
..BuildFlags::default()
|
||||
};
|
||||
let spec = PackageSpec {
|
||||
package: PackageInfo {
|
||||
name: "foo".into(),
|
||||
|
||||
@@ -436,10 +436,10 @@ mod tests {
|
||||
let spec_dir = tmp.path().join("specdir");
|
||||
let external = tmp.path().join("external");
|
||||
let expanded = src_root.join("x-1.0").join("sub");
|
||||
std::fs::create_dir_all(&src_root.join("sub")).unwrap();
|
||||
std::fs::create_dir_all(src_root.join("sub")).unwrap();
|
||||
std::fs::create_dir_all(&expanded).unwrap();
|
||||
// create directories for candidates
|
||||
std::fs::create_dir_all(&spec_dir.join("../llvm")).unwrap();
|
||||
std::fs::create_dir_all(spec_dir.join("../llvm")).unwrap();
|
||||
std::fs::create_dir_all(&external).unwrap();
|
||||
|
||||
let spec = PackageSpec {
|
||||
|
||||
@@ -329,7 +329,7 @@ mod tests {
|
||||
spec.spec_dir = spec_dir.path().to_path_buf();
|
||||
|
||||
// src_dir is empty; build() should copy build.sh from spec_dir and run it (no-op)
|
||||
let _ = build(&spec, tmp_src.path(), tmp_dest.path(), None, true)?;
|
||||
build(&spec, tmp_src.path(), tmp_dest.path(), None, true)?;
|
||||
// If we reached here, build() succeeded and build.sh was copied into src
|
||||
assert!(tmp_src.path().join("build.sh").exists());
|
||||
Ok(())
|
||||
|
||||
@@ -277,9 +277,11 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_meson_setup_args_honor_explicit_prefix() {
|
||||
let mut flags = BuildFlags::default();
|
||||
flags.prefix = "/usr".to_string();
|
||||
flags.configure = vec!["--prefix=/opt".to_string()];
|
||||
let flags = BuildFlags {
|
||||
prefix: "/usr".to_string(),
|
||||
configure: vec!["--prefix=/opt".to_string()],
|
||||
..BuildFlags::default()
|
||||
};
|
||||
|
||||
let args = meson_setup_args(&flags, None, &[]);
|
||||
assert_eq!(args.iter().filter(|a| a.starts_with("--prefix")).count(), 1);
|
||||
|
||||
+8
-6
@@ -271,9 +271,11 @@ mod tests {
|
||||
use std::path::PathBuf;
|
||||
|
||||
fn mk_spec(cflags: Vec<&str>, ldflags: Vec<&str>) -> PackageSpec {
|
||||
let mut flags = BuildFlags::default();
|
||||
flags.cflags = cflags.into_iter().map(String::from).collect();
|
||||
flags.ldflags = ldflags.into_iter().map(String::from).collect();
|
||||
let flags = BuildFlags {
|
||||
cflags: cflags.into_iter().map(String::from).collect(),
|
||||
ldflags: ldflags.into_iter().map(String::from).collect(),
|
||||
..BuildFlags::default()
|
||||
};
|
||||
PackageSpec {
|
||||
package: PackageInfo {
|
||||
name: "env-test".into(),
|
||||
@@ -323,9 +325,9 @@ mod tests {
|
||||
prepare_command(&mut cmd, &vec![("MYVAR".to_string(), "myval".to_string())]);
|
||||
|
||||
let envs: HashMap<_, _> = cmd.get_envs().collect();
|
||||
assert!(envs.get(OsStr::new("PATH")).is_some());
|
||||
assert!(envs.get(OsStr::new("HOME")).is_some());
|
||||
assert!(envs.get(OsStr::new("FORBIDDEN")).is_none());
|
||||
assert!(envs.contains_key(OsStr::new("PATH")));
|
||||
assert!(envs.contains_key(OsStr::new("HOME")));
|
||||
assert!(!envs.contains_key(OsStr::new("FORBIDDEN")));
|
||||
assert_eq!(
|
||||
envs.get(OsStr::new("SHELL")),
|
||||
Some(&Some(std::ffi::OsString::from("/bin/sh").as_os_str()))
|
||||
|
||||
Reference in New Issue
Block a user