(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:i) op:assign_op.Equal rhs:{<1>} spids:[7])]
    )
    (command.Pipeline
      children: [
        (C 
          {
            (DQ 
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<dirname>} {($ Id.VSub_Number '$0')})
              ) <'/kqtest'>
            )
          }
        )
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)]
            )
          body: 
            (command.DoGroup
              children: [
                (command.Pipeline
                  children: [
                    (C {<echo>} {($ Id.VSub_DollarName '$line')})
                    (C {<grep>} {<-q>} {<passed>})
                  ]
                  negated: F
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} 
                          {
                            (DQ <'ok - '> ($ Id.VSub_DollarName '$i') <' '> 
                              ($ Id.VSub_DollarName '$line')
                            )
                          }
                        )
                        (C {<Id.Lit_Colon ':'>} 
                          {
                            (word_part.ArithSub
                              anode: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_PlusEqual
                                  left: <Id.Lit_ArithVarLike i>
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          }
                        )
                      ]
                      spids: [44 57]
                    )
                  ]
                )
                (command.Pipeline
                  children: [
                    (C {<echo>} {($ Id.VSub_DollarName '$line')})
                    (C {<grep>} {<-q>} {(SQ <'tests completed'>)})
                  ]
                  negated: F
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} {<-n>} {(DQ <1..>)})
                        (command.Pipeline
                          children: [
                            (C {<echo>} {($ Id.VSub_DollarName '$line')})
                            (C {<cut>} {<-d> (SQ <' '>)} {<-f3>})
                          ]
                          negated: F
                        )
                      ]
                      spids: [103 116]
                    )
                  ]
                )
              ]
            )
        )
      ]
      negated: F
    )
  ]
)