Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144335006
D44512.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D44512.diff
View Options
diff --git a/bin/ln/tests/ln_test.sh b/bin/ln/tests/ln_test.sh
--- a/bin/ln/tests/ln_test.sh
+++ b/bin/ln/tests/ln_test.sh
@@ -1,4 +1,6 @@
#
+# SPDX-License-Identifier: BSD-2-Clause
+#
# Copyright 2017 Shivansh Rai
# All rights reserved.
#
@@ -23,13 +25,15 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-#
-set_umask()
+atf_check_same_file()
+{
+ atf_check_equal "$(stat -f %d,%i "$1")" "$(stat -f %d,%i "$2")"
+}
+
+atf_check_symlink_to()
{
- if ! umask 022; then
- atf_fail "setting umask failed"
- fi
+ atf_check -o inline:"$1\n" readlink "$2"
}
atf_test_case L_flag
@@ -39,18 +43,13 @@
"symbolic link, '-L' option creates a hard" \
"link to the target of the symbolic link"
}
-
L_flag_body()
{
- set_umask
atf_check touch A
atf_check ln -s A B
atf_check ln -L B C
- stat_A=$(stat -f %i A)
- stat_C=$(stat -f %i C)
- atf_check_equal "$stat_A" "$stat_C"
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_same_file A C
+ atf_check_symlink_to A B
}
atf_test_case P_flag
@@ -60,16 +59,12 @@
"symbolic link, '-P' option creates a hard " \
"link to the symbolic link itself"
}
-
P_flag_body()
{
- set_umask
atf_check touch A
atf_check ln -s A B
atf_check ln -P B C
- stat_B=$(stat -f %i B)
- stat_C=$(stat -f %i C)
- atf_check_equal "$stat_B" "$stat_C"
+ atf_check_same_file B C
}
atf_test_case f_flag
@@ -78,15 +73,11 @@
atf_set "descr" "Verify that if the target file already exists, " \
"'-f' option unlinks it so that link may occur"
}
-
f_flag_body()
{
- set_umask
atf_check touch A B
atf_check ln -f A B
- stat_A=$(stat -f %i A)
- stat_B=$(stat -f %i B)
- atf_check_equal "$stat_A" "$stat_B"
+ atf_check_same_file A B
}
atf_test_case target_exists_hard
@@ -95,10 +86,8 @@
atf_set "descr" "Verify whether creating a hard link fails if the " \
"target file already exists"
}
-
target_exists_hard_body()
{
- set_umask
atf_check touch A B
atf_check -s exit:1 -e inline:'ln: B: File exists\n' \
ln A B
@@ -110,10 +99,8 @@
atf_set "descr" "Verify whether creating a symbolic link fails if " \
"the target file already exists"
}
-
target_exists_symbolic_body()
{
- set_umask
atf_check touch A B
atf_check -s exit:1 -e inline:'ln: B: File exists\n' \
ln -s A B
@@ -124,13 +111,12 @@
atf_set "descr" "Verify that if the target directory is a symbolic " \
"link, '-shf' option prevents following the link"
}
-
shf_flag_dir_body()
{
atf_check mkdir -m 0777 A B
atf_check ln -s A C
atf_check ln -shf B C
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT C
+ atf_check test -L C
atf_check -o inline:'B\n' readlink C
}
@@ -139,14 +125,12 @@
atf_set "descr" "Verify that if the target directory is a symbolic " \
"link, '-snf' option prevents following the link"
}
-
snf_flag_dir_body()
{
atf_check mkdir -m 0777 A B
atf_check ln -s A C
atf_check ln -snf B C
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT C
- atf_check -o inline:'B\n' readlink C
+ atf_check_symlink_to B C
}
atf_test_case sF_flag
@@ -156,13 +140,11 @@
"and is a directory, then '-sF' option removes " \
"it so that the link may occur"
}
-
sF_flag_body()
{
atf_check mkdir A B
atf_check ln -sF A B
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_symlink_to A B
}
atf_test_case sf_flag
@@ -172,14 +154,11 @@
"'-sf' option unlinks it and creates a symbolic link " \
"to the source file"
}
-
sf_flag_body()
{
- set_umask
atf_check touch A B
atf_check ln -sf A B
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_symlink_to A B
}
atf_test_case s_flag
@@ -187,14 +166,11 @@
{
atf_set "descr" "Verify that '-s' option creates a symbolic link"
}
-
s_flag_body()
{
- set_umask
atf_check touch A
atf_check ln -s A B
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_symlink_to A B
}
atf_test_case s_flag_broken
@@ -203,12 +179,10 @@
atf_set "descr" "Verify that if the source file does not exists, '-s' " \
"option creates a broken symbolic link to the source file"
}
-
s_flag_broken_body()
{
atf_check ln -s A B
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_symlink_to A B
}
atf_test_case sw_flag
@@ -217,13 +191,11 @@
atf_set "descr" "Verify that '-sw' option produces a warning if the " \
"source of a symbolic link does not currently exist"
}
-
sw_flag_body()
{
atf_check -s exit:0 -e inline:'ln: warning: A: No such file or directory\n' \
ln -sw A B
- atf_check -o inline:'Symbolic Link\n' stat -f %SHT B
- atf_check -o inline:'A\n' readlink B
+ atf_check_symlink_to A B
}
atf_init_test_cases()
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 8, 10:06 PM (14 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28502674
Default Alt Text
D44512.diff (4 KB)
Attached To
Mode
D44512: ln: Clean up and simplify tests.
Attached
Detach File
Event Timeline
Log In to Comment