about summary refs log tree commit diff
diff options
context:
space:
mode:
authoronur-ozkan <work@onurozkan.dev>2023-12-16 20:59:08 +0300
committeronur-ozkan <work@onurozkan.dev>2023-12-17 10:31:04 +0300
commit81b98a0a13013a192a02c918dbb0888dbe80b6aa (patch)
treee99a27c325010ab9265572b3d9cdc8c507bb5087
parent3ea3c3885bff114eed94f80638bade3e12a50a96 (diff)
downloadrust-81b98a0a13013a192a02c918dbb0888dbe80b6aa.tar.gz
rust-81b98a0a13013a192a02c918dbb0888dbe80b6aa.zip
expand helpers tests with new test module `tests/helpers`
Signed-off-by: onur-ozkan <work@onurozkan.dev>
-rw-r--r--src/bootstrap/src/tests/builder.rs16
-rw-r--r--src/bootstrap/src/tests/helpers.rs59
-rw-r--r--src/bootstrap/src/utils/helpers.rs4
3 files changed, 63 insertions, 16 deletions
diff --git a/src/bootstrap/src/tests/builder.rs b/src/bootstrap/src/tests/builder.rs
index 744015e8e82..700ebcf5e37 100644
--- a/src/bootstrap/src/tests/builder.rs
+++ b/src/bootstrap/src/tests/builder.rs
@@ -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::*;
diff --git a/src/bootstrap/src/tests/helpers.rs b/src/bootstrap/src/tests/helpers.rs
new file mode 100644
index 00000000000..afe18aebafa
--- /dev/null
+++ b/src/bootstrap/src/tests/helpers.rs
@@ -0,0 +1,59 @@
+use crate::utils::helpers::{extract_beta_rev, hex_encode, make};
+use std::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(),
+        std::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");
+}
diff --git a/src/bootstrap/src/utils/helpers.rs b/src/bootstrap/src/utils/helpers.rs
index f1584052691..1b56a72c0ad 100644
--- a/src/bootstrap/src/utils/helpers.rs
+++ b/src/bootstrap/src/utils/helpers.rs
@@ -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