t / t9805-git-p4-skip-submit-edit.shon commit t: use test_expect_code instead of hand-rolled comparison (c21fc9d)
   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 P4EDITOR is set to true
  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" | test_expect_code 1 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        test_when_finished "rm ed.sh" &&
  82        cat >ed.sh <<-EOF &&
  83                #!$SHELL_PATH
  84                sleep 1
  85                touch "\$1"
  86                exit 0
  87        EOF
  88        chmod 755 ed.sh &&
  89        (
  90                cd "$git" &&
  91                echo line >>file1 &&
  92                git commit -a -m "change 5" &&
  93                P4EDITOR="$TRASH_DIRECTORY/ed.sh" &&
  94                export P4EDITOR &&
  95                git p4 submit &&
  96                p4 changes //depot/... >wc &&
  97                test_line_count = 5 wc
  98        )
  99'
 100
 101test_expect_success 'kill p4d' '
 102        kill_p4d
 103'
 104
 105test_done