mirror of
https://github.com/LemmyNet/lemmy
synced 2024-11-29 16:00:21 +00:00
45 lines
1.4 KiB
Rust
45 lines
1.4 KiB
Rust
use lemmy_utils::error::LemmyErrorType;
|
|
use std::{env::current_dir, process::Command};
|
|
use strum::IntoEnumIterator;
|
|
|
|
#[test]
|
|
#[allow(clippy::unwrap_used)]
|
|
fn test_errors_used() {
|
|
let mut unused_error_found = false;
|
|
let mut current_dir = current_dir().unwrap();
|
|
current_dir.pop();
|
|
current_dir.pop();
|
|
for error in LemmyErrorType::iter() {
|
|
let search = format!("LemmyErrorType::{error}");
|
|
let mut grep_all = Command::new("grep");
|
|
let grep_all = grep_all
|
|
.current_dir(current_dir.clone())
|
|
.arg("-R")
|
|
.arg("--exclude=error.rs")
|
|
.arg(&search)
|
|
.arg("crates/")
|
|
.arg("src/");
|
|
let output = grep_all.output().unwrap();
|
|
let grep_all_out = std::str::from_utf8(&output.stdout).unwrap();
|
|
|
|
let mut grep_apub = Command::new("grep");
|
|
let grep_apub = grep_apub
|
|
.current_dir(current_dir.clone())
|
|
.arg("-R")
|
|
.arg("--exclude-dir=api")
|
|
.arg(&search)
|
|
.arg("crates/apub/");
|
|
let output = grep_apub.output().unwrap();
|
|
let grep_apub_out = std::str::from_utf8(&output.stdout).unwrap();
|
|
|
|
if grep_all_out.is_empty() {
|
|
println!("LemmyErrorType::{} is unused", error);
|
|
unused_error_found = true;
|
|
}
|
|
if search != "LemmyErrorType::FederationError" && grep_all_out == grep_apub_out {
|
|
println!("LemmyErrorType::{} is only used for federation", error);
|
|
unused_error_found = true;
|
|
}
|
|
}
|
|
assert!(!unused_error_found);
|
|
}
|