(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [47 51]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(stat)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(touch)} {(a)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[77])]
          spids: [77]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:btime)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(stat)} {(--format)} {(Lit_Other '%') (W)} {(a)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [81 90]
                  )
                }
              spids: [80]
            )
          ]
          spids: [80]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[94])]
          spids: [94]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:atime)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(stat)} {(--format)} {(Lit_Other '%') (X)} {(a)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [98 107]
                  )
                }
              spids: [97]
            )
          ]
          spids: [97]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[111])]
          spids: [111]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:mtime)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(stat)} {(--format)} {(Lit_Other '%') (Y)} {(a)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [115 124]
                  )
                }
              spids: [114]
            )
          ]
          spids: [114]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[128])]
          spids: [128]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ctime)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(stat)} {(--format)} {(Lit_Other '%') (Z)} {(a)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [132 141]
                  )
                }
              spids: [131]
            )
          ]
          spids: [131]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[145])]
          spids: [145]
        )
      ]
    )
    (FuncDef
      name: check_timestamps_updated
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:delay)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [182]
                )
              ]
              spids: [180]
            )
            (C {(sleep)} {($ VSub_Name '$delay')})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(touch)} {(a)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[199])]
                  spids: [199]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(DQ (x) ($ VSub_Name '$btime'))} {(Lit_Other '=')} 
                  {(x) 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(--format)} {(Lit_Other '%') (W)} {(a)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [214 223]
                    )
                  }
                )
                (C {(test)} {(DQ (x) ($ VSub_Name '$atime'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(x) 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(--format)} {(Lit_Other '%') (X)} {(a)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [239 248]
                    )
                  }
                )
                (C {(test)} {(DQ (x) ($ VSub_Name '$mtime'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(x) 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(--format)} {(Lit_Other '%') (Y)} {(a)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [264 273]
                    )
                  }
                )
                (C {(test)} {(DQ (x) ($ VSub_Name '$ctime'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(x) 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(--format)} {(Lit_Other '%') (Z)} {(a)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [289 298]
                    )
                  }
                )
              ]
            )
          ]
          spids: [177]
        )
      spids: [173 176]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(retry_delay_)} {(check_timestamps_updated)} {(.07)} {(5)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[312])]
          spids: [312]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)