Imported Upstream version 2.16.3
[platform/upstream/git.git] / t / t4026-color.sh
index 4d20fea..671e951 100755 (executable)
@@ -6,10 +6,11 @@
 test_description='Test diff/status color escape codes'
 . ./test-lib.sh
 
+ESC=$(printf '\033')
 color()
 {
        actual=$(git config --get-color no.such.slot "$1") &&
-       test "$actual" = "\e$2"
+       test "$actual" = "${2:+$ESC}$2"
 }
 
 invalid_color()
@@ -21,6 +22,10 @@ test_expect_success 'reset' '
        color "reset" "[m"
 '
 
+test_expect_success 'empty color is empty' '
+       color "" ""
+'
+
 test_expect_success 'attribute before color name' '
        color "bold red" "[1;31m"
 '
@@ -50,14 +55,19 @@ test_expect_success 'attr negation' '
        color "nobold nodim noul noblink noreverse" "[22;24;25;27m"
 '
 
+test_expect_success '"no-" variant of negation' '
+       color "no-bold no-blink" "[22;25m"
+'
+
 test_expect_success 'long color specification' '
        color "254 255 bold dim ul blink reverse" "[1;2;4;5;7;38;5;254;48;5;255m"
 '
 
 test_expect_success 'absurdly long color specification' '
        color \
-         "#ffffff #ffffff bold nobold dim nodim ul noul blink noblink reverse noreverse" \
-         "[1;2;4;5;7;22;24;25;27;38;2;255;255;255;48;2;255;255;255m"
+         "#ffffff #ffffff bold nobold dim nodim italic noitalic
+          ul noul blink noblink reverse noreverse strike nostrike" \
+         "[1;2;3;4;5;7;9;22;23;24;25;27;29;38;2;255;255;255;48;2;255;255;255m"
 '
 
 test_expect_success '0-7 are aliases for basic ANSI color names' '
@@ -111,9 +121,9 @@ test_expect_success 'unknown color slots are ignored (branch)' '
 '
 
 test_expect_success 'unknown color slots are ignored (status)' '
-       git config color.status.nosuchslotwilleverbedefined white || exit
-       git status
-       case $? in 0|1) : ok ;; *) false ;; esac
+       git config color.status.nosuchslotwilleverbedefined white &&
+       { git status; ret=$?; } &&
+       case $ret in 0|1) : ok ;; *) false ;; esac
 '
 
 test_done