generic/423: test stx_size of symlink
authorEric Biggers <ebiggers@google.com>
Sun, 18 Jul 2021 15:17:46 +0000 (10:17 -0500)
committerEryu Guan <guaneryu@gmail.com>
Sun, 25 Jul 2021 14:24:44 +0000 (22:24 +0800)
Update generic/423 to test that the reported size of a symlink is equal
to the length of the symlink target, as required by POSIX and as
documented in various man pages.

When the test_dummy_encryption mount option is enabled, this serves as a
regression test for the bug that will be fixed by the patch series
"fscrypt: report correct st_size for encrypted symlinks"
(https://lkml.kernel.org/r/20210702065350.209646-1-ebiggers@kernel.org).
However, this test is applicable to all filesystems and mount options.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/423

index 3de2f30c1fbe8ae4a6e0558e37ba0b7cf55ae4aa..69c1c3bceff37d73322b1fb43716168f6bb63428 100755 (executable)
@@ -110,13 +110,15 @@ check_stat $TEST_DIR/$seq-file \
           stx_nlink=1
 
 echo "Test statx on a symlink"
-ln -s $TEST_DIR/$seq-nowhere $TEST_DIR/$seq-symlink
+target=$TEST_DIR/$seq-nowhere
+ln -s $target $TEST_DIR/$seq-symlink
 check_stat $TEST_DIR/$seq-symlink \
           ts_order \
           ref=$TEST_DIR/$seq-file \
           ts=B,b \
           ts=M,m \
           stx_type=sym \
+          stx_size=${#target} \
           stx_rdev_major=0 \
           stx_rdev_minor=0 \
           stx_nlink=1