blob: 1d70d4d221b7536c430852e9014c9372743a4a2a [file] [log] [blame]
Junio C Hamano60896c72005-05-22 21:24:49 -07001#!/bin/sh
2#
3# Copyright (c) 2005 Junio C Hamano
4#
5
6test_description='More rename detection tests.
7
8The rename detection logic should be able to detect pure rename or
9copy of symbolic links, but should not produce rename/copy followed
10by an edit for them.
11'
Ævar Arnfjörð Bjarmason16d4bd42021-10-31 00:24:19 +020012
13TEST_PASSES_SANITIZE_LEAK=true
Junio C Hamano60896c72005-05-22 21:24:49 -070014. ./test-lib.sh
Ævar Arnfjörð Bjarmasonebd73f52021-02-12 14:29:40 +010015. "$TEST_DIRECTORY"/lib-diff.sh
Junio C Hamano60896c72005-05-22 21:24:49 -070016
John Cai93fc4232023-05-18 20:03:17 +000017test_expect_success SYMLINKS 'prepare reference tree' '
18 echo xyzzy | tr -d '\\\\'012 >yomin &&
19 ln -s xyzzy frotz &&
20 git update-index --add frotz yomin &&
21 tree=$(git write-tree) &&
22 echo $tree
23'
Junio C Hamano60896c72005-05-22 21:24:49 -070024
John Cai93fc4232023-05-18 20:03:17 +000025test_expect_success SYMLINKS 'prepare work tree' '
26 mv frotz rezrov &&
27 rm -f yomin &&
28 ln -s xyzzy nitfol &&
29 ln -s xzzzy bozbar &&
30 git update-index --add --remove frotz rezrov nitfol bozbar yomin
31'
Junio C Hamano60896c72005-05-22 21:24:49 -070032
33# tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
34# confuse things. work tree has rezrov (xyzzy) nitfol (xyzzy) and
35# bozbar (xzzzy).
36# rezrov and nitfol are rename/copy of frotz and bozbar should be
37# a new creation.
38
John Cai93fc4232023-05-18 20:03:17 +000039test_expect_success SYMLINKS 'setup diff output' '
40 GIT_DIFF_OPTS=--unified=0 git diff-index -C -p $tree >current &&
41 cat >expected <<\EOF
Junio C Hamano25d5ea42005-05-24 01:10:48 -070042diff --git a/bozbar b/bozbar
43new file mode 120000
44--- /dev/null
45+++ b/bozbar
46@@ -0,0 +1 @@
47+xzzzy
48\ No newline at end of file
Junio C Hamano60896c72005-05-22 21:24:49 -070049diff --git a/frotz b/nitfol
50similarity index 100%
51copy from frotz
52copy to nitfol
53diff --git a/frotz b/rezrov
54similarity index 100%
Linus Torvaldsdc938412005-06-05 15:31:52 -070055rename from frotz
56rename to rezrov
Junio C Hamano60896c72005-05-22 21:24:49 -070057diff --git a/yomin b/yomin
58deleted file mode 100644
59--- a/yomin
60+++ /dev/null
61@@ -1 +0,0 @@
62-xyzzy
63\ No newline at end of file
Junio C Hamano60896c72005-05-22 21:24:49 -070064EOF
John Cai93fc4232023-05-18 20:03:17 +000065'
Junio C Hamano60896c72005-05-22 21:24:49 -070066
John Cai93fc4232023-05-18 20:03:17 +000067test_expect_success SYMLINKS 'validate diff output' '
68 compare_diff_patch current expected
69'
Junio C Hamano60896c72005-05-22 21:24:49 -070070
71test_done