about summary refs log tree commit diff
path: root/src/test/rustdoc-json
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2021-03-12 08:55:13 +0900
committerGitHub <noreply@github.com>2021-03-12 08:55:13 +0900
commita98dc9b3e7d9f4f6c5a3ef850aa6a08c28a55ce1 (patch)
tree33938445c709d4060699dbfef033a1fcd0e545a1 /src/test/rustdoc-json
parent2f0bbc0d1d1ee137d226ea1c6d703e81d5b3660e (diff)
parent5f24798b9e228438973a8abeee1a2d5ea016f335 (diff)
downloadrust-a98dc9b3e7d9f4f6c5a3ef850aa6a08c28a55ce1.tar.gz
rust-a98dc9b3e7d9f4f6c5a3ef850aa6a08c28a55ce1.zip
Rollup merge of #82571 - aDotInTheVoid:reexport-tests, r=CraftSpider
Rustdoc Json: Add tests for Reexports, and improve jsondocck

The two changes are orthognal, so you can land just one if you want, but the improved errors realy helped write the tests.

Notably does not have the case from #80664, but I want to have all the ajacent cases tested before starting work on that to ensure I dont break anything.

Improves #81359

cc ```@CraftSpider```

r? ```@jyn514```

```@rustbot``` modify labels: +A-testsuite +T-rustdoc +A-rustdoc-json
Diffstat (limited to 'src/test/rustdoc-json')
-rw-r--r--src/test/rustdoc-json/reexport/glob_extern.rs17
-rw-r--r--src/test/rustdoc-json/reexport/glob_private.rs27
-rw-r--r--src/test/rustdoc-json/reexport/rename_public.rs17
-rw-r--r--src/test/rustdoc-json/reexport/simple_private.rs13
-rw-r--r--src/test/rustdoc-json/reexport/simple_public.rs18
5 files changed, 92 insertions, 0 deletions
diff --git a/src/test/rustdoc-json/reexport/glob_extern.rs b/src/test/rustdoc-json/reexport/glob_extern.rs
new file mode 100644
index 00000000000..831c185f6b1
--- /dev/null
+++ b/src/test/rustdoc-json/reexport/glob_extern.rs
@@ -0,0 +1,17 @@
+// edition:2018
+
+#![no_core]
+#![feature(no_core)]
+
+// @!has glob_extern.json "$.index[*][?(@.name=='mod1')]"
+mod mod1 {
+    extern "C" {
+        // @set public_fn_id = - "$.index[*][?(@.name=='public_fn')].id"
+        pub fn public_fn();
+        // @!has - "$.index[*][?(@.name=='private_fn')]"
+        fn private_fn();
+    }
+}
+
+// @has - "$.index[*][?(@.name=='glob_extern')].inner.items[*]" $public_fn_id
+pub use mod1::*;
diff --git a/src/test/rustdoc-json/reexport/glob_private.rs b/src/test/rustdoc-json/reexport/glob_private.rs
new file mode 100644
index 00000000000..e907de92367
--- /dev/null
+++ b/src/test/rustdoc-json/reexport/glob_private.rs
@@ -0,0 +1,27 @@
+// edition:2018
+
+#![no_core]
+#![feature(no_core)]
+
+// @!has glob_private.json "$.index[*][?(@.name=='mod1')]"
+mod mod1 {
+    // @!has - "$.index[*][?(@.name=='mod2')]"
+    mod mod2 {
+        // @set m2pub_id = - "$.index[*][?(@.name=='Mod2Public')].id"
+        pub struct Mod2Public;
+
+        // @!has - "$.index[*][?(@.name=='Mod2Private')]"
+        struct Mod2Private;
+    }
+    pub use self::mod2::*;
+
+    // @set m1pub_id = - "$.index[*][?(@.name=='Mod1Public')].id"
+    pub struct Mod1Public;
+
+    // @!has - "$.index[*][?(@.name=='Mod1Private')]"
+    struct Mod1Private;
+}
+pub use mod1::*;
+
+// @has - "$.index[*][?(@.name=='glob_private')].inner.items[*]" $m2pub_id
+// @has - "$.index[*][?(@.name=='glob_private')].inner.items[*]" $m1pub_id
diff --git a/src/test/rustdoc-json/reexport/rename_public.rs b/src/test/rustdoc-json/reexport/rename_public.rs
new file mode 100644
index 00000000000..8c2d7200d0c
--- /dev/null
+++ b/src/test/rustdoc-json/reexport/rename_public.rs
@@ -0,0 +1,17 @@
+// edition:2018
+
+#![no_core]
+#![feature(no_core)]
+
+// @set inner_id = rename_public.json "$.index[*][?(@.name=='inner')].id"
+// @has - "$.index[*][?(@.name=='rename_public')].inner.items[*]" $inner_id
+pub mod inner {
+    // @set public_id = - "$.index[*][?(@.name=='Public')].id"
+    // @has - "$.index[*][?(@.name=='inner')].inner.items[*]" $public_id
+    pub struct Public;
+}
+// @set import_id = - "$.index[*][?(@.inner.name=='NewName')].id"
+// @!has - "$.index[*][?(@.inner.name=='Public')]"
+// @has - "$.index[*][?(@.name=='rename_public')].inner.items[*]" $import_id
+// @is - "$.index[*][?(@.inner.name=='NewName')].inner.span" \"inner::Public\"
+pub use inner::Public as NewName;
diff --git a/src/test/rustdoc-json/reexport/simple_private.rs b/src/test/rustdoc-json/reexport/simple_private.rs
new file mode 100644
index 00000000000..658b121e6ce
--- /dev/null
+++ b/src/test/rustdoc-json/reexport/simple_private.rs
@@ -0,0 +1,13 @@
+// edition:2018
+
+#![no_core]
+#![feature(no_core)]
+
+// @!has simple_private.json "$.index[*][?(@.name=='inner')]"
+mod inner {
+    // @set pub_id = - "$.index[*][?(@.name=='Public')].id"
+    pub struct Public;
+}
+
+// @has - "$.index[*][?(@.name=='simple_private')].inner.items[*]" $pub_id
+pub use inner::Public;
diff --git a/src/test/rustdoc-json/reexport/simple_public.rs b/src/test/rustdoc-json/reexport/simple_public.rs
new file mode 100644
index 00000000000..0c97a2e7b40
--- /dev/null
+++ b/src/test/rustdoc-json/reexport/simple_public.rs
@@ -0,0 +1,18 @@
+// edition:2018
+
+#![no_core]
+#![feature(no_core)]
+
+// @set inner_id = simple_public.json "$.index[*][?(@.name=='inner')].id"
+// @has - "$.index[*][?(@.name=='simple_public')].inner.items[*]" $inner_id
+pub mod inner {
+
+    // @set public_id = - "$.index[*][?(@.name=='Public')].id"
+    // @has - "$.index[*][?(@.name=='inner')].inner.items[*]" $public_id
+    pub struct Public;
+}
+
+// @set import_id = - "$.index[*][?(@.inner.name=='Public')].id"
+// @has - "$.index[*][?(@.name=='simple_public')].inner.items[*]" $import_id
+// @is - "$.index[*][?(@.inner.name=='Public')].inner.span" \"inner::Public\"
+pub use inner::Public;