t / t3907-stash-show-config.shon commit general improvements (43abf13)
   1#!/bin/sh
   2
   3test_description='Test git stash show configuration.'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        test_commit file
   9'
  10
  11# takes three parameters:
  12# 1. the stash.showStat value (or "<unset>")
  13# 2. the stash.showPatch value (or "<unset>")
  14# 3. the diff options of the expected output (or nothing for no output)
  15test_stat_and_patch () {
  16        if test "<unset>" = "$1"
  17        then
  18                test_unconfig stash.showStat
  19        else
  20                test_config stash.showStat "$1"
  21        fi &&
  22
  23        if test "<unset>" = "$2"
  24        then
  25                test_unconfig stash.showPatch
  26        else
  27                test_config stash.showPatch "$2"
  28        fi &&
  29
  30        shift 2 &&
  31        echo 2 >file.t &&
  32        if test $# != 0
  33        then
  34                git diff "$@" >expect
  35        fi &&
  36        git stash &&
  37        git stash show >actual &&
  38
  39        if test $# = 0
  40        then
  41                test_must_be_empty actual
  42        else
  43                test_cmp expect actual
  44        fi
  45}
  46
  47test_expect_success 'showStat unset showPatch unset' '
  48        test_stat_and_patch "<unset>" "<unset>" --stat
  49'
  50
  51test_expect_success 'showStat unset showPatch false' '
  52        test_stat_and_patch "<unset>" false --stat
  53'
  54
  55test_expect_success 'showStat unset showPatch true' '
  56        test_stat_and_patch "<unset>" true --stat -p
  57'
  58
  59test_expect_success 'showStat false showPatch unset' '
  60        test_stat_and_patch false "<unset>"
  61'
  62
  63test_expect_success 'showStat false showPatch false' '
  64        test_stat_and_patch false false
  65'
  66
  67test_expect_success 'showStat false showPatch true' '
  68        test_stat_and_patch false true -p
  69'
  70
  71test_expect_success 'showStat true showPatch unset' '
  72        test_stat_and_patch true "<unset>" --stat
  73'
  74
  75test_expect_success 'showStat true showPatch false' '
  76        test_stat_and_patch true false --stat
  77'
  78
  79test_expect_success 'showStat true showPatch true' '
  80        test_stat_and_patch true true --stat -p
  81'
  82
  83test_done