(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:config_template)
          op: Equal
          rhs: {(${ VSub_Number 1)}
          spids: [70]
        )
      ]
      spids: [70]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} {(-z)} {(DQ ($ VSub_Name "$config_template"))} {(-o)} {(KW_Bang "!")} {(-f)} 
              {(DQ ($ VSub_Name "$config_template"))} {(-o)} {(KW_Bang "!")} {(-r)} {(DQ ($ VSub_Name "$config_template"))}
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ("kvm-build.sh :") ($ VSub_Name "$config_template") (": Not a readable file"))}
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 105]
        )
      ]
      spids: [-1 121]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:builddir) op:Equal rhs:{(${ VSub_Number 2)} spids:[123])]
      spids: [123]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} {(-z)} {(DQ ($ VSub_Name "$builddir"))} {(-o)} {(KW_Bang "!")} {(-d)} 
              {(DQ ($ VSub_Name "$builddir"))} {(-o)} {(KW_Bang "!")} {(-w)} {(DQ ($ VSub_Name "$builddir"))}
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("kvm-build.sh :") ($ VSub_Name "$builddir") 
                  (": Not a writable directory, cannot build into it")
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 158]
        )
      ]
      spids: [-1 174]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:moreconfigs)
          op: Equal
          rhs: {(${ VSub_Number 3)}
          spids: [176]
        )
      ]
      spids: [176]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} {(-z)} {(DQ ($ VSub_Name "$moreconfigs"))} {(-o)} {(KW_Bang "!")} {(-r)} 
              {(DQ ($ VSub_Name "$moreconfigs"))}
            )
          ]
          action: [
            (C {(echo)} {(DQ ("kvm-build.sh :") ($ VSub_Name "$moreconfigs") (": Not a readable file"))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 201]
        )
      ]
      spids: [-1 217]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:T)
          op: Equal
          rhs: {(/tmp/test-linux.sh.) ($ VSub_Dollar "$$")}
          spids: [220]
        )
      ]
      spids: [220]
    )
    (C {(trap)} {(SQ <"rm -rf $T">)} {(0)})
    (C {(mkdir)} {($ VSub_Name "$T")})
    (SimpleCommand
      words: [{(grep)} {(-v)} {(SQ <"CONFIG_[A-Z]*_TORTURE_TEST">)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{(${ VSub_Name config_template)} spids:[245])
        (Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$T") (/config)} spids:[251])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("CONFIG_INITRAMFS_SOURCE=") (Right_DoubleQuote "\"") ($ VSub_Name "$TORTURE_INITRD") 
                (Right_DoubleQuote "\"") ("\n") ("CONFIG_VIRTIO_PCI=y\n") ("CONFIG_VIRTIO_CONSOLE=y\n")
              )
            }
          do_expansion: True
          here_end: ___EOF___
          was_filled: True
          spids: [258]
        )
        (Redir op_id:Redir_DGreat fd:-1 arg_word:{($ VSub_Name "$T") (/config)} spids:[262])
      ]
    )
    (SimpleCommand
      words: [{(cat)} {($ VSub_Name "$moreconfigs")}]
      redirects: [
        (Redir op_id:Redir_DGreat fd:-1 arg_word:{($ VSub_Name "$T") (/config)} spids:[278])
      ]
    )
    (C {(configinit.sh)} {($ VSub_Name "$T") (/config)} {(Lit_VarLike "O=") ($ VSub_Name "$builddir")})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:retval) op:Equal rhs:{($ VSub_QMark "$?")} spids:[292])]
      spids: [292]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {($ VSub_Name "$retval")} {(-gt)} {(1)})]
          action: [(C {(exit)} {(2)})]
          spids: [-1 305]
        )
      ]
      spids: [-1 312]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ncpus)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(cpus2use.sh)})])
                left_token: <Left_Backtick "`">
                spids: [315 317]
              )
            }
          spids: [314]
        )
      ]
      spids: [314]
    )
    (SimpleCommand
      words: [
        {(make)}
        {(Lit_VarLike "O=") ($ VSub_Name "$builddir")}
        {(-j) ($ VSub_Name "$ncpus")}
        {($ VSub_Name "$TORTURE_KMAKE_ARG")}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name "$builddir") (/Make.out)}
          spids: [329]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[334])
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:retval) op:Equal rhs:{($ VSub_QMark "$?")} spids:[337])]
      spids: [337]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (C {(test)} {($ VSub_Name "$retval")} {(-ne)} {(0)})
                (AndOr
                  children: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(grep)} {(DQ ("rcu[^/]*")) (Lit_Other ":")}]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: -1
                              arg_word: {($ VSub_Name "$builddir") (/Make.out)}
                              spids: [359]
                            )
                          ]
                        )
                        (C {(egrep)} {(-q)} {(DQ ("Stop|Error|error:|warning:"))})
                      ]
                      negated: False
                    )
                    (SimpleCommand
                      words: [{(egrep)} {(-q)} {(DQ ("Stop|Error|error:"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: -1
                          arg_word: {($ VSub_Name "$builddir") (/Make.out)}
                          spids: [384]
                        )
                      ]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DPipe
            )
          ]
          action: [
            (C {(echo)} {(Kernel)} {(build)} {(error)})
            (SimpleCommand
              words: [{(egrep)} {(DQ ("Stop|Error|error:|warning:"))}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: -1
                  arg_word: {($ VSub_Name "$builddir") (/Make.out)}
                  spids: [407]
                )
              ]
            )
            (C {(echo)} {(Run)} {(aborted.)})
            (C {(exit)} {(3)})
          ]
          spids: [-1 389]
        )
      ]
      spids: [-1 424]
    )
  ]
)