From c740c656a8397b10fa31b42ac8d54942b9899d8e Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Wed, 16 Apr 2025 09:44:26 +0200 Subject: [PATCH] Fix builtin test assigning wrong range to "! -d /" (Rust port regression) Fixes #11387 --- src/builtins/test.rs | 3 ++- src/builtins/tests/test_tests.rs | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/builtins/test.rs b/src/builtins/test.rs index b005811a7..8d6917e12 100644 --- a/src/builtins/test.rs +++ b/src/builtins/test.rs @@ -684,10 +684,11 @@ fn parse_4_arg_expression( if let Token::UnaryBoolean(token) = first_token { let subject = self.parse_3_arg_expression(start + 1, end)?; + let range = start..subject.range().end; UnaryOperator { subject, token, - range: start..end, + range, } .into_some_box() } else if first_token == Token::ParenOpen { diff --git a/src/builtins/tests/test_tests.rs b/src/builtins/tests/test_tests.rs index 3fdefae04..43da29212 100644 --- a/src/builtins/tests/test_tests.rs +++ b/src/builtins/tests/test_tests.rs @@ -99,6 +99,12 @@ fn test_test() { assert!(run_test_test(1, &["!", "15", "-ge", "10"])); assert!(run_test_test(0, &["!", "!", "15", "-ge", "10"])); + assert!(run_test_test(0, &[ + "(", "-d", "/", ")", + "-o", + "(", "!", "-d", "/", ")", + ])); + assert!(run_test_test(0, &["0", "-ne", "1", "-a", "0", "-eq", "0"])); assert!(run_test_test(0, &["0", "-ne", "1", "-a", "-n", "5"])); assert!(run_test_test(0, &["-n", "5", "-a", "10", "-gt", "5"]));