Skip to content

Commit 23bac7d

Browse files
committed
---
yaml --- r: 152209 b: refs/heads/try2 c: 3fef7a7 h: refs/heads/master i: 152207: 714c53d v: v3
1 parent 1bec5d1 commit 23bac7d

File tree

5 files changed

+56
-5
lines changed

5 files changed

+56
-5
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 2be0c5b5f59fd6bcd3f003632d26b1cd204e5cd0
8+
refs/heads/try2: 3fef7a74ca9a642f51cdf8ec4f148916580b34ce
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/librustdoc/html/markdown.rs

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector) {
287287
slice::raw::buf_as_slice((*lang).data,
288288
(*lang).size as uint, |lang| {
289289
let s = str::from_utf8(lang).unwrap();
290-
(s.contains("should_fail"),
291-
s.contains("no_run"),
292-
s.contains("ignore"),
293-
s.contains("notrust"))
290+
parse_lang_string(s)
294291
})
295292
};
296293
if notrust { return }
@@ -340,6 +337,35 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector) {
340337
}
341338
}
342339

340+
fn parse_lang_string(string: &str) -> (bool,bool,bool,bool) {
341+
let mut seen_rust_tags = false;
342+
let mut seen_other_tags = false;
343+
let mut should_fail = false;
344+
let mut no_run = false;
345+
let mut ignore = false;
346+
let mut notrust = false;
347+
348+
let mut tokens = string.as_slice().split(|c: char|
349+
!(c == '_' || c == '-' || c.is_alphanumeric())
350+
);
351+
352+
for token in tokens {
353+
match token {
354+
"" => {},
355+
"should_fail" => { should_fail = true; seen_rust_tags = true; },
356+
"no_run" => { no_run = true; seen_rust_tags = true; },
357+
"ignore" => { ignore = true; seen_rust_tags = true; },
358+
"notrust" => { notrust = true; seen_rust_tags = true; },
359+
"rust" => { notrust = false; seen_rust_tags = true; },
360+
_ => { seen_other_tags = true }
361+
}
362+
}
363+
364+
let notrust = notrust || (seen_other_tags && !seen_rust_tags);
365+
366+
(should_fail, no_run, ignore, notrust)
367+
}
368+
343369
/// By default this markdown renderer generates anchors for each header in the
344370
/// rendered document. The anchor name is the contents of the header spearated
345371
/// by hyphens, and a task-local map is used to disambiguate among duplicate
@@ -367,3 +393,22 @@ impl<'a> fmt::Show for MarkdownWithToc<'a> {
367393
render(fmt, md.as_slice(), true)
368394
}
369395
}
396+
397+
#[cfg(test)]
398+
mod tests {
399+
use super::parse_lang_string;
400+
401+
#[test]
402+
fn test_parse_lang_string() {
403+
assert_eq!(parse_lang_string(""), (false,false,false,false))
404+
assert_eq!(parse_lang_string("rust"), (false,false,false,false))
405+
assert_eq!(parse_lang_string("sh"), (false,false,false,true))
406+
assert_eq!(parse_lang_string("notrust"), (false,false,false,true))
407+
assert_eq!(parse_lang_string("ignore"), (false,false,true,false))
408+
assert_eq!(parse_lang_string("should_fail"), (true,false,false,false))
409+
assert_eq!(parse_lang_string("no_run"), (false,true,false,false))
410+
assert_eq!(parse_lang_string("{.no_run .example}"), (false,true,false,false))
411+
assert_eq!(parse_lang_string("{.sh .should_fail}"), (true,false,false,false))
412+
assert_eq!(parse_lang_string("{.example .rust}"), (false,false,false,false))
413+
}
414+
}

branches/try2/src/test/run-pass/extern-pass-TwoU64s.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
// Test a foreign function that accepts and returns a struct
1212
// by value.
1313

14+
// ignore-win32 #9205
15+
1416
#[deriving(PartialEq, Show)]
1517
struct TwoU64s {
1618
one: u64, two: u64

branches/try2/src/test/run-pass/extern-return-TwoU64s.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// ignore-win32 #9205
12+
1113
struct TwoU64s {
1214
one: u64, two: u64
1315
}

branches/try2/src/test/run-pass/struct-return.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// ignore-win32 #9205
12+
1113
pub struct Quad { a: u64, b: u64, c: u64, d: u64 }
1214
pub struct Floats { a: f64, b: u8, c: f64 }
1315

0 commit comments

Comments
 (0)