(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git rev-list --max-count and --skip test'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'    for n in 1 2 3 4 5 ; do \\\n'> <'        echo $n > a ; \\\n'> 
          <'        git add a ; \\\n'> <'        git commit -m "$n" ; \\\n'> <'    done\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'no options'>)} 
      {(SQ <'\n'> <'    test $(git rev-list HEAD | wc -l) = 5\n'>)}
    )
    (C {<test_expect_success>} {(SQ <--max-count>)} 
      {
        (SQ <'\n'> <'    test $(git rev-list HEAD --max-count=0 | wc -l) = 0 &&\n'> 
          <'    test $(git rev-list HEAD --max-count=3 | wc -l) = 3 &&\n'> <'    test $(git rev-list HEAD --max-count=5 | wc -l) = 5 &&\n'> 
          <'    test $(git rev-list HEAD --max-count=10 | wc -l) = 5\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'--max-count all forms'>)} 
      {
        (SQ <'\n'> <'    test $(git rev-list HEAD --max-count=1 | wc -l) = 1 &&\n'> 
          <'    test $(git rev-list HEAD -1 | wc -l) = 1 &&\n'> <'    test $(git rev-list HEAD -n1 | wc -l) = 1 &&\n'> 
          <'    test $(git rev-list HEAD -n 1 | wc -l) = 1\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <--skip>)} 
      {
        (SQ <'\n'> <'    test $(git rev-list HEAD --skip=0 | wc -l) = 5 &&\n'> 
          <'    test $(git rev-list HEAD --skip=3 | wc -l) = 2 &&\n'> <'    test $(git rev-list HEAD --skip=5 | wc -l) = 0 &&\n'> 
          <'    test $(git rev-list HEAD --skip=10 | wc -l) = 0\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'--skip --max-count'>)} 
      {
        (SQ <'\n'> <'    test $(git rev-list HEAD --skip=0 --max-count=0 | wc -l) = 0 &&\n'> 
          <'    test $(git rev-list HEAD --skip=0 --max-count=10 | wc -l) = 5 &&\n'> <'    test $(git rev-list HEAD --skip=3 --max-count=0 | wc -l) = 0 &&\n'> 
          <'    test $(git rev-list HEAD --skip=3 --max-count=1 | wc -l) = 1 &&\n'> <'    test $(git rev-list HEAD --skip=3 --max-count=2 | wc -l) = 2 &&\n'> 
          <'    test $(git rev-list HEAD --skip=3 --max-count=10 | wc -l) = 2 &&\n'> <'    test $(git rev-list HEAD --skip=5 --max-count=10 | wc -l) = 0 &&\n'> 
          <'    test $(git rev-list HEAD --skip=10 --max-count=10 | wc -l) = 0\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)