From ce898183b83eb2cf86c8c6ceeeac16ef68fdc802 Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Sat, 11 Aug 2018 10:03:03 +0300
Subject: Simplify tests

---
 crates/libsyntax2/Cargo.toml                 |   2 +-
 crates/libsyntax2/tests/lexer.rs             |  28 ------
 crates/libsyntax2/tests/parser.rs            |  14 ---
 crates/libsyntax2/tests/test/main.rs         | 143 +++++++++++++++++++++++++++
 crates/libsyntax2/tests/testutils/Cargo.toml |   7 --
 crates/libsyntax2/tests/testutils/src/lib.rs | 111 ---------------------
 6 files changed, 144 insertions(+), 161 deletions(-)
 delete mode 100644 crates/libsyntax2/tests/lexer.rs
 delete mode 100644 crates/libsyntax2/tests/parser.rs
 create mode 100644 crates/libsyntax2/tests/test/main.rs
 delete mode 100644 crates/libsyntax2/tests/testutils/Cargo.toml
 delete mode 100644 crates/libsyntax2/tests/testutils/src/lib.rs

(limited to 'crates/libsyntax2')

diff --git a/crates/libsyntax2/Cargo.toml b/crates/libsyntax2/Cargo.toml
index f67735540..5a76ea82b 100644
--- a/crates/libsyntax2/Cargo.toml
+++ b/crates/libsyntax2/Cargo.toml
@@ -12,4 +12,4 @@ drop_bomb = "0.1.4"
 parking_lot = "0.6.0"
 
 [dev-dependencies]
