#!/bin/sh # # Copyright (c) 2007 Junio C Hamano # global test_description := ''Quoting paths in diff output. '' source ./test-lib.sh global P0 := ''pathname'' global P1 := ''pathname with HT'' global P2 := ''pathname with SP'' global P3 := ''pathname with LF'' test_have_prereq !MINGW && echo !2 >/dev/null >$P1 && test -f $P1 && rm -f $P1 || do { global skip_all := ''Your filesystem does not allow tabs in filenames'' test_done } test_expect_success setup ' echo P0.0 >"$P0.0" && echo P0.1 >"$P0.1" && echo P0.2 >"$P0.2" && echo P0.3 >"$P0.3" && echo P1.0 >"$P1.0" && echo P1.2 >"$P1.2" && echo P1.3 >"$P1.3" && git add . && git commit -m initial && git mv "$P0.0" "R$P0.0" && git mv "$P0.1" "R$P1.0" && git mv "$P0.2" "R$P2.0" && git mv "$P0.3" "R$P3.0" && git mv "$P1.0" "R$P0.1" && git mv "$P1.2" "R$P2.1" && git mv "$P1.3" "R$P3.1" && : ' test_expect_success 'setup expected files' ' cat >expect <<\EOF rename pathname.1 => "Rpathname\twith HT.0" (100%) rename pathname.3 => "Rpathname\nwith LF.0" (100%) rename "pathname\twith HT.3" => "Rpathname\nwith LF.1" (100%) rename pathname.2 => Rpathname with SP.0 (100%) rename "pathname\twith HT.2" => Rpathname with SP.1 (100%) rename pathname.0 => Rpathname.0 (100%) rename "pathname\twith HT.0" => Rpathname.1 (100%) EOF ' test_expect_success 'git diff --summary -M HEAD' ' git diff --summary -M HEAD >actual && test_cmp expect actual ' test_expect_success 'git diff --numstat -M HEAD' ' cat >expect <<-\EOF && 0 0 pathname.1 => "Rpathname\twith HT.0" 0 0 pathname.3 => "Rpathname\nwith LF.0" 0 0 "pathname\twith HT.3" => "Rpathname\nwith LF.1" 0 0 pathname.2 => Rpathname with SP.0 0 0 "pathname\twith HT.2" => Rpathname with SP.1 0 0 pathname.0 => Rpathname.0 0 0 "pathname\twith HT.0" => Rpathname.1 EOF git diff --numstat -M HEAD >actual && test_cmp expect actual ' test_expect_success 'git diff --stat -M HEAD' ' cat >expect <<-\EOF && pathname.1 => "Rpathname\twith HT.0" | 0 pathname.3 => "Rpathname\nwith LF.0" | 0 "pathname\twith HT.3" => "Rpathname\nwith LF.1" | 0 pathname.2 => Rpathname with SP.0 | 0 "pathname\twith HT.2" => Rpathname with SP.1 | 0 pathname.0 => Rpathname.0 | 0 "pathname\twith HT.0" => Rpathname.1 | 0 7 files changed, 0 insertions(+), 0 deletions(-) EOF git diff --stat -M HEAD >actual && test_i18ncmp expect actual ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Quoting paths in diff output.\n">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:P0) op:Equal rhs:{(SQ )} spids:[24])] spids: [24] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:P1) op: Equal rhs: {(SQ <"pathname\twith HT">)} spids: [29] ) ] spids: [29] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:P2) op:Equal rhs:{(SQ <"pathname with SP">)} spids:[34])] spids: [34] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:P3) op: Equal rhs: {(SQ <"pathname\n"> <"with LF">)} spids: [39] ) ] spids: [39] ) (AndOr children: [ (C {(test_have_prereq)} {(KW_Bang "!") (MINGW)}) (AndOr children: [ (SimpleCommand words: [{(echo)}] redirects: [ (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[54]) (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$P1"))} spids: [57] ) ] ) (AndOr children: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name "$P1"))}) (AndOr children: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$P1"))}) (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"Your filesystem does not allow tabs in filenames">)} spids: [87] ) ] spids: [87] ) (C {(test_done)}) ] spids: [84] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\techo P0.0 >\"$P0.0\" &&\n"> <"\techo P0.1 >\"$P0.1\" &&\n"> <"\techo P0.2 >\"$P0.2\" &&\n"> <"\techo P0.3 >\"$P0.3\" &&\n"> <"\techo P1.0 >\"$P1.0\" &&\n"> <"\techo P1.2 >\"$P1.2\" &&\n"> <"\techo P1.3 >\"$P1.3\" &&\n"> <"\tgit add . &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit mv \"$P0.0\" \"R$P0.0\" &&\n"> <"\tgit mv \"$P0.1\" \"R$P1.0\" &&\n"> <"\tgit mv \"$P0.2\" \"R$P2.0\" &&\n"> <"\tgit mv \"$P0.3\" \"R$P3.0\" &&\n"> <"\tgit mv \"$P1.0\" \"R$P0.1\" &&\n"> <"\tgit mv \"$P1.2\" \"R$P2.1\" &&\n"> <"\tgit mv \"$P1.3\" \"R$P3.1\" &&\n"> <"\t:\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup expected files">)} { (SQ <"\n"> <"cat >expect <<\\EOF\n"> <" rename pathname.1 => \"Rpathname\\twith HT.0\" (100%)\n"> <" rename pathname.3 => \"Rpathname\\nwith LF.0\" (100%)\n"> <" rename \"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\" (100%)\n"> <" rename pathname.2 => Rpathname with SP.0 (100%)\n"> <" rename \"pathname\\twith HT.2\" => Rpathname with SP.1 (100%)\n"> <" rename pathname.0 => Rpathname.0 (100%)\n"> <" rename \"pathname\\twith HT.0\" => Rpathname.1 (100%)\n"> <"EOF\n"> ) } ) (C {(test_expect_success)} {(SQ <"git diff --summary -M HEAD">)} {(SQ <"\n"> <"\tgit diff --summary -M HEAD >actual &&\n"> <"\ttest_cmp expect actual\n">)} ) (C {(test_expect_success)} {(SQ <"git diff --numstat -M HEAD">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t0\t0\tpathname.1 => \"Rpathname\\twith HT.0\"\n"> <"\t0\t0\tpathname.3 => \"Rpathname\\nwith LF.0\"\n"> <"\t0\t0\t\"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\"\n"> <"\t0\t0\tpathname.2 => Rpathname with SP.0\n"> <"\t0\t0\t\"pathname\\twith HT.2\" => Rpathname with SP.1\n"> <"\t0\t0\tpathname.0 => Rpathname.0\n"> <"\t0\t0\t\"pathname\\twith HT.0\" => Rpathname.1\n"> <"\tEOF\n"> <"\tgit diff --numstat -M HEAD >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"git diff --stat -M HEAD">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t pathname.1 => \"Rpathname\\twith HT.0\" | 0\n"> <"\t pathname.3 => \"Rpathname\\nwith LF.0\" | 0\n"> <"\t \"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\" | 0\n"> <"\t pathname.2 => Rpathname with SP.0 | 0\n"> <"\t \"pathname\\twith HT.2\" => Rpathname with SP.1 | 0\n"> <"\t pathname.0 => Rpathname.0 | 0\n"> <"\t \"pathname\\twith HT.0\" => Rpathname.1 | 0\n"> <"\t 7 files changed, 0 insertions(+), 0 deletions(-)\n"> <"\tEOF\n"> <"\tgit diff --stat -M HEAD >actual &&\n"> <"\ttest_i18ncmp expect actual\n"> ) } ) (C {(test_done)}) ] )