Skip to content

Commit

Permalink
tests: introduce test_ln_s_add
Browse files Browse the repository at this point in the history
Add a new function that creates a symbolic link and adds it to the index
to be used in cases where a symbolic link is not required on the file
system. We will use it to remove many SYMLINKS prerequisites from test
cases.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Sixt authored and Junio C Hamano committed Jun 7, 2013
1 parent cb64868 commit 9ce415d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
14 changes: 14 additions & 0 deletions t/README
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,20 @@ library for your script to use.
test_cmp expected actual
'

- test_ln_s_add <path1> <path2>

This function helps systems whose filesystem does not support symbolic
links. Use it to add a symbolic link entry to the index when it is not
important that the file system entry is a symbolic link, i.e., instead
of the sequence

ln -s foo bar &&
git add bar

Sometimes it is possible to split a test in a part that does not need
the symbolic link in the file system and a part that does; then only
the latter part need be protected by a SYMLINKS prerequisite (see below).

Prerequisites
-------------

Expand Down
17 changes: 17 additions & 0 deletions t/test-lib-functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -679,3 +679,20 @@ test_create_repo () {
mv .git/hooks .git/hooks-disabled
) || exit
}

# This function helps on symlink challenged file systems when it is not
# important that the file system entry is a symbolic link.
# Use test_ln_s_add instead of "ln -s x y && git add y" to add a
# symbolic link entry y to the index.

test_ln_s_add () {
if test_have_prereq SYMLINKS
then
ln -s "$1" "$2" &&
git update-index --add "$2"
else
printf '%s' "$1" >"$2" &&
ln_s_obj=$(git hash-object -w "$2") &&
git update-index --add --cacheinfo 120000 $ln_s_obj "$2"
fi
}

0 comments on commit 9ce415d

Please sign in to comment.