diff options
| author | bors <bors@rust-lang.org> | 2022-10-19 02:53:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-10-19 02:53:24 +0000 |
| commit | 415d8fcc3e17f8c1324a81cf2aa7127b4fcfa32e (patch) | |
| tree | c9dac74fffd4740714579ec188796a375fc66ab7 /src | |
| parent | 2efc90e7381721df57348b61518b15794b75d189 (diff) | |
| parent | e0c162ff02b6fea4bee9a3b89aca6751e7a46fa1 (diff) | |
| download | rust-415d8fcc3e17f8c1324a81cf2aa7127b4fcfa32e.tar.gz rust-415d8fcc3e17f8c1324a81cf2aa7127b4fcfa32e.zip | |
Auto merge of #103213 - matthiaskrgr:rollup-diloxg3, r=matthiaskrgr
Rollup of 6 pull requests
Successful merges:
- #101889 (doc: rewrite doc for uint::{carrying_add,borrowing_sub})
- #102507 (More slice::partition_point examples)
- #103164 (rustdoc: remove CSS ``@media` (min-width: 701px)`)
- #103189 (Clean up code-color and headers-color rustdoc GUI tests)
- #103203 (Retrieve LLVM version from llvm-filecheck binary if it is not set yet)
- #103204 (Add some more autolabels)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/static/css/rustdoc.css | 30 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/main.js | 4 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/storage.js | 4 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/code-color.goml | 36 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/headers-color.goml | 173 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/sidebar-mobile-scroll.goml | 8 | ||||
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 15 | ||||
| -rw-r--r-- | src/tools/compiletest/src/main.rs | 4 |
8 files changed, 114 insertions, 160 deletions
diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 5788363036a..7b6f52b0acf 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -437,6 +437,7 @@ img { .source-sidebar-expanded .source .sidebar { overflow-y: auto; + width: 300px; } .source-sidebar-expanded .source .sidebar > *:not(#sidebar-toggle) { @@ -1692,31 +1693,20 @@ details.rustdoc-toggle[open] > summary.hideme::after { display: inline-block; } -/* Media Queries */ - -/* -WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY; -If you update this line, then you also need to update the line with the same warning -in storage.js plus the media query with (max-width: 700px) -*/ -@media (min-width: 701px) { - /* In case there is no documentation before a code block, we need to add some margin at the top - to prevent an overlay between the "collapse toggle" and the information tooltip. - However, it's not needed with smaller screen width because the doc/code block is always put - "one line" below. */ - .docblock > .example-wrap:first-child .tooltip { - margin-top: 16px; - } - - .source-sidebar-expanded .source .sidebar { - width: 300px; - } +/* In case there is no documentation before a code block, we need to add some margin at the top +to prevent an overlay between the "collapse toggle" and the information tooltip. +However, it's not needed with smaller screen width because the doc/code block is always put +"one line" below. */ +.docblock > .example-wrap:first-child .tooltip { + margin-top: 16px; } +/* Media Queries */ + /* WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY If you update this line, then you also need to update the line with the same warning -in storage.js plus the media query with (min-width: 701px) +in storage.js */ @media (max-width: 700px) { /* When linking to an item with an `id` (for instance, by clicking a link in the sidebar, diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index 3bcadcda534..1251d6bfda3 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -737,7 +737,7 @@ function loadCss(cssFileName) { window.rustdocMobileScrollLock = function() { const mobile_topbar = document.querySelector(".mobile-topbar"); - if (window.innerWidth < window.RUSTDOC_MOBILE_BREAKPOINT) { + if (window.innerWidth <= window.RUSTDOC_MOBILE_BREAKPOINT) { // This is to keep the scroll position on mobile. oldSidebarScrollPosition = window.scrollY; document.body.style.width = `${document.body.offsetWidth}px`; @@ -783,7 +783,7 @@ function loadCss(cssFileName) { } window.addEventListener("resize", () => { - if (window.innerWidth >= window.RUSTDOC_MOBILE_BREAKPOINT && + if (window.innerWidth > window.RUSTDOC_MOBILE_BREAKPOINT && oldSidebarScrollPosition !== null) { // If the user opens the sidebar in "mobile" mode, and then grows the browser window, // we need to switch away from mobile mode and make the main content area scrollable. diff --git a/src/librustdoc/html/static/js/storage.js b/src/librustdoc/html/static/js/storage.js index 0c5389d45e5..b462a2c50f1 100644 --- a/src/librustdoc/html/static/js/storage.js +++ b/src/librustdoc/html/static/js/storage.js @@ -10,9 +10,9 @@ window.currentTheme = document.getElementById("themeStyle"); window.mainTheme = document.getElementById("mainThemeStyle"); // WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY -// If you update this line, then you also need to update the two media queries with the same +// If you update this line, then you also need to update the media query with the same // warning in rustdoc.css -window.RUSTDOC_MOBILE_BREAKPOINT = 701; +window.RUSTDOC_MOBILE_BREAKPOINT = 700; const settingsDataset = (function() { const settingsElement = document.getElementById("default-settings"); diff --git a/src/test/rustdoc-gui/code-color.goml b/src/test/rustdoc-gui/code-color.goml index 4136677cdd5..118f04ad6dc 100644 --- a/src/test/rustdoc-gui/code-color.goml +++ b/src/test/rustdoc-gui/code-color.goml @@ -5,26 +5,20 @@ goto: "file://" + |DOC_PATH| + "/test_docs/fn.foo.html" // If the text isn't displayed, the browser doesn't compute color style correctly... show-text: true -// Set the theme to dark. -local-storage: {"rustdoc-theme": "dark", "rustdoc-preferred-dark-theme": "dark", "rustdoc-use-system-theme": "false"} -// We reload the page so the local storage settings are being used. -reload: -assert-css: (".docblock pre > code", {"color": "rgb(221, 221, 221)"}, ALL) -assert-css: (".docblock > p > code", {"color": "rgb(221, 221, 221)"}, ALL) +define-function: ( + "check-colors", + (theme, doc_code_color, doc_inline_code_color), + [ + // Set the theme. + ("local-storage", {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}), + // We reload the page so the local storage settings are being used. + ("reload"), + ("assert-css", (".docblock pre > code", {"color": |doc_code_color|}, ALL)), + ("assert-css", (".docblock > p > code", {"color": |doc_inline_code_color|}, ALL)), + ], +) -// Set the theme to ayu. -local-storage: {"rustdoc-theme": "ayu", "rustdoc-preferred-dark-theme": "ayu", "rustdoc-use-system-theme": "false"} -// We reload the page so the local storage settings are being used. -reload: - -assert-css: (".docblock pre > code", {"color": "rgb(230, 225, 207)"}, ALL) -assert-css: (".docblock > p > code", {"color": "rgb(255, 180, 84)"}, ALL) - -// Set the theme to light. -local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"} -// We reload the page so the local storage settings are being used. -reload: - -assert-css: (".docblock pre > code", {"color": "rgb(0, 0, 0)"}, ALL) -assert-css: (".docblock > p > code", {"color": "rgb(0, 0, 0)"}, ALL) +call-function: ("check-colors", ("ayu", "rgb(230, 225, 207)", "rgb(255, 180, 84)")) +call-function: ("check-colors", ("dark", "rgb(221, 221, 221)", "rgb(221, 221, 221)")) +call-function: ("check-colors", ("light", "rgb(0, 0, 0)", "rgb(0, 0, 0)")) diff --git a/src/test/rustdoc-gui/headers-color.goml b/src/test/rustdoc-gui/headers-color.goml index 9b7e3a23112..c80a49c52f0 100644 --- a/src/test/rustdoc-gui/headers-color.goml +++ b/src/test/rustdoc-gui/headers-color.goml @@ -1,117 +1,70 @@ // This test check for headers text and background colors for the different themes. -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html" -// This is needed so that the text color is computed. -show-text: true - -// Ayu theme -local-storage: { - "rustdoc-theme": "ayu", - "rustdoc-preferred-dark-theme": "ayu", - "rustdoc-use-system-theme": "false", -} -reload: - -assert-css: ( - ".impl", - {"color": "rgb(197, 197, 197)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, -) -assert-css: ( - ".impl .code-header", - {"color": "rgb(230, 225, 207)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, +define-function: ( + "check-colors", + (theme, color, code_header_color, focus_background_color, headings_color), + [ + ("goto", "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html"), + // This is needed so that the text color is computed. + ("show-text", true), + ("local-storage", {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}), + ("reload"), + ("assert-css", ( + ".impl", + {"color": |color|, "background-color": "rgba(0, 0, 0, 0)"}, + ALL, + )), + ("assert-css", ( + ".impl .code-header", + {"color": |code_header_color|, "background-color": "rgba(0, 0, 0, 0)"}, + ALL, + )), + ("goto", "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#impl-Foo"), + ("assert-css", ( + "#impl-Foo", + {"color": |color|, "background-color": |focus_background_color|}, + )), + ("goto", "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#method.must_use"), + ("assert-css", ( + "#method\.must_use", + {"color": |color|, "background-color": |focus_background_color|}, + ALL, + )), + ("goto", "file://" + |DOC_PATH| + "/test_docs/index.html"), + ("assert-css", (".small-section-header a", {"color": |color|}, ALL)), + ("goto", "file://" + |DOC_PATH| + "/test_docs/struct.HeavilyDocumentedStruct.html"), + // We select headings (h2, h3, h...). + ("assert-css", (".docblock > :not(p) > a", {"color": |headings_color|}, ALL)), + ], ) -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#impl-Foo" -assert-css: ( - "#impl-Foo", - {"color": "rgb(197, 197, 197)", "background-color": "rgba(255, 236, 164, 0.06)"}, +call-function: ( + "check-colors", + { + "theme": "ayu", + "color": "rgb(197, 197, 197)", + "code_header_color": "rgb(230, 225, 207)", + "focus_background_color": "rgba(255, 236, 164, 0.06)", + "headings_color": "rgb(57, 175, 215)", + }, ) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#method.must_use" -assert-css: ( - "#method\.must_use", - {"color": "rgb(197, 197, 197)", "background-color": "rgba(255, 236, 164, 0.06)"}, - ALL, +call-function: ( + "check-colors", + { + "theme": "dark", + "color": "rgb(221, 221, 221)", + "code_header_color": "rgb(221, 221, 221)", + "focus_background_color": "rgb(73, 74, 61)", + "headings_color": "rgb(210, 153, 29)", + }, ) - -goto: "file://" + |DOC_PATH| + "/test_docs/index.html" -assert-css: (".small-section-header a", {"color": "rgb(197, 197, 197)"}, ALL) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.HeavilyDocumentedStruct.html" -// We select headings (h2, h3, h...). -assert-css: (".docblock > :not(p) > a", {"color": "rgb(57, 175, 215)"}, ALL) - -// Dark theme -local-storage: { - "rustdoc-theme": "dark", - "rustdoc-preferred-dark-theme": "dark", - "rustdoc-use-system-theme": "false", -} -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html" - -assert-css: ( - ".impl", - {"color": "rgb(221, 221, 221)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, -) -assert-css: ( - ".impl .code-header", - {"color": "rgb(221, 221, 221)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, -) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#impl-Foo" -assert-css: ( - "#impl-Foo", - {"color": "rgb(221, 221, 221)", "background-color": "rgb(73, 74, 61)"}, -) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#method.must_use" -assert-css: ( - "#method\.must_use", - {"color": "rgb(221, 221, 221)", "background-color": "rgb(73, 74, 61)"}, - ALL, +call-function: ( + "check-colors", + { + "theme": "light", + "color": "rgb(0, 0, 0)", + "code_header_color": "rgb(0, 0, 0)", + "focus_background_color": "rgb(253, 255, 211)", + "headings_color": "rgb(56, 115, 173)", + }, ) - -goto: "file://" + |DOC_PATH| + "/test_docs/index.html" -assert-css: (".small-section-header a", {"color": "rgb(221, 221, 221)"}, ALL) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.HeavilyDocumentedStruct.html" -// We select headings (h2, h3, h...). -assert-css: (".docblock > :not(p) > a", {"color": "rgb(210, 153, 29)"}, ALL) - -// Light theme -local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"} -reload: - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html" - -assert-css: ( - ".impl", - {"color": "rgb(0, 0, 0)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, -) -assert-css: ( - ".impl .code-header", - {"color": "rgb(0, 0, 0)", "background-color": "rgba(0, 0, 0, 0)"}, - ALL, -) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#impl-Foo" -assert-css: ("#impl-Foo", {"color": "rgb(0, 0, 0)", "background-color": "rgb(253, 255, 211)"}) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html#method.must_use" -assert-css: ( - "#method\.must_use", - {"color": "rgb(0, 0, 0)", "background-color": "rgb(253, 255, 211)"}, - ALL, -) - -goto: "file://" + |DOC_PATH| + "/test_docs/index.html" -assert-css: (".small-section-header a", {"color": "rgb(0, 0, 0)"}, ALL) - -goto: "file://" + |DOC_PATH| + "/test_docs/struct.HeavilyDocumentedStruct.html" -// We select headings (h2, h3, h...). -assert-css: (".docblock > :not(p) > a", {"color": "rgb(56, 115, 173)"}, ALL) diff --git a/src/test/rustdoc-gui/sidebar-mobile-scroll.goml b/src/test/rustdoc-gui/sidebar-mobile-scroll.goml index f1cba172ee3..2449269b192 100644 --- a/src/test/rustdoc-gui/sidebar-mobile-scroll.goml +++ b/src/test/rustdoc-gui/sidebar-mobile-scroll.goml @@ -1,12 +1,12 @@ // This test ensures that the mobile sidebar preserves scroll position. goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html" // Switching to "mobile view" by reducing the width to 600px. -size: (600, 600) +size: (700, 600) assert-css: (".sidebar", {"display": "block", "left": "-1000px"}) // Scroll down. scroll-to: "//h2[@id='blanket-implementations']" -assert-window-property: {"pageYOffset": "651"} +assert-window-property: {"pageYOffset": "627"} // Open the sidebar menu. click: ".sidebar-menu-toggle" @@ -21,11 +21,11 @@ assert-window-property: {"pageYOffset": "0"} // Close the sidebar menu. Make sure the scroll position gets restored. click: ".sidebar-menu-toggle" wait-for-css: (".sidebar", {"left": "-1000px"}) -assert-window-property: {"pageYOffset": "651"} +assert-window-property: {"pageYOffset": "627"} // Now test that scrollability returns when the browser window is just resized. click: ".sidebar-menu-toggle" wait-for-css: (".sidebar", {"left": "0px"}) assert-window-property: {"pageYOffset": "0"} size: (900, 600) -assert-window-property: {"pageYOffset": "651"} +assert-window-property: {"pageYOffset": "627"} diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 6f852275003..0d9a629e179 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -4,6 +4,7 @@ use std::fs::File; use std::io::prelude::*; use std::io::BufReader; use std::path::{Path, PathBuf}; +use std::process::Command; use tracing::*; @@ -843,6 +844,20 @@ pub fn extract_llvm_version(version: &str) -> Option<u32> { Some(version) } +pub fn extract_llvm_version_from_binary(binary_path: &str) -> Option<u32> { + let output = Command::new(binary_path).arg("--version").output().ok()?; + if !output.status.success() { + return None; + } + let version = String::from_utf8(output.stdout).ok()?; + for line in version.lines() { + if let Some(version) = line.split("LLVM version ").skip(1).next() { + return extract_llvm_version(version); + } + } + None +} + /// Takes a directive of the form "<version1> [- <version2>]", /// returns the numeric representation of <version1> and <version2> as /// tuple: (<version1> as u32, <version2> as u32) diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index b48395035d4..417b429161f 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -200,7 +200,9 @@ pub fn parse_config(args: Vec<String>) -> Config { Some(x) => panic!("argument for --color must be auto, always, or never, but found `{}`", x), }; let llvm_version = - matches.opt_str("llvm-version").as_deref().and_then(header::extract_llvm_version); + matches.opt_str("llvm-version").as_deref().and_then(header::extract_llvm_version).or_else( + || header::extract_llvm_version_from_binary(&matches.opt_str("llvm-filecheck")?), + ); let src_base = opt_path(matches, "src-base"); let run_ignored = matches.opt_present("ignored"); |
