(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:buildDir) op: assign_op.Equal rhs: {<'../build'>} spids: [45] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:buildDir) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [64] ) ] ) ] spids: [48 61] ) ] ) (command.ForEach iter_name: testSource iter_words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-1>} {<Id.Lit_Star '*'> <.cc>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$testSource')}) (C {<sed>} {<-e>} {(SQ <'s/\\.cc$//'>)}) ] negated: F ) ) } spids: [89] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {($ Id.VSub_DollarName '$buildDir') <'/fuzz/'> ($ Id.VSub_DollarName '$test') } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Failed to find binary for '> ($ Id.VSub_DollarName '$test'))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [107 123] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(${ Id.VSub_Name test) <_corpus>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Failed to find corpus directory for '> ($ Id.VSub_DollarName '$test'))} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [142 158] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name test) <_corpus_old>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'Old corpus directory for '> ($ Id.VSub_DollarName '$test') <' already exists'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [177 191] ) ] ) ] ) ) (command.ForEach iter_name: testSource iter_words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-1>} {<Id.Lit_Star '*'> <.cc>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$testSource')}) (C {<sed>} {<-e>} {(SQ <'s/\\.cc$//'>)}) ] negated: F ) ) } spids: [232] ) ] ) (C {<mv>} {(${ Id.VSub_Name test) <_corpus>} {(${ Id.VSub_Name test) <_corpus_old>}) (C {<mkdir>} {(${ Id.VSub_Name test) <_corpus>}) (C {($ Id.VSub_DollarName '$buildDir') <'/fuzz/'> ($ Id.VSub_DollarName '$test')} {<-max_len> <Id.Lit_Equals '='> <50000>} {<-merge> <Id.Lit_Equals '='> <1>} {(${ Id.VSub_Name test) <_corpus>} {(${ Id.VSub_Name test) <_corpus_old>} ) (C {<rm>} {<-Rf>} {(${ Id.VSub_Name test) <_corpus_old>}) ] ) ) ] )