(CommandList
  children: [
    (FuncDef
      name: check
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(grep)} {(-q)} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$1'))})
                      ]
                      negated: T
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Did not find expected output:'))})
                    (C {(echo)} {(DQ ('   ') ($ VSub_Number '$2'))})
                    (C {(echo)} {(DQ )})
                    (C {(echo)} {(DQ ('Actual error output below:'))})
                    (C {(cat)} {(DQ ($ VSub_Number '$1'))})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 82]
                )
              ]
              spids: [16777215 125]
            )
          ]
          spids: [62]
        )
      spids: [58 61]
    )
    (FuncDef
      name: check_num
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:n)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(grep)} {(-c)} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$1'))})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [138 150]
                      )
                    }
                  spids: [137]
                )
              ]
              spids: [137]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(DQ ($ VSub_Name '$n'))} {(-ne)} {(DQ ($ VSub_Number '$3'))})]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('Found ') ($ VSub_Name '$n') (' occurrences (should find ') 
                          ($ VSub_Number '$3') ('):')
                        )
                      }
                    )
                    (C {(echo)} {(DQ ('   ') ($ VSub_Number '$2'))})
                    (C {(echo)} {(DQ )})
                    (C {(echo)} {(DQ ('Actual error output below:'))})
                    (C {(cat)} {(DQ ($ VSub_Number '$1'))})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 168]
                )
              ]
              spids: [16777215 215]
            )
          ]
          spids: [134]
        )
      spids: [130 133]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:STDOUT)
          op: Equal
          rhs: {(DQ (dwp_test_1.stdout))}
          spids: [220]
        )
      ]
      spids: [220]
    )
    (C {(check)} {($ VSub_Name '$STDOUT')} {(DQ ('^Contents of the .debug_info.dwo section'))})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ (DW_TAG_compile_unit))} {(4)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ (DW_TAG_type_unit))} {(3)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: C1'))} {(3)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: C2'))} {(2)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: C3'))} {(3)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: testcase1'))} {(6)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: testcase2'))} {(6)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: testcase3'))} {(6)})
    (C {(check_num)} {($ VSub_Name '$STDOUT')} {(DQ ('DW_AT_name.*: testcase4'))} {(4)})
  ]
)