(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git stripspace">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:t40)
          op: Equal
          rhs: {(SQ <"A quick brown fox jumps over the lazy do">)}
          spids: [24]
        )
      ]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:s40)
          op: Equal
          rhs: {(SQ <"                                        ">)}
          spids: [29]
        )
      ]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sss)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40") 
                ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40") ($ VSub_Name "$s40")
              )
            }
          spids: [34]
        )
      ]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ttt)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40") 
                ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40") ($ VSub_Name "$t40")
              )
            }
          spids: [51]
        )
      ]
      spids: [51]
    )
    (C {(test_expect_success)} {(SQ <"long lines without spaces should be unchanged">)} 
      {
        (SQ <"\n"> <"    echo \"$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt$ttt$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"lines with spaces at the beginning should be unchanged">)} 
      {
        (SQ <"\n"> <"    echo \"$sss$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$sss$sss$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$sss$sss$sss$ttt\" >expect &&\n"> <"    git stripspace <expect >actual &&\n"> 
          <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"lines with intermediate spaces should be unchanged">)} 
      {
        (SQ <"\n"> <"    echo \"$ttt$sss$ttt\" >expect &&\n"> 
          <"    git stripspace <expect >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$sss$sss$ttt\" >expect &&\n"> 
          <"    git stripspace <expect >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"consecutive blank lines should be unified">)} 
      {
        (SQ <"\n"> <"    printf \"$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt$ttt\\n\\n\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt$ttt$ttt\\n\\n\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\\n\\n\\n$ttt$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\\n\\n\\n$ttt$ttt$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <
"    printf \"$ttt$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt\\n\" | git stripspace >actual &&\n"
          > <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <
"    printf \"$ttt$ttt$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt\\n\" | git stripspace >actual &&\n"
          > <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt$ttt\\n\" > expect &&\n"> 
          <
"    printf \"$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt$ttt\\n\" | git stripspace >actual &&\n"
          > <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\\n$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <
"    printf \"$ttt\\n\\t\\n \\n\\n  \\t\\t\\n$ttt$ttt$ttt\\n\" | git stripspace >actual &&\n"
          > <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"only consecutive blank lines should be completely removed">)} 
      {
        (SQ <"\n"> <"    > expect &&\n"> <"\n"> <"    printf \"\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> 
          <"\n"> <"    printf \"$sss\\n$sss\\n$sss\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$sss$sss\\n$sss\\n\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"\\n$sss\\n$sss$sss\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$sss$sss$sss$sss\\n\\n\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"\\n$sss$sss$sss$sss\\n\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"\\n\\n$sss$sss$sss$sss\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"consecutive blank lines at the beginning should be removed">)} 
      {
        (SQ <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> 
          <"    printf \"\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> 
          <"    printf \"\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"\\n\\n\\n$ttt$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"\\n\\n\\n$ttt$ttt$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"\\n\\n\\n$ttt$ttt$ttt$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> <"\n"> 
          <"    printf \"$sss\\n$sss\\n$sss\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"\\n$sss\\n$sss$sss\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$sss$sss\\n$sss\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$sss$sss$sss\\n\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"\\n$sss$sss$sss\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"\\n\\n$sss$sss$sss\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"consecutive blank lines at the end should be removed">)} 
      {
        (SQ <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt\\n\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt$ttt\\n\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt$ttt$ttt\\n\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt$ttt\\n\" > expect &&\n"> 
          <"    printf \"$ttt$ttt$ttt$ttt\\n\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" > expect &&\n"> <"\n"> 
          <"    printf \"$ttt\\n$sss\\n$sss\\n$sss\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n\\n$sss\\n$sss$sss\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n$sss$sss\\n$sss\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n$sss$sss$sss\\n\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n\\n$sss$sss$sss\\n\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n\\n\\n$sss$sss$sss\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"text without newline at end should end with newline">)} 
      {
        (SQ <"\n"> <"    test $(printf \"$ttt\" | git stripspace | wc -l) -gt 0 &&\n"> 
          <"    test $(printf \"$ttt$ttt\" | git stripspace | wc -l) -gt 0 &&\n"> <"    test $(printf \"$ttt$ttt$ttt\" | git stripspace | wc -l) -gt 0 &&\n"> 
          <"    test $(printf \"$ttt$ttt$ttt$ttt\" | git stripspace | wc -l) -gt 0\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"text plus spaces without newline at end should end with newline">)} 
      {
        (SQ <"\n"> <"    test $(printf \"$ttt$sss\" | git stripspace | wc -l) -gt 0 &&\n"> 
          <"    test $(printf \"$ttt$ttt$sss\" | git stripspace | wc -l) -gt 0 &&\n"> <"    test $(printf \"$ttt$ttt$ttt$sss\" | git stripspace | wc -l) -gt 0 &&\n"> 
          <"    test $(printf \"$ttt$sss$sss\" | git stripspace | wc -l) -gt 0 &&\n"> <"    test $(printf \"$ttt$ttt$sss$sss\" | git stripspace | wc -l) -gt 0 &&\n"> 
          <"    test $(printf \"$ttt$sss$sss$sss\" | git stripspace | wc -l) -gt 0\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"text plus spaces without newline at end should not show spaces">)} 
      {
        (SQ <"\n"> <"    ! (printf \"$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (printf \"$ttt$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> <"    ! (printf \"$ttt$ttt$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (printf \"$ttt$sss$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> <"    ! (printf \"$ttt$ttt$sss$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (printf \"$ttt$sss$sss$sss\" | git stripspace | grep \"  \" >/dev/null)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"text plus spaces without newline should show the correct lines">)} 
      {
        (SQ <"\n"> <"    printf \"$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$sss$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$ttt$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt$ttt$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$ttt$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"text plus spaces at end should not show spaces">)} 
      {
        (SQ <"\n"> <"    ! (echo \"$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (echo \"$ttt$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> <"    ! (echo \"$ttt$ttt$ttt$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (echo \"$ttt$sss$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> <"    ! (echo \"$ttt$ttt$sss$sss\" | git stripspace | grep \"  \" >/dev/null) &&\n"> 
          <"    ! (echo \"$ttt$sss$sss$sss\" | git stripspace | grep \"  \" >/dev/null)\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"text plus spaces at end should be cleaned and newline must remain">)} 
      {
        (SQ <"\n"> <"    echo \"$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$sss$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$ttt$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$ttt$ttt$ttt\" >expect &&\n"> 
          <"    echo \"$ttt$ttt$ttt$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"spaces with newline at end should be replaced with empty string">)} 
      {
        (SQ <"\n"> <"    printf \"\" >expect &&\n"> <"\n"> <"    echo | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    echo \"$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$sss$sss$sss\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    echo \"$sss$sss$sss$sss\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"spaces without newline at end should not show spaces">)} 
      {
        (SQ <"\n"> <"    ! (printf \"\" | git stripspace | grep \" \" >/dev/null) &&\n"> 
          <"    ! (printf \"$sss\" | git stripspace | grep \" \" >/dev/null) &&\n"> <"    ! (printf \"$sss$sss\" | git stripspace | grep \" \" >/dev/null) &&\n"> 
          <"    ! (printf \"$sss$sss$sss\" | git stripspace | grep \" \" >/dev/null) &&\n"> <"    ! (printf \"$sss$sss$sss$sss\" | git stripspace | grep \" \" >/dev/null)\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"spaces without newline at end should be replaced with empty string">)} 
      {
        (SQ <"\n"> <"    printf \"\" >expect &&\n"> <"\n"> 
          <"    printf \"\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$sss$sss\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$sss$sss$sss\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$sss$sss$sss$sss\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"consecutive text lines should be unchanged">)} 
      {
        (SQ <"\n"> <"    printf \"$ttt$ttt\\n$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt$ttt\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n$ttt$ttt\\n$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt\\n$ttt$ttt\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt\\n$ttt\\n$ttt\\n$ttt$ttt\\n\" >expect &&\n"> <"    printf \"$ttt\\n$ttt\\n$ttt\\n$ttt$ttt\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n$ttt\\n\\n$ttt$ttt\\n$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt\\n$ttt\\n\\n$ttt$ttt\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual &&\n"> <"\n"> 
          <"    printf \"$ttt$ttt\\n\\n$ttt\\n$ttt$ttt\\n\" >expect &&\n"> <"    printf \"$ttt$ttt\\n\\n$ttt\\n$ttt$ttt\\n\" | git stripspace >actual &&\n"> 
          <"    test_cmp expect actual &&\n"> <"\n"> <"    printf \"$ttt\\n$ttt$ttt\\n\\n$ttt\\n\" >expect &&\n"> 
          <"    printf \"$ttt\\n$ttt$ttt\\n\\n$ttt\\n\" | git stripspace >actual &&\n"> <"    test_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"strip comments, too">)} 
      {
        (SQ <"\n"> <"\ttest ! -z \"$(echo \"# comment\" | git stripspace)\" &&\n"> 
          <"\ttest -z \"$(echo \"# comment\" | git stripspace -s)\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"strip comments with changed comment char">)} 
      {
        (SQ <"\n"> 
          <"\ttest ! -z \"$(echo \"; comment\" | git -c core.commentchar=\";\" stripspace)\" &&\n"> <"\ttest -z \"$(echo \"; comment\" | git -c core.commentchar=\";\" stripspace -s)\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-c with single line">)} 
      {
        (SQ <"\n"> <"\tprintf \"# foo\\n\" >expect &&\n"> 
          <"\tprintf \"foo\" | git stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-c with single line followed by empty line">)} 
      {
        (SQ <"\n"> <"\tprintf \"# foo\\n#\\n\" >expect &&\n"> 
          <"\tprintf \"foo\\n\\n\" | git stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-c with newline only">)} 
      {
        (SQ <"\n"> <"\tprintf \"#\\n\" >expect &&\n"> 
          <"\tprintf \"\\n\" | git stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--comment-lines with single line">)} 
      {
        (SQ <"\n"> <"\tprintf \"# foo\\n\" >expect &&\n"> 
          <"\tprintf \"foo\" | git stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-c with changed comment char">)} 
      {
        (SQ <"\n"> <"\tprintf \"; foo\\n\" >expect &&\n"> 
          <"\tprintf \"foo\" | git -c core.commentchar=\";\" stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"avoid SP-HT sequence in commented line">)} 
      {
        (SQ <"\n"> <"\tprintf \"#\\tone\\n#\\n# two\\n\" >expect &&\n"> 
          <"\tprintf \"\\tone\\n\\ntwo\\n\" | git stripspace -c >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)