Skip to content

Commit

Permalink
expand helpers tests with new test module tests/helpers
Browse files Browse the repository at this point in the history
Signed-off-by: onur-ozkan <[email protected]>
  • Loading branch information
onur-ozkan committed Dec 16, 2023
1 parent 3ea3c38 commit 87b5cbc
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 16 deletions.
16 changes: 0 additions & 16 deletions src/bootstrap/src/tests/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,22 +156,6 @@ fn alias_and_path_for_library() {
assert_eq!(first(cache.all::<doc::Std>()), &[doc_std!(A => A, stage = 0)]);
}

#[test]
fn test_beta_rev_parsing() {
use crate::utils::helpers::extract_beta_rev;

// single digit revision
assert_eq!(extract_beta_rev("1.99.9-beta.7 (xxxxxx)"), Some("7".to_string()));
// multiple digits
assert_eq!(extract_beta_rev("1.99.9-beta.777 (xxxxxx)"), Some("777".to_string()));
// nightly channel (no beta revision)
assert_eq!(extract_beta_rev("1.99.9-nightly (xxxxxx)"), None);
// stable channel (no beta revision)
assert_eq!(extract_beta_rev("1.99.9 (xxxxxxx)"), None);
// invalid string
assert_eq!(extract_beta_rev("invalid"), None);
}

mod defaults {
use super::{configure, first, run_build};
use crate::core::builder::*;
Expand Down
56 changes: 56 additions & 0 deletions src/bootstrap/src/tests/helpers.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
use crate::utils::helpers::{extract_beta_rev, hex_encode, make};
use std::{env, path::PathBuf};

#[test]
fn test_make() {
for (host, make_path) in vec![
("dragonfly", PathBuf::from("gmake")),
("netbsd", PathBuf::from("gmake")),
("freebsd", PathBuf::from("gmake")),
("openbsd", PathBuf::from("gmake")),
("linux", PathBuf::from("make")),
// for checking the default
("_", PathBuf::from("make")),
] {
assert_eq!(make(host), make_path);
}
}

#[cfg(unix)]
#[test]
fn test_absolute_unix() {
use crate::utils::helpers::absolute_unix;

// Test an absolute path
let path = PathBuf::from("/home/user/file.txt");
assert_eq!(absolute_unix(&path).unwrap(), PathBuf::from("/home/user/file.txt"));

// Test an absolute path with double leading slashes
let path = PathBuf::from("//root//file.txt");
assert_eq!(absolute_unix(&path).unwrap(), PathBuf::from("//root/file.txt"));

// Test a relative path
let path = PathBuf::from("relative/path");
assert_eq!(absolute_unix(&path).unwrap(), env::current_dir().unwrap().join("relative/path"));
}

#[test]
fn test_beta_rev_parsing() {
// single digit revision
assert_eq!(extract_beta_rev("1.99.9-beta.7 (xxxxxx)"), Some("7".to_string()));
// multiple digits
assert_eq!(extract_beta_rev("1.99.9-beta.777 (xxxxxx)"), Some("777".to_string()));
// nightly channel (no beta revision)
assert_eq!(extract_beta_rev("1.99.9-nightly (xxxxxx)"), None);
// stable channel (no beta revision)
assert_eq!(extract_beta_rev("1.99.9 (xxxxxxx)"), None);
// invalid string
assert_eq!(extract_beta_rev("invalid"), None);
}

#[test]
fn test_string_to_hex_encode() {
let input_string = "Hello, World!";
let hex_string = hex_encode(input_string);
assert_eq!(hex_string, "48656c6c6f2c20576f726c6421");
}
4 changes: 4 additions & 0 deletions src/bootstrap/src/utils/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ use crate::LldMode;

pub use crate::utils::dylib::{dylib_path, dylib_path_var};

#[cfg(test)]
#[path = "../tests/helpers.rs"]
mod tests;

/// A helper macro to `unwrap` a result except also print out details like:
///
/// * The file/line of the panic
Expand Down

0 comments on commit 87b5cbc

Please sign in to comment.