From 1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 11 Jan 2020 23:36:56 +0000 Subject: Squashed 'third_party/git/' content from commit cb71568594 git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7 --- t/t4132-apply-removal.sh | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 t/t4132-apply-removal.sh (limited to 't/t4132-apply-removal.sh') diff --git a/t/t4132-apply-removal.sh b/t/t4132-apply-removal.sh new file mode 100755 index 000000000000..fec1d6fa51fa --- /dev/null +++ b/t/t4132-apply-removal.sh @@ -0,0 +1,96 @@ +#!/bin/sh +# +# Copyright (c) 2009 Junio C Hamano + +test_description='git-apply notices removal patches generated by GNU diff' + +. ./test-lib.sh + +test_expect_success setup ' + cat <<-EOF >c && + diff -ruN a/file b/file + --- a/file TS0 + +++ b/file TS1 + @@ -0,0 +1 @@ + +something + EOF + + cat <<-EOF >d && + diff -ruN a/file b/file + --- a/file TS0 + +++ b/file TS1 + @@ -1 +0,0 @@ + -something + EOF + + timeWest="1982-09-16 07:00:00.000000000 -0800" && + timeGMT="1982-09-16 15:00:00.000000000 +0000" && + timeEast="1982-09-17 00:00:00.000000000 +0900" && + + epocWest="1969-12-31 16:00:00.000000000 -0800" && + epocGMT="1970-01-01 00:00:00.000000000 +0000" && + epocEast="1970-01-01 09:00:00.000000000 +0900" && + epocWest2="1969-12-31 16:00:00 -08:00" && + + sed -e "s/TS0/$epocWest/" -e "s/TS1/$timeWest/" createWest.patch && + sed -e "s/TS0/$epocEast/" -e "s/TS1/$timeEast/" createEast.patch && + sed -e "s/TS0/$epocGMT/" -e "s/TS1/$timeGMT/" createGMT.patch && + + sed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" addWest.patch && + sed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" addEast.patch && + sed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" addGMT.patch && + + sed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" emptyWest.patch && + sed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" emptyEast.patch && + sed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" emptyGMT.patch && + + sed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest/" removeWest.patch && + sed -e "s/TS0/$timeEast/" -e "s/TS1/$epocEast/" removeEast.patch && + sed -e "s/TS0/$timeGMT/" -e "s/TS1/$epocGMT/" removeGMT.patch && + sed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest2/" removeWest2.patch && + + echo something >something +' + +for patch in *.patch +do + test_expect_success "test $patch" ' + rm -f file .git/index && + case "$patch" in + create*) + # must be able to create + git apply --index $patch && + test_cmp file something && + # must notice the file is already there + >file && + git add file && + test_must_fail git apply $patch + ;; + add*) + # must be able to create or patch + git apply $patch && + test_cmp file something && + >file && + git apply $patch && + test_cmp file something + ;; + empty*) + # must leave an empty file + cat something >file && + git add file && + git apply --index $patch && + test -f file && + test_must_be_empty file + ;; + remove*) + # must remove the file + cat something >file && + git add file && + git apply --index $patch && + ! test -f file + ;; + esac + ' +done + +test_done -- cgit 1.4.1