(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'MODULE_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MODULE_NAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MODULE_NAME='> name:MODULE_NAME) op: assign_op.Equal rhs: {<udelay_test>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UDELAY_PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UDELAY_PATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UDELAY_PATH='> name:UDELAY_PATH) op: assign_op.Equal rhs: {<'/sys/kernel/debug/udelay_test'>} ) ] redirects: [] ) (command.ShFunction name_tok: <setup> name: setup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'/sbin/modprobe'> more_env: [] words: [{<'/sbin/modprobe'>} {<-q>} {($ Id.VSub_DollarName MODULE_NAME)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'tmp_file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tmp_file='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp_file='> name:tmp_file) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <test_one> name: test_one body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'delay='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'delay='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'delay='> name:delay) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName delay)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName UDELAY_PATH)} ) ] do_fork: T ) (command.Simple blame_tok: <tee> more_env: [] words: [{<tee>} {<-a>} {($ Id.VSub_DollarName tmp_file)}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName UDELAY_PATH)} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cleanup> name: cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName tmp_file)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {($ Id.VSub_DollarName tmp_file)}] redirects: [] do_fork: T ) ] spids: [124 135] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <'/sbin/modprobe'> more_env: [] words: [{<'/sbin/modprobe'>} {<-q>} {<-r>} {($ Id.VSub_DollarName MODULE_NAME)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<cleanup>} {<EXIT>}] redirects: [] do_fork: T ) (command.Simple blame_tok:<setup> more_env:[] words:[{<setup>}] redirects:[] do_fork:T) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 200>} ) update: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 1>} ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <test_one> more_env: [] words: [{<test_one>} {($ Id.VSub_DollarName delay)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 200>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 500>} ) update: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 10>} ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <test_one> more_env: [] words: [{<test_one>} {($ Id.VSub_DollarName delay)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 500>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 2000>} ) update: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike delay) right: {<Id.Lit_Digits 100>} ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <test_one> more_env: [] words: [{<test_one>} {($ Id.VSub_DollarName delay)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-c>} {<FAIL>} {($ Id.VSub_DollarName tmp_file)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_DollarName count) <' delays failed to delay long enough'>) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'retcode='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'retcode='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retcode='> name:retcode) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] spids: [300 315] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName retcode)} ) ] )