(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'Same rename detection as t4003 but testing diff-raw -z.\n' span_id: 15 ) (Token id:Id.Lit_Chars val:'\n' span_id:16) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Sentence child: (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/diff-lib.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:30) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare reference tree' span_id:40))} { (SQ (Token id: Id.Lit_Chars val: 'cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&\n' span_id: 46 ) (Token id:Id.Lit_Chars val:' echo frotz >rezrov &&\n' span_id:47) (Token id: Id.Lit_Chars val: ' git update-index --add COPYING rezrov &&\n' span_id: 48 ) (Token id:Id.Lit_Chars val:' tree=$(git write-tree) &&\n' span_id:49) (Token id:Id.Lit_Chars val:' echo $tree' span_id:50) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare work tree' span_id:59))} {(SQ (Token id:Id.Lit_Chars val:'sed -e ' span_id:65)) (s/HOWEVER/However/) (SQ (Token id:Id.Lit_Chars val:' <COPYING >COPYING.1 &&\n' span_id:69) (Token id:Id.Lit_Chars val:' sed -e ' span_id:70) ) (s/GPL/G.P.L/g) (SQ (Token id:Id.Lit_Chars val:' <COPYING >COPYING.2 &&\n' span_id:74) (Token id:Id.Lit_Chars val:' rm -f COPYING &&\n' span_id:75) (Token id:Id.Lit_Chars val:' git update-index --add --remove COPYING COPYING.?' span_id:76) ) } ) (command.Simple words: [{(git)} {(diff-index)} {(-z)} {(-C)} {($ Id.VSub_DollarName '$tree')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:103) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:109) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:112) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:113)) (OF) } here_end_span_id: 122 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\n' ) ('COPYING\n') ('COPYING.1\n') ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 R1234\n' ) ('COPYING\n') ('COPYING.2\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#1)' span_id:129))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw_z current expected' span_id:135))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare work tree again' span_id:148))} { (SQ (Token id:Id.Lit_Chars val:'mv COPYING.2 COPYING &&\n' span_id:154) (Token id: Id.Lit_Chars val: ' git update-index --add --remove COPYING COPYING.1 COPYING.2' span_id: 155 ) ) } ) (command.Simple words: [{(git)} {(diff-index)} {(-z)} {(-C)} {($ Id.VSub_DollarName '$tree')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:182) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:187) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:190) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:191)) (OF) } here_end_span_id: 199 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M\n' ) ('COPYING\n') ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\n' ) ('COPYING\n') ('COPYING.1\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#2)' span_id:206))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw_z current expected' span_id:212))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare work tree once again' span_id:238))} { (SQ (Token id: Id.Lit_Chars val: 'cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&\n' span_id: 244 ) (Token id:Id.Lit_Chars val:' git update-index --add --remove COPYING COPYING.1' span_id:245) ) } ) (command.Simple words: [ {(git)} {(diff-index)} {(-z)} {(-C)} {(--find-copies-harder)} {($ Id.VSub_DollarName '$tree')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:261) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:266) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:269) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:270)) (OF) } here_end_span_id: 276 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\n' ) ('COPYING\n') ('COPYING.1\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#3)' span_id:283))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw_z current expected' span_id:289))} ) (C {(test_done)}) ] )