about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStefan Schindler <dns2utf8@estada.ch>2021-09-10 13:40:38 +0200
committerMark Rousskov <mark.simulacrum@gmail.com>2021-10-03 08:20:08 -0400
commita0cc9bb0f681e6ee9130d6683bf836fee36570f6 (patch)
treeb419850255b8c76a09f91460262a203242b195f1
parent2801a770ce3a21a53769180d9815240ac555cbef (diff)
downloadrust-a0cc9bb0f681e6ee9130d6683bf836fee36570f6.tar.gz
rust-a0cc9bb0f681e6ee9130d6683bf836fee36570f6.zip
Add a test to detect overlapping entries in overview tables
Detects https://github.com/rust-lang/rust/issues/88545
-rw-r--r--src/test/rustdoc-gui/huge-collection-of-constants.goml5
-rw-r--r--src/test/rustdoc-gui/src/test_docs/Cargo.toml2
-rw-r--r--src/test/rustdoc-gui/src/test_docs/build.rs15
-rw-r--r--src/test/rustdoc-gui/src/test_docs/lib.rs4
4 files changed, 26 insertions, 0 deletions
diff --git a/src/test/rustdoc-gui/huge-collection-of-constants.goml b/src/test/rustdoc-gui/huge-collection-of-constants.goml
new file mode 100644
index 00000000000..924fab1ea91
--- /dev/null
+++ b/src/test/rustdoc-gui/huge-collection-of-constants.goml
@@ -0,0 +1,5 @@
+goto: file://|DOC_PATH|/test_docs/huge_amount_of_consts/index.html
+
+// Make sure that the last two entries are more than 12 pixels apart and not stacked on each other.
+
+compare-elements-position-near-false: ("//*[@class='item-table']//div[last()-1]", "//*[@class='item-table']//div[last()-3]", {"y": 12})
diff --git a/src/test/rustdoc-gui/src/test_docs/Cargo.toml b/src/test/rustdoc-gui/src/test_docs/Cargo.toml
index 7f3c65746fc..5f527078e79 100644
--- a/src/test/rustdoc-gui/src/test_docs/Cargo.toml
+++ b/src/test/rustdoc-gui/src/test_docs/Cargo.toml
@@ -3,5 +3,7 @@ name = "test_docs"
 version = "0.1.0"
 edition = "2018"
 
+build = "build.rs"
+
 [lib]
 path = "lib.rs"
diff --git a/src/test/rustdoc-gui/src/test_docs/build.rs b/src/test/rustdoc-gui/src/test_docs/build.rs
new file mode 100644
index 00000000000..16c96ded912
--- /dev/null
+++ b/src/test/rustdoc-gui/src/test_docs/build.rs
@@ -0,0 +1,15 @@
+//! generate 2000 constants for testing
+
+use std::{fs::write, path::PathBuf};
+
+fn main() -> std::io::Result<()> {
+    let out_dir = std::env::var("OUT_DIR").expect("OUT_DIR is not defined");
+
+    let mut output = String::new();
+    for i in 0..2000 {
+        let line = format!("/// Some const A{0}\npub const A{0}: isize = 0;\n", i);
+        output.push_str(&*line);
+    };
+
+    write(&[&*out_dir, "huge_amount_of_consts.rs"].iter().collect::<PathBuf>(), output)
+}
diff --git a/src/test/rustdoc-gui/src/test_docs/lib.rs b/src/test/rustdoc-gui/src/test_docs/lib.rs
index af4f28047fc..0aa1426a36a 100644
--- a/src/test/rustdoc-gui/src/test_docs/lib.rs
+++ b/src/test/rustdoc-gui/src/test_docs/lib.rs
@@ -116,3 +116,7 @@ pub mod keyword {}
 
 /// Just some type alias.
 pub type SomeType = u32;
+
+pub mod huge_amount_of_consts {
+    include!(concat!(env!("OUT_DIR"), "/huge_amount_of_consts.rs"));
+}