aboutsummaryrefslogtreecommitdiff
path: root/mingling_pathf/test/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-28 05:59:43 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-28 05:59:43 +0800
commit9e0372f9d148a7c340cfab93727a7a3d3db023df (patch)
tree8983076c1a27436e7878411d082528116c617054 /mingling_pathf/test/src
parent0c97eee05e8cd99b17ad17827d79afa739957db1 (diff)
test(mingling-pathf): add integration tests for module path analysis
Diffstat (limited to 'mingling_pathf/test/src')
-rw-r--r--mingling_pathf/test/src/directly_mod.rs1
-rw-r--r--mingling_pathf/test/src/has_sub_mod.rs5
-rw-r--r--mingling_pathf/test/src/has_sub_mod/sub_mod.rs1
-rw-r--r--mingling_pathf/test/src/has_sub_use.rs4
-rw-r--r--mingling_pathf/test/src/has_sub_use/sub_mod.rs1
-rw-r--r--mingling_pathf/test/src/has_sub_use/sub_use.rs1
-rw-r--r--mingling_pathf/test/src/lib.rs39
-rw-r--r--mingling_pathf/test/src/main.rs13
-rw-r--r--mingling_pathf/test/src/unused.rs1
-rw-r--r--mingling_pathf/test/src/use_all.rs1
10 files changed, 67 insertions, 0 deletions
diff --git a/mingling_pathf/test/src/directly_mod.rs b/mingling_pathf/test/src/directly_mod.rs
new file mode 100644
index 0000000..09f464e
--- /dev/null
+++ b/mingling_pathf/test/src/directly_mod.rs
@@ -0,0 +1 @@
+pub struct DirectlyModStruct;
diff --git a/mingling_pathf/test/src/has_sub_mod.rs b/mingling_pathf/test/src/has_sub_mod.rs
new file mode 100644
index 0000000..1c961a1
--- /dev/null
+++ b/mingling_pathf/test/src/has_sub_mod.rs
@@ -0,0 +1,5 @@
+pub mod sub_mod;
+
+pub mod directly_sub_mod {
+ pub struct DirectlySubModStruct;
+}
diff --git a/mingling_pathf/test/src/has_sub_mod/sub_mod.rs b/mingling_pathf/test/src/has_sub_mod/sub_mod.rs
new file mode 100644
index 0000000..2e7ade3
--- /dev/null
+++ b/mingling_pathf/test/src/has_sub_mod/sub_mod.rs
@@ -0,0 +1 @@
+pub struct HasSubModStruct;
diff --git a/mingling_pathf/test/src/has_sub_use.rs b/mingling_pathf/test/src/has_sub_use.rs
new file mode 100644
index 0000000..c645034
--- /dev/null
+++ b/mingling_pathf/test/src/has_sub_use.rs
@@ -0,0 +1,4 @@
+mod sub_use;
+pub use sub_use::*;
+
+pub mod sub_mod;
diff --git a/mingling_pathf/test/src/has_sub_use/sub_mod.rs b/mingling_pathf/test/src/has_sub_use/sub_mod.rs
new file mode 100644
index 0000000..76dde62
--- /dev/null
+++ b/mingling_pathf/test/src/has_sub_use/sub_mod.rs
@@ -0,0 +1 @@
+pub struct SubModInSubUseStruct;
diff --git a/mingling_pathf/test/src/has_sub_use/sub_use.rs b/mingling_pathf/test/src/has_sub_use/sub_use.rs
new file mode 100644
index 0000000..ad8736d
--- /dev/null
+++ b/mingling_pathf/test/src/has_sub_use/sub_use.rs
@@ -0,0 +1 @@
+pub struct HasSubUseStruct;
diff --git a/mingling_pathf/test/src/lib.rs b/mingling_pathf/test/src/lib.rs
new file mode 100644
index 0000000..9d393c2
--- /dev/null
+++ b/mingling_pathf/test/src/lib.rs
@@ -0,0 +1,39 @@
+#![cfg(test)]
+
+use std::{collections::HashMap, env::current_dir};
+
+#[test]
+fn test_module_pathf() {
+ let dir = current_dir().unwrap();
+ let mapping = mingling_pathf::module_pathf::analyze(&dir)
+ .unwrap()
+ .into_iter()
+ .map(|i| {
+ let file_path = just_fmt::fmt_path::fmt_path(i.file_path())
+ .unwrap()
+ .display()
+ .to_string();
+ let module_path = i.module_path();
+ (file_path, module_path.to_string())
+ }
+ ).collect::<HashMap<String, String>>();
+
+ assert!(mapping.contains_key("src/has_sub_use/sub_mod.rs"));
+ assert!(mapping.contains_key("src/has_sub_use/sub_use.rs"));
+ assert!(mapping.contains_key("src/has_sub_mod/sub_mod.rs"));
+ assert!(mapping.contains_key("src/has_sub_use.rs"));
+ assert!(mapping.contains_key("src/has_sub_mod.rs"));
+ assert!(mapping.contains_key("src/directly_mod.rs"));
+ assert!(mapping.contains_key("src/use_all.rs"));
+ assert!(mapping.contains_key("src/main.rs"));
+ assert!(!mapping.contains_key("src/unused.rs"));
+
+ assert_eq!(mapping.get("src/has_sub_use/sub_mod.rs").unwrap(), "crate::sub_mod");
+ assert_eq!(mapping.get("src/has_sub_use/sub_use.rs").unwrap(), "crate");
+ assert_eq!(mapping.get("src/has_sub_mod/sub_mod.rs").unwrap(), "crate::has_sub_mod::sub_mod");
+ assert_eq!(mapping.get("src/has_sub_use.rs").unwrap(), "crate");
+ assert_eq!(mapping.get("src/has_sub_mod.rs").unwrap(), "crate::has_sub_mod");
+ assert_eq!(mapping.get("src/directly_mod.rs").unwrap(), "crate::directly_mod");
+ assert_eq!(mapping.get("src/use_all.rs").unwrap(), "crate");
+ assert_eq!(mapping.get("src/main.rs").unwrap(), "crate");
+}
diff --git a/mingling_pathf/test/src/main.rs b/mingling_pathf/test/src/main.rs
new file mode 100644
index 0000000..7a66e93
--- /dev/null
+++ b/mingling_pathf/test/src/main.rs
@@ -0,0 +1,13 @@
+#![allow(unused)]
+
+pub mod directly_mod;
+
+pub mod has_sub_mod;
+
+mod has_sub_use;
+pub use has_sub_use::*;
+
+mod use_all;
+pub use use_all::*;
+
+fn main() {}
diff --git a/mingling_pathf/test/src/unused.rs b/mingling_pathf/test/src/unused.rs
new file mode 100644
index 0000000..2b0984a
--- /dev/null
+++ b/mingling_pathf/test/src/unused.rs
@@ -0,0 +1 @@
+// This file should not be scanned
diff --git a/mingling_pathf/test/src/use_all.rs b/mingling_pathf/test/src/use_all.rs
new file mode 100644
index 0000000..b26a83d
--- /dev/null
+++ b/mingling_pathf/test/src/use_all.rs
@@ -0,0 +1 @@
+pub struct UseAllStruct;