(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Test special whitespace in diff engine.\n'> <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/diff-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(DQ <'Ray Lehtiniemi\'s example'>)}
        {
          (SQ <'\n'> <'\tcat <<-\\EOF >x &&\n'> <'\tdo {\n'> <'\t   nothing;\n'> <'\t} while (0);\n'> 
            <'\tEOF\n'> <'\tgit update-index --add x &&\n'> <'\n'> <'\tcat <<-\\EOF >x &&\n'> <'\tdo\n'> <'\t{\n'> 
            <'\t   nothing;\n'> <'\t}\n'> <'\twhile (0);\n'> <'\tEOF\n'> <'\n'> <'\tcat <<-\\EOF >expect &&\n'> <'\tdiff --git a/x b/x\n'> 
            <'\tindex adf3937..6edc172 100644\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,3 +1,5 @@\n'> <'\t-do {\n'> <'\t+do\n'> <'\t+{\n'> 
            <'\t    nothing;\n'> <'\t-} while (0);\n'> <'\t+}\n'> <'\t+while (0);\n'> <'\tEOF\n'> <'\n'> <'\tgit diff >out &&\n'> 
            <'\ttest_cmp expect out &&\n'> <'\n'> <'\tgit diff -w >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> <'\tgit diff -b >out &&\n'> 
            <'\ttest_cmp expect out\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'another test, without options'>)}
        {
          (SQ <'\n'> <'\ttr Q "\\015" <<-\\EOF >x &&\n'> <'\twhitespace at beginning\n'> 
            <'\twhitespace change\n'> <'\twhitespace in the middle\n'> <'\twhitespace at end\n'> <'\tunchanged line\n'> <'\tCR at endQ\n'> 
            <'\tEOF\n'> <'\n'> <'\tgit update-index x &&\n'> <'\n'> <'\ttr "_" " " <<-\\EOF >x &&\n'> 
            <'\t_\twhitespace at beginning\n'> <'\twhitespace \t change\n'> <'\twhite space in the middle\n'> <'\twhitespace at end__\n'> 
            <'\tunchanged line\n'> <'\tCR at end\n'> <'\tEOF\n'> <'\n'> <'\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n'> 
            <'\tdiff --git a/x b/x\n'> <'\tindex d99af23..22d9f73 100644\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,6 +1,6 @@\n'> 
            <'\t-whitespace at beginning\n'> <'\t-whitespace change\n'> <'\t-whitespace in the middle\n'> <'\t-whitespace at end\n'> 
            <'\t+ \twhitespace at beginning\n'> <'\t+whitespace \t change\n'> <'\t+white space in the middle\n'> <'\t+whitespace at end__\n'> 
            <'\t unchanged line\n'> <'\t-CR at endQ\n'> <'\t+CR at end\n'> <'\tEOF\n'> <'\n'> <'\tgit diff >out &&\n'> 
            <'\ttest_cmp expect out &&\n'> <'\n'> <'\t>expect &&\n'> <'\tgit diff -w >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> 
            <'\tgit diff -w -b >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> <'\tgit diff -w --ignore-space-at-eol >out &&\n'> 
            <'\ttest_cmp expect out &&\n'> <'\n'> <'\tgit diff -w -b --ignore-space-at-eol >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> <'\n'> 
            <'\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n'> <'\tdiff --git a/x b/x\n'> <'\tindex d99af23..22d9f73 100644\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> 
            <'\t@@ -1,6 +1,6 @@\n'> <'\t-whitespace at beginning\n'> <'\t+_\twhitespace at beginning\n'> <'\t whitespace \t change\n'> 
            <'\t-whitespace in the middle\n'> <'\t+white space in the middle\n'> <'\t whitespace at end__\n'> <'\t unchanged line\n'> 
            <'\t CR at end\n'> <'\tEOF\n'> <'\tgit diff -b >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> 
            <'\tgit diff -b --ignore-space-at-eol >out &&\n'> <'\ttest_cmp expect out &&\n'> <'\n'> <'\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n'> 
            <'\tdiff --git a/x b/x\n'> <'\tindex d99af23..22d9f73 100644\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,6 +1,6 @@\n'> 
            <'\t-whitespace at beginning\n'> <'\t-whitespace change\n'> <'\t-whitespace in the middle\n'> <'\t+_\twhitespace at beginning\n'> 
            <'\t+whitespace \t change\n'> <'\t+white space in the middle\n'> <'\t whitespace at end__\n'> <'\t unchanged line\n'> 
            <'\t CR at end\n'> <'\tEOF\n'> <'\tgit diff --ignore-space-at-eol >out &&\n'> <'\ttest_cmp expect out\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: only new lines'>)}
        {
          (SQ <'\n'> <'\ttest_seq 5 >x &&\n'> <'\tgit update-index x &&\n'> 
            <'\ttest_seq 5 | sed "/3/i\\\\\n'> <'" >x &&\n'> <'\tgit diff --ignore-blank-lines >out &&\n'> <'\t>expect &&\n'> 
            <'\ttest_cmp out expect\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: only new lines with space'>)}
        {
          (SQ <'\n'> <'\ttest_seq 5 >x &&\n'> <'\tgit update-index x &&\n'> 
            <'\ttest_seq 5 | sed "/3/i\\\\\n'> <' " >x &&\n'> <'\tgit diff -w --ignore-blank-lines >out &&\n'> <'\t>expect &&\n'> 
            <'\ttest_cmp out expect\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: after change'>)}
        {
          (SQ <'\n'> <'\tcat <<-\\EOF >x &&\n'> <'\t1\n'> <'\t2\n'> <'\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> 
            <'\n'> <'\t6\n'> <'\t7\n'> <'\tEOF\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> <'\tchange\n'> 
            <'\n'> <'\t1\n'> <'\t2\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\t6\n'> <'\n'> <'\t7\n'> <'\tEOF\n'> 
            <'\tgit diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&\n'> <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> 
            <'\t@@ -1,6 +1,7 @@\n'> <'\t+change\n'> <'\t+\n'> <'\t 1\n'> <'\t 2\n'> <'\t-\n'> <'\t 3\n'> <'\t 4\n'> <'\t 5\n'> <'\tEOF\n'> 
            <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: before change'>)}
        {
          (SQ <'\n'> <'\tcat <<-\\EOF >x &&\n'> <'\t1\n'> <'\t2\n'> <'\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> 
            <'\t6\n'> <'\t7\n'> <'\tEOF\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> <'\n'> <'\t1\n'> <'\t2\n'> 
            <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\n'> <'\t6\n'> <'\t7\n'> <'\tchange\n'> <'\tEOF\n'> 
            <'\tgit diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&\n'> <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> 
            <'\t@@ -4,5 +4,7 @@\n'> <'\t 3\n'> <'\t 4\n'> <'\t 5\n'> <'\t+\n'> <'\t 6\n'> <'\t 7\n'> <'\t+change\n'> <'\tEOF\n'> 
            <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: between changes'>)}
        {
          (SQ <'\n'> <'\tcat <<-\\EOF >x &&\n'> <'\t1\n'> <'\t2\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\n'> 
            <'\n'> <'\t6\n'> <'\t7\n'> <'\t8\n'> <'\t9\n'> <'\t10\n'> <'\tEOF\n'> <'\tgit update-index x &&\n'> 
            <'\tcat <<-\\EOF >x &&\n'> <'\tchange\n'> <'\t1\n'> <'\t2\n'> <'\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\t6\n'> <'\t7\n'> <'\t8\n'> <'\n'> 
            <'\t9\n'> <'\t10\n'> <'\tchange\n'> <'\tEOF\n'> <'\tgit diff --ignore-blank-lines >out.tmp &&\n'> 
            <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,5 +1,7 @@\n'> <'\t+change\n'> 
            <'\t 1\n'> <'\t 2\n'> <'\t+\n'> <'\t 3\n'> <'\t 4\n'> <'\t 5\n'> <'\t@@ -8,5 +8,7 @@\n'> <'\t 6\n'> <'\t 7\n'> 
            <'\t 8\n'> <'\t+\n'> <'\t 9\n'> <'\t 10\n'> <'\t+change\n'> <'\tEOF\n'> <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: between changes (with interhunkctx)'>)}
        {
          (SQ <'\n'> <'\ttest_seq 10 >x &&\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> 
            <'\tchange\n'> <'\t1\n'> <'\t2\n'> <'\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\n'> <'\t6\n'> <'\t7\n'> <'\t8\n'> <'\t9\n'> <'\n'> 
            <'\t10\n'> <'\tchange\n'> <'\tEOF\n'> <'\tgit diff --inter-hunk-context=2 --ignore-blank-lines >out.tmp &&\n'> 
            <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,10 +1,15 @@\n'> <'\t+change\n'> 
            <'\t 1\n'> <'\t 2\n'> <'\t+\n'> <'\t 3\n'> <'\t 4\n'> <'\t 5\n'> <'\t+\n'> <'\t 6\n'> <'\t 7\n'> <'\t 8\n'> <'\t 9\n'> 
            <'\t+\n'> <'\t 10\n'> <'\t+change\n'> <'\tEOF\n'> <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: scattered spaces'>)}
        {
          (SQ <'\n'> <'\ttest_seq 10 >x &&\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> 
            <'\tchange\n'> <'\t1\n'> <'\t2\n'> <'\t3\n'> <'\n'> <'\t4\n'> <'\n'> <'\t5\n'> <'\n'> <'\t6\n'> <'\n'> <'\n'> <'\t7\n'> <'\n'> 
            <'\t8\n'> <'\t9\n'> <'\t10\n'> <'\tchange\n'> <'\tEOF\n'> 
            <'\tgit diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&\n'> <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> 
            <'\t@@ -1,3 +1,4 @@\n'> <'\t+change\n'> <'\t 1\n'> <'\t 2\n'> <'\t 3\n'> <'\t@@ -8,3 +15,4 @@\n'> <'\t 8\n'> <'\t 9\n'> <'\t 10\n'> 
            <'\t+change\n'> <'\tEOF\n'> <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: spaces coalesce'>)}
        {
          (SQ <'\n'> <'\ttest_seq 6 >x &&\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> 
            <'\tchange\n'> <'\t1\n'> <'\t2\n'> <'\t3\n'> <'\n'> <'\t4\n'> <'\n'> <'\t5\n'> <'\n'> <'\t6\n'> <'\tchange\n'> <'\tEOF\n'> 
            <'\tgit diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&\n'> <'\tcat <<-\\EOF >expected &&\n'> <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> 
            <'\t@@ -1,6 +1,11 @@\n'> <'\t+change\n'> <'\t 1\n'> <'\t 2\n'> <'\t 3\n'> <'\t+\n'> <'\t 4\n'> <'\t+\n'> <'\t 5\n'> <'\t+\n'> 
            <'\t 6\n'> <'\t+change\n'> <'\tEOF\n'> <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ignore-blank-lines: mix changes and blank lines'>)}
        {
          (SQ <'\n'> <'\ttest_seq 16 >x &&\n'> <'\tgit update-index x &&\n'> <'\tcat <<-\\EOF >x &&\n'> 
            <'\tchange\n'> <'\t1\n'> <'\t2\n'> <'\n'> <'\t3\n'> <'\t4\n'> <'\t5\n'> <'\tchange\n'> <'\t6\n'> <'\t7\n'> <'\t8\n'> <'\n'> 
            <'\t9\n'> <'\t10\n'> <'\t11\n'> <'\tchange\n'> <'\t12\n'> <'\t13\n'> <'\t14\n'> <'\n'> <'\t15\n'> <'\t16\n'> 
            <'\tchange\n'> <'\tEOF\n'> <'\tgit diff --ignore-blank-lines >out.tmp &&\n'> <'\tcat <<-\\EOF >expected &&\n'> 
            <'\tdiff --git a/x b/x\n'> <'\t--- a/x\n'> <'\t+++ b/x\n'> <'\t@@ -1,8 +1,11 @@\n'> <'\t+change\n'> <'\t 1\n'> <'\t 2\n'> <'\t+\n'> 
            <'\t 3\n'> <'\t 4\n'> <'\t 5\n'> <'\t+change\n'> <'\t 6\n'> <'\t 7\n'> <'\t 8\n'> <'\t@@ -9,8 +13,11 @@\n'> <'\t 9\n'> 
            <'\t 10\n'> <'\t 11\n'> <'\t+change\n'> <'\t 12\n'> <'\t 13\n'> <'\t 14\n'> <'\t+\n'> <'\t 15\n'> <'\t 16\n'> 
            <'\t+change\n'> <'\tEOF\n'> <'\tcompare_diff_patch expected out.tmp\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check mixed spaces and tabs in indent'>)}
        {
          (SQ <'\n'> <'\t# This is indented with SP HT SP.\n'> <'\techo " \t foo();" >x &&\n'> 
            <'\tgit diff --check | grep "space before tab in indent"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check mixed tabs and spaces in indent'>)}
        {
          (SQ <'\n'> <'\t# This is indented with HT SP HT.\n'> <'\techo "\t \tfoo();" >x &&\n'> 
            <'\tgit diff --check | grep "space before tab in indent"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with no whitespace errors'>)}
        {
          (SQ <'\n'> <'\tgit commit -m "snapshot" &&\n'> <'\techo "foo();" >x &&\n'> 
            <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with trailing whitespace'>)}
        {(SQ <'\n'> <'\techo "foo(); " >x &&\n'> <'\ttest_must_fail git diff --check\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with space before tab in indent'>)}
        {
          (SQ <'\n'> <'\t# indent has space followed by hard tab\n'> <'\techo " \tfoo();" >x &&\n'> 
            <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'--check and --exit-code are not exclusive'>)}
        {(SQ <'\n'> <'\tgit checkout x &&\n'> <'\tgit diff --check --exit-code\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'--check and --quiet are not exclusive'>)}
        {(SQ <'\n'> <'\tgit diff --check --quiet\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with no whitespace errors'>)}
        {
          (SQ <'\n'> <'\techo "foo();" >x &&\n'> <'\tgit add x &&\n'> <'\tgit diff --cached --check\n'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with trailing whitespace'>)}
        {
          (SQ <'\n'> <'\techo "foo(); " >x &&\n'> <'\tgit add x &&\n'> 
            <'\ttest_must_fail git diff --cached --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with space before tab in indent'>)}
        {
          (SQ <'\n'> <'\t# indent has space followed by hard tab\n'> <'\techo " \tfoo();" >x &&\n'> 
            <'\tgit add x &&\n'> <'\ttest_must_fail git diff --cached --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with no whitespace errors (diff-index)'>)}
        {
          (SQ <'\n'> <'\techo "foo();" >x &&\n'> <'\tgit add x &&\n'> 
            <'\tgit diff-index --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with trailing whitespace (diff-index)'>)}
        {
          (SQ <'\n'> <'\techo "foo(); " >x &&\n'> <'\tgit add x &&\n'> 
            <'\ttest_must_fail git diff-index --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with space before tab in indent (diff-index)'>)}
        {
          (SQ <'\n'> <'\t# indent has space followed by hard tab\n'> <'\techo " \tfoo();" >x &&\n'> 
            <'\tgit add x &&\n'> <'\ttest_must_fail git diff-index --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with no whitespace errors (diff-index)'>)}
        {
          (SQ <'\n'> <'\techo "foo();" >x &&\n'> <'\tgit add x &&\n'> 
            <'\tgit diff-index --cached --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with trailing whitespace (diff-index)'>)}
        {
          (SQ <'\n'> <'\techo "foo(); " >x &&\n'> <'\tgit add x &&\n'> 
            <'\ttest_must_fail git diff-index --cached --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check staged with space before tab in indent (diff-index)'>)}
        {
          (SQ <'\n'> <'\t# indent has space followed by hard tab\n'> <'\techo " \tfoo();" >x &&\n'> 
            <'\tgit add x &&\n'> <'\ttest_must_fail git diff-index --cached --check HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with no whitespace errors (diff-tree)'>)}
        {
          (SQ <'\n'> <'\techo "foo();" >x &&\n'> <'\tgit commit -m "new commit" x &&\n'> 
            <'\tgit diff-tree --check HEAD^ HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with trailing whitespace (diff-tree)'>)}
        {
          (SQ <'\n'> <'\techo "foo(); " >x &&\n'> <'\tgit commit -m "another commit" x &&\n'> 
            <'\ttest_must_fail git diff-tree --check HEAD^ HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check with space before tab in indent (diff-tree)'>)}
        {
          (SQ <'\n'> <'\t# indent has space followed by hard tab\n'> <'\techo " \tfoo();" >x &&\n'> 
            <'\tgit commit -m "yet another" x &&\n'> <'\ttest_must_fail git diff-tree --check HEAD^ HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check trailing whitespace (trailing-space: off)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "-trailing-space" &&\n'> 
            <'\techo "foo ();   " >x &&\n'> <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check trailing whitespace (trailing-space: on)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "trailing-space" &&\n'> 
            <'\techo "foo ();   " >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check space before tab in indent (space-before-tab: off)'>)}
        {
          (SQ <'\n'> <'\t# indent contains space followed by HT\n'> 
            <'\tgit config core.whitespace "-space-before-tab" &&\n'> <'\techo " \tfoo ();" >x &&\n'> <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check space before tab in indent (space-before-tab: on)'>)}
        {
          (SQ <'\n'> <'\t# indent contains space followed by HT\n'> 
            <'\tgit config core.whitespace "space-before-tab" &&\n'> <'\techo " \tfoo ();   " >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check spaces as indentation (indent-with-non-tab: off)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "-indent-with-non-tab" &&\n'> 
            <'\techo "        foo ();" >x &&\n'> <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check spaces as indentation (indent-with-non-tab: on)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "indent-with-non-tab" &&\n'> 
            <'\techo "        foo ();" >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ditto, but tabwidth=9'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "indent-with-non-tab,tabwidth=9" &&\n'> 
            <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tabs and spaces as indentation (indent-with-non-tab: on)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "indent-with-non-tab" &&\n'> 
            <'\techo "\t                foo ();" >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ditto, but tabwidth=10'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "indent-with-non-tab,tabwidth=10" &&\n'> 
            <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ditto, but tabwidth=20'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "indent-with-non-tab,tabwidth=20" &&\n'> 
            <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tabs as indentation (tab-in-indent: off)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "-tab-in-indent" &&\n'> 
            <'\techo "\tfoo ();" >x &&\n'> <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tabs as indentation (tab-in-indent: on)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "tab-in-indent" &&\n'> 
            <'\techo "\tfoo ();" >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tabs and spaces as indentation (tab-in-indent: on)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "tab-in-indent" &&\n'> 
            <'\techo "\t                foo ();" >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ditto, but tabwidth=1 (must be irrelevant)'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "tab-in-indent,tabwidth=1" &&\n'> 
            <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tab-in-indent and indent-with-non-tab conflict'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace "tab-in-indent,indent-with-non-tab" &&\n'> 
            <'\techo "foo ();" >x &&\n'> <'\ttest_must_fail git diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check tab-in-indent excluded from wildcard whitespace attribute'>)}
        {
          (SQ <'\n'> <'\tgit config --unset core.whitespace &&\n'> 
            <'\techo "x whitespace" >.gitattributes &&\n'> <'\techo "\t  foo ();" >x &&\n'> <'\tgit diff --check &&\n'> <'\trm -f .gitattributes\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'line numbers in --check output are correct'>)}
        {
          (SQ <'\n'> <'\techo "" >x &&\n'> <'\techo "foo(); " >>x &&\n'> 
            <'\tgit diff --check | grep "x:2:"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'checkdiff detects new trailing blank lines (1)'>)}
        {
          (SQ <'\n'> <'\techo "foo();" >x &&\n'> <'\techo "" >>x &&\n'> 
            <'\tgit diff --check | grep "new blank line"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'checkdiff detects new trailing blank lines (2)'>)}
        {
          (SQ <'\n'> <'\t{ echo a; echo b; echo; echo; } >x &&\n'> <'\tgit add x &&\n'> 
            <'\t{ echo a; echo; echo; echo; echo; } >x &&\n'> <'\tgit diff --check | grep "new blank line"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'checkdiff allows new blank lines'>)}
        {
          (SQ <'\n'> <'\tgit checkout x &&\n'> <'\tmv x y &&\n'> <'\t(\n'> 
            <'\t\techo "/* This is new */" &&\n'> <'\t\techo "" &&\n'> <'\t\tcat y\n'> <'\t) >x &&\n'> <'\tgit diff --check\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: []
            )
        )
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'whitespace-only changes not reported'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\techo >x "hello world" &&\n'> <'\tgit add x &&\n'> 
            <'\tgit commit -m "hello 1" &&\n'> <'\techo >x "hello  world" &&\n'> <'\tgit diff -b >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'diff --git a/x b/z\n'>
                <'similarity index NUM%\n'>
                <'rename from x\n'>
                <'rename to z\n'>
                <'index 380c32a..a97b785 100644\n'>
              ]
            )
        )
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'whitespace-only changes reported across renames'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> 
            <'\tfor i in 1 2 3 4 5 6 7 8 9; do echo "$i$i$i$i$i$i"; done >x &&\n'> <'\tgit add x &&\n'> <'\tgit commit -m "base" &&\n'> <'\tsed -e "5s/^/ /" x >z &&\n'> 
            <'\tgit rm x &&\n'> <'\tgit add z &&\n'> <'\tgit diff -w -M --cached |\n'> 
            <'\tsed -e "/^similarity index /s/[0-9][0-9]*/NUM/" >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'diff --git a/empty b/void\n'>
                <'similarity index 100%\n'>
                <'rename from empty\n'>
                <'rename to void\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename empty'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\t>empty &&\n'> <'\tgit add empty &&\n'> 
            <'\tgit commit -m empty &&\n'> <'\tgit mv empty void &&\n'> <'\tgit diff -w --cached -M >current &&\n'> 
            <'\ttest_cmp expected current\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'combined diff with autocrlf conversion'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit reset --hard &&\n'> <'\techo >x hello &&\n'> 
            <'\tgit commit -m "one side" x &&\n'> <'\tgit checkout HEAD^ &&\n'> <'\techo >x goodbye &&\n'> <'\tgit commit -m "the other side" x &&\n'> 
            <'\tgit config core.autocrlf true &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\n'> <'\tgit diff | sed -e "1,/^@@@/d" >actual &&\n'> 
            <'\t! grep "^-" actual\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup diff colors'>)}
        {
          (SQ <'\n'> <'\tgit config color.diff always &&\n'> 
            <'\tgit config color.diff.plain normal &&\n'> <'\tgit config color.diff.meta bold &&\n'> <'\tgit config color.diff.frag cyan &&\n'> 
            <'\tgit config color.diff.func normal &&\n'> <'\tgit config color.diff.old red &&\n'> <'\tgit config color.diff.new green &&\n'> 
            <'\tgit config color.diff.commit yellow &&\n'> <'\tgit config color.diff.whitespace blue &&\n'> <'\n'> <'\tgit config core.autocrlf false\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'diff that introduces a line with only tabs'>)}
        {
          (SQ <'\n'> <'\tgit config core.whitespace blank-at-eol &&\n'> <'\tgit reset --hard &&\n'> 
            <'\techo "test" >x &&\n'> <'\tgit commit -m "initial" x &&\n'> <'\techo "{NTN}" | tr "NT" "\\n\\t" >>x &&\n'> 
            <'\tgit -c color.diff=always diff | test_decode_color >current &&\n'> <'\n'> <'\tcat >expected <<-\\EOF &&\n'> <'\t<BOLD>diff --git a/x b/x<RESET>\n'> 
            <'\t<BOLD>index 9daeafb..2874b91 100644<RESET>\n'> <'\t<BOLD>--- a/x<RESET>\n'> <'\t<BOLD>+++ b/x<RESET>\n'> <'\t<CYAN>@@ -1 +1,4 @@<RESET>\n'> 
            <'\t test<RESET>\n'> <'\t<GREEN>+<RESET><GREEN>{<RESET>\n'> <'\t<GREEN>+<RESET><BLUE>\t<RESET>\n'> 
            <'\t<GREEN>+<RESET><GREEN>}<RESET>\n'> <'\tEOF\n'> <'\n'> <'\ttest_cmp expected current\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'diff that introduces and removes ws breakages'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\t{\n'> <'\t\techo "0. blank-at-eol " &&\n'> 
            <'\t\techo "1. blank-at-eol "\n'> <'\t} >x &&\n'> <'\tgit commit -a --allow-empty -m preimage &&\n'> <'\t{\n'> 
            <'\t\techo "0. blank-at-eol " &&\n'> <'\t\techo "1. still-blank-at-eol " &&\n'> <'\t\techo "2. and a new line "\n'> <'\t} >x &&\n'> <'\n'> 
            <'\tgit -c color.diff=always diff |\n'> <'\ttest_decode_color >current &&\n'> <'\n'> <'\tcat >expected <<-\\EOF &&\n'> 
            <'\t<BOLD>diff --git a/x b/x<RESET>\n'> <'\t<BOLD>index d0233a2..700886e 100644<RESET>\n'> <'\t<BOLD>--- a/x<RESET>\n'> 
            <'\t<BOLD>+++ b/x<RESET>\n'> <'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n'> <'\t 0. blank-at-eol <RESET>\n'> 
            <'\t<RED>-1. blank-at-eol <RESET>\n'> <'\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n'> 
            <'\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n'> <'\tEOF\n'> <'\n'> <'\ttest_cmp expected current\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ws-error-highlight test setup'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit reset --hard &&\n'> <'\t{\n'> <'\t\techo "0. blank-at-eol " &&\n'> 
            <'\t\techo "1. blank-at-eol "\n'> <'\t} >x &&\n'> <'\tgit commit -a --allow-empty -m preimage &&\n'> <'\t{\n'> 
            <'\t\techo "0. blank-at-eol " &&\n'> <'\t\techo "1. still-blank-at-eol " &&\n'> <'\t\techo "2. and a new line "\n'> <'\t} >x &&\n'> <'\n'> 
            <'\tcat >expect.default-old <<-\\EOF &&\n'> <'\t<BOLD>diff --git a/x b/x<RESET>\n'> <'\t<BOLD>index d0233a2..700886e 100644<RESET>\n'> 
            <'\t<BOLD>--- a/x<RESET>\n'> <'\t<BOLD>+++ b/x<RESET>\n'> <'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n'> <'\t 0. blank-at-eol <RESET>\n'> 
            <'\t<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>\n'> <'\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n'> 
            <'\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n'> <'\tEOF\n'> <'\n'> <'\tcat >expect.all <<-\\EOF &&\n'> <'\t<BOLD>diff --git a/x b/x<RESET>\n'> 
            <'\t<BOLD>index d0233a2..700886e 100644<RESET>\n'> <'\t<BOLD>--- a/x<RESET>\n'> <'\t<BOLD>+++ b/x<RESET>\n'> <'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n'> 
            <'\t <RESET>0. blank-at-eol<RESET><BLUE> <RESET>\n'> <'\t<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>\n'> 
            <'\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n'> <'\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n'> <'\tEOF\n'> <'\n'> 
            <'\tcat >expect.none <<-\\EOF\n'> <'\t<BOLD>diff --git a/x b/x<RESET>\n'> <'\t<BOLD>index d0233a2..700886e 100644<RESET>\n'> 
            <'\t<BOLD>--- a/x<RESET>\n'> <'\t<BOLD>+++ b/x<RESET>\n'> <'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n'> <'\t 0. blank-at-eol <RESET>\n'> 
            <'\t<RED>-1. blank-at-eol <RESET>\n'> <'\t<GREEN>+1. still-blank-at-eol <RESET>\n'> <'\t<GREEN>+2. and a new line <RESET>\n'> <'\tEOF\n'> 
            <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'test --ws-error-highlight option'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit -c color.diff=always diff --ws-error-highlight=default,old |\n'> 
            <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.default-old current &&\n'> <'\n'> 
            <'\tgit -c color.diff=always diff --ws-error-highlight=all |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.all current &&\n'> <'\n'> 
            <'\tgit -c color.diff=always diff --ws-error-highlight=none |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.none current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'test diff.wsErrorHighlight config'>)}
        {
          (SQ <'\n'> <'\n'> 
            <'\tgit -c color.diff=always -c diff.wsErrorHighlight=default,old diff |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.default-old current &&\n'> <'\n'> 
            <'\tgit -c color.diff=always -c diff.wsErrorHighlight=all diff |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.all current &&\n'> <'\n'> 
            <'\tgit -c color.diff=always -c diff.wsErrorHighlight=none diff |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.none current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'option overrides diff.wsErrorHighlight'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit -c color.diff=always -c diff.wsErrorHighlight=none \\\n'> 
            <'\t\tdiff --ws-error-highlight=default,old |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.default-old current &&\n'> <'\n'> 
            <'\tgit -c color.diff=always -c diff.wsErrorHighlight=default \\\n'> <'\t\tdiff --ws-error-highlight=all |\n'> <'\ttest_decode_color >current &&\n'> 
            <'\ttest_cmp expect.all current &&\n'> <'\n'> <'\tgit -c color.diff=always -c diff.wsErrorHighlight=all \\\n'> 
            <'\t\tdiff --ws-error-highlight=none |\n'> <'\ttest_decode_color >current &&\n'> <'\ttest_cmp expect.none current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)