Skip to content

Commit 4ba2bcf

Browse files
committed
add test coverage
Signed-off-by: onur-ozkan <[email protected]>
1 parent ea15935 commit 4ba2bcf

File tree

3 files changed

+82
-2
lines changed

3 files changed

+82
-2
lines changed

src/bootstrap/src/core/builder/tests.rs

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use std::thread;
22

33
use super::*;
4-
use crate::Flags;
54
use crate::core::build_steps::doc::DocumentationFormat;
65
use crate::core::config::Config;
6+
use crate::{Flags, Mode};
77

88
static TEST_TRIPLE_1: &str = "i686-unknown-haiku";
99
static TEST_TRIPLE_2: &str = "i686-unknown-hurd-gnu";
@@ -861,3 +861,50 @@ fn test_test_coverage() {
861861
assert_eq!(modes, expected);
862862
}
863863
}
864+
865+
#[test]
866+
fn test_release_directory() {
867+
let config = Config::parse_inner(
868+
Flags::parse(&["check".into(), "--config=/does/not/exist".into()]),
869+
|&_| toml::from_str(""),
870+
);
871+
let build = Build::new(config.clone());
872+
let builder = Builder::new(&build);
873+
874+
assert_eq!(builder.cargo_dir(&Mode::Rustc), "release");
875+
assert_eq!(builder.cargo_dir(&Mode::ToolStd), "debug");
876+
877+
let config = Config::parse_inner(
878+
Flags::parse(&["check".into(), "--config=/does/not/exist".into(), "--release".into()]),
879+
|&_| {
880+
toml::from_str(
881+
r#"
882+
[rust]
883+
optimize = false
884+
"#,
885+
)
886+
},
887+
);
888+
let build = Build::new(config.clone());
889+
let builder = Builder::new(&build);
890+
891+
assert_eq!(builder.cargo_dir(&Mode::Std), "release");
892+
assert_eq!(builder.cargo_dir(&Mode::ToolBootstrap), "release");
893+
894+
let config = Config::parse_inner(
895+
Flags::parse(&["check".into(), "--config=/does/not/exist".into()]),
896+
|&_| {
897+
toml::from_str(
898+
r#"
899+
[rust]
900+
optimize = false
901+
"#,
902+
)
903+
},
904+
);
905+
let build = Build::new(config.clone());
906+
let builder = Builder::new(&build);
907+
908+
assert_eq!(builder.cargo_dir(&Mode::Rustc), "debug");
909+
assert_eq!(builder.cargo_dir(&Mode::Codegen), "debug");
910+
}

src/bootstrap/src/core/config/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,7 @@ impl Config {
13561356
config.llvm_profile_generate = flags.llvm_profile_generate;
13571357
config.enable_bolt_settings = flags.enable_bolt_settings;
13581358
config.bypass_bootstrap_lock = flags.bypass_bootstrap_lock;
1359-
config.enable_release_build = flags.release || CiEnv::is_ci();
1359+
config.enable_release_build = flags.release || (CiEnv::is_ci() && !cfg!(test));
13601360

13611361
// Infer the rest of the configuration.
13621362

src/bootstrap/src/core/config/tests.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,3 +454,36 @@ fn check_rustc_if_unchanged_paths() {
454454
assert!(config.src.join(p).exists(), "{p} doesn't exist.");
455455
}
456456
}
457+
458+
#[test]
459+
fn test_release_options() {
460+
let config = Config::parse_inner(
461+
Flags::parse(&["check".into(), "--config=/does/not/exist".into()]),
462+
|&_| {
463+
toml::from_str(
464+
r#"
465+
[rust]
466+
optimize = false
467+
"#,
468+
)
469+
},
470+
);
471+
472+
assert!(!config.enable_release_build);
473+
assert!(!config.rust_optimize.is_release());
474+
475+
let config = Config::parse_inner(
476+
Flags::parse(&["check".into(), "--config=/does/not/exist".into(), "--release".into()]),
477+
|&_| {
478+
toml::from_str(
479+
r#"
480+
[rust]
481+
optimize = false
482+
"#,
483+
)
484+
},
485+
);
486+
487+
assert!(config.enable_release_build);
488+
assert!(config.rust_optimize.is_release());
489+
}

0 commit comments

Comments
 (0)