diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 399c44dd..ec5282dd 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -73,9 +73,10 @@ jobs: targets: ${{ matrix.target }} - name: Clippy (release mode) - run: | - cargo clippy --release -- -D warnings && - cargo clean + run: cargo clippy --release -- -D warnings + + - name: Test (release mode) + run: cargo test --release --verbose -- --nocapture - name: Check crate if: matrix.os == 'macos' || matrix.os == 'windows' || matrix.os == 'ubuntu' && matrix.arch == 'amd64' diff --git a/Cargo.lock b/Cargo.lock index a266f8a7..2141071d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4329,9 +4329,9 @@ dependencies = [ [[package]] name = "rustrict" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70a914735778db9d814414e2e7a94f56b811550a9219994d799f427b201d777" +checksum = "6dfe349049fa49baa564f8483d40e7561ff19ccaa308ab4f844bb59d2c5d8d34" dependencies = [ "arrayvec", "bitflags 1.3.2", diff --git a/Cargo.toml b/Cargo.toml index 7338aa98..86013cd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,7 +77,7 @@ serial_test = { version = "3.2.0", default-features = false } [build-dependencies] phf_codegen = "0.11.3" phf_shared = "0.11.3" -rustrict = { version = "0.7.34", default-features = false, features = ["censor"] } +rustrict = { version = "0.7.35", default-features = false, features = ["censor"] } [target."cfg(windows)".build-dependencies] winres = "0.1.12" diff --git a/build.rs b/build.rs index 0dc8d58e..8ded898c 100644 --- a/build.rs +++ b/build.rs @@ -6,8 +6,6 @@ use std::io::{BufRead, BufReader, BufWriter, Write}; use std::path::Path; -use rustrict::{Censor, Trie, Type}; - include!("./src/networking/types/service_query.rs"); include!("./src/networking/types/protocol.rs"); @@ -73,11 +71,12 @@ fn get_valid_service_fmt_const(s: &str) -> String { { panic!("Invalid service name found: {invalid}") } + #[cfg(debug_assertions)] inappropriate - if Censor::from_str(inappropriate) + if rustrict::Censor::from_str(inappropriate) .with_trie(&SAFE_WORDS_FOR_SERVICE_NAME) .analyze() - .is(Type::INAPPROPRIATE) => + .is(rustrict::Type::INAPPROPRIATE) => { panic!("Inappropriate service name found: {inappropriate}") } @@ -98,9 +97,10 @@ fn get_valid_service_query(s: &str) -> ServiceQuery { ServiceQuery(port, protocol) } -pub static SAFE_WORDS_FOR_SERVICE_NAME: std::sync::LazyLock = +#[cfg(debug_assertions)] +static SAFE_WORDS_FOR_SERVICE_NAME: std::sync::LazyLock = std::sync::LazyLock::new(|| { - let mut safe_words = Trie::default(); + let mut safe_words = rustrict::Trie::default(); for word in [ "npp", "emfis-cntl", @@ -190,8 +190,17 @@ fn get_valid_service_query(s: &str) -> ServiceQuery { "3gpp-w1ap", "pmsm-webrctl", "bif-p2p", + "as-servermap", + "nm-asses-admin", + "ias-session", + "smar-se-port1", + "smar-se-port2", + "canon-cpp-disc", + "3gpp-monp", + "emc-pp-mgmtsvc", + "3gpp-cbsp", ] { - safe_words.set(word, Type::SAFE); + safe_words.set(word, rustrict::Type::SAFE); } safe_words }); diff --git a/src/utils/error_logger.rs b/src/utils/error_logger.rs index b8ad1089..f4c5e7e8 100644 --- a/src/utils/error_logger.rs +++ b/src/utils/error_logger.rs @@ -43,11 +43,19 @@ mod tests { use super::*; #[test] + #[cfg(debug_assertions)] #[should_panic] fn test_error_logger_panics_on_err_in_debug_mode() { let err_result: Result = Err("test_error"); let _err_handled = err_result.log_err(location!()); - // assert_eq!(_err_handled, err_result); // true in release mode + } + + #[test] + #[cfg(not(debug_assertions))] + fn test_error_logger_no_panic_on_err_in_release_mode() { + let err_result: Result = Err("test_error"); + let err_handled = err_result.log_err(location!()); + assert_eq!(err_handled, err_result); } #[test]