fixed regression, moved to tempdir for testing.

This commit is contained in:
Aaronepower 2016-09-08 20:52:11 +01:00
parent e2b7328275
commit bfc80d5b69
4 changed files with 25 additions and 29 deletions

View File

@ -1,8 +1,6 @@
os:
- linux
- osx
env:
- RUST_TEST_THREADS=1
language: rust
rust:
- stable

9
Cargo.lock generated
View File

@ -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"

View File

@ -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

View File

@ -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]