(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'typechange rename detection'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <'\n'> <'\n'> <'\trm -f foo bar &&\n'> <'\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n'> <'\ttest_ln_s_add linklink bar &&\n'> <'\tgit add foo &&\n'> <'\tgit commit -a -m Initial &&\n'> <'\tgit tag one &&\n'> <'\n'> <'\tgit rm -f foo bar &&\n'> <'\tcat "$TEST_DIRECTORY"/../COPYING >bar &&\n'> <'\ttest_ln_s_add linklink foo &&\n'> <'\tgit add bar &&\n'> <'\tgit commit -a -m Second &&\n'> <'\tgit tag two &&\n'> <'\n'> <'\tgit rm -f foo bar &&\n'> <'\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n'> <'\tgit add foo &&\n'> <'\tgit commit -a -m Third &&\n'> <'\tgit tag three &&\n'> <'\n'> <'\tmv foo bar &&\n'> <'\ttest_ln_s_add linklink foo &&\n'> <'\tgit add bar &&\n'> <'\tgit commit -a -m Fourth &&\n'> <'\tgit tag four &&\n'> <'\n'> <'\t# This is purely for sanity check\n'> <'\n'> <'\tgit rm -f foo bar &&\n'> <'\tcat "$TEST_DIRECTORY"/../COPYING >foo &&\n'> <'\tcat "$TEST_DIRECTORY"/../Makefile >bar &&\n'> <'\tgit add foo bar &&\n'> <'\tgit commit -a -m Fifth &&\n'> <'\tgit tag five &&\n'> <'\n'> <'\tgit rm -f foo bar &&\n'> <'\tcat "$TEST_DIRECTORY"/../Makefile >foo &&\n'> <'\tcat "$TEST_DIRECTORY"/../COPYING >bar &&\n'> <'\tgit add foo bar &&\n'> <'\tgit commit -a -m Sixth &&\n'> <'\tgit tag six\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'cross renames to be detected for regular files'>)} { (SQ <'\n'> <'\n'> <'\tgit diff-tree five six -r --name-status -B -M | sort >actual &&\n'> <'\t{\n'> <'\t\techo "R100\tfoo\tbar"\n'> <'\t\techo "R100\tbar\tfoo"\n'> <'\t} | sort >expect &&\n'> <'\ttest_cmp expect actual\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'cross renames to be detected for typechange'>)} { (SQ <'\n'> <'\n'> <'\tgit diff-tree one two -r --name-status -B -M | sort >actual &&\n'> <'\t{\n'> <'\t\techo "R100\tfoo\tbar"\n'> <'\t\techo "R100\tbar\tfoo"\n'> <'\t} | sort >expect &&\n'> <'\ttest_cmp expect actual\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'moves and renames'>)} { (SQ <'\n'> <'\n'> <'\tgit diff-tree three four -r --name-status -B -M | sort >actual &&\n'> <'\t{\n'> <'\t\t# see -B -M (#6) in t4008\n'> <'\t\techo "C100\tfoo\tbar"\n'> <'\t\techo "T100\tfoo"\n'> <'\t} | sort >expect &&\n'> <'\ttest_cmp expect actual\n'> <'\n'> ) } ) (C {(test_done)}) ] )