diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2018-05-28 15:30:02 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2018-05-30 14:03:31 -0300 |
| commit | 9df0a41321b8dd3fc48da9b34b3f79b0c37051b7 (patch) | |
| tree | 56a1a5bd485370000fc0be0571b47fa6d1208e18 | |
| parent | 74d09399c1289a20b1c258153f005f2604f9ec46 (diff) | |
| download | rust-9df0a41321b8dd3fc48da9b34b3f79b0c37051b7.tar.gz rust-9df0a41321b8dd3fc48da9b34b3f79b0c37051b7.zip | |
Add polonius compare mode
| -rw-r--r-- | src/tools/compiletest/src/common.rs | 3 | ||||
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index b2ce5ce52f7..951a72fec68 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -99,18 +99,21 @@ impl fmt::Display for Mode { #[derive(Clone, PartialEq)] pub enum CompareMode { Nll, + Polonius, } impl CompareMode { pub(crate) fn to_str(&self) -> &'static str { match *self { CompareMode::Nll => "nll", + CompareMode::Polonius => "polonius", } } pub fn parse(s: String) -> CompareMode { match s.as_str() { "nll" => CompareMode::Nll, + "polonius" => CompareMode::Polonius, x => panic!("unknown --compare-mode option: {}", x), } } diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 9ff80cc1d3c..f1e0c2bea0e 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -1729,6 +1729,9 @@ impl<'test> TestCx<'test> { Some(CompareMode::Nll) => { rustc.args(&["-Zborrowck=mir", "-Ztwo-phase-borrows"]); } + Some(CompareMode::Polonius) => { + rustc.args(&["-Zpolonius", "-Zborrowck=mir", "-Ztwo-phase-borrows"]); + } None => {} } @@ -2898,8 +2901,14 @@ impl<'test> TestCx<'test> { &self.config.compare_mode, kind, ); - if !path.exists() && self.config.compare_mode.is_some() { - // fallback! + + if !path.exists() { + if let Some(CompareMode::Polonius) = self.config.compare_mode { + path = expected_output_path(&self.testpaths, self.revision, &Some(CompareMode::Nll), kind); + } + } + + if !path.exists() { path = expected_output_path(&self.testpaths, self.revision, &None, kind); } |
