diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-06-22 01:42:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-22 01:42:31 +0200 |
| commit | 18bb75477a4053534d8e6c28d573bde03f6ede26 (patch) | |
| tree | dd4efb1aa03ae733ed3938a127fc09acc57f1d4a | |
| parent | 3a8536edefdef91f5982e5ba3df200bc7d7d936a (diff) | |
| parent | 640bdbdb1da73cde39c33fc2be3cddd3b71389b0 (diff) | |
| download | rust-18bb75477a4053534d8e6c28d573bde03f6ede26.tar.gz rust-18bb75477a4053534d8e6c28d573bde03f6ede26.zip | |
Rollup merge of #61181 - GuillaumeGomez:fix-theme-checker, r=kinnison
Fix theme-checker failure Fixes #61145. I didn't find a way to check it without strongly depending on the output... Is there a way to check if a program fails without checking its output? r? @QuietMisdreavus
| -rw-r--r-- | src/librustdoc/theme.rs | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/librustdoc/theme.rs b/src/librustdoc/theme.rs index 7a0ccf6975f..7220a05df47 100644 --- a/src/librustdoc/theme.rs +++ b/src/librustdoc/theme.rs @@ -103,16 +103,16 @@ fn is_line_comment(pos: usize, v: &[u8], events: &[Events]) -> bool { if let Some(&Events::StartComment(_)) = events.last() { return false; } - pos + 1 < v.len() && v[pos + 1] == b'/' + v[pos + 1] == b'/' } fn load_css_events(v: &[u8]) -> Vec<Events> { let mut pos = 0; let mut events = Vec::with_capacity(100); - while pos < v.len() - 1 { + while pos + 1 < v.len() { match v[pos] { - b'/' if pos + 1 < v.len() && v[pos + 1] == b'*' => { + b'/' if v[pos + 1] == b'*' => { events.push(Events::StartComment(pos)); pos += 1; } @@ -123,7 +123,7 @@ fn load_css_events(v: &[u8]) -> Vec<Events> { b'\n' if previous_is_line_comment(&events) => { events.push(Events::EndComment(pos)); } - b'*' if pos + 1 < v.len() && v[pos + 1] == b'/' => { + b'*' if v[pos + 1] == b'/' => { events.push(Events::EndComment(pos + 2)); pos += 1; } @@ -264,9 +264,11 @@ pub fn get_differences(against: &CssPath, other: &CssPath, v: &mut Vec<String>) } } -pub fn test_theme_against<P: AsRef<Path>>(f: &P, against: &CssPath, diag: &Handler) - -> (bool, Vec<String>) -{ +pub fn test_theme_against<P: AsRef<Path>>( + f: &P, + against: &CssPath, + diag: &Handler, +) -> (bool, Vec<String>) { let data = try_something!(fs::read(f), diag, (false, vec![])); let paths = load_css_paths(&data); let mut ret = vec![]; @@ -366,4 +368,16 @@ a { get_differences(&other, &against, &mut ret); assert_eq!(ret, vec![" Missing \"c\" rule".to_owned()]); } + + #[test] + fn check_empty_css() { + let events = load_css_events(&[]); + assert_eq!(events.len(), 0); + } + + #[test] + fn check_invalid_css() { + let events = load_css_events(b"*"); + assert_eq!(events.len(), 0); + } } |
