[pmg-devel] [PATCH pmg-log-tracker] change case sensitive string match to case insensitive

Mira Limbeck m.limbeck at proxmox.com
Mon Nov 9 15:18:46 CET 2020


With the rewrite from C to Rust the search string match was changed to
be case sensitive by accident. Fix this by comparing the lowercase values
of both the input and the search string.

Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
---
 src/main.rs                 |  2 +-
 tests/tests_after_queue.rs  | 23 +++++++++++++++++++++++
 tests/tests_before_queue.rs | 23 +++++++++++++++++++++++
 3 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/src/main.rs b/src/main.rs
index ce09f14..3495269 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1842,7 +1842,7 @@ impl Parser {
 
             self.string_match = false;
             if !self.options.string_match.is_empty()
-                && find(complete_line, self.options.string_match.as_bytes()).is_some()
+                && find_lowercase(complete_line, self.options.string_match.as_bytes()).is_some()
             {
                 self.string_match = true;
             }
diff --git a/tests/tests_after_queue.rs b/tests/tests_after_queue.rs
index 42d0f6b..f6441fa 100644
--- a/tests/tests_after_queue.rs
+++ b/tests/tests_after_queue.rs
@@ -114,3 +114,26 @@ fn after_queue_search_string() {
     let output_reader = BufReader::new(&output.stdout[..]);
     utils::compare_output(output_reader, expected_output);
 }
+
+#[test]
+fn after_queue_search_string_case_insensitive() {
+    let output = Command::new(utils::log_tracker_path())
+        .arg("-vv")
+        .arg("-s")
+        .arg("1608302400")
+        .arg("-e")
+        .arg("1608303600")
+        .arg("-i")
+        .arg("tests/test_input_mixed")
+        .arg("-x")
+        .arg("reJECT")
+        .output()
+        .expect("failed to execute pmg-log-tracker");
+
+    let expected_file = File::open("tests/test_output_after_queue_search_string")
+        .expect("failed to open test_output");
+
+    let expected_output = BufReader::new(&expected_file);
+    let output_reader = BufReader::new(&output.stdout[..]);
+    utils::compare_output(output_reader, expected_output);
+}
diff --git a/tests/tests_before_queue.rs b/tests/tests_before_queue.rs
index bd46e53..fb7a149 100644
--- a/tests/tests_before_queue.rs
+++ b/tests/tests_before_queue.rs
@@ -114,6 +114,29 @@ fn before_queue_search_string() {
     utils::compare_output(output_reader, expected_output);
 }
 
+#[test]
+fn before_queue_search_string_case_insensitive() {
+    let output = Command::new(utils::log_tracker_path())
+        .arg("-vv")
+        .arg("-s")
+        .arg("1608300000")
+        .arg("-e")
+        .arg("1608302400")
+        .arg("-i")
+        .arg("tests/test_input_mixed")
+        .arg("-x")
+        .arg("reJECT")
+        .output()
+        .expect("failed to execute pmg-log-tracker");
+
+    let expected_file = File::open("tests/test_output_before_queue_search_string")
+        .expect("failed to open test_output");
+
+    let expected_output = BufReader::new(&expected_file);
+    let output_reader = BufReader::new(&output.stdout[..]);
+    utils::compare_output(output_reader, expected_output);
+}
+
 #[test]
 fn before_queue_exclude_greylist_ndr() {
     let output = Command::new(utils::log_tracker_path())
-- 
2.20.1





More information about the pmg-devel mailing list