run_make_support: moved some helpers into string
module
This commit is contained in:
parent
0dfecb3855
commit
57a2f76557
@ -5,52 +5,6 @@
|
|||||||
|
|
||||||
use crate::fs as rfs;
|
use crate::fs as rfs;
|
||||||
|
|
||||||
/// Gathers all files in the current working directory that have the extension `ext`, and counts
|
|
||||||
/// the number of lines within that contain a match with the regex pattern `re`.
|
|
||||||
pub fn count_regex_matches_in_files_with_extension(re: ®ex::Regex, ext: &str) -> usize {
|
|
||||||
let fetched_files = shallow_find_files(cwd(), |path| has_extension(path, ext));
|
|
||||||
|
|
||||||
let mut count = 0;
|
|
||||||
for file in fetched_files {
|
|
||||||
let content = rfs::read_to_string(file);
|
|
||||||
count += content.lines().filter(|line| re.is_match(&line)).count();
|
|
||||||
}
|
|
||||||
|
|
||||||
count
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Read the contents of a file that cannot simply be read by
|
|
||||||
/// [`read_to_string`][crate::fs::read_to_string], due to invalid UTF-8 data, then assert
|
|
||||||
/// that it contains `expected`.
|
|
||||||
#[track_caller]
|
|
||||||
pub fn invalid_utf8_contains<P: AsRef<Path>, S: AsRef<str>>(path: P, expected: S) {
|
|
||||||
let buffer = rfs::read(path.as_ref());
|
|
||||||
let expected = expected.as_ref();
|
|
||||||
if !String::from_utf8_lossy(&buffer).contains(expected) {
|
|
||||||
eprintln!("=== FILE CONTENTS (LOSSY) ===");
|
|
||||||
eprintln!("{}", String::from_utf8_lossy(&buffer));
|
|
||||||
eprintln!("=== SPECIFIED TEXT ===");
|
|
||||||
eprintln!("{}", expected);
|
|
||||||
panic!("specified text was not found in file");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Read the contents of a file that cannot simply be read by
|
|
||||||
/// [`read_to_string`][crate::fs::read_to_string], due to invalid UTF-8 data, then assert
|
|
||||||
/// that it does not contain `expected`.
|
|
||||||
#[track_caller]
|
|
||||||
pub fn invalid_utf8_not_contains<P: AsRef<Path>, S: AsRef<str>>(path: P, expected: S) {
|
|
||||||
let buffer = rfs::read(path.as_ref());
|
|
||||||
let expected = expected.as_ref();
|
|
||||||
if String::from_utf8_lossy(&buffer).contains(expected) {
|
|
||||||
eprintln!("=== FILE CONTENTS (LOSSY) ===");
|
|
||||||
eprintln!("{}", String::from_utf8_lossy(&buffer));
|
|
||||||
eprintln!("=== SPECIFIED TEXT ===");
|
|
||||||
eprintln!("{}", expected);
|
|
||||||
panic!("specified text was unexpectedly found in file");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Assert that `actual` is equal to `expected`.
|
/// Assert that `actual` is equal to `expected`.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn assert_equals<A: AsRef<str>, E: AsRef<str>>(actual: A, expected: E) {
|
pub fn assert_equals<A: AsRef<str>, E: AsRef<str>>(actual: A, expected: E) {
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
pub mod path_helpers;
|
pub mod path_helpers;
|
||||||
pub mod run;
|
pub mod run;
|
||||||
pub mod scoped_run;
|
pub mod scoped_run;
|
||||||
|
pub mod string;
|
||||||
pub mod targets;
|
pub mod targets;
|
||||||
|
|
||||||
// Re-exports of third-party library crates.
|
// Re-exports of third-party library crates.
|
||||||
@ -71,5 +72,8 @@
|
|||||||
|
|
||||||
pub use assertion_helpers::{
|
pub use assertion_helpers::{
|
||||||
assert_contains, assert_equals, assert_not_contains, assert_recursive_eq,
|
assert_contains, assert_equals, assert_not_contains, assert_recursive_eq,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub use string::{
|
||||||
count_regex_matches_in_files_with_extension, invalid_utf8_contains, invalid_utf8_not_contains,
|
count_regex_matches_in_files_with_extension, invalid_utf8_contains, invalid_utf8_not_contains,
|
||||||
};
|
};
|
||||||
|
50
src/tools/run-make-support/src/string.rs
Normal file
50
src/tools/run-make-support/src/string.rs
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
use crate::fs as rfs;
|
||||||
|
use crate::path_helpers::{cwd, has_extension, shallow_find_files};
|
||||||
|
|
||||||
|
/// Gathers all files in the current working directory that have the extension `ext`, and counts
|
||||||
|
/// the number of lines within that contain a match with the regex pattern `re`.
|
||||||
|
pub fn count_regex_matches_in_files_with_extension(re: ®ex::Regex, ext: &str) -> usize {
|
||||||
|
let fetched_files = shallow_find_files(cwd(), |path| has_extension(path, ext));
|
||||||
|
|
||||||
|
let mut count = 0;
|
||||||
|
for file in fetched_files {
|
||||||
|
let content = rfs::read_to_string(file);
|
||||||
|
count += content.lines().filter(|line| re.is_match(&line)).count();
|
||||||
|
}
|
||||||
|
|
||||||
|
count
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Read the contents of a file that cannot simply be read by
|
||||||
|
/// [`read_to_string`][crate::fs::read_to_string], due to invalid UTF-8 data, then assert
|
||||||
|
/// that it contains `expected`.
|
||||||
|
#[track_caller]
|
||||||
|
pub fn invalid_utf8_contains<P: AsRef<Path>, S: AsRef<str>>(path: P, expected: S) {
|
||||||
|
let buffer = rfs::read(path.as_ref());
|
||||||
|
let expected = expected.as_ref();
|
||||||
|
if !String::from_utf8_lossy(&buffer).contains(expected) {
|
||||||
|
eprintln!("=== FILE CONTENTS (LOSSY) ===");
|
||||||
|
eprintln!("{}", String::from_utf8_lossy(&buffer));
|
||||||
|
eprintln!("=== SPECIFIED TEXT ===");
|
||||||
|
eprintln!("{}", expected);
|
||||||
|
panic!("specified text was not found in file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Read the contents of a file that cannot simply be read by
|
||||||
|
/// [`read_to_string`][crate::fs::read_to_string], due to invalid UTF-8 data, then assert
|
||||||
|
/// that it does not contain `expected`.
|
||||||
|
#[track_caller]
|
||||||
|
pub fn invalid_utf8_not_contains<P: AsRef<Path>, S: AsRef<str>>(path: P, expected: S) {
|
||||||
|
let buffer = rfs::read(path.as_ref());
|
||||||
|
let expected = expected.as_ref();
|
||||||
|
if String::from_utf8_lossy(&buffer).contains(expected) {
|
||||||
|
eprintln!("=== FILE CONTENTS (LOSSY) ===");
|
||||||
|
eprintln!("{}", String::from_utf8_lossy(&buffer));
|
||||||
|
eprintln!("=== SPECIFIED TEXT ===");
|
||||||
|
eprintln!("{}", expected);
|
||||||
|
panic!("specified text was unexpectedly found in file");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user