Skip to content

Commit

Permalink
Auto merge of #124489 - matthiaskrgr:rollup-7pa86bf, r=matthiaskrgr
Browse files Browse the repository at this point in the history
Rollup of 2 pull requests

Successful merges:

 - #123734 (Inline more svg images into CSS)
 - #124473 (Port `print-cfg` run-make test to Rust-based rmake.rs)

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed Apr 28, 2024
2 parents ce609db + 6edb721 commit 10505a1
Show file tree
Hide file tree
Showing 8 changed files with 203 additions and 44 deletions.
31 changes: 29 additions & 2 deletions src/librustdoc/html/static/css/rustdoc.css
Expand Up @@ -1133,6 +1133,7 @@ so that we can apply CSS-filters to change the arrow color in themes */
.setting-check input:checked {
background-color: var(--settings-input-color);
border-width: 1px;
/* cross-mark image in the settings checkboxes */
content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40">\
<path d="M7,25L17,32L33,12" fill="none" stroke="black" stroke-width="5"/>\
<path d="M7,23L17,30L33,10" fill="none" stroke="white" stroke-width="5"/></svg>');
Expand Down Expand Up @@ -1608,12 +1609,26 @@ a.tooltip:hover::after {
font-size: 0;
}
#settings-menu > a:before {
content: url('wheel-63255fc4502dca9a.svg');
/* Wheel <https://www.svgrepo.com/svg/384069/settings-cog-gear> */
content: url('data:image/svg+xml,<svg width="22" height="22" viewBox="0 0 12 12" \
enable-background="new 0 0 12 12" xmlns="http://www.w3.org/2000/svg">\
<path d="M10.25,6c0-0.1243286-0.0261841-0.241333-0.0366211-0.362915l1.6077881-1.5545654l\
-1.25-2.1650391 c0,0-1.2674561,0.3625488-2.1323853,0.6099854c-0.2034912-0.1431885-0.421875\
-0.2639771-0.6494751-0.3701782L7.25,0h-2.5 c0,0-0.3214111,1.2857666-0.5393066,2.1572876\
C3.9830933,2.2634888,3.7647095,2.3842773,3.5612183,2.5274658L1.428833,1.9174805 \
l-1.25,2.1650391c0,0,0.9641113,0.9321899,1.6077881,1.5545654C1.7761841,5.758667,\
1.75,5.8756714,1.75,6 s0.0261841,0.241333,0.0366211,0.362915L0.178833,7.9174805l1.25,\
2.1650391l2.1323853-0.6099854 c0.2034912,0.1432495,0.421875,0.2639771,0.6494751,0.3701782\
L4.75,12h2.5l0.5393066-2.1572876 c0.2276001-0.1062012,0.4459839-0.2269287,0.6494751\
-0.3701782l2.1323853,0.6099854l1.25-2.1650391L10.2133789,6.362915 C10.2238159,6.241333,\
10.25,6.1243286,10.25,6z M6,7.5C5.1715698,7.5,4.5,6.8284302,4.5,6S5.1715698,4.5,6,4.5S7.5\
,5.1715698,7.5,6 S6.8284302,7.5,6,7.5z" fill="black"/></svg>');
width: 22px;
height: 22px;
}

