Fix librustdoc test
This commit is contained in:
parent
194f1ca3f1
commit
eb7664b445
2 changed files with 13 additions and 27 deletions
|
@ -27,6 +27,7 @@
|
||||||
#![allow(non_camel_case_types)]
|
#![allow(non_camel_case_types)]
|
||||||
|
|
||||||
use libc;
|
use libc;
|
||||||
|
use rustc::session::config::get_unstable_features_setting;
|
||||||
use std::ascii::AsciiExt;
|
use std::ascii::AsciiExt;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
|
@ -34,7 +35,7 @@ use std::ffi::CString;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::slice;
|
use std::slice;
|
||||||
use std::str;
|
use std::str;
|
||||||
use std::env;
|
use syntax::feature_gate::UnstableFeatures;
|
||||||
|
|
||||||
use html::render::derive_id;
|
use html::render::derive_id;
|
||||||
use html::toc::TocBuilder;
|
use html::toc::TocBuilder;
|
||||||
|
@ -440,18 +441,6 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_unstable_features_setting() -> bool {
|
|
||||||
// Check if we can activate compile_fail option or not.
|
|
||||||
//
|
|
||||||
// It is done to ensure that it won't be used out-of-tree
|
|
||||||
// because it's not ready yet for production.
|
|
||||||
match (option_env!("CFG_BOOTSTRAP_KEY"),
|
|
||||||
env::var("RUSTC_BOOTSTRAP_KEY").ok()) {
|
|
||||||
(Some(ref cfg), Some(ref r_key)) => cfg == r_key,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Debug)]
|
#[derive(Eq, PartialEq, Clone, Debug)]
|
||||||
struct LangString {
|
struct LangString {
|
||||||
should_panic: bool,
|
should_panic: bool,
|
||||||
|
@ -478,7 +467,10 @@ impl LangString {
|
||||||
let mut seen_rust_tags = false;
|
let mut seen_rust_tags = false;
|
||||||
let mut seen_other_tags = false;
|
let mut seen_other_tags = false;
|
||||||
let mut data = LangString::all_false();
|
let mut data = LangString::all_false();
|
||||||
let allow_compile_fail = get_unstable_features_setting();
|
let allow_compile_fail = match get_unstable_features_setting() {
|
||||||
|
UnstableFeatures::Allow | UnstableFeatures::Cheat=> true,
|
||||||
|
_ => false,
|
||||||
|
};
|
||||||
|
|
||||||
let tokens = string.split(|c: char|
|
let tokens = string.split(|c: char|
|
||||||
!(c == '_' || c == '-' || c.is_alphanumeric())
|
!(c == '_' || c == '-' || c.is_alphanumeric())
|
||||||
|
@ -487,11 +479,7 @@ impl LangString {
|
||||||
for token in tokens {
|
for token in tokens {
|
||||||
match token {
|
match token {
|
||||||
"" => {},
|
"" => {},
|
||||||
"should_panic" => {
|
"should_panic" => { data.should_panic = true; seen_rust_tags = true; },
|
||||||
data.should_panic = true;
|
|
||||||
seen_rust_tags = true;
|
|
||||||
data.no_run = true;
|
|
||||||
},
|
|
||||||
"no_run" => { data.no_run = true; seen_rust_tags = true; },
|
"no_run" => { data.no_run = true; seen_rust_tags = true; },
|
||||||
"ignore" => { data.ignore = true; seen_rust_tags = true; },
|
"ignore" => { data.ignore = true; seen_rust_tags = true; },
|
||||||
"rust" => { data.rust = true; seen_rust_tags = true; },
|
"rust" => { data.rust = true; seen_rust_tags = true; },
|
||||||
|
@ -600,10 +588,10 @@ mod tests {
|
||||||
t("rust", false, false, false, true, false, false);
|
t("rust", false, false, false, true, false, false);
|
||||||
t("sh", false, false, false, false, false, false);
|
t("sh", false, false, false, false, false, false);
|
||||||
t("ignore", false, false, true, true, false, false);
|
t("ignore", false, false, true, true, false, false);
|
||||||
t("should_panic", true, true, false, true, false, false);
|
t("should_panic", true, false, false, true, false, false);
|
||||||
t("no_run", false, true, false, true, false, false);
|
t("no_run", false, true, false, true, false, false);
|
||||||
t("test_harness", false, false, false, true, true, false);
|
t("test_harness", false, false, false, true, true, false);
|
||||||
t("compile_fail", false, false, false, true, false, true);
|
t("compile_fail", false, true, false, true, false, true);
|
||||||
t("{.no_run .example}", false, true, false, true, false, false);
|
t("{.no_run .example}", false, true, false, true, false, false);
|
||||||
t("{.sh .should_panic}", true, false, false, true, false, false);
|
t("{.sh .should_panic}", true, false, false, true, false, false);
|
||||||
t("{.example .rust}", false, false, false, true, false, false);
|
t("{.example .rust}", false, false, false, true, false, false);
|
||||||
|
|
|
@ -257,18 +257,16 @@ fn runtest(test: &str, cratename: &str, cfgs: Vec<String>, libs: SearchPaths,
|
||||||
let b_sess = AssertRecoverSafe::new(&sess);
|
let b_sess = AssertRecoverSafe::new(&sess);
|
||||||
let b_cstore = AssertRecoverSafe::new(&cstore);
|
let b_cstore = AssertRecoverSafe::new(&cstore);
|
||||||
let b_cfg = AssertRecoverSafe::new(cfg.clone());
|
let b_cfg = AssertRecoverSafe::new(cfg.clone());
|
||||||
let b_input = AssertRecoverSafe::new(&input);
|
|
||||||
let b_out = AssertRecoverSafe::new(&out);
|
|
||||||
let b_control = AssertRecoverSafe::new(&control);
|
let b_control = AssertRecoverSafe::new(&control);
|
||||||
|
|
||||||
panic::recover(|| {
|
panic::recover(|| {
|
||||||
AssertRecoverSafe::new(driver::compile_input(&b_sess, &b_cstore, (*b_cfg).clone(),
|
driver::compile_input(&b_sess, &b_cstore, (*b_cfg).clone(),
|
||||||
&b_input, &b_out,
|
&input, &out,
|
||||||
&None, None, &b_control))
|
&None, None, &b_control)
|
||||||
})
|
})
|
||||||
} {
|
} {
|
||||||
Ok(r) => {
|
Ok(r) => {
|
||||||
match *r {
|
match r {
|
||||||
Err(count) if count > 0 && compile_fail == false => {
|
Err(count) if count > 0 && compile_fail == false => {
|
||||||
sess.fatal("aborting due to previous error(s)")
|
sess.fatal("aborting due to previous error(s)")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue