(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:'typechange rename detection' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:20) (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\trm -f foo bar &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\ttest_ln_s_add linklink bar &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Initial &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit tag one &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit rm -f foo bar &&\n' span_id:29) (Token id: Id.Lit_Chars val: '\tcat "$TEST_DIRECTORY"/../COPYING >bar &&\n' span_id: 30 ) (Token id:Id.Lit_Chars val:'\ttest_ln_s_add linklink foo &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tgit add bar &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Second &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\tgit tag two &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit rm -f foo bar &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Third &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit tag three &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\n' span_id:41) (Token id:Id.Lit_Chars val:'\tmv foo bar &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\ttest_ln_s_add linklink foo &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\tgit add bar &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Fourth &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\tgit tag four &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\n' span_id:47) (Token id:Id.Lit_Chars val:'\t# This is purely for sanity check\n' span_id:48) (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit rm -f foo bar &&\n' span_id:50) (Token id: Id.Lit_Chars val: '\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n' span_id: 51 ) (Token id:Id.Lit_Chars val:'\tcat "$TEST_DIRECTORY"/../Makefile >bar &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit add foo bar &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Fifth &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tgit tag five &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit rm -f foo bar &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tcat "$TEST_DIRECTORY"/../Makefile >foo &&\n' span_id:58) (Token id: Id.Lit_Chars val: '\tcat "$TEST_DIRECTORY"/../COPYING >bar &&\n' span_id: 59 ) (Token id:Id.Lit_Chars val:'\tgit add foo bar &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Sixth &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\tgit tag six\n' span_id:62) (Token id:Id.Lit_Chars val:'\n' span_id:63) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cross renames to be detected for regular files' span_id:70))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id: Id.Lit_Chars val: '\tgit diff-tree five six -r --name-status -B -M | sort >actual &&\n' span_id: 76 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\techo "R100\tfoo\tbar"\n' span_id:78) (Token id:Id.Lit_Chars val:'\t\techo "R100\tbar\tfoo"\n' span_id:79) (Token id:Id.Lit_Chars val:'\t} | sort >expect &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:81) (Token id:Id.Lit_Chars val:'\n' span_id:82) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cross renames to be detected for typechange' span_id:89))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\n' span_id:94) (Token id: Id.Lit_Chars val: '\tgit diff-tree one two -r --name-status -B -M | sort >actual &&\n' span_id: 95 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:96) (Token id:Id.Lit_Chars val:'\t\techo "R100\tfoo\tbar"\n' span_id:97) (Token id:Id.Lit_Chars val:'\t\techo "R100\tbar\tfoo"\n' span_id:98) (Token id:Id.Lit_Chars val:'\t} | sort >expect &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:100) (Token id:Id.Lit_Chars val:'\n' span_id:101) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'moves and renames' span_id:108))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\n' span_id:113) (Token id: Id.Lit_Chars val: '\tgit diff-tree three four -r --name-status -B -M | sort >actual &&\n' span_id: 114 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:115) (Token id:Id.Lit_Chars val:'\t\t# see -B -M (#6) in t4008\n' span_id:116) (Token id:Id.Lit_Chars val:'\t\techo "C100\tfoo\tbar"\n' span_id:117) (Token id:Id.Lit_Chars val:'\t\techo "T100\tfoo"\n' span_id:118) (Token id:Id.Lit_Chars val:'\t} | sort >expect &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:120) (Token id:Id.Lit_Chars val:'\n' span_id:121) ) } ) (C {(test_done)}) ] )