From 9df0a41321b8dd3fc48da9b34b3f79b0c37051b7 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Mon, 28 May 2018 15:30:02 -0300 Subject: [PATCH] Add polonius compare mode --- src/tools/compiletest/src/common.rs | 3 +++ 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 b2ce5ce52f719..951a72fec6891 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 9ff80cc1d3c30..f1e0c2bea0e40 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); }