From 8e46927235f27e097707674d7837faa52f92d874 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 17 Feb 2018 15:45:39 +0100 Subject: [PATCH] Add command to launch only doc tests --- src/bootstrap/flags.rs | 10 ++++++++++ src/bootstrap/lib.rs | 2 ++ src/bootstrap/test.rs | 3 +++ 3 files changed, 15 insertions(+) diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index 42b949527e09d..eb5c3b8ce147f 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -60,6 +60,7 @@ pub enum Subcommand { test_args: Vec, rustc_args: Vec, fail_fast: bool, + doc_tests: bool, }, Bench { paths: Vec, @@ -164,6 +165,7 @@ To learn more about a subcommand, run `./x.py -h`"); "extra options to pass the compiler when running tests", "ARGS", ); + opts.optflag("", "doc", "run doc tests"); }, "bench" => { opts.optmulti("", "test-args", "extra arguments", "ARGS"); }, "clean" => { opts.optflag("", "all", "clean all build artifacts"); }, @@ -320,6 +322,7 @@ Arguments: test_args: matches.opt_strs("test-args"), rustc_args: matches.opt_strs("rustc-args"), fail_fast: !matches.opt_present("no-fail-fast"), + doc_tests: matches.opt_present("doc"), } } "bench" => { @@ -410,6 +413,13 @@ impl Subcommand { _ => false, } } + + pub fn doc_tests(&self) -> bool { + match *self { + Subcommand::Test { doc_tests, .. } => doc_tests, + _ => false, + } + } } fn split(s: Vec) -> Vec { diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index afd740ce54845..90f50275b6bb4 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -226,6 +226,7 @@ pub struct Build { rustfmt_info: channel::GitInfo, local_rebuild: bool, fail_fast: bool, + doc_tests: bool, verbosity: usize, // Targets for which to build. @@ -326,6 +327,7 @@ impl Build { initial_cargo: config.initial_cargo.clone(), local_rebuild: config.local_rebuild, fail_fast: config.cmd.fail_fast(), + doc_tests: config.cmd.doc_tests(), verbosity: config.verbose, build: config.build, diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 64ede4f4ecc88..c969f10247180 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -1355,6 +1355,9 @@ impl Step for Crate { if test_kind.subcommand() == "test" && !build.fail_fast { cargo.arg("--no-fail-fast"); } + if build.doc_tests { + cargo.arg("--doc"); + } cargo.arg("-p").arg(krate);