(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'ask merge-recursive to merge binary files'>)}
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <'\n'> <'\n'> <'\tcat "$TEST_DIRECTORY"/test-binary-1.png >m &&\n'> <'\tgit add m &&\n'> 
          <'\tgit ls-files -s | sed -e "s/ 0\t/ 1\t/" >E1 &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "initial" &&\n'> <'\n'> <'\tgit branch side &&\n'> 
          <'\techo frotz >a &&\n'> <'\tgit add a &&\n'> <'\techo nitfol >>m &&\n'> <'\tgit add a m &&\n'> <'\tgit ls-files -s a >E0 &&\n'> 
          <'\tgit ls-files -s m | sed -e "s/ 0\t/ 3\t/" >E3 &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "master adds some" &&\n'> <'\n'> <'\tgit checkout side &&\n'> 
          <'\techo rezrov >>m &&\n'> <'\tgit add m &&\n'> <'\tgit ls-files -s m | sed -e "s/ 0\t/ 2\t/" >E2 &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit -m "side modifies" &&\n'> <'\n'> <'\tgit tag anchor &&\n'> <'\n'> <'\tcat E0 E1 E2 E3 >expect\n'>
        )
      }
    )
    (C {(test_expect_success)} {(resolve)} 
      {
        (SQ <'\n'> <'\n'> <'\trm -f a* m* &&\n'> <'\tgit reset --hard anchor &&\n'> <'\n'> 
          <'\tif git merge -s resolve master\n'> <'\tthen\n'> <'\t\techo Oops, should not have succeeded\n'> <'\t\tfalse\n'> <'\telse\n'> 
          <'\t\tgit ls-files -s >current\n'> <'\t\ttest_cmp current expect\n'> <'\tfi\n'>
        )
      }
    )
    (C {(test_expect_success)} {(recursive)} 
      {
        (SQ <'\n'> <'\n'> <'\trm -f a* m* &&\n'> <'\tgit reset --hard anchor &&\n'> <'\n'> 
          <'\tif git merge -s recursive master\n'> <'\tthen\n'> <'\t\techo Oops, should not have succeeded\n'> <'\t\tfalse\n'> <'\telse\n'> 
          <'\t\tgit ls-files -s >current\n'> <'\t\ttest_cmp current expect\n'> <'\tfi\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)