1#!/bin/sh 2# 3# Copyright (c) 2009 Junio C Hamano 4 5test_description='git-apply notices removal patches generated by GNU diff' 6 7. ./test-lib.sh 8 9test_expect_success setup ' 10 cat <<-EOF >c && 11 diff -ruN a/file b/file 12 --- a/file TS0 13 +++ b/file TS1 14 @@ -0,0 +1 @@ 15 +something 16 EOF 17 18 cat <<-EOF >d && 19 diff -ruN a/file b/file 20 --- a/file TS0 21 +++ b/file TS1 22 @@ -1 +0,0 @@ 23 -something 24 EOF 25 26 timeWest="1982-09-16 07:00:00.000000000 -0800" && 27 timeGMT="1982-09-16 15:00:00.000000000 +0000" && 28 timeEast="1982-09-17 00:00:00.000000000 +0900" && 29 30 epocWest="1969-12-31 16:00:00.000000000 -0800" && 31 epocGMT="1970-01-01 00:00:00.000000000 +0000" && 32 epocEast="1970-01-01 09:00:00.000000000 +0900" && 33 epocWest2="1969-12-31 16:00:00 -08:00" && 34 35 sed -e "s/TS0/$epocWest/" -e "s/TS1/$timeWest/" <c >createWest.patch && 36 sed -e "s/TS0/$epocEast/" -e "s/TS1/$timeEast/" <c >createEast.patch && 37 sed -e "s/TS0/$epocGMT/" -e "s/TS1/$timeGMT/" <c >createGMT.patch && 38 39 sed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" <c >addWest.patch && 40 sed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" <c >addEast.patch && 41 sed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" <c >addGMT.patch && 42 43 sed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" <d >emptyWest.patch && 44 sed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" <d >emptyEast.patch && 45 sed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" <d >emptyGMT.patch && 46 47 sed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest/" <d >removeWest.patch && 48 sed -e "s/TS0/$timeEast/" -e "s/TS1/$epocEast/" <d >removeEast.patch && 49 sed -e "s/TS0/$timeGMT/" -e "s/TS1/$epocGMT/" <d >removeGMT.patch && 50 sed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest2/" <d >removeWest2.patch && 51 52 echo something >something 53' 54 55for patch in *.patch 56do 57 test_expect_success "test $patch" ' 58 rm -f file .git/index && 59 case "$patch" in 60 create*) 61 # must be able to create 62 git apply --index $patch && 63 test_cmp file something && 64 # must notice the file is already there 65 >file && 66 git add file && 67 test_must_fail git apply $patch 68 ;; 69 add*) 70 # must be able to create or patch 71 git apply $patch && 72 test_cmp file something && 73 >file && 74 git apply $patch && 75 test_cmp file something 76 ;; 77 empty*) 78 # must leave an empty file 79 cat something >file && 80 git add file && 81 git apply --index $patch && 82 test -f file && 83 test_must_be_empty file 84 ;; 85 remove*) 86 # must remove the file 87 cat something >file && 88 git add file && 89 git apply --index $patch && 90 ! test -f file 91 ;; 92 esac 93 ' 94done 95 96test_done 97