blob: 2df3fdde8bf665a2b531dd367b70a7a767ee3dbc [file] [log] [blame]
Junio C Hamano368f99d2005-05-13 22:52:42 -07001#!/bin/sh
2#
3# Copyright (c) 2005 Junio C Hamano
4#
5
Junio C Hamano5be60072007-07-02 22:52:14 -07006test_description='git update-index nonsense-path test.
Junio C Hamano368f99d2005-05-13 22:52:42 -07007
8This test creates the following structure in the cache:
9
10 path0 - a file
11 path1 - a symlink
12 path2/file2 - a file in a directory
13 path3/file3 - a file in a directory
14
Junio C Hamano5be60072007-07-02 22:52:14 -070015and tries to git update-index --add the following:
Junio C Hamano368f99d2005-05-13 22:52:42 -070016
17 path0/file0 - a file in a directory
18 path1/file1 - a file in a directory
19 path2 - a file
20 path3 - a symlink
21
22All of the attempts should fail.
23'
24
25. ./test-lib.sh
26
27mkdir path2 path3
28date >path0
Johannes Sixt704a3142009-03-04 22:38:24 +010029if test_have_prereq SYMLINKS
30then
31 ln -s xyzzy path1
32else
33 date > path1
34fi
Junio C Hamano368f99d2005-05-13 22:52:42 -070035date >path2/file2
36date >path3/file3
37
38test_expect_success \
Junio C Hamano5be60072007-07-02 22:52:14 -070039 'git update-index --add to add various paths.' \
40 'git update-index --add -- path0 path1 path2/file2 path3/file3'
Junio C Hamano368f99d2005-05-13 22:52:42 -070041
42rm -fr path?
43
44mkdir path0 path1
45date >path2
Johannes Sixt704a3142009-03-04 22:38:24 +010046if test_have_prereq SYMLINKS
47then
48 ln -s frotz path3
49else
50 date > path3
51fi
Junio C Hamano368f99d2005-05-13 22:52:42 -070052date >path0/file0
53date >path1/file1
54
55for p in path0/file0 path1/file1 path2 path3
56do
Junio C Hamano41ac4142008-02-01 01:50:53 -080057 test_expect_success \
Junio C Hamano5be60072007-07-02 22:52:14 -070058 "git update-index to add conflicting path $p should fail." \
Stephan Beyerd492b312008-07-12 17:47:52 +020059 "test_must_fail git update-index --add -- $p"
Junio C Hamano368f99d2005-05-13 22:52:42 -070060done
61test_done