#sidebar-button > a:before {
/* sidebar resizer image */
content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" \
fill="none" stroke="black">\
<rect x="1" y="1" width="20" height="20" ry="1.5" stroke-width="1.5"/>\
Expand All @@ -1636,7 +1651,17 @@ a.tooltip:hover::after {
}
#copy-path::before {
filter: var(--copy-path-img-filter);
content: url('clipboard-24048e6d87f63d07.svg');
/* clipboard <https://github.com/rust-lang/crates.io/commits/main/public/assets/copy.svg> */
content: url('data:image/svg+xml,<svg width="19" height="18" viewBox="0 0 24 25" \
xmlns="http://www.w3.org/2000/svg" aria-label="Copy to clipboard">\
<path d="M18 20h2v3c0 1-1 2-2 2H2c-.998 0-2-1-2-2V5c0-.911.755-1.667 1.667-1.667h5A3.323 3.323 0 \
0110 0a3.323 3.323 0 013.333 3.333h5C19.245 3.333 20 4.09 20 5v8.333h-2V9H2v14h16v-3zM3 \
7h14c0-.911-.793-1.667-1.75-1.667H13.5c-.957 0-1.75-.755-1.75-1.666C11.75 2.755 10.957 2 10 \
2s-1.75.755-1.75 1.667c0 .911-.793 1.666-1.75 1.666H4.75C3.793 5.333 3 6.09 3 7z"/>\
<path d="M4 19h6v2H4zM12 11H4v2h8zM4 17h4v-2H4zM15 15v-3l-4.5 4.5L15 21v-3l8.027-.032L23 15z"/>\
</svg>');
width: 19px;
height: 18px;
}
#copy-path:hover::before {
filter: var(--copy-path-img-hover-filter);
Expand Down Expand Up @@ -1837,6 +1862,7 @@ However, it's not needed with smaller screen width because the doc/code block is
/* sidebar button opens modal
use hamburger button */
.src #sidebar-button > a:before, .sidebar-menu-toggle:before {
/* hamburger button image */
content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" \
viewBox="0 0 22 22" fill="none" stroke="black">\
<path d="M3,5h16M3,11h16M3,17h16" stroke-width="2.75"/></svg>');
Expand All @@ -1850,6 +1876,7 @@ However, it's not needed with smaller screen width because the doc/code block is

/* src sidebar button opens a folder view */
.src #sidebar-button > a:before {
/* folder image */
content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" \
viewBox="0 0 22 22" fill="none" stroke="black">\
<path d="M16,9v-4h-6v-1l-2,-2h-4l-2,2v16h13L21,9h-15L2,19" stroke-width="1.25"/>\
Expand Down
1 change: 0 additions & 1 deletion src/librustdoc/html/static/images/clipboard.svg

This file was deleted.

1 change: 0 additions & 1 deletion src/librustdoc/html/static/images/wheel.svg

This file was deleted.

2 changes: 0 additions & 2 deletions src/librustdoc/html/static_files.rs
Expand Up @@ -99,8 +99,6 @@ static_files! {
src_script_js => "static/js/src-script.js",
storage_js => "static/js/storage.js",
scrape_examples_js => "static/js/scrape-examples.js",
wheel_svg => "static/images/wheel.svg",
clipboard_svg => "static/images/clipboard.svg",
copyright => "static/COPYRIGHT.txt",
license_apache => "static/LICENSE-APACHE.txt",
license_mit => "static/LICENSE-MIT.txt",
Expand Down
1 change: 0 additions & 1 deletion src/tools/tidy/src/allowed_run_make_makefiles.txt
Expand Up @@ -219,7 +219,6 @@ run-make/prefer-rlib/Makefile
run-make/pretty-print-to-file/Makefile
run-make/pretty-print-with-dep-file/Makefile
run-make/print-calling-conventions/Makefile
run-make/print-cfg/Makefile
run-make/print-target-list/Makefile
run-make/profile/Makefile
run-make/prune-link-args/Makefile
Expand Down
37 changes: 0 additions & 37 deletions tests/run-make/print-cfg/Makefile

This file was deleted.

106 changes: 106 additions & 0 deletions tests/run-make/print-cfg/rmake.rs
@@ -0,0 +1,106 @@
//! This checks the output of `--print=cfg`
//!
//! Specifically it checks that output is correctly formatted
//! (ie. no duplicated cfgs, values are between "", names are not).
//!
//! It also checks that some targets have the correct set cfgs.

extern crate run_make_support;

use std::collections::HashSet;
use std::ffi::OsString;
use std::io::BufRead;
use std::iter::FromIterator;

use run_make_support::{rustc, tmp_dir};

struct PrintCfg {
target: &'static str,
includes: &'static [&'static str],
disallow: &'static [&'static str],
}

