(CommandList
  children: [
    (AndOr
      children: [
        (DParen
          child: 
            (ArithBinary
              op_id: Arith_GreatEqual
              left: (ArithWord w:{($ VSub_Pound "$#")})
              right: (ArithWord w:{(Lit_Digits 2)})
            )
        )
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ("Usage: ") ($ VSub_Number "$0") (" <unittest.bash dir> <singlejar>"))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[87])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [77]
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(source)} {($ VSub_Number "$1") (/unittest.bash)})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ("unittest.bash not found!"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[119])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [111]
        )
      ]
      op_id: Op_DPipe
    )
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_Declare
      flags: ["'-r'"]
      pairs: [
        (assign_pair
          lhs: (LhsName name:singlejar)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$2"))}
          spids: [139]
        )
      ]
      spids: [135]
    )
    (FuncDef
      name: test_new_entries
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out_jar)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name TEST_TMPDIR) (/out.jar))}
                  spids: [165]
                )
              ]
              spids: [161]
            )
            (C {(DQ ($ VSub_Name "$singlejar"))} {(--output)} {(DQ ($ VSub_Name "$out_jar"))})
            (C {(cd)} {(DQ (${ VSub_Name TEST_TMPDIR))})
            (C {(unzip)} {(DQ ($ VSub_Name "$out_jar"))} {(build-data.properties)})
            (AndOr
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_r child:{(build-data.properties)})
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(echo)} {(DQ ("build-data.properties is not readable"))}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[223])]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
                  ]
                  spids: [215]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [158]
        )
      spids: [152 157]
    )
    (C {(run_suite)} {(DQ ("Misc shell tests"))})
  ]
)