#!/bin/sh test_description='Test git stash show configuration.' TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh test_expect_success 'setup' ' test_commit file ' # takes three parameters: # 1. the stash.showStat value (or "") # 2. the stash.showPatch value (or "") # 3. the diff options of the expected output (or nothing for no output) test_stat_and_patch () { if test "" = "$1" then test_unconfig stash.showStat else test_config stash.showStat "$1" fi && if test "" = "$2" then test_unconfig stash.showPatch else test_config stash.showPatch "$2" fi && shift 2 && echo 2 >file.t && if test $# != 0 then git diff "$@" >expect fi && git stash && git stash show >actual && if test $# = 0 then test_must_be_empty actual else test_cmp expect actual fi } test_expect_success 'showStat unset showPatch unset' ' test_stat_and_patch "" "" --stat ' test_expect_success 'showStat unset showPatch false' ' test_stat_and_patch "" false --stat ' test_expect_success 'showStat unset showPatch true' ' test_stat_and_patch "" true --stat -p ' test_expect_success 'showStat false showPatch unset' ' test_stat_and_patch false "" ' test_expect_success 'showStat false showPatch false' ' test_stat_and_patch false false ' test_expect_success 'showStat false showPatch true' ' test_stat_and_patch false true -p ' test_expect_success 'showStat true showPatch unset' ' test_stat_and_patch true "" --stat ' test_expect_success 'showStat true showPatch false' ' test_stat_and_patch true false --stat ' test_expect_success 'showStat true showPatch true' ' test_stat_and_patch true true --stat -p ' test_done