(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'diff with unmerged index entries'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {<setup>} 
      {
        (SQ <'\n'> <'\tfor i in 0 1 2 3\n'> <'\tdo\n'> 
          <'\t\tblob=$(echo $i | git hash-object --stdin) &&\n'> <'\t\teval "blob$i=$blob" &&\n'> <'\t\teval "m$i=\\"100644 \\$blob$i $i\\"" || return 1\n'> 
          <'\tdone &&\n'> <'\tpaths= &&\n'> <'\tfor b in o x\n'> <'\tdo\n'> <'\t\tfor o in o x\n'> <'\t\tdo\n'> 
          <'\t\t\tfor t in o x\n'> <'\t\t\tdo\n'> <'\t\t\t\tpath="$b$o$t" &&\n'> <'\t\t\t\tcase "$path" in ooo) continue ;; esac\n'> 
          <'\t\t\t\tpaths="$paths$path " &&\n'> <'\t\t\t\tp="\t$path" &&\n'> <'\t\t\t\tcase "$b" in x) echo "$m1$p" ;; esac &&\n'> 
          <'\t\t\t\tcase "$o" in x) echo "$m2$p" ;; esac &&\n'> <'\t\t\t\tcase "$t" in x) echo "$m3$p" ;; esac ||\n'> <'\t\t\t\treturn 1\n'> <'\t\t\tdone\n'> 
          <'\t\tdone\n'> <'\tdone >ls-files-s.expect &&\n'> <'\tgit update-index --index-info <ls-files-s.expect &&\n'> 
          <'\tgit ls-files -s >ls-files-s.actual &&\n'> <'\ttest_cmp ls-files-s.expect ls-files-s.actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'diff-files -0'>)} 
      {
        (SQ <'\n'> <'\tfor path in $paths\n'> <'\tdo\n'> <'\t\t>"$path" &&\n'> 
          <'\t\techo ":000000 100644 $_z40 $_z40 U\t$path"\n'> <'\tdone >diff-files-0.expect &&\n'> <'\tgit diff-files -0 >diff-files-0.actual &&\n'> 
          <'\ttest_cmp diff-files-0.expect diff-files-0.actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'diff-files -1'>)} 
      {
        (SQ <'\n'> <'\tfor path in $paths\n'> <'\tdo\n'> <'\t\t>"$path" &&\n'> 
          <'\t\techo ":000000 100644 $_z40 $_z40 U\t$path" &&\n'> <'\t\tcase "$path" in\n'> <'\t\tx??) echo ":100644 100644 $blob1 $_z40 M\t$path"\n'> <'\t\tesac\n'> 
          <'\tdone >diff-files-1.expect &&\n'> <'\tgit diff-files -1 >diff-files-1.actual &&\n'> 
          <'\ttest_cmp diff-files-1.expect diff-files-1.actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'diff-files -2'>)} 
      {
        (SQ <'\n'> <'\tfor path in $paths\n'> <'\tdo\n'> <'\t\t>"$path" &&\n'> 
          <'\t\techo ":000000 100644 $_z40 $_z40 U\t$path" &&\n'> <'\t\tcase "$path" in\n'> <'\t\t?x?) echo ":100644 100644 $blob2 $_z40 M\t$path"\n'> <'\t\tesac\n'> 
          <'\tdone >diff-files-2.expect &&\n'> <'\tgit diff-files -2 >diff-files-2.actual &&\n'> 
          <'\ttest_cmp diff-files-2.expect diff-files-2.actual &&\n'> <'\tgit diff-files >diff-files-default-2.actual &&\n'> 
          <'\ttest_cmp diff-files-2.expect diff-files-default-2.actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'diff-files -3'>)} 
      {
        (SQ <'\n'> <'\tfor path in $paths\n'> <'\tdo\n'> <'\t\t>"$path" &&\n'> 
          <'\t\techo ":000000 100644 $_z40 $_z40 U\t$path" &&\n'> <'\t\tcase "$path" in\n'> <'\t\t??x) echo ":100644 100644 $blob3 $_z40 M\t$path"\n'> <'\t\tesac\n'> 
          <'\tdone >diff-files-3.expect &&\n'> <'\tgit diff-files -3 >diff-files-3.actual &&\n'> 
          <'\ttest_cmp diff-files-3.expect diff-files-3.actual\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)