(command.CommandList children: [ (command.ShFunction name: force_state_change body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_Number 2)} right: {(DQ <online>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_Number 2)} right: {(DQ <offline>)} ) ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.Pipeline children: [ (C {<th_manage>} {($ Id.VSub_Number 1)} {<getstate>}) (C {<read>} {<path>} {<state>} {<busy>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName state))} right: {(DQ ($ Id.VSub_Number 2))} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<th_manage>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.Pipeline children: [ (C {<th_manage>} {($ Id.VSub_Number 1)} {<getstate>}) (C {<read>} {<path>} {<state>} {<busy>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName state))} right: {(DQ ($ Id.VSub_Number 2))} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script_pid='> name:script_pid) op: assign_op.Equal rhs: {<0>} spids: [263] ) ] redirects: [] ) (C {<trap>} {(SQ <' terminate $script_pid '>)} {<1>} {<2>} {<3>} {<15>}) (command.ShFunction name: terminate body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Number 1)} right: {<0>} ) redirects: [] ) (command.Simple words: [{<kill>} {($ Id.VSub_Number 1)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: control_workload body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<fixup_script>} {<1>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)] spids: [357 371] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Number 2)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<kill>} {($ Id.VSub_Number 2)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] spids: [398 411] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-lt>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<syntax> <Id.Lit_Colon ':'>} {($ Id.VSub_Number 0)} {<path>} {<pid>}) ] spids: [429 442] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DRIVER_UNCONFIGURE)} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<Id.Lit_Colon ':'>} {<no>} {<unconfigure>} {<action>} {<required>}) terminator: <Id.Op_Semi _> ) ] spids: [457 470] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName DRIVER_CONFIGURE)} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<1>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<sleep>} {<2>}) (C {<force_state_change>} {($ Id.VSub_Number 1)} {<offline>}) (C {<force_state_change>} {($ Id.VSub_Number 1)} {<online>}) ] ) redirects: [] ) terminator: <Id.Op_Amp _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script_pid='> name:script_pid) op: assign_op.Equal rhs: {($ Id.VSub_Bang '!')} spids: [538] ) ] redirects: [] ) ] spids: [486 499] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: prepare_for_errdef body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<export>} {<Id.Lit_VarLike 'DRIVER_PATH='> ($ Id.VSub_Number 1)}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_NAME='> ($ Id.VSub_Number 2)}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_INSTANCE='> ($ Id.VSub_Number 3)}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_UNCONFIGURE='> <1>}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_CONFIGURE='> <0>}) (C {<control_workload>} {($ Id.VSub_Number 1)} {($ Id.VSub_DollarName script_pid)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script_pid='> name:script_pid) op: assign_op.Equal rhs: {<0>} spids: [600] ) ] redirects: [] ) (command.Simple words: [{<th_manage>} {($ Id.VSub_Number 2)} {($ Id.VSub_Number 3)} {<get_handles>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<force_state_change>} {($ Id.VSub_Number 1)} {<offline>}) (C {<force_state_change>} {($ Id.VSub_Number 1)} {<online>}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_UNCONFIGURE='> <0>}) (C {<export>} {<Id.Lit_VarLike 'DRIVER_CONFIGURE='> <1>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number 4)} right: {<1>} ) redirects: [] ) (C {<control_workload>} {($ Id.VSub_Number 1)} {($ Id.VSub_DollarName script_pid)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: monitor_edef body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<let>} {<Id.Lit_VarLike 'aborted='> <0>}) (C {<trap>} {(SQ <' (( aborted += 1 )) '>)} {<16>}) (C {<sleep>} {<2>}) (C {<th_manage>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)} {<start>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<let>} {<Id.Lit_VarLike 's='> <0>}) (C {<let>} {<Id.Lit_VarLike 'x='> ($ Id.VSub_Number 3)}) (C {<set>} {<-A>} {<stats>} {<0>} {<0>} {<1>} {<0>} {<0>} {<0>} {<0>} {(DQ )}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.BinaryAssign op_id: Id.Arith_MinusEqual left: ($ Id.Lit_ArithVarLike x) right: {<Id.Lit_Digits 1>} ) right: {<Id.Lit_Digits 0>} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike aborted) right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (C {<read>} {<line>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName line))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (C {<set>} {<-A>} {<stats>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName line))}) (C {<'/usr/bin/awk'>} {<-F> <Id.Lit_Colon ':'>} {(SQ <'{for (i = 1; i <= NF; i++) print $i}'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name stats> var_name: stats bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 6>}) right: <Id.Right_DollarBrace '}'> ) ) } {<-ne>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name stats> var_name: stats bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike s) right: {<Id.Lit_Digits 1>} ) right: {<Id.Lit_Digits 3>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) ] ) redirects: [] ) (C {<th_manage>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)} {<clear_errdefs>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<echo>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name stats> var_name: stats bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: run_subtest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<let>} {<Id.Lit_VarLike 'edefid='> <0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'drv='> name:drv) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [1042] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'inst='> name:inst) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [1046] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName devpath)} {<Id.Lit_Equals '='>} {(DQ <NULL>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<th_manage>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)} {<getpath>} ) right: <Id.Eof_RParen _> ) } spids: [1068] ) ] redirects: [] ) ] spids: [1050 1065] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path) op: assign_op.Equal rhs: {($ Id.VSub_DollarName devpath)} spids: [1083] ) ] redirects: [] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<line>})]) body: (command.DoGroup children: [ (C {<set>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName line))}) (C {<'/usr/bin/awk'>} {(SQ <'{for (i = 1; i <= NF; i++) print $i}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w='> name:w) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name line> var_name: line suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> (DQ <'-w '>)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [1123] ) ] redirects: [] ) (C {<let>} {<Id.Lit_VarLike 'a='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name w> var_name: w suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {(DQ <' '>) <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<let>} {<Id.Lit_VarLike 'b='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name w> var_name: w suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> (DQ <' '>)} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<let>} {<Id.Lit_VarLike 'x='> (SQ <'a / b'>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.Binary op_id: Id.Arith_Percent left: ($ Id.Lit_ArithVarLike a) right: ($ Id.Lit_ArithVarLike b) ) right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike x) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) (C {<prepare_for_errdef>} {($ Id.VSub_DollarName path)} {($ Id.VSub_DollarName drv)} {($ Id.VSub_DollarName inst)} {<1>} ) (C {<set>} {<-A>} {<status>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [{<th_define>} {($ Id.VSub_Star '*')}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'./elog'>} ) ] more_env: [] do_fork: T ) (C {<monitor_edef>} {($ Id.VSub_DollarName drv)} {($ Id.VSub_DollarName inst)} {($ Id.VSub_DollarName x)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 2>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'res='> name:res) op: assign_op.Equal rhs: {(DQ <'test not triggered'>)} spids: [1259] ) ] redirects: [] ) ] spids: [1236 1256] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'res='> name:res) op: assign_op.Equal rhs: {(DQ <'success (error undetected)'>)} spids: [1288] ) ] redirects: [] ) ] spids: [1265 1285] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 6>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-eq>} {<16>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'res='> name: res ) op: assign_op.Equal rhs: {(DQ <'failure (no service impact reported)'>)} spids: [1340] ) ] redirects: [] ) ] spids: [1317 1337] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'res='> name:res) op: assign_op.Equal rhs: {(DQ <'success (error reported)'>)} spids: [1349] ) ] redirects: [] ) ] redirects: [] ) ] spids: [1294 1314] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'res='> name:res) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [1361] ) ] redirects: [] ) ] redirects: [] ) (C {<echo>} { (DQ <'Subtest '> ($ Id.VSub_DollarName edefid) <': Result: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName res) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ) (C {<echo>} {($ Id.VSub_DollarName line)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 7>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<let>} {<Id.Lit_VarLike 'i='> <6>}) (C {<let>} {<Id.Lit_VarLike 'l='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) (C {<echo>} { (DQ <'\tFail Msg :'> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <c> ) } ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) right: ($ Id.Lit_ArithVarLike l) ) redirects: [] ) ] ) body: (command.DoGroup children: [ (C {<echo>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <' '> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] ) redirects: [] ) (C {<echo>} {(DQ )}) ] spids: [1384 1402] ) ] else_action: [] redirects: [] ) (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tFail Time :'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_BadBackslash '\\'> <'tMsg Time :'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tAcc count :'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_BadBackslash '\\'> <'tFail count:'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tAccess Chk:'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 4>}) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_BadBackslash '\\'> <'tEmsg count:'> <Id.Lit_BadBackslash '\\'> <t> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 5>}) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 6>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tSeverity:'> <Id.Lit_BadBackslash '\\'> <'tSERVICE UNAFFECTED'> ) } ) ] spids: [1562 1582] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 6>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-eq>} {<-16>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tSeverity:'> <Id.Lit_BadBackslash '\\'> <'tSERVICE DEGRADED'> ) } ) ] spids: [1595 1615] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name status> var_name: status bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 6>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<-eq>} {<-32>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tSeverity:'> <Id.Lit_BadBackslash '\\'> <'tSERVICE LOST'> ) } ) ] spids: [1628 1648] ) ] else_action: [] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike edefid) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) redirects: [] ) (C {<fixup_script>} {<0>}) (C {<prepare_for_errdef>} {($ Id.VSub_DollarName path)} {($ Id.VSub_DollarName drv)} {($ Id.VSub_DollarName inst)} {<0>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )