From ba8712c5fd5437edda488021cdb68f323a245b76 Mon Sep 17 00:00:00 2001
From: Manish Goregaokar <manishsmail@gmail.com>
Date: Sun, 7 Apr 2019 12:01:39 -0700
Subject: [PATCH 1/3] Revert tests/compile-test.rs to
 61aa5c957c219abe1fb2d1b5e51db8b365b4f565

---
 tests/compile-test.rs | 47 +++++++++----------------------------------
 1 file changed, 9 insertions(+), 38 deletions(-)

diff --git a/tests/compile-test.rs b/tests/compile-test.rs
index 1a53b9659082..b6a4beff0469 100644
--- a/tests/compile-test.rs
+++ b/tests/compile-test.rs
@@ -1,7 +1,7 @@
 #![feature(test)]
 
 use compiletest_rs as compiletest;
-use libtest::TestDescAndFn;
+extern crate test;
 
 use std::env::{set_var, var};
 use std::ffi::OsStr;
@@ -74,12 +74,15 @@ fn run_mode(mode: &str, dir: PathBuf) {
     compiletest::run_tests(&cfg);
 }
 
-#[warn(clippy::identity_conversion)]
-fn run_ui_toml_tests(config: &compiletest::Config, mut tests: Vec<TestDescAndFn>) -> Result<bool, io::Error> {
+fn run_ui_toml_tests(config: &compiletest::Config, mut tests: Vec<test::TestDescAndFn>) -> Result<bool, io::Error> {
     let mut result = true;
     let opts = compiletest::test_opts(config);
     for dir in fs::read_dir(&config.src_base)? {
-        let dir_path = dir.unwrap().path();
+        let dir = dir?;
+        if !dir.file_type()?.is_dir() {
+            continue;
+        }
+        let dir_path = dir.path();
         set_var("CARGO_MANIFEST_DIR", &dir_path);
         for file in fs::read_dir(&dir_path)? {
             let file = file?;
@@ -98,25 +101,9 @@ fn run_ui_toml_tests(config: &compiletest::Config, mut tests: Vec<TestDescAndFn>
             let test_name = compiletest::make_test_name(&config, &paths);
             let index = tests
                 .iter()
-                .position(|test| test.desc.name.to_string() == test_name.to_string())
+                .position(|test| test.desc.name == test_name)
                 .expect("The test should be in there");
-            let opts = libtest::TestOpts {
-                list: opts.list,
-                filter: opts.filter.clone(),
-                filter_exact: opts.filter_exact,
-                exclude_should_panic: Default::default(),
-                run_ignored: libtest::RunIgnored::No,
-                run_tests: opts.run_tests,
-                bench_benchmarks: opts.bench_benchmarks,
-                logfile: opts.logfile.clone(),
-                nocapture: opts.nocapture,
-                color: libtest::ColorConfig::AutoColor,
-                format: libtest::OutputFormat::Pretty,
-                test_threads: opts.test_threads,
-                skip: opts.skip.clone(),
-                options: libtest::Options::new(),
-            };
-            result &= libtest::run_tests_console(&opts, vec![tests.swap_remove(index)])?;
+            result &= test::run_tests_console(&opts, vec![tests.swap_remove(index)])?;
         }
     }
     Ok(result)
@@ -127,22 +114,6 @@ fn run_ui_toml() {
     let config = config("ui", path);
     let tests = compiletest::make_tests(&config);
 
-    let tests = tests
-        .into_iter()
-        .map(|test| {
-            libtest::TestDescAndFn {
-                desc: libtest::TestDesc {
-                    name: libtest::TestName::DynTestName(test.desc.name.to_string()),
-                    ignore: test.desc.ignore,
-                    allow_fail: test.desc.allow_fail,
-                    should_panic: libtest::ShouldPanic::No,
-                },
-                // oli obk giving up
-                testfn: unsafe { std::mem::transmute(test.testfn) },
-            }
-        })
-        .collect();
-
     let res = run_ui_toml_tests(&config, tests);
     match res {
         Ok(true) => {},

From a8ce9d655ae600b707c72e31b2c18c4060e60ff4 Mon Sep 17 00:00:00 2001
From: Manish Goregaokar <manishsmail@gmail.com>
Date: Sun, 7 Apr 2019 12:02:22 -0700
Subject: [PATCH 2/3] Use latest compiletest-rs

---
 Cargo.toml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Cargo.toml b/Cargo.toml
index 3d36e52d2df8..ffc1dfcabec6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -47,7 +47,7 @@ rustc_tools_util = { version = "0.1.1", path = "rustc_tools_util"}
 [dev-dependencies]
 clippy_dev = { version = "0.0.1", path = "clippy_dev" }
 cargo_metadata = "0.7.1"
-compiletest_rs = { version = "=0.3.19", features = ["tmp", "stable"] }
+compiletest_rs = { version = "0.3.21" }
 libtest = "0.0.1"
 lazy_static = "1.0"
 serde_derive = "1.0"

From ee69237274b130bb300742897f6ad7011243dc7b Mon Sep 17 00:00:00 2001
From: Manish Goregaokar <manishsmail@gmail.com>
Date: Sun, 7 Apr 2019 12:07:20 -0700
Subject: [PATCH 3/3] Re-allow clippy::identity_conversion in compiletest

---
 tests/compile-test.rs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/compile-test.rs b/tests/compile-test.rs
index b6a4beff0469..bafd64e934f3 100644
--- a/tests/compile-test.rs
+++ b/tests/compile-test.rs
@@ -74,6 +74,7 @@ fn run_mode(mode: &str, dir: PathBuf) {
     compiletest::run_tests(&cfg);
 }
 
+#[allow(clippy::identity_conversion)]
 fn run_ui_toml_tests(config: &compiletest::Config, mut tests: Vec<test::TestDescAndFn>) -> Result<bool, io::Error> {
     let mut result = true;
     let opts = compiletest::test_opts(config);