fn main() {
check(PrintCfg {
target: "x86_64-pc-windows-gnu",
includes: &["windows", "target_arch=\"x86_64\""],
disallow: &["unix"],
});
check(PrintCfg {
target: "i686-pc-windows-msvc",
includes: &["windows", "target_env=\"msvc\""],
disallow: &["unix"],
});
check(PrintCfg {
target: "i686-apple-darwin",
includes: &["unix", "target_os=\"macos\"", "target_vendor=\"apple\""],
disallow: &["windows"],
});
check(PrintCfg {
target: "i686-unknown-linux-gnu",
includes: &["unix", "target_env=\"gnu\""],
disallow: &["windows"],
});
check(PrintCfg {
target: "arm-unknown-linux-gnueabihf",
includes: &["unix", "target_abi=\"eabihf\""],
disallow: &["windows"],
});
}

fn check(PrintCfg { target, includes, disallow }: PrintCfg) {
fn check_(output: &str, includes: &[&str], disallow: &[&str]) {
let mut found = HashSet::<String>::new();
let mut recorded = HashSet::<String>::new();

for l in output.lines() {
assert!(l == l.trim());
if let Some((left, right)) = l.split_once('=') {
assert!(right.starts_with("\""));
assert!(right.ends_with("\""));
assert!(!left.contains("\""));
} else {
assert!(!l.contains("\""));
}

assert!(recorded.insert(l.to_string()), "duplicated: {}", &l);
assert!(!disallow.contains(&l), "found disallowed: {}", &l);
if includes.contains(&l) {
assert!(found.insert(l.to_string()), "duplicated (includes): {}", &l);
}
}

let should_found = HashSet::<String>::from_iter(includes.iter().map(|s| s.to_string()));
let diff: Vec<_> = should_found.difference(&found).collect();

assert!(
diff.is_empty(),
"expected: {:?}, found: {:?} (~ {:?})",
&should_found,
&found,
&diff
);
}

// --print=cfg
{
let output = rustc().target(target).print("cfg").run();

let stdout = String::from_utf8(output.stdout).unwrap();

check_(&stdout, includes, disallow);
}

// --print=cfg=PATH
{
let tmp_path = tmp_dir().join(format!("{target}.cfg"));
let mut print_arg = OsString::from("--print=cfg=");
print_arg.push(tmp_path.as_os_str());

let output = rustc().target(target).arg(print_arg).run();

let output = std::fs::read_to_string(&tmp_path).unwrap();

check_(&output, includes, disallow);
}
}
68 changes: 68 additions & 0 deletions tests/run-make/print-to-output/rmake.rs
@@ -0,0 +1,68 @@
//! This checks the output of some `--print` options when
//! output to a file (instead of stdout)

extern crate run_make_support;

use std::ffi::OsString;

use run_make_support::{rustc, target, tmp_dir};

struct Option<'a> {
target: &'a str,
option: &'static str,
includes: &'static [&'static str],
}

fn main() {
// Printed from CodegenBackend trait impl in rustc_codegen_llvm/src/lib.rs
check(Option {
target: &target(),
option: "relocation-models",
includes: &["dynamic-no-pic"],
});

// Printed by compiler/rustc_codegen_llvm/src/llvm_util.rs
check(Option {
target: "wasm32-unknown-unknown",
option: "target-features",
includes: &["reference-types"],
});

// Printed by C++ code in rustc_llvm/llvm-wrapper/PassWrapper.cpp
check(Option {
target: "wasm32-unknown-unknown",
option: "target-cpus",
includes: &["generic"],
});
}

fn check(args: Option) {
fn check_(output: &str, includes: &[&str]) {
for i in includes {
assert!(output.contains(i), "output doesn't contains: {}", i);
}
}

// --print={option}
let stdout = {
let output = rustc().target(args.target).print(args.option).run();

String::from_utf8(output.stdout).unwrap()
};

// --print={option}=PATH
let output = {
let tmp_path = tmp_dir().join(format!("{}.txt", args.option));
let mut print_arg = OsString::from(format!("--print={}=", args.option));
print_arg.push(tmp_path.as_os_str());

let _output = rustc().target(args.target).arg(print_arg).run();

std::fs::read_to_string(&tmp_path).unwrap()
};

check_(&stdout, args.includes);
check_(&output, args.includes);

assert_eq!(&stdout, &output);
}

0 comments on commit 10505a1

Please sign in to comment.