(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {<.>} { (DQ (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<.>}) ) <'/tests/init.sh'> ) } ) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {<'./src'>}) ] ) (C {<print_ver_>} {<cp>} {<mv>} {<ginstall>}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {<src>} {<dest>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<--preserve> <Id.Lit_Equals '='> <xattr>} {<-n>} {<src>} {<dest>}) (C {<skip_>} {(DQ <'coreutils built without xattr support'>)}) ] ) (command.ShFunction name: cleanup_ body: (BraceGroup children: [ (command.Sentence child: (C {<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName '$other_partition_tmpdir'))}) terminator: <Id.Op_Semi _> ) ] ) ) (C {<.>} {(DQ ($ Id.VSub_DollarName '$abs_srcdir') <'/tests/other-fs-tmpdir'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b_other) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$other_partition_tmpdir') <'/b'>)} spids: [138] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$b_other'))}) (C {<framework_failure_>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:xattr_name) op: assign_op.Equal rhs: {(DQ <user.foo>)} spids: [160] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:xattr_value) op: assign_op.Equal rhs: {(DQ <bar>)} spids: [165] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:xattr_pair) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$xattr_name') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$xattr_value') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [170] ) ] ) (command.AndOr ops:[Id.Op_DPipe] children:[(C {<touch>} {<a>}) (C {<framework_failure_>})]) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<a>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_a>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_a>}) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {<setfattr>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xattr_name'))} {<-v>} {(DQ ($ Id.VSub_DollarName '$xattr_value'))} {<a>} ] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_a>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to set xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<a>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_a>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_a>}) (C {<skip_>} {(DQ <'failed to set xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [305] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<b>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [337] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<--preserve> <Id.Lit_Equals '='> <xattr>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [356] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<b>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [388] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<--preserve> <Id.Lit_Equals '='> <all>} {<a>} {<c>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [407] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<c>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_c>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_c>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [439] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{<cp>} {<-a>} {<a>} {<d>}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<err>})] do_fork: T ) (C {<test>} {<-s>} {<err>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [467] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<d>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_d>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [499] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<chmod>} {<a-w>} {<a>}) (C {<framework_failure_>})] ) (C {<rm>} {<-f>} {<e>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<--preserve> <Id.Lit_Equals '='> <xattr>} {<a>} {<e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [534] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<e>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_e>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [566] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:src_perm) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--format> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <a>} {<a>}) ) } spids: [573] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dst_perm) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--format> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <a>} {<e>}) ) } spids: [585] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$dst_perm'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$src_perm'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [611] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<chmod>} {<u> <Id.Lit_Other '+'> <w>} {<a>}) (C {<framework_failure_>})] ) (command.AndOr ops:[Id.Op_DPipe] children:[(C {<rm>} {<b>}) (C {<framework_failure_>})]) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ginstall>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [648] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<b>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [680] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [701] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {<b>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 747 stdin_parts: [ <'=================================================================\n'> ($ Id.VSub_Number '$0') <': WARNING!!!\n'> <'rename () does not preserve extended attributes\n'> <'=================================================================\n'> ] ) ) ] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_mv) op: assign_op.Equal rhs: {<1>} spids: [752] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {(DQ ($ Id.VSub_DollarName '$b_other'))}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {<setfattr>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xattr_name'))} {<-v>} {(DQ ($ Id.VSub_DollarName '$xattr_value'))} {(DQ ($ Id.VSub_DollarName '$b_other'))} ] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_a>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_mv) op: assign_op.Equal rhs: {<0>} spids: [790] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$b_other'))}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_mv) op: assign_op.Equal rhs: {<0>} spids: [806] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_mv) op: assign_op.Equal rhs: {<0>} spids: [821] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$b_other'))}) (C {<framework_failure_>})] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$test_mv')} {<-eq>} {<1>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {<b>} {(DQ ($ Id.VSub_DollarName '$b_other'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [865] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<getfattr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$b_other'))}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out_b>})] do_fork: T ) (C {<skip_>} {(DQ <'failed to get xattr of file'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-F>} {(DQ ($ Id.VSub_DollarName '$xattr_pair'))} {<out_b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [902] ) ] ) ] ) ] spids: [837 848] ) ] else_action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 924 stdin_parts: [ <'=================================================================\n'> ($ Id.VSub_Number '$0') <': WARNING!!!\n'> <'failed to set xattr of file '> ($ Id.VSub_DollarName '$b_other') <'\n'> <'=================================================================\n'> ] ) ) ] do_fork: T ) ] ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )