(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.\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)} {(-C)} {($ Id.VSub_DollarName '$tree')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:101) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:107) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:110) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:111)) (OF) } here_end_span_id: 116 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\tCOPYING\tCOPYING.1\n' ) ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 R1234\tCOPYING\tCOPYING.2\n' ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#1)' span_id:123))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw current expected' span_id:129))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare work tree again' span_id:142))} { (SQ (Token id:Id.Lit_Chars val:'mv COPYING.2 COPYING &&\n' span_id:148) (Token id: Id.Lit_Chars val: ' git update-index --add --remove COPYING COPYING.1 COPYING.2' span_id: 149 ) ) } ) (command.Simple words: [{(git)} {(diff-index)} {(-C)} {($ Id.VSub_DollarName '$tree')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:174) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:179) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:182) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:183)) (OF) } here_end_span_id: 188 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M\tCOPYING\n' ) ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\tCOPYING\tCOPYING.1\n' ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#2)' span_id:195))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw current expected' span_id:201))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare work tree once again' span_id:227))} { (SQ (Token id: Id.Lit_Chars val: 'cat "$TEST_DIRECTORY"/diff-lib/COPYING >COPYING &&\n' span_id: 233 ) (Token id:Id.Lit_Chars val:' git update-index --add --remove COPYING COPYING.1' span_id:234) ) } ) (command.Simple words: [{(git)} {(diff-index)} {(-C)} {(--find-copies-harder)} {($ Id.VSub_DollarName '$tree')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:248) fd: -1 arg_word: {(current)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:253) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:256) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:257)) (OF) } here_end_span_id: 261 stdin_parts: [ ( ':100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234\tCOPYING\tCOPYING.1\n' ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate output from rename/copy detection (#3)' span_id:268))} {(SQ (Token id:Id.Lit_Chars val:'compare_diff_raw current expected' span_id:274))} ) (C {(test_done)}) ] )