]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
rename: tests: add more symlink checks
authorMauricio Faria de Oliveira <mfo@canonical.com>
Tue, 14 Jul 2020 18:49:25 +0000 (15:49 -0300)
committerMauricio Faria de Oliveira <mfo@canonical.com>
Tue, 14 Jul 2020 18:51:47 +0000 (15:51 -0300)
Add a few checks to the symlink test, including for the fix
in commit 477239ce0d60 ("rename: fix regression for symlink
with non-existing target").

Tested with './tests/run.sh rename/symlink' before/after that
commit with FAILED/OK results (and '--show-diff') as expected:

After:
       rename: symlink check                  ... OK

Before:
       rename: symlink check                  ... FAILED (rename/symlink)

With --show-diff:

    diff-{{{
    --- /home/mfo/git/util-linux/tests/expected/rename/symlink 2020-07-14 15:21:06.412792160 -0300
    +++ /home/mfo/git/util-linux/tests/output/rename/symlink 2020-07-14 15:45:10.980927233 -0300
    @@ -3,5 +3,3 @@
     rename_slink.3: `old' -> `new'
     `rename_slink.1' -> `rename_symlink.1'
     target
    -`rename_slink.2' -> `rename_symlink.2'
    -target
    }}}-diff

    diff-{{{
    --- /home/mfo/git/util-linux/tests/expected/rename/symlink.err 2020-07-14 15:37:42.466207786 -0300
    +++ /home/mfo/git/util-linux/tests/output/rename/symlink.err 2020-07-14 15:45:10.984927251 -0300
    @@ -1 +1,2 @@
    +rename: rename_slink.2: not accessible: No such file or directory
     rename: rename_slink.3: No such file or directory
    }}}-diff

Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
tests/expected/rename/symlink
tests/expected/rename/symlink.err [new file with mode: 0644]
tests/ts/rename/symlink

index 38e687f57be46b692d761fe522e677d217e5d32e..880215f16065fe8e617181e732bcde246384c4b6 100644 (file)
@@ -1,3 +1,7 @@
 rename_slink.1: `old' -> `new'
 rename_slink.2: `old' -> `new'
 rename_slink.3: `old' -> `new'
+`rename_slink.1' -> `rename_symlink.1'
+target
+`rename_slink.2' -> `rename_symlink.2'
+target
diff --git a/tests/expected/rename/symlink.err b/tests/expected/rename/symlink.err
new file mode 100644 (file)
index 0000000..956b119
--- /dev/null
@@ -0,0 +1 @@
+rename: rename_slink.3: No such file or directory
index 641dc8a5c1b9785b435669ee33cf73cd7d85362f..91a0539687f2f959226e312a59847f7e5466bcb6 100755 (executable)
@@ -38,4 +38,20 @@ for i in rename_slink.{1..3}; do
        rm -f $i
 done
 
+touch target
+ln -s target rename_slink.1
+$TS_CMD_RENAME -v slink symlink rename_slink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG
+readlink rename_symlink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG
+rm -f rename_slink.1 rename_symlink.1
+
+rm target
+ln -s target rename_slink.2
+$TS_CMD_RENAME -v slink symlink rename_slink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG
+readlink rename_symlink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG
+rm -f rename_slink.2 rename_symlink.2
+
+$TS_CMD_RENAME -v slink symlink rename_slink.3 >> $TS_OUTPUT 2>> $TS_ERRLOG
+# The error may differ on Mac OS X due to faccessat()/lstat(); normalize it.
+sed -i -e 's/\(rename_slink.3\): not accessible/\1/' -e 's/stat of \(rename_slink.3\) failed/\1/' $TS_ERRLOG
+
 ts_finalize