diff --git a/.travis.yml b/.travis.yml index bb5d6c4..816e4fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ os: - linux - osx -env: - - RUST_TEST_THREADS=1 language: rust rust: - stable diff --git a/Cargo.lock b/Cargo.lock index c27aaa8..56003dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,6 +12,7 @@ dependencies = [ "serde_codegen 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -274,6 +275,14 @@ dependencies = [ "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tempdir" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "term" version = "0.4.4" diff --git a/Cargo.toml b/Cargo.toml index a5bc53c..c7d6b92 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,8 @@ doc = false name = "tokei" path = "src/main.rs" -[build-dependencies] +[dev-dependencies] +tempdir = "~0.3.5" [build-dependencies.serde_codegen] optional = true diff --git a/src/lib/language/languages.rs b/src/lib/language/languages.rs index f18a4b8..30c2668 100644 --- a/src/lib/language/languages.rs +++ b/src/lib/language/languages.rs @@ -90,9 +90,9 @@ fn count_files(language_tuple: &mut (&LanguageType, &mut Language)) { multi_line::handle_multi_line(line, &language, &mut stack, &mut quote); if no_stack { - stats.comments += 1; - } else { stats.code += 1; + } else { + stats.comments += 1; } } **language += stats; @@ -572,38 +572,26 @@ impl DerefMut for Languages { #[cfg(test)] mod accuracy_tests { + extern crate tempdir; use super::*; - use std::io; + use std::io::Write; + use std::fs::File; use language::LanguageType; + use self::tempdir::TempDir; - fn write(contents: &'static str, file_name: &str) -> io::Result<()> { - use std::io::prelude::*; - use std::fs::{File, create_dir}; - let _ = create_dir("./_temp/"); - let mut f = try!(File::create(file_name)); + fn test_accuracy(file_name: &'static str, expected: usize, contents: &'static str) { + let tmp_dir = TempDir::new("test").expect("Couldn't create temp dir"); + let file_name = tmp_dir.path().join(file_name); + let mut file = File::create(&file_name).expect("Couldn't create file"); + file.write(contents.as_bytes()).expect("couldn't write to file"); - try!(f.write_all(&contents.as_bytes())); - Ok(()) - } - - fn cleanup() -> io::Result<()> { - try!(::std::fs::remove_dir_all("./_temp/")); - Ok(()) - } - - fn test_accuracy(file_name: &'static str, expected: u32, contents: &'static str) { - let file_name = format!("./_temp/{}", file_name); - write(contents, &*file_name).unwrap(); let mut l = Languages::new(); - let l_type = LanguageType::from_extension(file_name).expect("Can't find language type"); - - l.get_statistics(vec!["./_temp/"], vec![]); - - let _ = cleanup(); + let l_type = LanguageType::from_extension(&file_name).expect("Can't find language type"); + l.get_statistics(vec![file_name.to_str().unwrap()], vec![]); let language = l.get_mut(&l_type).expect("Couldn't find language"); - assert_eq!(expected as usize, language.code); + assert_eq!(expected, language.code); } #[test]