aboutsummaryrefslogtreecommitdiff
path: root/mingling_pathf
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
parent0c97eee05e8cd99b17ad17827d79afa739957db1 (diff)
test(mingling-pathf): add integration tests for module path analysis
Diffstat (limited to 'mingling_pathf')
-rw-r--r--mingling_pathf/test/Cargo.lock59
-rw-r--r--mingling_pathf/test/Cargo.toml11
-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
12 files changed, 137 insertions, 0 deletions
diff --git a/mingling_pathf/test/Cargo.lock b/mingling_pathf/test/Cargo.lock
new file mode 100644
index 0000000..dafc144
--- /dev/null
+++ b/mingling_pathf/test/Cargo.lock
@@ -0,0 +1,59 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "just_fmt"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e"
+
+[[package]]
+name = "mingling_pathf"
+version = "0.2.0"
+dependencies = [
+ "syn",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.106"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.118"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "test-mingling-pathf"
+version = "0.1.0"
+dependencies = [
+ "just_fmt",
+ "mingling_pathf",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
diff --git a/mingling_pathf/test/Cargo.toml b/mingling_pathf/test/Cargo.toml
new file mode 100644
index 0000000..8bb5728
--- /dev/null
+++ b/mingling_pathf/test/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "test-mingling-pathf"
+version = "0.1.0"
+edition = "2024"
+publish = false
+
+[workspace]
+
+[dependencies]
+mingling_pathf = { path = "../../mingling_pathf" }
+just_fmt = "0.1.2"
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;