(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:FAILED) op:Equal rhs:{(no)} spids:[89])] spids: [89] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WORKDIR) op:Equal rhs:{(work)} spids:[92])] spids: [92] ) (FuncDef name: usage body: (BraceGroup children: [ (C {(echo)} {(DQ ('Usage: tests.sh [-s script] [-w workdir]'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [100] ) spids: [96 99] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(etcupdate)} spids:[120])] spids: [120] ) (While cond: [(Sentence child:(C {(getopts)} {(DQ ('s:w:'))} {(option)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$option')} arms: [ (case_arm pat_list: [{(s)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMMAND) op: Equal rhs: {(DQ ('sh ') ($ VSub_Name '$OPTARG'))} spids: [148] ) ] spids: [148] ) ] spids: [144 145 155 16777215] ) (case_arm pat_list: [{(w)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WORKDIR) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [162] ) ] spids: [162] ) ] spids: [158 159 166 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)}) (C {(usage)})] spids: [169 170 179 16777215] ) ] spids: [137 141 182] ) ] spids: [134 184] ) ) (C {(shift)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:OPTIND) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [188 195] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(usage)})] spids: [16777215 210] ) ] spids: [16777215 215] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFLICTS) op: Equal rhs: {($ VSub_Name '$WORKDIR') (/conflicts)} spids: [218] ) ] spids: [218] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD) op: Equal rhs: {($ VSub_Name '$WORKDIR') (/old)} spids: [222] ) ] spids: [222] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEW) op: Equal rhs: {($ VSub_Name '$WORKDIR') (/current)} spids: [226] ) ] spids: [226] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST) op: Equal rhs: {($ VSub_Name '$WORKDIR') (/test)} spids: [230] ) ] spids: [230] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:states) op: Equal rhs: {(DQ ('equal first second difftype difflinks difffiles'))} spids: [238] ) ] spids: [238] ) (FuncDef name: build_trees body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:i) op:Equal spids:[253]) (assign_pair lhs:(LhsName name:j) op:Equal spids:[255]) (assign_pair lhs:(LhsName name:k) op:Equal spids:[257]) ] spids: [251] ) (C {(rm)} {(-rf)} {($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')} {($ VSub_Name '$CONFLICTS')} ) (C {(mkdir)} {(-p)} {($ VSub_Name '$OLD') (/etc)} {($ VSub_Name '$NEW') (/etc)} {($ VSub_Name '$TEST') (/etc)} ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$states')}] do_arg_iter: F body: (DoGroup children: [ (ForEach iter_name: j iter_words: [{($ VSub_Name '$states')}] do_arg_iter: F body: (DoGroup children: [ (ForEach iter_name: k iter_words: [{($ VSub_Name '$states')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {(-p)} {($ VSub_Name '$OLD') (/) ($ VSub_Name '$i') (/) ($ VSub_Name '$j') (/) ($ VSub_Name '$k') } {($ VSub_Name '$NEW') (/) ($ VSub_Name '$i') (/) ($ VSub_Name '$j') (/) ($ VSub_Name '$k')} {($ VSub_Name '$TEST') (/) ($ VSub_Name '$i') (/) ($ VSub_Name '$j') (/) ($ VSub_Name '$k') } ) ] spids: [403 437] ) spids: [399 401] ) ] spids: [391 440] ) spids: [387 389] ) ] spids: [379 443] ) spids: [375 377] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/equal/equal/equal/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/equal/equal/equal/file)} spids: [479] ) ] ) (C {(mkdir)} {($ VSub_Name '$i') (/equal/equal/equal/dir)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$i') (/equal/equal/equal/link)}) ] spids: [464 503] ) spids: [456 462] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/equal/first/first/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/equal/first/first/file)} spids: [541] ) ] ) (C {(mkdir)} {($ VSub_Name '$i') (/equal/first/first/dir)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$i') (/equal/first/first/link)}) ] spids: [526 565] ) spids: [520 524] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/equal/difftype/difftype/fifo)}) (C {(mkdir)} {($ VSub_Name '$i') (/equal/difftype/difftype/fromdir)}) ] spids: [588 603] ) spids: [582 586] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/equal/difftype/difftype/fifo)} spids: [612] ) ] ) (C {(ln)} {(-s)} {(DQ (test))} {($ VSub_Name '$TEST') (/equal/difftype/difftype/fromdir)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')}] do_arg_iter: F body: (DoGroup children: [ (C {(ln)} {(-s)} {(DQ (foo))} {($ VSub_Name '$i') (/equal/difflinks/difflinks/link)}) ] spids: [650 665] ) spids: [644 648] ) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$TEST') (/equal/difflinks/difflinks/link)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/equal/difffiles/difffiles/file)} spids: [709] ) ] ) ] spids: [700 715] ) spids: [694 698] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/equal/difffiles/difffiles/file)} spids: [724] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/first/equal/second/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/first/equal/second/file)} spids: [765] ) ] ) (C {(mkdir)} {($ VSub_Name '$i') (/first/equal/second/emptydir)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$i') (/first/equal/second/link)}) (C {(mkdir)} {($ VSub_Name '$i') (/first/equal/second/fulldir)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/first/equal/second/fulldir/file)} spids: [801] ) ] ) ] spids: [750 807] ) spids: [744 748] ) (C {(mkfifo)} {($ VSub_Name '$OLD') (/first/first/equal/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/first/first/equal/file)} spids: [840] ) ] ) (C {(mkdir)} {($ VSub_Name '$OLD') (/first/first/equal/dir)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$OLD') (/first/first/equal/link)}) (C {(mkfifo)} {($ VSub_Name '$OLD') (/first/difftype/second/fifo)}) (C {(mkdir)} {($ VSub_Name '$TEST') (/first/difftype/second/fifo)}) (C {(ln)} {(-s)} {(DQ ('old link'))} {($ VSub_Name '$OLD') (/first/difflinks/second/link)}) (C {(ln)} {(-s)} {(DQ ('test link'))} {($ VSub_Name '$TEST') (/first/difflinks/second/link)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/first/difffiles/second/file)} spids: [969] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/first/difffiles/second/file)} spids: [981] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/second/equal/first/file)} spids: [1011] ) ] ) (C {(mkfifo)} {($ VSub_Name '$NEW') (/second/equal/first/fifo)}) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/second/equal/first/link)}) (C {(mkdir)} {($ VSub_Name '$NEW') (/second/equal/first/emptydir)}) (C {(mkdir)} {($ VSub_Name '$NEW') (/second/equal/first/fulldir)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/second/equal/first/fulldir/file)} spids: [1053] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/second/second/equal/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/second/second/equal/file)} spids: [1116] ) ] ) (C {(mkdir)} {($ VSub_Name '$i') (/second/second/equal/dir)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$i') (/second/second/equal/link)}) ] spids: [1101 1140] ) spids: [1095 1099] ) (C {(mkdir)} {($ VSub_Name '$NEW') (/second/second/difftype/dir)}) (C {(mkfifo)} {($ VSub_Name '$TEST') (/second/second/difftype/dir)}) (C {(ln)} {(-s)} {(DQ ('new link'))} {($ VSub_Name '$NEW') (/second/second/difflinks/link)}) (C {(ln)} {(-s)} {(DQ ('test link'))} {($ VSub_Name '$TEST') (/second/second/difflinks/link)}) (SimpleCommand words: [{(echo)} {(DQ (new))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/second/second/difffiles/file)} spids: [1234] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (test))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/second/second/difffiles/file)} spids: [1246] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/difftype/equal/difftype/file)} spids: [1312] ) ] ) (C {(mkdir)} {($ VSub_Name '$i') (/difftype/equal/difftype/fromdir)}) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$i') (/difftype/equal/difftype/todir)}) ] spids: [1303 1336] ) spids: [1297 1301] ) (C {(ln)} {(-s)} {(DQ (test))} {($ VSub_Name '$NEW') (/difftype/equal/difftype/file)}) (C {(mkfifo)} {($ VSub_Name '$NEW') (/difftype/equal/difftype/fromdir)}) (C {(mkdir)} {($ VSub_Name '$NEW') (/difftype/equal/difftype/todir)}) (C {(mkfifo)} {($ VSub_Name '$OLD') (/difftype/first/first/fifo)}) (C {(mkdir)} {($ VSub_Name '$NEW') (/difftype/first/first/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difftype/difftype/equal/fifo)} spids: [1438] ) ] ) (C {(mkfifo)} {($ VSub_Name '$OLD') (/difftype/difftype/equal/file)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkfifo)} {($ VSub_Name '$i') (/difftype/difftype/equal/fifo)}) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/difftype/difftype/equal/file)} spids: [1476] ) ] ) ] spids: [1461 1482] ) spids: [1455 1459] ) (C {(mkfifo)} {($ VSub_Name '$OLD') (/difftype/difftype/difftype/one)}) (C {(mkdir)} {($ VSub_Name '$NEW') (/difftype/difftype/difftype/one)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/difftype/difftype/difftype/one)} spids: [1534] ) ] ) (C {(mkdir)} {($ VSub_Name '$OLD') (/difftype/difftype/difftype/two)}) (SimpleCommand words: [{(echo)} {(DQ (baz))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difftype/difftype/difftype/two)} spids: [1552] ) ] ) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$TEST') (/difftype/difftype/difftype/two)}) (C {(mkfifo)} {($ VSub_Name '$OLD') (/difftype/difftype/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/difftype/difftype/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (test))} {($ VSub_Name '$TEST') (/difftype/difftype/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$OLD') (/difftype/difftype/difffiles/file)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difftype/difftype/difffiles/file)} spids: [1652] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/difftype/difftype/difffiles/file)} spids: [1664] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$i') (/difflinks/equal/difflinks/link)}) ] spids: [1690 1705] ) spids: [1684 1688] ) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/difflinks/equal/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$OLD') (/difflinks/first/first/link)}) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/difflinks/first/first/link)}) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$OLD') (/difflinks/difftype/difftype/link)}) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/difflinks/difftype/difftype/link)}) (SimpleCommand words: [{(echo)} {(DQ (test))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/difflinks/difftype/difftype/link)} spids: [1831] ) ] ) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$OLD') (/difflinks/difflinks/equal/link)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$i') (/difflinks/difflinks/equal/link)}) ] spids: [1886 1901] ) spids: [1880 1884] ) (C {(ln)} {(-s)} {(DQ (old))} {($ VSub_Name '$OLD') (/difflinks/difflinks/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (new))} {($ VSub_Name '$NEW') (/difflinks/difflinks/difflinks/link)}) (C {(ln)} {(-s)} {(DQ (test))} {($ VSub_Name '$TEST') (/difflinks/difflinks/difflinks/link)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/difffiles/equal/difffiles/file)} spids: [2012] ) ] ) ] spids: [2003 2018] ) spids: [1997 2001] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difffiles/equal/difffiles/file)} spids: [2027] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difffiles/first/first/file)} spids: [2061] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difffiles/first/first/file)} spids: [2073] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (old))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difffiles/difftype/difftype/file)} spids: [2124] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (new))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difffiles/difftype/difftype/file)} spids: [2136] ) ] ) (C {(mkfifo)} {($ VSub_Name '$TEST') (/difffiles/difftype/difftype/file)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difffiles/difffiles/equal/file)} spids: [2197] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/difffiles/difffiles/equal/file)} spids: [2223] ) ] ) ] spids: [2214 2229] ) spids: [2208 2212] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difffiles/difffiles/difffiles/simple)} spids: [2251] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is an old line\n') ('\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2256] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difffiles/difffiles/difffiles/simple)} spids: [2265] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is a new line\n') ('\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2270] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/difffiles/difffiles/difffiles/simple)} spids: [2279] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is an old line\n') ('\n') ('this is a local line\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2284] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/difffiles/difffiles/difffiles/conflict)} spids: [2294] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is an old file\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2299] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/difffiles/difffiles/difffiles/conflict)} spids: [2307] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is a new file\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2312] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/difffiles/difffiles/difffiles/conflict)} spids: [2320] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('this is a test file\n'))} do_expansion: True here_end: EOF was_filled: T spids: [2325] ) ] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$OLD') (/adddir)} {($ VSub_Name '$NEW') (/adddir)} {($ VSub_Name '$TEST') (/adddir)} ) (C {(mkdir)} {($ VSub_Name '$NEW') (/adddir/conflict)}) (C {(touch)} {($ VSub_Name '$NEW') (/adddir/conflict/newfile)}) (C {(touch)} {($ VSub_Name '$TEST') (/adddir/conflict)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [(C {(mkdir)} {($ VSub_Name '$i') (/adddir/partial)})] spids: [2422 2431] ) spids: [2416 2420] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/adddir/partial/file)} spids: [2440] ) ] ) (C {(mkfifo)} {($ VSub_Name '$TEST') (/adddir/partial/fifo)}) (C {(mkdir)} {(-p)} {($ VSub_Name '$OLD') (/rmdir)} {($ VSub_Name '$NEW') (/rmdir)} {($ VSub_Name '$TEST') (/rmdir)} ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [(C {(mkdir)} {($ VSub_Name '$i') (/rmdir/extra)})] spids: [2491 2500] ) spids: [2485 2489] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/rmdir/extra/localfile.txt)} spids: [2509] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [(C {(mkdir)} {($ VSub_Name '$i') (/rmdir/conflict)})] spids: [2535 2544] ) spids: [2529 2533] ) (C {(mkfifo)} {($ VSub_Name '$OLD') (/rmdir/conflict/difftype)}) (C {(mkdir)} {($ VSub_Name '$TEST') (/rmdir/conflict/difftype)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {(-p)} {($ VSub_Name '$i') (/rmdir/partial/subdir)}) (C {(mkfifo)} {($ VSub_Name '$i') (/rmdir/partial/subdir/fifo)}) ] spids: [2579 2596] ) spids: [2573 2577] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/rmdir/partial/subdir/file)} spids: [2605] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (ForEach iter_name: j iter_words: [{(already)} {(old)} {(fromdir)} {(todir)}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {(-p)} {($ VSub_Name '$i') (/dirchange/) ($ VSub_Name '$j')}) ] spids: [2647 2659] ) spids: [2637 2645] ) ] spids: [2629 2662] ) spids: [2621 2627] ) (C {(mkdir)} {($ VSub_Name '$OLD') (/dirchange/already/fromdir)}) (SimpleCommand words: [{(echo)} {(DQ (blah))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/dirchange/already/fromdir/somefile)} spids: [2690] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/dirchange/already/fromdir)} spids: [2716] ) ] ) ] spids: [2707 2722] ) spids: [2701 2705] ) (SimpleCommand words: [{(echo)} {(DQ (baz))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/dirchange/already/todir)} spids: [2744] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$NEW')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {($ VSub_Name '$i') (/dirchange/already/todir)}) (SimpleCommand words: [{(echo)} {(DQ (blah))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/dirchange/already/todir/somefile)} spids: [2776] ) ] ) ] spids: [2761 2782] ) spids: [2755 2759] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {($ VSub_Name '$i') (/dirchange/old/fromdir)}) (SimpleCommand words: [{(echo)} {(DQ (blah))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/dirchange/old/fromdir/somefile)} spids: [2820] ) ] ) ] spids: [2805 2826] ) spids: [2799 2803] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/dirchange/old/fromdir)} spids: [2835] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/dirchange/old/todir)} spids: [2874] ) ] ) ] spids: [2865 2880] ) spids: [2859 2863] ) (C {(mkdir)} {($ VSub_Name '$NEW') (/dirchange/old/todir)}) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/dirchange/old/todir/file)} spids: [2895] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [ (C {(mkdir)} {($ VSub_Name '$i') (/dirchange/fromdir/extradir)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$i') (/dirchange/fromdir/extradir/file)} spids: [2944] ) ] ) ] spids: [2929 2950] ) spids: [2923 2927] ) (C {(mkfifo)} {($ VSub_Name '$TEST') (/dirchange/fromdir/extradir/fifo)}) (C {(ln)} {(-s)} {(DQ (bar))} {($ VSub_Name '$NEW') (/dirchange/fromdir/extradir)}) (ForEach iter_name: i iter_words: [{($ VSub_Name '$OLD')} {($ VSub_Name '$TEST')}] do_arg_iter: F body: (DoGroup children: [(C {(mkdir)} {($ VSub_Name '$i') (/dirchange/fromdir/conflict)})] spids: [2995 3004] ) spids: [2989 2993] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/dirchange/fromdir/conflict/somefile)} spids: [3013] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/dirchange/fromdir/conflict/somefile)} spids: [3025] ) ] ) (C {(mkfifo)} {($ VSub_Name '$NEW') (/dirchange/fromdir/conflict)}) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/dirchange/todir/difffile)} spids: [3056] ) ] ) (C {(mkdir)} {($ VSub_Name '$NEW') (/dirchange/todir/difffile)}) (SimpleCommand words: [{(echo)} {(DQ (baz))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/dirchange/todir/difffile/file)} spids: [3074] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (bar))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/dirchange/todir/difffile)} spids: [3086] ) ] ) (SimpleCommand words: [{(echo)} {(DQ (foo))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/dirchange/todir/difftype)} spids: [3107] ) ] ) (C {(mkdir)} {($ VSub_Name '$NEW') (/dirchange/todir/difftype)}) (SimpleCommand words: [{(echo)} {(DQ (baz))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/dirchange/todir/difftype/file)} spids: [3125] ) ] ) (C {(mkfifo)} {($ VSub_Name '$TEST') (/dirchange/todir/difftype)}) (SimpleCommand words: [{(echo)} {(DQ ('foo:*:16000:100::0:0:& user:/home/foo:/bin/tcsh'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/etc/master.passwd)} spids: [3153] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/etc/login.conf)} spids: [3172] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('default:') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('\n') ('\t:passwd_format=md5:\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3177] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/etc/login.conf)} spids: [3188] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('default:') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('\n') ('\t:passwd_format=md5:') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('\n') ('\t:copyright=/etc/COPYRIGHT\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3193] ) ] ) (C {(cp)} {($ VSub_Name '$OLD') (/etc/login.conf)} {($ VSub_Name '$TEST') (/etc/login.conf)}) (C {(mkdir)} {(-p)} {($ VSub_Name '$OLD') (/etc/mail)} {($ VSub_Name '$NEW') (/etc/mail)} {($ VSub_Name '$TEST') (/etc/mail)} ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/etc/mail/aliases)} spids: [3239] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('# root: me@my.domain\n') ('\n') ('# Basic system aliases -- these MUST be present\n') ('MAILER-DAEMON: postmaster\n') ('postmaster: root\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3244] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/etc/mail/aliases)} spids: [3256] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('# root: me@my.domain\n') ('\n') ('# Basic system aliases -- these MUST be present\n') ('MAILER-DAEMON: postmaster\n') ('postmaster: root\n') ('\n') ('# General redirections for pseudo accounts\n') ('_dhcp: root\n') ('_pflogd: root\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3261] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TEST') (/etc/mail/aliases)} spids: [3277] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('root: someone@example.com\n') ('\n') ('# Basic system aliases -- these MUST be present\n') ('MAILER-DAEMON: postmaster\n') ('postmaster: root\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3282] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OLD') (/etc/services)} spids: [3303] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('rtmp\t\t 1/ddp\t #Routing Table Maintenance Protocol\n') ('tcpmux\t\t 1/tcp\t #TCP Port Service Multiplexer\n') ('tcpmux\t\t 1/udp\t #TCP Port Service Multiplexer\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3308] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$NEW') (/etc/services)} spids: [3318] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('rtmp\t\t 1/ddp\t #Routing Table Maintenance Protocol\n') ('tcpmux\t\t 1/tcp\t #TCP Port Service Multiplexer\n') ('tcpmux\t\t 1/udp\t #TCP Port Service Multiplexer\n') ('nbp\t\t 2/ddp\t #Name Binding Protocol\n') ('compressnet\t 2/tcp\t #Management Utility\n') ('compressnet\t 2/udp\t #Management Utility\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [3323] ) ] ) (C {(cp)} {($ VSub_Name '$OLD') (/etc/services)} {($ VSub_Name '$TEST') (/etc/services)}) (C {(mkdir)} {(-p)} {($ VSub_Name '$TEST') (/var/db)}) ] spids: [248] ) spids: [244 247] ) (FuncDef name: missing body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(-o)} {(-L)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be missing'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3396] ) ] spids: [3396] ) ] spids: [16777215 3384] ) ] spids: [16777215 3400] ) ] spids: [3360] ) spids: [3356 3359] ) (FuncDef name: present body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-e)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(-o)} {(-L)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be present'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3450] ) ] spids: [3450] ) ] spids: [16777215 3438] ) ] spids: [16777215 3454] ) ] spids: [3412] ) spids: [3408 3411] ) (FuncDef name: fifo body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-p)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be a FIFO'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3496] ) ] spids: [3496] ) ] spids: [16777215 3484] ) ] spids: [16777215 3500] ) ] spids: [3466] ) spids: [3462 3465] ) (FuncDef name: dir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be a directory'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3542] ) ] spids: [3542] ) ] spids: [16777215 3530] ) ] spids: [16777215 3546] ) ] spids: [3512] ) spids: [3508 3511] ) (FuncDef name: link body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:val) op:Equal spids:[3566])] spids: [3564] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-L)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be a link'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3597] ) ] spids: [3597] ) ] spids: [16777215 3585] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:val) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(readlink)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')}) ] ) left_token: <Left_Backtick '`'> spids: [3618 3624] ) } spids: [3617] ) ] spids: [3617] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$val'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('Link ') ($ VSub_Number '$1') (' should link to ') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Number '$2') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3660] ) ] spids: [3660] ) ] spids: [16777215 3645] ) ] spids: [16777215 3664] ) ] spids: [3601 3614] ) ] spids: [16777215 3667] ) ] spids: [3561] ) spids: [3557 3560] ) (FuncDef name: file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:contents) op:Equal spids:[3690]) (assign_pair lhs:(LhsName name:sum) op:Equal spids:[3692]) ] spids: [3688] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' should be a regular file'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3723] ) ] spids: [3723] ) ] spids: [16777215 3711] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(2)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:contents) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(cat)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')}) ] ) left_token: <Left_Backtick '`'> spids: [3744 3750] ) } spids: [3743] ) ] spids: [3743] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$contents'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' has wrong contents'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3783] ) ] spids: [3783] ) ] spids: [16777215 3771] ) ] spids: [16777215 3787] ) ] spids: [3727 3740] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(3)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sum) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(md5)} {(-q)} {($ VSub_Name '$TEST') (/) ($ VSub_Number '$1')}) ] ) left_token: <Left_Backtick '`'> spids: [3807 3815] ) } spids: [3806] ) ] spids: [3806] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$sum'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' has wrong contents'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3848] ) ] spids: [3848] ) ] spids: [16777215 3836] ) ] spids: [16777215 3852] ) ] spids: [3790 3803] ) ] spids: [16777215 3855] ) ] spids: [3685] ) spids: [3681 3684] ) (FuncDef name: conflict body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:sum) op:Equal spids:[3875])] spids: [3873] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$CONFLICTS') (/) ($ VSub_Number '$1')} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('File ') ($ VSub_Number '$1') (' missing conflict'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3906] ) ] spids: [3906] ) ] spids: [16777215 3894] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sum) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(md5)} {(-q)} {($ VSub_Name '$CONFLICTS') (/) ($ VSub_Number '$1')} ) ] ) left_token: <Left_Backtick '`'> spids: [3927 3935] ) } spids: [3926] ) ] spids: [3926] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$sum'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Conflict ') ($ VSub_Number '$1') (' has wrong contents'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED) op: Equal rhs: {(yes)} spids: [3968] ) ] spids: [3968] ) ] spids: [16777215 3956] ) ] spids: [16777215 3972] ) ] spids: [3910 3923] ) ] spids: [16777215 3975] ) ] spids: [3870] ) spids: [3866 3869] ) (FuncDef name: check_trees body: (BraceGroup children: [ (C {(echo)} {(DQ ('Checking tree for correct results:'))}) (C {(fifo)} {(/equal/equal/equal/fifo)}) (C {(file)} {(/equal/equal/equal/file)} {(DQ (foo))}) (C {(dir)} {(/equal/equal/equal/dir)}) (C {(link)} {(/equal/equal/equal/link)} {(DQ (bar))}) (C {(missing)} {(/equal/first/first/fifo)}) (C {(missing)} {(/equal/first/first/file)}) (C {(missing)} {(/equal/first/first/dir)}) (C {(missing)} {(/equal/first/first/link)}) (C {(file)} {(/equal/difftype/difftype/fifo)} {(DQ (bar))}) (C {(link)} {(/equal/difftype/difftype/fromdir)} {(DQ (test))}) (C {(link)} {(/equal/difflinks/difflinks/link)} {(DQ (bar))}) (C {(file)} {(/equal/difffiles/difffiles/file)} {(DQ (bar))}) (C {(missing)} {(/first/equal/second/fifo)}) (C {(missing)} {(/first/equal/second/file)}) (C {(missing)} {(/first/equal/second/emptydir)}) (C {(missing)} {(/first/equal/second/link)}) (C {(missing)} {(/first/equal/second/fulldir)}) (C {(missing)} {(/first/first/equal/fifo)}) (C {(missing)} {(/first/first/equal/file)}) (C {(missing)} {(/first/first/equal/dir)}) (C {(missing)} {(/first/first/equal/link)}) (C {(present)} {(/first/difftype/second/fifo)}) (C {(link)} {(/first/difflinks/second/link)} {(DQ ('test link'))}) (C {(file)} {(/first/difffiles/second/file)} {(DQ (bar))}) (C {(file)} {(/second/equal/first/file)} {(DQ (bar))}) (C {(fifo)} {(/second/equal/first/fifo)}) (C {(link)} {(/second/equal/first/link)} {(DQ (new))}) (C {(missing)} {(/second/equal/first/emptydir)}) (C {(file)} {(/second/equal/first/fulldir/file)} {(DQ (foo))}) (C {(fifo)} {(/second/second/equal/fifo)}) (C {(file)} {(/second/second/equal/file)} {(DQ (foo))}) (C {(dir)} {(/second/second/equal/dir)}) (C {(link)} {(/second/second/equal/link)} {(DQ (bar))}) (C {(fifo)} {(/second/second/difftype/dir)}) (C {(link)} {(/second/second/difflinks/link)} {(DQ ('test link'))}) (C {(file)} {(/second/second/difffiles/file)} {(DQ (test))}) (C {(conflict)} {(/second/second/difffiles/file)} {(4f2ee8620a251fd53f06bb6112eb6ffa)}) (C {(link)} {(/difftype/equal/difftype/file)} {(DQ (test))}) (C {(fifo)} {(/difftype/equal/difftype/fromdir)}) (C {(missing)} {(/difftype/equal/difftype/todir)}) (C {(missing)} {(/difftype/first/first/fifo)}) (C {(fifo)} {(/difftype/difftype/equal/fifo)}) (C {(file)} {(/difftype/difftype/equal/file)} {(DQ (bar))}) (C {(file)} {(/difftype/difftype/difftype/one)} {(DQ (foo))}) (C {(link)} {(/difftype/difftype/difftype/two)} {(DQ (bar))}) (C {(link)} {(/difftype/difftype/difflinks/link)} {(DQ (test))}) (C {(conflict)} {(/difftype/difftype/difffiles/file)} {(117f2bcd1f6491f6044e79e5a57a9229)}) (C {(link)} {(/difflinks/equal/difflinks/link)} {(DQ (new))}) (C {(missing)} {(/difflinks/first/first/link)}) (C {(file)} {(/difflinks/difftype/difftype/link)} {(DQ (test))}) (C {(link)} {(/difflinks/difflinks/equal/link)} {(DQ (new))}) (C {(link)} {(/difflinks/difflinks/difflinks/link)} {(DQ (test))}) (C {(file)} {(/difffiles/equal/difffiles/file)} {(DQ (bar))}) (C {(missing)} {(/difffiles/first/first/file)}) (C {(fifo)} {(/difffiles/difftype/difftype/file)}) (C {(file)} {(/difffiles/difffiles/equal/file)} {(DQ (bar))}) (C {(file)} {(/difffiles/difffiles/difffiles/simple)} {(DQ )} {(cabc7e5e80b0946d79edd555e9648486)} ) (C {(file)} {(/difffiles/difffiles/difffiles/conflict)} {(DQ ('this is a test file'))}) (C {(conflict)} {(/difffiles/difffiles/difffiles/conflict)} {(8261cfdd89280c4a6c26e4ac86541fe9)} ) (C {(file)} {(/adddir/conflict)}) (C {(file)} {(/adddir/partial/file)} {(DQ (foo))}) (C {(fifo)} {(/adddir/partial/fifo)}) (C {(dir)} {(/rmdir/extra)}) (C {(file)} {(/rmdir/extra/localfile.txt)} {(DQ (foo))}) (C {(dir)} {(/rmdir/conflict/difftype)}) (C {(present)} {(/rmdir/conflict)}) (C {(missing)} {(/rmdir/partial)}) (C {(file)} {(/dirchange/already/fromdir)} {(DQ (bar))}) (C {(file)} {(/dirchange/already/todir/somefile)} {(DQ (blah))}) (C {(file)} {(/dirchange/old/fromdir)} {(DQ (bar))}) (C {(file)} {(/dirchange/old/todir/file)} {(DQ (bar))}) (C {(missing)} {(/dirchange/fromdir/extradir/file)}) (C {(fifo)} {(/dirchange/fromdir/extradir/fifo)}) (C {(file)} {(/dirchange/fromdir/conflict/somefile)} {(DQ (bar))}) (C {(file)} {(/dirchange/todir/difffile)} {(DQ (bar))}) (C {(fifo)} {(/dirchange/todir/difftype)}) (C {(file)} {(/etc/master.passwd)}) (C {(file)} {(/etc/passwd)}) (C {(file)} {(/etc/pwd.db)}) (C {(file)} {(/etc/spwd.db)}) (C {(file)} {(/etc/login.conf)} {(DQ )} {(7774a0f9a3a372c7c109c32fd31c4b6b)}) (C {(file)} {(/etc/login.conf.db)}) (C {(file)} {(/etc/mail/aliases)} {(DQ )} {(7d598f89ec040ab56af54011bdb83337)}) (C {(file)} {(/etc/services)} {(DQ )} {(37fb6a8d1273f3b78329d431f21d9c7d)}) (C {(file)} {(/var/db/services.db)}) ] spids: [3984] ) spids: [3980 3983] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children:[(C {(id)} {(-u)})]) left_token: <Left_Backtick '`'> spids: [4823 4827] ) } {(-ne)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('must be root'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [16777215 4836] ) ] spids: [16777215 4850] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(/etc/etcupdate.conf)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ ('WARNING: /etc/etcupdate.conf settings may break some tests.'))})] spids: [16777215 4864] ) ] spids: [16777215 4873] ) (C {(build_trees)}) (SimpleCommand words: [ {($ VSub_Name '$COMMAND')} {(-nr)} {(-d)} {($ VSub_Name '$WORKDIR')} {(-D)} {($ VSub_Name '$TEST')} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$WORKDIR') (/testn.out)} spids: [4891] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$WORKDIR') (/correct.out)} spids: [4899] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ (' D /dirchange/fromdir/extradir/file\n') (' D /dirchange/old/fromdir/somefile\n') (' D /first/equal/second/fifo\n') (' D /first/equal/second/file\n') (' D /first/equal/second/fulldir/file\n') (' D /first/equal/second/link\n') (' D /rmdir/partial/subdir/fifo\n') (' D /rmdir/partial/subdir\n') (' D /rmdir/partial\n') (' D /first/equal/second/fulldir\n') (' D /first/equal/second/emptydir\n') (' C /difffiles/difffiles/difffiles/conflict\n') (' M /difffiles/difffiles/difffiles/simple\n') (' U /difffiles/equal/difffiles/file\n') (' U /difflinks/equal/difflinks/link\n') (' C /difftype/difftype/difffiles/file\n') (' U /difftype/equal/difftype/file\n') (' U /difftype/equal/difftype/fromdir\n') (' D /difftype/equal/difftype/todir\n') (' U /dirchange/old/fromdir\n') (' U /dirchange/old/todir\n') (' U /etc/login.conf\n') (' M /etc/mail/aliases\n') (' U /etc/services\n') (' A /adddir/partial/file\n') (' A /dirchange/old/todir/file\n') (' A /etc/master.passwd\n') (' A /second/equal/first/fifo\n') (' A /second/equal/first/file\n') (' A /second/equal/first/fulldir/file\n') (' A /second/equal/first/link\n') (' C /second/second/difffiles/file\n') ('Warnings:\n') (' Modified regular file remains: /dirchange/fromdir/conflict/somefile\n') (' Modified regular file remains: /first/difffiles/second/file\n') (' Modified symbolic link remains: /first/difflinks/second/link\n') (' Modified directory remains: /first/difftype/second/fifo\n') (' Modified directory remains: /rmdir/conflict/difftype\n') (' Non-empty directory remains: /rmdir/extra\n') (' Non-empty directory remains: /rmdir/conflict\n') ( ' Modified mismatch: /difffiles/difftype/difftype/file (regular file vs fifo file)\n' ) (' Removed file changed: /difffiles/first/first/file\n') (' Modified link changed: /difflinks/difflinks/difflinks/link (') (Right_DoubleQuote '"') (old) (Right_DoubleQuote '"') (' became ') (Right_DoubleQuote '"') (new) (Right_DoubleQuote '"') (')\n') (' Modified mismatch: /difflinks/difftype/difftype/link (symbolic link vs regular file)\n') (' Removed link changed: /difflinks/first/first/link (') (Right_DoubleQuote '"') (old) (Right_DoubleQuote '"') (' became ') (Right_DoubleQuote '"') (new) (Right_DoubleQuote '"') (')\n') (' New link conflict: /difftype/difftype/difflinks/link (') (Right_DoubleQuote '"') (new) (Right_DoubleQuote '"') (' vs ') (Right_DoubleQuote '"') (test) (Right_DoubleQuote '"') (')\n') ( ' Modified regular file changed: /difftype/difftype/difftype/one (fifo file became directory)\n' ) ( ' Modified symbolic link changed: /difftype/difftype/difftype/two (directory became regular file)\n' ) (' Remove mismatch: /difftype/first/first/fifo (fifo file became directory)\n') ( ' Modified directory changed: /dirchange/fromdir/conflict (directory became fifo file)\n' ) (' Modified directory changed: /dirchange/fromdir/extradir (directory became symbolic link)\n') ( ' Modified regular file changed: /dirchange/todir/difffile (regular file became directory)\n' ) (' Modified fifo file changed: /dirchange/todir/difftype (regular file became directory)\n') (' New file mismatch: /adddir/conflict (directory vs regular file)\n') (' Directory mismatch: ') ($ VSub_Name '$TEST') ('/adddir/conflict (regular file)\n') (' Directory mismatch: ') ($ VSub_Name '$TEST') ('/dirchange/todir/difffile (regular file)\n') (' Directory mismatch: ') ($ VSub_Name '$TEST') ('/dirchange/todir/difftype (fifo file)\n') (' New link conflict: /second/second/difflinks/link (') (Right_DoubleQuote '"') ('new link') (Right_DoubleQuote '"') (' vs ') (Right_DoubleQuote '"') ('test link') (Right_DoubleQuote '"') (')\n') (' New file mismatch: /second/second/difftype/dir (directory vs fifo file)\n') ( ' Needs update: /etc/mail/aliases.db (requires manual update via newaliases(1))\n' ) ) } do_expansion: True here_end: EOF was_filled: T spids: [4904] ) ] ) (C {(echo)} {(DQ ('Differences for -n:'))}) (AndOr ops: [Op_DPipe] children: [ (C {(diff)} {(-u)} {(-L)} {(DQ (correct))} {($ VSub_Name '$WORKDIR') (/correct.out)} {(-L)} {(DQ (test))} {($ VSub_Name '$WORKDIR') (/testn.out)} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(YES)} spids:[5039])] spids: [5039] ) ] ) (SimpleCommand words: [ {($ VSub_Name '$COMMAND')} {(-r)} {(-d)} {($ VSub_Name '$WORKDIR')} {(-D)} {($ VSub_Name '$TEST')} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$WORKDIR') (/test.out)} spids: [5055] ) ] ) (C {(echo)} {(DQ ('Differences for real:'))}) (AndOr ops: [Op_DPipe] children: [ (C {(diff)} {(-u)} {(-L)} {(DQ (correct))} {($ VSub_Name '$WORKDIR') (/correct.out)} {(-L)} {(DQ (test))} {($ VSub_Name '$WORKDIR') (/test.out)} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(YES)} spids:[5093])] spids: [5093] ) ] ) (C {(check_trees)}) (C {(Lit_Other '[')} {(DQ (${ VSub_Name FAILED))} {(Lit_Other '=')} {(no)} {(Lit_Other ']')}) ] )