(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef create_repo [] (List (= scope= flags=0 words=[] bindings=[('number_of_commits', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('nr', {[LIT_CHARS 0]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS .git]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS init]}) (AndOr OP_AND_IF (Pipeline (Subshell (AndOr OP_AND_IF (While (Com {[LIT_CHARS test]} {[VarSub nr]} {[LIT_CHARS -lt]} {[VarSub number_of_commits]}) (List (= scope= flags=0 words=[] bindings=[('nr', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub nr]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (= scope= flags=0 words=[] bindings=[('mark', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub nr]}} {A Atom NODE_ARITH_WORD {[VarSub nr]}}}]})]) (= scope= flags=0 words=[] bindings=[('notemark', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub mark]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/heads/master\n"][LIT_CHARS "mark :"][VarSub mark][LIT_CHARS "\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "N :"][VarSub notemark][LIT_CHARS " :"][VarSub mark]]} < (FilenameRedirectNode filename={[LIT_CHARS note_commit]} >"> 1), > ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/commits\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS note_commit]}) ) ) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS fast-import]} {[LIT_CHARS --quiet]}) ) (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS core.notesRef]} {[LIT_CHARS refs/notes/commits]}) ) ) ) ) ) (FunctionDef test_notes [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('count', {[VarSub 1]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS core.notesRef]} {[LIT_CHARS refs/notes/commits]}) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^ "]]} < (FilenameRedirectNode filename={[LIT_CHARS output]} "> 1), > ) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('i', {[VarSub count]})]) (AndOr OP_AND_IF (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " commit #"][VarSub i]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " note for commit #"][VarSub i]]}) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS output]}) ) ) ) ) ) ) (Com {[LIT_CHARS write_script]} {[LIT_CHARS time_notes]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "\tmode=$1\n"] [LIT_CHARS "\ti=1\n"] [LIT_CHARS "\twhile test $i -lt $2\n"] [LIT_CHARS "\tdo\n"] [LIT_CHARS "\t\tcase $1 in\n"] [LIT_CHARS "\t\tno-notes)\n"] [LIT_CHARS "\t\t\tGIT_NOTES_REF=non-existing\n"] [LIT_CHARS "\t\t\texport GIT_NOTES_REF\n"] [LIT_CHARS "\t\t\t;;\n"] [LIT_CHARS "\t\tnotes)\n"] [LIT_CHARS "\t\t\tunset GIT_NOTES_REF\n"] [LIT_CHARS "\t\t\t;;\n"] [LIT_CHARS "\t\tesac\n"] [LIT_CHARS "\t\tgit log\n"] [LIT_CHARS "\t\ti=$(($i+1))\n"] [LIT_CHARS "\tdone >/dev/null\n"]} 0), > ) (FunctionDef time_notes [] (For mode [{[LIT_CHARS no-notes]}, {[LIT_CHARS notes]}]) (List (Com {[LIT_CHARS echo]} {[VarSub mode]}) (Com {[LIT_CHARS /usr/bin/time]} {[LIT_CHARS ../time_notes]} {[VarSub mode]} {[VarSub 1]}) ) ) ) (FunctionDef do_tests [] (List (= scope= flags=0 words=[] bindings=[('count', {[VarSub 1]}), ('pr', {[VarSub 2 test_op=VS_TEST_HYPHEN {}]})]) (Com {[LIT_CHARS test_expect_success]} {[VarSub pr]} {[DQ [LIT_CHARS "setup "][VarSub count]]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[VarSub pr]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS USR_BIN_TIME][VarSub pr test_op=VS_TEST_COLON_PLUS {[LIT_CHARS ","] [VarSub pr]}]]} {[SQ ]} {[SQ ]}) ) ) (Com {[LIT_CHARS do_tests]} {[LIT_CHARS 10]}) (For count [{[LIT_CHARS 100]}, {[LIT_CHARS 1000]}, {[LIT_CHARS 10000]}]) (Com {[LIT_CHARS do_tests]} {[DQ [VarSub count]]} {[LIT_CHARS EXPENSIVE]}) ) (Com {[LIT_CHARS test_done]}) )