From: Yu Watanabe Date: Mon, 13 Mar 2023 14:36:32 +0000 (+0900) Subject: test-50-dissect: add test for long reference name X-Git-Tag: v254-rc1~996^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F26783%2Fhead;p=thirdparty%2Fsystemd.git test-50-dissect: add test for long reference name --- diff --git a/test/units/testsuite-50.sh b/test/units/testsuite-50.sh index 741167a2154..af7d3511546 100755 --- a/test/units/testsuite-50.sh +++ b/test/units/testsuite-50.sh @@ -447,8 +447,28 @@ fi # Detach by loopback device systemd-dissect --detach "$LOOP" +# Test long reference name. +# Note, sizeof_field(struct loop_info64, lo_file_name) == 64, +# and --loop-ref accepts upto 63 characters, and udev creates symlink +# based on the name when it has upto _62_ characters. +name="$(for (( i = 0; i < 62; i++ )); do echo -n 'x'; done)" +LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")" +udevadm trigger -w "$LOOP" + +# Check if the /dev/loop/by-ref/$name symlink really references the right device +test "/dev/loop/by-ref/$name" -ef "$LOOP" + +# Detach by the /dev/loop/by-ref symlink +systemd-dissect --detach "/dev/loop/by-ref/$name" + +name="$(for (( i = 0; i < 63; i++ )); do echo -n 'x'; done)" +LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")" +udevadm trigger -w "$LOOP" + +# Check if the /dev/loop/by-ref/$name symlink does not exist +test ! -e "/dev/loop/by-ref/$name" + # Detach by backing inode -systemd-dissect --attach --loop-ref=waldo "${image}.raw" systemd-dissect --detach "${image}.raw" (! systemd-dissect --detach "${image}.raw")