(command.CommandList children: [ (C {(set)} {(-ex)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_ne left: {($ VSub_Pound '$#')} right: {(2)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('Usage: ') ($ VSub_Number '$0') (' fuzzer_mode_build_dir no_fuzzer_mode_build_dir') ) } ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fuzzer_mode_build_dir) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:no_fuzzer_mode_build_dir) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(grep)} {(-q)} {(SQ <'^FUZZ:'>)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/CMakeCache.txt))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (' was not built with -DFUZZ=1'))} ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(grep)} {(-q)} {(SQ <'^NO_FUZZER_MODE:'>)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/CMakeCache.txt))} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (' was built with -DNO_FUZZER_MODE=1') ) } ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(grep)} {(-q)} {(SQ <'^FUZZ:'>)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/CMakeCache.txt))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (' was not built with -DFUZZ=1'))} ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(grep)} {(-q)} {(SQ <'^NO_FUZZER_MODE:'>)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/CMakeCache.txt))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (' was not built with -DNO_FUZZER_MODE=1') ) } ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.FuncDef name: assert_directory body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.BoolUnary op_id: BoolUnary_d child: {($ VSub_Number '$1')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Number '$1') (' not found.'))}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) ] ) ) (C {(assert_directory)} {(client_corpus)}) (C {(assert_directory)} {(client_corpus_no_fuzzer_mode)}) (C {(assert_directory)} {(server_corpus)}) (C {(assert_directory)} {(server_corpus_no_fuzzer_mode)}) (C {(assert_directory)} {(dtls_client_corpus)}) (C {(assert_directory)} {(dtls_server_corpus)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fuzzer_mode_shim) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/ssl/test/bssl_shim))} ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:no_fuzzer_mode_shim) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/ssl/test/bssl_shim))} ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fuzzer_mode_transcripts) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(mktemp)} {(-d)} {(SQ </tmp/boringssl-transcript.XXXXXX>)})] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:no_fuzzer_mode_transcripts) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(mktemp)} {(-d)} {(SQ </tmp/boringssl-transcript.XXXXXX>)})] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (C {(echo)} {(Recording)} {(fuzzer-mode)} {(transcripts)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(cd)} {(../ssl/test/runner/)}) (C {(go)} {(test)} {(-shim-path)} {(DQ ($ VSub_DollarName '$fuzzer_mode_shim'))} {(-transcript-dir)} {(DQ ($ VSub_DollarName '$fuzzer_mode_transcripts'))} {(-fuzzer)} {(-deterministic)} ) ] ) ] ) ) (C {(true)}) ] ) (C {(echo)} {(Recording)} {(non-fuzzer-mode)} {(transcripts)}) (command.AndOr ops: [Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(cd)} {(../ssl/test/runner/)}) (C {(go)} {(test)} {(-shim-path)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_shim'))} {(-transcript-dir)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_transcripts'))} {(-deterministic)} ) ] ) ] ) ) (C {(true)}) ] ) (command.FuncDef name: minimize_corpus body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fuzzer) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:corpus) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} ) ] ) (C {(echo)} {(DQ ('Minimizing ') (${ VSub_Name corpus))}) (C {(mv)} {(DQ ($ VSub_DollarName '$corpus'))} {(DQ (${ VSub_Name corpus) (_old))}) (C {(mkdir)} {(DQ ($ VSub_DollarName '$corpus'))}) (C {(DQ ($ VSub_DollarName '$fuzzer'))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(DQ ($ VSub_DollarName '$corpus'))} {(DQ (${ VSub_Name corpus) (_old))} ) (C {(rm)} {(-Rf)} {(DQ (${ VSub_Name corpus) (_old))}) ] ) ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/client))} {(client_corpus)} ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/server))} {(server_corpus)} ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/fuzz/client))} {(client_corpus_no_fuzzer_mode)} ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/fuzz/server))} {(server_corpus_no_fuzzer_mode)} ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/dtls_client))} {(dtls_client_corpus)} ) (C {(minimize_corpus)} {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/dtls_server))} {(dtls_server_corpus)} ) (C {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/client))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(client_corpus)} {(DQ (${ VSub_Name fuzzer_mode_transcripts) (/tls/client))} ) (C {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/server))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(server_corpus)} {(DQ (${ VSub_Name fuzzer_mode_transcripts) (/tls/server))} ) (C {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/fuzz/client))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(client_corpus_no_fuzzer_mode)} {(DQ (${ VSub_Name no_fuzzer_mode_transcripts) (/tls/client))} ) (C {(DQ ($ VSub_DollarName '$no_fuzzer_mode_build_dir') (/fuzz/server))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(server_corpus_no_fuzzer_mode)} {(DQ (${ VSub_Name no_fuzzer_mode_transcripts) (/tls/server))} ) (C {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/dtls_client))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(dtls_client_corpus)} {(DQ (${ VSub_Name fuzzer_mode_transcripts) (/dtls/client))} ) (C {(DQ ($ VSub_DollarName '$fuzzer_mode_build_dir') (/fuzz/dtls_server))} {(-max_len) (Lit_Other '=') (50000)} {(-merge) (Lit_Other '=') (1)} {(dtls_server_corpus)} {(DQ (${ VSub_Name fuzzer_mode_transcripts) (/dtls/server))} ) ] )