-testutils = { path = "./tests/testutils" }
+difference = "2.0.0"
diff --git a/crates/libsyntax2/tests/lexer.rs b/crates/libsyntax2/tests/lexer.rs
deleted file mode 100644
index 46ac9fedd..000000000
--- a/crates/libsyntax2/tests/lexer.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-extern crate libsyntax2;
-extern crate testutils;
-
-use std::fmt::Write;
-
-use libsyntax2::{tokenize, Token};
-use testutils::dir_tests;
-
-#[test]
-fn lexer_tests() {
-    dir_tests(&["lexer"], |text| {
-        let tokens = tokenize(text);
-        dump_tokens(&tokens, text)
-    })
-}
-
-fn dump_tokens(tokens: &[Token], text: &str) -> String {
-    let mut acc = String::new();
-    let mut offset = 0;
-    for token in tokens {
-        let len: u32 = token.len.into();
-        let len = len as usize;
-        let token_text = &text[offset..offset + len];
-        offset += len;
-        write!(acc, "{:?} {} {:?}\n", token.kind, token.len, token_text).unwrap()
-    }
-    acc
-}
diff --git a/crates/libsyntax2/tests/parser.rs b/crates/libsyntax2/tests/parser.rs
deleted file mode 100644
index af2ae11bb..000000000
--- a/crates/libsyntax2/tests/parser.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-extern crate libsyntax2;
-extern crate testutils;
-
-use libsyntax2::parse;
-use libsyntax2::utils::dump_tree;
-use testutils::dir_tests;
-
-#[test]
-fn parser_tests() {
-    dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| {
-        let file = parse(text);
-        dump_tree(&file)
-    })
-}
diff --git a/crates/libsyntax2/tests/test/main.rs b/crates/libsyntax2/tests/test/main.rs
new file mode 100644
index 000000000..18e5bc4d4
--- /dev/null
+++ b/crates/libsyntax2/tests/test/main.rs
@@ -0,0 +1,143 @@
+extern crate libsyntax2;
+extern crate difference;
+
+use std::{
+    fs,
+    path::{Path, PathBuf},
+    fmt::Write,
+};
+
+use difference::Changeset;
+
+#[test]
+fn lexer_tests() {
+    dir_tests(&["lexer"], |text| {
+        let tokens = libsyntax2::tokenize(text);
+        dump_tokens(&tokens, text)
+    })
+}
+
+#[test]
+fn parser_tests() {
+    dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| {
+        let file = libsyntax2::parse(text);
+        libsyntax2::utils::dump_tree(&file)
+    })
+}
+
+
+/// Read file and normalize newlines.
+///
+/// `rustc` seems to always normalize `\r\n` newlines to `\n`:
+///
+/// ```
+/// let s = "
+/// ";
+/// assert_eq!(s.as_bytes(), &[10]);
+/// ```
+///
+/// so this should always be correct.
+fn read_text(path: &Path) -> String {
+    fs::read_to_string(path).unwrap().replace("\r\n", "\n")
+}
+
+pub fn dir_tests<F>(paths: &[&str], f: F)
+    where
+        F: Fn(&str) -> String,
+{
+    for path in collect_tests(paths) {
+        let input_code = read_text(&path);
+        let parse_tree = f(&input_code);
+        let path = path.with_extension("txt");
+        if !path.exists() {
+            println!("\nfile: {}", path.display());
+            println!("No .txt file with expected result, creating...\n");
+            println!("{}\n{}", input_code, parse_tree);
+            fs::write(&path, parse_tree).unwrap();
+            panic!("No expected result")
+        }
+        let expected = read_text(&path);
+        let expected = expected.as_str();
+        let parse_tree = parse_tree.as_str();
+        assert_equal_text(expected, parse_tree, &path);
+    }
+}
+
+fn assert_equal_text(expected: &str, actual: &str, path: &Path) {
+    if expected != actual {
+        print_difference(expected, actual, path)
+    }
+}
+
+fn collect_tests(paths: &[&str]) -> Vec<PathBuf> {
+    paths
+        .iter()
+        .flat_map(|path| {
+            let path = test_data_dir().join(path);
+            test_from_dir(&path).into_iter()
+        })
+        .collect()
+}
+
+fn test_from_dir(dir: &Path) -> Vec<PathBuf> {
+    let mut acc = Vec::new();
+    for file in fs::read_dir(&dir).unwrap() {
+        let file = file.unwrap();
+        let path = file.path();
+        if path.extension().unwrap_or_default() == "rs" {
+            acc.push(path);
+        }
+    }
+    acc.sort();
+    acc
+}
+
+const REWRITE: bool = false;
+
+fn print_difference(expected: &str, actual: &str, path: &Path) {
+    let dir = project_dir();
+    let path = path.strip_prefix(&dir).unwrap_or_else(|_| path);
+    if expected.trim() == actual.trim() {
+        println!("whitespace difference, rewriting");
+        println!("file: {}\n", path.display());
+        fs::write(path, actual).unwrap();
+        return;
+    }
+    if REWRITE {
+        println!("rewriting {}", path.display());
+        fs::write(path, actual).unwrap();
+        return;
+    }
+    let changeset = Changeset::new(actual, expected, "\n");
+    println!("Expected:\n{}\n\nActual:\n{}\n", expected, actual);
+    print!("{}", changeset);
+    println!("file: {}\n", path.display());
+    panic!("Comparison failed")
+}
+
+fn project_dir() -> PathBuf {
+    let dir = env!("CARGO_MANIFEST_DIR");
+    PathBuf::from(dir)
+        .parent()
+        .unwrap()
+        .parent()
+        .unwrap()
+        .to_owned()
+}
+
+fn test_data_dir() -> PathBuf {
+    project_dir().join("crates/libsyntax2/tests/data")
+}
+
+fn dump_tokens(tokens: &[libsyntax2::Token], text: &str) -> String {
+    let mut acc = String::new();
+    let mut offset = 0;
+    for token in tokens {
+        let len: u32 = token.len.into();
+        let len = len as usize;
+        let token_text = &text[offset..offset + len];
+        offset += len;
+        write!(acc, "{:?} {} {:?}\n", token.kind, token.len, token_text).unwrap()
+    }
+    acc
+}
diff --git a/crates/libsyntax2/tests/testutils/Cargo.toml b/crates/libsyntax2/tests/testutils/Cargo.toml
deleted file mode 100644
index 53b20f17b..000000000
--- a/crates/libsyntax2/tests/testutils/Cargo.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[package]
-name = "testutils"
-version = "0.1.0"
-authors = ["Aleksey Kladov <aleksey.kladov@gmail.com>"]
-
-[dependencies]
-difference = "2.0.0"
diff --git a/crates/libsyntax2/tests/testutils/src/lib.rs b/crates/libsyntax2/tests/testutils/src/lib.rs
deleted file mode 100644
index 39c821661..000000000
--- a/crates/libsyntax2/tests/testutils/src/lib.rs
+++ /dev/null
@@ -1,111 +0,0 @@
-extern crate difference;
-
-use std::{
-    fs,
-    path::{Path, PathBuf},
-};
-
-use difference::Changeset;
-
-/// Read file and normalize newlines.
-///
-/// `rustc` seems to always normalize `\r\n` newlines to `\n`:
-///
-/// ```
-/// let s = "
-/// ";
-/// assert_eq!(s.as_bytes(), &[10]);
-/// ```
-///
-/// so this should always be correct.
-fn read_text(path: &Path) -> String {
-    fs::read_to_string(path).unwrap().replace("\r\n", "\n")
-}
-
-pub fn dir_tests<F>(paths: &[&str], f: F)
-where
-    F: Fn(&str) -> String,
-{
-    for path in collect_tests(paths) {
-        let input_code = read_text(&path);
-        let parse_tree = f(&input_code);
-        let path = path.with_extension("txt");
-        if !path.exists() {
-            println!("\nfile: {}", path.display());
-            println!("No .txt file with expected result, creating...\n");
-            println!("{}\n{}", input_code, parse_tree);
-            fs::write(&path, parse_tree).unwrap();
-            panic!("No expected result")
-        }
-        let expected = read_text(&path);
-        let expected = expected.as_str();
-        let parse_tree = parse_tree.as_str();
-        assert_equal_text(expected, parse_tree, &path);
-    }
-}
-
-fn assert_equal_text(expected: &str, actual: &str, path: &Path) {
-    if expected != actual {
-        print_difference(expected, actual, path)
-    }
-}
-
-fn collect_tests(paths: &[&str]) -> Vec<PathBuf> {
-    paths
-        .iter()
-        .flat_map(|path| {
-            let path = test_data_dir().join(path);
-            test_from_dir(&path).into_iter()
-        })
-        .collect()
-}
-
-fn test_from_dir(dir: &Path) -> Vec<PathBuf> {
-    let mut acc = Vec::new();
-    for file in fs::read_dir(&dir).unwrap() {
-        let file = file.unwrap();
-        let path = file.path();
-        if path.extension().unwrap_or_default() == "rs" {
-            acc.push(path);
-        }
-    }
-    acc.sort();
-    acc
-}
-
-const REWRITE: bool = false;
-
-fn print_difference(expected: &str, actual: &str, path: &Path) {
-    let dir = project_dir();
-    let path = path.strip_prefix(&dir).unwrap_or_else(|_| path);
-    if expected.trim() == actual.trim() {
-        println!("whitespace difference, rewriting");
-        println!("file: {}\n", path.display());
-        fs::write(path, actual).unwrap();
-        return;
-    }
-    if REWRITE {
-        println!("rewriting {}", path.display());
-        fs::write(path, actual).unwrap();
-        return;
-    }
-    let changeset = Changeset::new(actual, expected, "\n");
-    println!("Expected:\n{}\n\nActual:\n{}\n", expected, actual);
-    print!("{}", changeset);
-    println!("file: {}\n", path.display());
-    panic!("Comparison failed")
-}
-
-fn project_dir() -> PathBuf {
-    let dir = env!("CARGO_MANIFEST_DIR");
-    PathBuf::from(dir)
-        .parent()
-        .unwrap()
-        .parent()
-        .unwrap()
-        .to_owned()
-}
-
-fn test_data_dir() -> PathBuf {
-    project_dir().join("tests/data")
-}
-- 
cgit v1.2.3