]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: escape '+' from uname -r before using in regex via '=~'
authorLuca Boccassi <luca.boccassi@gmail.com>
Tue, 24 Jun 2025 12:07:11 +0000 (13:07 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 25 Jun 2025 17:17:42 +0000 (18:17 +0100)
It will otherwise interpret characters such as '+' as if they
were regex, and break matching.

For example TEST-71-HOSTNAME started failing when
uname -r started including a '+':

FAIL: 'Kernel: Linux 6.12.33+deb13-amd64' not found in:
 Static hostname: host
       Icon name: computer-vm
         Chassis: vm ðŸ–´
      Machine ID: e6471c1f95ab49098827498ed816cdf7
         Boot ID: 231da987f64d4af59f2076fbb638c611
  Virtualization: kvm
Operating System: Debian GNU/Linux 13 (trixie)
          Kernel: Linux 6.12.33+deb13-amd64
    Architecture: x86-64

(cherry picked from commit a0dfb0245662e31ded34730010e0e92be9bd9f1a)
(cherry picked from commit de5642b63e5c9210052b97105457a3debf5cc309)

test/units/TEST-17-UDEV.link-property.sh
test/units/TEST-71-HOSTNAME.sh

index 517cc3f7d213e9fc60cdbb684c1efe9def822e8d..faf05b83ebbf4de19548c783951079d9f9cb53c7 100755 (executable)
@@ -163,11 +163,11 @@ EOF
 udevadm control --reload
 
 output=$(udevadm test --action add /sys/class/net/test1)
-assert_in "LINK_VERSION=$(uname -r)" "$output"
+assert_in "LINK_VERSION=$(uname -r | sed 's/\+/\\+/g')" "$output"
 
 udevadm trigger --settle --action add /sys/class/net/test1
 output=$(udevadm info --query property /sys/class/net/test1)
-assert_in "LINK_VERSION=$(uname -r)" "$output"
+assert_in "LINK_VERSION=$(uname -r | sed 's/\+/\\+/g')" "$output"
 
 # test for constant properties
 cat >/run/systemd/network/10-test.link.d/13-override.conf <<EOF
index dc3f587ea3906c487b061135d1a8cd02be4871cd..0fae941a75e7aee32a183a00d01fcaf5c454f0bb 100755 (executable)
@@ -31,7 +31,7 @@ testcase_hostname() {
     if [[ -n "$orig" ]]; then
         assert_in "Static hostname: $orig" "$(hostnamectl)"
     fi
-    assert_in "Kernel: $(uname -s) $(uname -r)" "$(hostnamectl)"
+    assert_in "Kernel: $(uname -s) $(uname -r | sed 's/\+/\\+/g')" "$(hostnamectl)"
 
     # change hostname
     assert_rc 0 hostnamectl set-hostname testhost