t / t3702-add-edit.shon commit init: use strbufs to store paths (9c28390)
   1#!/bin/sh
   2#
   3# Copyright (c) 2007 Johannes E. Schindelin
   4#
   5
   6test_description='add -e basic tests'
   7. ./test-lib.sh
   8
   9
  10cat > file << EOF
  11LO, praise of the prowess of people-kings
  12of spear-armed Danes, in days long sped,
  13we have heard, and what honor the athelings won!
  14Oft Scyld the Scefing from squadroned foes,
  15from many a tribe, the mead-bench tore,
  16awing the earls. Since erst he lay
  17friendless, a foundling, fate repaid him:
  18for he waxed under welkin, in wealth he throve,
  19till before him the folk, both far and near,
  20who house by the whale-path, heard his mandate,
  21gave him gifts:  a good king he!
  22EOF
  23
  24cat > second-part << EOF
  25To him an heir was afterward born,
  26a son in his halls, whom heaven sent
  27to favor the folk, feeling their woe
  28that erst they had lacked an earl for leader
  29so long a while; the Lord endowed him,
  30the Wielder of Wonder, with world's renown.
  31EOF
  32
  33test_expect_success 'setup' '
  34
  35        git add file &&
  36        test_tick &&
  37        git commit -m initial file
  38
  39'
  40
  41cat > expected-patch << EOF
  42diff --git a/file b/file
  43index b9834b5..9020acb 100644
  44--- a/file
  45+++ b/file
  46@@ -1,11 +1,6 @@
  47-LO, praise of the prowess of people-kings
  48-of spear-armed Danes, in days long sped,
  49-we have heard, and what honor the athelings won!
  50-Oft Scyld the Scefing from squadroned foes,
  51-from many a tribe, the mead-bench tore,
  52-awing the earls. Since erst he lay
  53-friendless, a foundling, fate repaid him:
  54-for he waxed under welkin, in wealth he throve,
  55-till before him the folk, both far and near,
  56-who house by the whale-path, heard his mandate,
  57-gave him gifts:  a good king he!
  58+To him an heir was afterward born,
  59+a son in his halls, whom heaven sent
  60+to favor the folk, feeling their woe
  61+that erst they had lacked an earl for leader
  62+so long a while; the Lord endowed him,
  63+the Wielder of Wonder, with world's renown.
  64EOF
  65
  66cat > patch << EOF
  67diff --git a/file b/file
  68index b9834b5..ef6e94c 100644
  69--- a/file
  70+++ b/file
  71@@ -3,1 +3,333 @@ of spear-armed Danes, in days long sped,
  72 we have heard, and what honor the athelings won!
  73+
  74 Oft Scyld the Scefing from squadroned foes,
  75@@ -2,7 +1,5 @@ awing the earls. Since erst he lay
  76 friendless, a foundling, fate repaid him:
  77+
  78 for he waxed under welkin, in wealth he throve,
  79EOF
  80
  81cat > expected << EOF
  82diff --git a/file b/file
  83index b9834b5..ef6e94c 100644
  84--- a/file
  85+++ b/file
  86@@ -1,10 +1,12 @@
  87 LO, praise of the prowess of people-kings
  88 of spear-armed Danes, in days long sped,
  89 we have heard, and what honor the athelings won!
  90+
  91 Oft Scyld the Scefing from squadroned foes,
  92 from many a tribe, the mead-bench tore,
  93 awing the earls. Since erst he lay
  94 friendless, a foundling, fate repaid him:
  95+
  96 for he waxed under welkin, in wealth he throve,
  97 till before him the folk, both far and near,
  98 who house by the whale-path, heard his mandate,
  99EOF
 100
 101echo "#!$SHELL_PATH" >fake-editor.sh
 102cat >> fake-editor.sh <<\EOF
 103mv -f "$1" orig-patch &&
 104mv -f patch "$1"
 105EOF
 106
 107test_set_editor "$(pwd)/fake-editor.sh"
 108chmod a+x fake-editor.sh
 109
 110test_expect_success 'add -e' '
 111
 112        cp second-part file &&
 113        git add -e &&
 114        test_cmp second-part file &&
 115        test_cmp orig-patch expected-patch &&
 116        git diff --cached > out &&
 117        test_cmp out expected
 118
 119'
 120
 121test_expect_success 'add -e notices editor failure' '
 122        git reset --hard &&
 123        echo change >>file &&
 124        test_must_fail env GIT_EDITOR=false git add -e &&
 125        test_expect_code 1 git diff --exit-code
 126'
 127
 128test_done