about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume.gomez@huawei.com>2024-06-20 22:12:50 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2024-06-20 22:12:50 +0200
commit630c3adb146b4b91b37489b00a0aa5356132626c (patch)
treee3c691ca3c1f287795ebb028db647c94b835e19c
parentbb9a3ef90c777928a5e534fa5119cc6769c4de8a (diff)
downloadrust-630c3adb146b4b91b37489b00a0aa5356132626c.tar.gz
rust-630c3adb146b4b91b37489b00a0aa5356132626c.zip
Add regression test for `unsafe_extern_blocks`
-rw-r--r--tests/rustdoc/unsafe-extern-blocks.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/rustdoc/unsafe-extern-blocks.rs b/tests/rustdoc/unsafe-extern-blocks.rs
new file mode 100644
index 00000000000..22d3beea6c3
--- /dev/null
+++ b/tests/rustdoc/unsafe-extern-blocks.rs
@@ -0,0 +1,30 @@
+// Test to ensure the feature is working as expected.
+
+#![feature(unsafe_extern_blocks)]
+#![crate_name = "foo"]
+
+// @has 'foo/index.html'
+
+// First we check that both the static and the function have a "sup" element
+// to tell they're unsafe.
+
+// @count - '//ul[@class="item-table"]//sup[@title="unsafe static"]' 1
+// @has - '//ul[@class="item-table"]//sup[@title="unsafe static"]' '⚠'
+// @count - '//ul[@class="item-table"]//sup[@title="unsafe function"]' 1
+// @has - '//ul[@class="item-table"]//sup[@title="unsafe function"]' '⚠'
+
+unsafe extern {
+    // @has 'foo/static.FOO.html'
+    // @has - '//pre[@class="rust item-decl"]' 'pub static FOO: i32'
+    pub safe static FOO: i32;
+    // @has 'foo/static.BAR.html'
+    // @has - '//pre[@class="rust item-decl"]' 'pub unsafe static BAR: i32'
+    pub static BAR: i32;
+
+    // @has 'foo/fn.foo.html'
+    // @has - '//pre[@class="rust item-decl"]' 'pub extern "C" fn foo()'
+    pub safe fn foo();
+    // @has 'foo/fn.bar.html'
+    // @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "C" fn bar()'
+    pub fn bar();
+}