t / t9805-git-p4-skip-submit-edit.shon commit Merge branch 'jk/maint-commit-check-committer-early' into maint-1.7.11 (9e0833c)
   1#!/bin/sh
   2
   3test_description='git p4 skipSubmitEdit config variables'
   4
   5. ./lib-git-p4.sh
   6
   7test_expect_success 'start p4d' '
   8        start_p4d
   9'
  10
  11test_expect_success 'init depot' '
  12        (
  13                cd "$cli" &&
  14                echo file1 >file1 &&
  15                p4 add file1 &&
  16                p4 submit -d "change 1"
  17        )
  18'
  19
  20# this works because EDITOR is set to :
  21test_expect_success 'no config, unedited, say yes' '
  22        git p4 clone --dest="$git" //depot &&
  23        test_when_finished cleanup_git &&
  24        (
  25                cd "$git" &&
  26                echo line >>file1 &&
  27                git commit -a -m "change 2" &&
  28                echo y | git p4 submit &&
  29                p4 changes //depot/... >wc &&
  30                test_line_count = 2 wc
  31        )
  32'
  33
  34test_expect_success 'no config, unedited, say no' '
  35        git p4 clone --dest="$git" //depot &&
  36        test_when_finished cleanup_git &&
  37        (
  38                cd "$git" &&
  39                echo line >>file1 &&
  40                git commit -a -m "change 3 (not really)" &&
  41                printf "bad response\nn\n" | git p4 submit &&
  42                p4 changes //depot/... >wc &&
  43                test_line_count = 2 wc
  44        )
  45'
  46
  47test_expect_success 'skipSubmitEdit' '
  48        git p4 clone --dest="$git" //depot &&
  49        test_when_finished cleanup_git &&
  50        (
  51                cd "$git" &&
  52                git config git-p4.skipSubmitEdit true &&
  53                # will fail if editor is even invoked
  54                git config core.editor /bin/false &&
  55                echo line >>file1 &&
  56                git commit -a -m "change 3" &&
  57                git p4 submit &&
  58                p4 changes //depot/... >wc &&
  59                test_line_count = 3 wc
  60        )
  61'
  62
  63test_expect_success 'skipSubmitEditCheck' '
  64        git p4 clone --dest="$git" //depot &&
  65        test_when_finished cleanup_git &&
  66        (
  67                cd "$git" &&
  68                git config git-p4.skipSubmitEditCheck true &&
  69                echo line >>file1 &&
  70                git commit -a -m "change 4" &&
  71                git p4 submit &&
  72                p4 changes //depot/... >wc &&
  73                test_line_count = 4 wc
  74        )
  75'
  76
  77# check the normal case, where the template really is edited
  78test_expect_success 'no config, edited' '
  79        git p4 clone --dest="$git" //depot &&
  80        test_when_finished cleanup_git &&
  81        ed="$TRASH_DIRECTORY/ed.sh" &&
  82        test_when_finished "rm \"$ed\"" &&
  83        cat >"$ed" <<-EOF &&
  84                #!$SHELL_PATH
  85                sleep 1
  86                touch "\$1"
  87                exit 0
  88        EOF
  89        chmod 755 "$ed" &&
  90        (
  91                cd "$git" &&
  92                echo line >>file1 &&
  93                git commit -a -m "change 5" &&
  94                P4EDITOR="" EDITOR="\"$ed\"" git p4 submit &&
  95                p4 changes //depot/... >wc &&
  96                test_line_count = 5 wc
  97        )
  98'
  99
 100test_expect_success 'kill p4d' '
 101        kill_p4d
 102'
 103
 104test_done