add more unit tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
c485ee7147
commit
76689539ee
3 changed files with 60 additions and 2 deletions
10
src/bootstrap/src/tests/change_tracker.rs
Normal file
10
src/bootstrap/src/tests/change_tracker.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
use crate::{find_recent_config_change_ids, CONFIG_CHANGE_HISTORY};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_find_recent_config_change_ids() {
|
||||||
|
// If change-id is greater than the most recent one, result should be empty.
|
||||||
|
assert!(find_recent_config_change_ids(usize::MAX).is_empty());
|
||||||
|
|
||||||
|
// There is no change-id equal to or less than 0, result should include the entire change history.
|
||||||
|
assert_eq!(find_recent_config_change_ids(0).len(), CONFIG_CHANGE_HISTORY.len());
|
||||||
|
}
|
|
@ -1,5 +1,14 @@
|
||||||
use crate::utils::helpers::{check_cfg_arg, extract_beta_rev, hex_encode, make};
|
use crate::{
|
||||||
use std::path::PathBuf;
|
utils::helpers::{
|
||||||
|
check_cfg_arg, extract_beta_rev, hex_encode, make, program_out_of_date, symlink_dir,
|
||||||
|
},
|
||||||
|
Config,
|
||||||
|
};
|
||||||
|
use std::{
|
||||||
|
fs::{self, remove_file, File},
|
||||||
|
io::Write,
|
||||||
|
path::PathBuf,
|
||||||
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_make() {
|
fn test_make() {
|
||||||
|
@ -70,3 +79,38 @@ fn test_check_cfg_arg() {
|
||||||
"--check-cfg=cfg(target_os,values(\"nixos\",\"nix2\"))"
|
"--check-cfg=cfg(target_os,values(\"nixos\",\"nix2\"))"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_program_out_of_date() {
|
||||||
|
let config = Config::parse(&["check".to_owned(), "--config=/does/not/exist".to_owned()]);
|
||||||
|
let tempfile = config.tempdir().join(".tmp-stamp-file");
|
||||||
|
File::create(&tempfile).unwrap().write_all(b"dummy value").unwrap();
|
||||||
|
assert!(tempfile.exists());
|
||||||
|
|
||||||
|
// up-to-date
|
||||||
|
assert!(!program_out_of_date(&tempfile, "dummy value"));
|
||||||
|
// out-of-date
|
||||||
|
assert!(program_out_of_date(&tempfile, ""));
|
||||||
|
|
||||||
|
remove_file(tempfile).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_symlink_dir() {
|
||||||
|
let config = Config::parse(&["check".to_owned(), "--config=/does/not/exist".to_owned()]);
|
||||||
|
let tempdir = config.tempdir().join(".tmp-dir");
|
||||||
|
let link_path = config.tempdir().join(".tmp-link");
|
||||||
|
|
||||||
|
fs::create_dir_all(&tempdir).unwrap();
|
||||||
|
symlink_dir(&config, &tempdir, &link_path).unwrap();
|
||||||
|
|
||||||
|
let link_source = fs::read_link(&link_path).unwrap();
|
||||||
|
assert_eq!(link_source, tempdir);
|
||||||
|
|
||||||
|
fs::remove_dir(tempdir).unwrap();
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
|
fs::remove_dir(link_path).unwrap();
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
fs::remove_file(link_path).unwrap();
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
//! with the goal of keeping developers synchronized with important modifications in
|
//! with the goal of keeping developers synchronized with important modifications in
|
||||||
//! the bootstrap.
|
//! the bootstrap.
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
#[path = "../tests/change_tracker.rs"]
|
||||||
|
mod tests;
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct ChangeInfo {
|
pub struct ChangeInfo {
|
||||||
/// Represents the ID of PR caused major change on bootstrap.
|
/// Represents the ID of PR caused major change on bootstrap.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue